def getBucketInfo(self, buckets):
<EOL>if self.encoders is None:<EOL><INDENT>raise RuntimeError("<STR_LIT>")<EOL><DEDENT>retVals = []<EOL>bucketOffset = <NUM_LIT:0><EOL>for i in range(len(self.encoders)):<EOL><INDENT>(name, encoder, offset) = self.encoders[i]<EOL>if encoder.encoders is not None:<EOL><INDENT>nextBucketOffset = bucketOffset + len(encoder.encoders)<EOL><DEDENT>else:<EOL><INDENT>nextBucketOffset = bucketOffset + <NUM_LIT:1><EOL><DEDENT>bucketIndices = buckets[bucketOffset:nextBucketOffset]<EOL>values = encoder.getBucketInfo(bucketIndices)<EOL>retVals.extend(values)<EOL>bucketOffset = nextBucketOffset<EOL><DEDENT>return retVals<EOL>
Returns a list of :class:`.EncoderResult` namedtuples describing the inputs
for each sub-field that correspond to the bucket indices passed in
``buckets``. To get the associated field names for each of the values, call
:meth:`.getScalarNames`.

:param buckets: The list of bucket indices, one for each sub-field encoder.
               These bucket indices for example may have been retrieved
               from the :meth:`.getBucketIndices` call.
:return: A list of :class:`.EncoderResult`.