# uproot

Uproot: ROOT I/O in pure Python and NumPy.

Nearly all of the functions needed for general use are imported here, but the
documentation gives fully qualified names. For example, the most frequently
used function in Uproot is

```python
uproot.open("path/to/filename.root")
```

but we refer to it in the documentation as [uproot.open](uproot.reading.open.html.md).

Typical entry points for file-reading are

* [uproot.open](uproot.reading.open.html.md)
* [uproot.iterate](uproot.behaviors.TBranch.iterate.html.md)
* [uproot.concatenate](uproot.behaviors.TBranch.concatenate.html.md)
* [uproot.dask](uproot._dask.dask.html.md)

though they would usually be accessed as `uproot.iterate`,
`uproot.concatenate`, and `uproot.dask`.

The most useful classes are

* [uproot.behaviors.TBranch.HasBranches](uproot.behaviors.TBranch.HasBranches.html.md) (`TTree` or `TBranch`)
* [uproot.TBranch](uproot.behaviors.TBranch.TBranch.html.md)
* [uproot.behaviors.TH1](uproot.behaviors.TH1.html.md)
* [uproot.behaviors.TH2](uproot.behaviors.TH2.html.md)
* [uproot.behaviors.TProfile](uproot.behaviors.TProfile.html.md)

though they would usually be accessed through instances that have been read
from files.

The submodules of Uproot are:

* [uproot.reading](uproot.reading.html.md): entry-point for reading files, as well as classes
  for the three basic types that can’t be modeled: `TFile`, `TDirectory`,
  and `TKey`.
* [uproot.behaviors](uproot.behaviors.html.md): methods and properties to mix into instantiated
  models, for a high-level user interface.
* [uproot.model](uproot.model.html.md): utilities for modeling C++ objects as Python objects.
* [uproot.streamers](uproot.streamers.html.md): models for `TStreamerInfo` and its elements
  to generate code for new models for classes in ROOT files.
* [uproot.cache](uproot.cache.html.md): defines caches with least-recently used eviction
  policies.
* [uproot.compression](uproot.compression.html.md): functions for compressing and decompressing data.
* [uproot.deserialization](uproot.deserialization.html.md): utility functions for deserialization,
  including the generation of new classes.
* [uproot.source](uproot.source.html.md): the “physical layer,” which reads bytes without
  interpreting them from various backends, like files, HTTP(S), and XRootD.
* [uproot.interpretation](uproot.interpretation.html.md): prescriptions for converting ROOT types
  into Pythonic arrays.
* [uproot.containers](uproot.containers.html.md): interpretations and models for standard
  containers, such as `std::vector` and arrays.
* [uproot.language](uproot.language.html.md): computational backends for expressions in
  [arrays](uproot.behaviors.TBranch.HasBranches.html.md#uproot-behaviors-tbranch-hasbranches-arrays).
* [uproot.models](uproot.models.html.md): predefined models for classes that are too basic
  to rely on `TStreamerInfo` or too common to justify reading it.
* `uproot.const`: integer constants used in ROOT serialization and
  deserialization.
* `uproot.extras`: import functions for the libraries that Uproot can
  use, but does not require as dependencies. If a library can’t be imported,
  these functions provide instructions for installing them.
* `uproot.version`: for access to the version number.
* `uproot.dynamic`: initially empty module, in which dynamically
  generated classes are defined.
* `uproot._util`: non-public utilities used by the above.

isort:skip_file
