Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _array(self, branch_name: bytes):
interpretation = uproot.interpret(self._tree[branch_name])
if isinstance(interpretation, uproot.asjagged):
dtype = interpretation.content.type
length = None
else:
dtype = interpretation.type
length = len(self)
form = awkward1.forms.Form.fromjson('"%s"' % dtype)
generator = awkward1.layout.ArrayGenerator(
self.reader, (branch_name,), {}, form=form, length=length,
)
return awkward1.layout.VirtualArray(
generator,
self._cache,
cache_key="/".join([self._keyprefix, "file", branch_name.decode("ascii")]),
parameters={"__doc__": self._tree[branch_name].title.decode("ascii"),},
)
- Any branches named ``n{name}`` are assumed to be counts branches and converted to offsets ``o{name}``
- Any local index branches with names matching ``{source}_{target}Idx*`` are converted to global indexes for the event chunk
- Any `NanoEventsFactory.nested_items` are constructed, if the necessary branches are available
- Any `NanoEventsFactory.special_items` are constructed, if the necessary branches are available
From those arrays, NanoAOD collections are formed as collections of branches grouped by name, where:
- one branch exists named ``name`` and no branches start with ``name_``, interpreted as a single flat array;
- one branch exists named ``name``, one named ``n{name}``, and no branches start with ``name_``, interpreted as a single jagged array;
- no branch exists named ``{name}`` and many branches start with ``name_*``, interpreted as a flat table; or
- one branch exists named ``n{name}`` and many branches start with ``name_*``, interpreted as a jagged table.
All collections are then zipped into one `NanoEvents` record and returned.
"""
self._build_collections()
events = awkward1.layout.RecordArray(
self._collections,
parameters={
"__record__": "NanoEvents",
"__doc__": self._tree.title.decode("ascii"),
"events_key": self._keyprefix,
"metadata": self._metadata,
},
)
return awkward1.Array(events)