How to use the awkward1.layout function in awkward1

To help you get started, we’ve selected a few awkward1 examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github CoffeaTeam / coffea / coffea / nanoaod / nanoawkward1.py View on Github external
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"),},
        )
github CoffeaTeam / coffea / coffea / nanoevents / factory.py View on Github external
- 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)