Skip to main content

uproot extension for reading custom classes

Project description

Introduction

uproot-custom is an extension of uproot that provides an enhanced way to read custom classes stored in TTree.

When to use uproot-custom

uproot-custom aims to handle cases that classes are too complex for uproot to read, such as when their Streamer methods are overridden or some specific data members are not supported by uproot.

How uproot-custom works

uproot-custom uses a reader/factory mechanism to read classes:

flowchart TD
    subgraph py["Python field"]
        direction TB
        AsCustom --> fac["Factory (Primitive, STLVector, TString, ...)"]
        fac["Factory (Primitive, STLVector, TString, ...)"] -- Optional --> form(["construct awkward forms"])
        fac --> build_reader(["build corresponding C++ reader"])
        fac --> build_ak(["construct awkward arrays"])
    end

    user_fac["User's Factory"] -. Register .-> fac

    subgraph cpp["C++ field"]
        direction TB
        build_reader --> reader["C++ Reader"]
        reader --> read_bin(["read binary data"])
        read_bin --> ret_data(["return data"])
    end

    ret_data --> raw_data[("tuple, list, numpy arrays, ...")]
    raw_data --> build_ak
  • reader is a C++ class that implements the logic to read data from binary buffers.
  • factory is a Python class that creates, combines readers, and post-processes the data read by readers.

This machanism is implemented as uproot_custom.AsCustom interpretation. uproot-custom wraps uproot.interpretation.identify.interpretation_of method to intercept the interpretation of specific branches. This makes uproot-custom well compatible with uproot.

[!TIP] Users can implement their own factory and reader, register them to uproot-custom. An example of implementing a custom factory/reader can be found in the repository.

[!NOTE] uproot-custom does not provide a full reimplementation of ROOT's I/O system. Users are expected to implement their own factory/reader for their custom classes that built-in factories cannot handle.

Documentation

View the documentation for more details about customizing your own reader/factory, and the architecture of uproot-custom.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uproot_custom-2.1.0.tar.gz (162.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

uproot_custom-2.1.0-cp313-cp313-win_amd64.whl (146.7 kB view details)

Uploaded CPython 3.13Windows x86-64

uproot_custom-2.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (180.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

uproot_custom-2.1.0-cp313-cp313-macosx_11_0_arm64.whl (146.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

uproot_custom-2.1.0-cp312-cp312-win_amd64.whl (146.7 kB view details)

Uploaded CPython 3.12Windows x86-64

uproot_custom-2.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (180.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

uproot_custom-2.1.0-cp312-cp312-macosx_11_0_arm64.whl (146.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

uproot_custom-2.1.0-cp311-cp311-win_amd64.whl (145.7 kB view details)

Uploaded CPython 3.11Windows x86-64

uproot_custom-2.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (179.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

uproot_custom-2.1.0-cp311-cp311-macosx_11_0_arm64.whl (145.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

uproot_custom-2.1.0-cp310-cp310-win_amd64.whl (145.5 kB view details)

Uploaded CPython 3.10Windows x86-64

uproot_custom-2.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (178.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

uproot_custom-2.1.0-cp310-cp310-macosx_11_0_arm64.whl (144.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

uproot_custom-2.1.0-cp39-cp39-win_amd64.whl (145.2 kB view details)

Uploaded CPython 3.9Windows x86-64

uproot_custom-2.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (178.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

uproot_custom-2.1.0-cp39-cp39-macosx_11_0_arm64.whl (144.9 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file uproot_custom-2.1.0.tar.gz.

File metadata

  • Download URL: uproot_custom-2.1.0.tar.gz
  • Upload date:
  • Size: 162.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for uproot_custom-2.1.0.tar.gz
Algorithm Hash digest
SHA256 2d415b7291d652af9bd935bf6fe54c27213625f02fdc66fca2dc9a00ff3423b8
MD5 a5ab72ee4fa549938b8903847183d44f
BLAKE2b-256 8fd821520e7e1ac0e746fdf9066e3d1209f0a6c140e07138bbae13ec11c13b83

See more details on using hashes here.

Provenance

The following attestation bundles were made for uproot_custom-2.1.0.tar.gz:

Publisher: python-publish.yml on mrzimu/uproot-custom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uproot_custom-2.1.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for uproot_custom-2.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8e03ebdd907adee7a3262fee731d601927b0332b3ca4943abe0499e6c8195249
MD5 c3774599c3cb3242f461c764c8867b28
BLAKE2b-256 a1f9ec44d3bbe90cadba3e28cfce53d471cf7e842b7b58a5443de1dcb1cad16d

See more details on using hashes here.

Provenance

The following attestation bundles were made for uproot_custom-2.1.0-cp313-cp313-win_amd64.whl:

Publisher: python-publish.yml on mrzimu/uproot-custom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uproot_custom-2.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for uproot_custom-2.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7be9f07fd7e0827f1142fd2c5b971fa4056e61d0f73d600edcb850bcce1f3998
MD5 151f261b3402266a942a8a04dd0ec0b2
BLAKE2b-256 fb475cfdbcc5de5a22cd80a3183c8991d5131c61f54dcb6f741db9b02733fc69

See more details on using hashes here.

Provenance

The following attestation bundles were made for uproot_custom-2.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python-publish.yml on mrzimu/uproot-custom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uproot_custom-2.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for uproot_custom-2.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 59370229e6c6a6c726e1a4cfb2c97c4b29cc9824cdc98e752130f1085a2247f8
MD5 09e59a528c7c89b3f07f65d59e17fb76
BLAKE2b-256 33cd9ec44475dbf598b5dc9d7c06abf5aca89a3f8f1edab49fa85847e60b5dd4

See more details on using hashes here.

Provenance

The following attestation bundles were made for uproot_custom-2.1.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on mrzimu/uproot-custom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uproot_custom-2.1.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for uproot_custom-2.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4e34f4c06c8fb7158b56373920843810a9800216f6ca6e47d733919d4742f428
MD5 7073c89393983df4d4c0da415074a54d
BLAKE2b-256 c86925641c78b77b0295117980125c0148880b7dc8c70fd582333603ef28a5f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for uproot_custom-2.1.0-cp312-cp312-win_amd64.whl:

Publisher: python-publish.yml on mrzimu/uproot-custom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uproot_custom-2.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for uproot_custom-2.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 570856ac45f6aba86af1cb73ddb5cbe49daa9e12b2ddbe2e7a66d81b22129664
MD5 482f4f7747429d4fbe284bbf7c08392d
BLAKE2b-256 80c222c51057f29bf71188e1cd1ad6adfaa0acfe2cc8769b0dac4a58fd6473d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for uproot_custom-2.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python-publish.yml on mrzimu/uproot-custom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uproot_custom-2.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for uproot_custom-2.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 624dcd8410e50393701b6037344c290922679c912cff65027ec27ab5e821530f
MD5 cc322462ad8c2b8d2da724766d6456f0
BLAKE2b-256 0dac4369f5f9eb31fd2213d26f96de46bd5976f68bf30506a986ffcef5cec309

See more details on using hashes here.

Provenance

The following attestation bundles were made for uproot_custom-2.1.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on mrzimu/uproot-custom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uproot_custom-2.1.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for uproot_custom-2.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ad367ac465cfcafd978fe0de006ae7da142ed5a7108c3f91ca2d100bf13977c3
MD5 19a7c72cefa9825e65a50bc1258b5743
BLAKE2b-256 6f4f2d663514474a5167864cb9e18ddf232f5ddbe55ef4a1799a7ac950edd830

See more details on using hashes here.

Provenance

The following attestation bundles were made for uproot_custom-2.1.0-cp311-cp311-win_amd64.whl:

Publisher: python-publish.yml on mrzimu/uproot-custom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uproot_custom-2.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for uproot_custom-2.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8f0d777f3fdf19838ecae129e9b0a2bf5680a26f652d56369e180a3c04f85c40
MD5 203522392eac4b6ae0e3818c36ff6b39
BLAKE2b-256 e3b489fcc67c6fd7c0636be9203445c87643e342d7adae27af68f7ff3b1dbdfd

See more details on using hashes here.

Provenance

The following attestation bundles were made for uproot_custom-2.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python-publish.yml on mrzimu/uproot-custom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uproot_custom-2.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for uproot_custom-2.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 720388b4c398aa4a9b27186b43d51455403dda361c77a413336fc57b011097a0
MD5 defa3b6f25d000151b457bcd2489ae5e
BLAKE2b-256 0944a52698d617147e0256c5ac12fbd569b3b724276ee412fc4b568da08fdfec

See more details on using hashes here.

Provenance

The following attestation bundles were made for uproot_custom-2.1.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on mrzimu/uproot-custom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uproot_custom-2.1.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for uproot_custom-2.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5f59b8ca12986a75265f07876ab4843dd2366069dac5b20b25d6fbe6b3820e65
MD5 8a689394a087f233ebcce1a88c323228
BLAKE2b-256 1d74ab4d06798472f7ae9f65f13363a28638272142865b0719438d524b487c77

See more details on using hashes here.

Provenance

The following attestation bundles were made for uproot_custom-2.1.0-cp310-cp310-win_amd64.whl:

Publisher: python-publish.yml on mrzimu/uproot-custom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uproot_custom-2.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for uproot_custom-2.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9f11849e97690758182e61d67a883cdf216b49c8c739a654214b6477ec0186aa
MD5 7092503248967aed190884ddf8481fa1
BLAKE2b-256 b1f2683a14d89ebf9e0a7a3e51a1212bba5fa6924d884247cd234b33053898f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for uproot_custom-2.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python-publish.yml on mrzimu/uproot-custom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uproot_custom-2.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for uproot_custom-2.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 87fc87a836d9815499c782757406fc4ec19c6aa8b488b37ad3e04fb2b47243f9
MD5 d0b7da4c8632aa06b0a69da6668ba85a
BLAKE2b-256 ed47dc70331cb8ff3bdd625832b416ec8f560f8ebde37df419a6f1cd652f4183

See more details on using hashes here.

Provenance

The following attestation bundles were made for uproot_custom-2.1.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on mrzimu/uproot-custom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uproot_custom-2.1.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for uproot_custom-2.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e10f7ecb04d01769ff53d5332ab1790d48d3f33abe487233169bfbdb939c70cf
MD5 11cccaf509fc48cf4868fe0e968add07
BLAKE2b-256 954582a71c4999eb032a032d4be8d9fb3885ebc1711e3b14392c3a3b72db2e5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for uproot_custom-2.1.0-cp39-cp39-win_amd64.whl:

Publisher: python-publish.yml on mrzimu/uproot-custom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uproot_custom-2.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for uproot_custom-2.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a71e19aaf74c4e7bbd77d1a6015111732bd54aa474b57372b0c7b57e7d57cdda
MD5 b9f9aad60927cfef8264cff94c1521e0
BLAKE2b-256 592ce81bc79ebb6984705ddf72970f6f2936354916b280780224dc66030692c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for uproot_custom-2.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python-publish.yml on mrzimu/uproot-custom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uproot_custom-2.1.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for uproot_custom-2.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4cf99fec3213b0c9461c1a266c678bf6a191902b4e4f29b90b0c8311ae95a9f6
MD5 e6d98cd6f4bf35f6d04193e216953439
BLAKE2b-256 536bc11563fad5c032a88c53cf1d5e8b7c9331bd12b3c7ceb3495912a57bedec

See more details on using hashes here.

Provenance

The following attestation bundles were made for uproot_custom-2.1.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on mrzimu/uproot-custom

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page