uproot_custom.readers package

Contents

uproot_custom.readers package#

Submodules#

uproot_custom.readers.backend module#

uproot_custom.readers.backend.get() → Literal['cpp', 'python', 'forth'][source]#

Return the current reader backend.

The backend is resolved in the following order of priority: explicitly set value via set() > UPROOT_CUSTOM_READER_BACKEND environment variable > default “cpp”.

Returns:

The current reader backend (“cpp”, “python”, or “forth”).

Raises:

ValueError – If the UPROOT_CUSTOM_READER_BACKEND environment variable is set to an unrecognized value.

uproot_custom.readers.backend.set(backend: Literal['cpp', 'python', 'forth']) → None[source]#

Set the current reader backend.

This overrides the UPROOT_CUSTOM_READER_BACKEND environment variable and the default “cpp”.

Parameters:

backend – The reader backend to use. Must be one of “cpp”, “python”, or “forth”.

Raises:

ValueError – If backend is not a recognized reader backend.

uproot_custom.readers.backend.use(backend: Literal['cpp', 'python', 'forth'])[source]#

Context manager to temporarily switch the reader backend.

The original backend is restored when exiting the with block.

Example:

from uproot_custom.readers import backend

with backend.use("python"):
    branch.array()
Parameters:

backend – The reader backend to use within the context. Must be one of “cpp”, “python”, or “forth”.

Raises:

ValueError – If backend is not a recognized reader backend.

uproot_custom.readers.cpp module#

Type stubs for ROOT C++ reader classes.

This file contains only type hints without implementations.

class uproot_custom.readers.cpp.AnyClassReader#

Bases: IReader

class uproot_custom.readers.cpp.AnyPointerReader#

Bases: IReader

class uproot_custom.readers.cpp.CStyleArrayReader#

Bases: IReader

class uproot_custom.readers.cpp.DoubleReader#

Bases: IReader

class uproot_custom.readers.cpp.EmptyReader#

Bases: IReader

class uproot_custom.readers.cpp.FloatReader#

Bases: IReader

class uproot_custom.readers.cpp.GroupReader#

Bases: IReader

class uproot_custom.readers.cpp.IReader#

Bases: pybind11_object

name(self: uproot_custom.cpp.IReader) → str#

Get the name of the reader

class uproot_custom.readers.cpp.Int16Reader#

Bases: IReader

class uproot_custom.readers.cpp.Int32Reader#

Bases: IReader

class uproot_custom.readers.cpp.Int64Reader#

Bases: IReader

class uproot_custom.readers.cpp.Int8Reader#

Bases: IReader

class uproot_custom.readers.cpp.STLMapReader#

Bases: IReader

class uproot_custom.readers.cpp.STLSeqReader#

Bases: IReader

class uproot_custom.readers.cpp.STLStringReader#

Bases: IReader

class uproot_custom.readers.cpp.TArrayCReader#

Bases: IReader

class uproot_custom.readers.cpp.TArrayDReader#

Bases: IReader

class uproot_custom.readers.cpp.TArrayFReader#

Bases: IReader

class uproot_custom.readers.cpp.TArrayIReader#

Bases: IReader

class uproot_custom.readers.cpp.TArrayLReader#

Bases: IReader

class uproot_custom.readers.cpp.TArraySReader#

Bases: IReader

class uproot_custom.readers.cpp.TObjectReader#

Bases: IReader

class uproot_custom.readers.cpp.TStringReader#

Bases: IReader

class uproot_custom.readers.cpp.UInt16Reader#

Bases: IReader

class uproot_custom.readers.cpp.UInt32Reader#

Bases: IReader

class uproot_custom.readers.cpp.UInt64Reader#

Bases: IReader

class uproot_custom.readers.cpp.UInt8Reader#

Bases: IReader

uproot_custom.readers.cpp.read_data(data: typing.Annotated[numpy.typing.ArrayLike, numpy.uint8], offsets: typing.Annotated[numpy.typing.ArrayLike, numpy.uint32], cursor_offset: typing.SupportsInt | typing.SupportsIndex, reader: uproot_custom::IReader) → object#

Read data from a binary stream

uproot_custom.readers.python module#

class uproot_custom.readers.python.AnyClassReader(name: str, element_readers: list[IReader])[source]#

Bases: IReader

data()[source]#
read(stream: BinaryStream)[source]#
read_many_memberwise(stream, count)[source]#
class uproot_custom.readers.python.AnyPointerReader(name: str, element_reader: IReader)[source]#

Bases: IReader

Reads objects stored via ROOT’s read_object_any protocol.

This handles both: - True pointers (kObjectP=64, kAnyP=69): full read_object_any with null/reference support - Object headers (kNewClassTag + classname before object data)

Binary format (read_object_any):
  1. bcnt (uint32) — if kByteCountMask set: versioned, then read tag (uint32)

    otherwise: unversioned, tag = bcnt

  2. tag: - tag == 0: null pointer - tag & kClassMask == 0 (nonzero): reference to previously-read object (skip bytes) - tag == kNewClassTag: null-terminated classname + object data - tag & kClassMask != 0: reference to known class, new object data

data()[source]#
read(stream)[source]#
uproot_custom.readers.python.BinaryBuffer#

alias of BinaryStream

class uproot_custom.readers.python.BinaryStream(data: NDArray[uint8], offsets: NDArray[uint32], initial_cursor_position: int, repr_nbytes: int = 50)[source]#

Bases: object

property entries#
read_TString()[source]#
read_bool() → bool[source]#
read_double() → float[source]#
read_fNBytes() → uint32[source]#
read_fVersion()[source]#
read_float() → float[source]#
read_int16() → int[source]#
read_int32() → int[source]#
read_int64() → int[source]#
read_int8() → int[source]#
read_null_terminated_string()[source]#
read_obj_header()[source]#
read_uint16() → int[source]#
read_uint32() → int[source]#
read_uint64() → int[source]#
read_uint8() → int[source]#
property remaining_data#
skip(n: int)[source]#
skip_TObject()[source]#
skip_fNBytes()[source]#
skip_fVersion()[source]#
skip_null_terminated_string()[source]#
skip_obj_header()[source]#
class uproot_custom.readers.python.CStyleArrayReader(name: str, flat_size: int, element_reader: IReader)[source]#

Bases: IReader

data()[source]#
read(stream)[source]#
read_many(stream, count)[source]#
read_until(stream, end_pos)[source]#
class uproot_custom.readers.python.EmptyReader(name: str)[source]#

Bases: IReader

data()[source]#
read(stream)[source]#
class uproot_custom.readers.python.GroupReader(name: str, element_readers: list[IReader])[source]#

Bases: IReader

data()[source]#
read(stream)[source]#
read_many_memberwise(stream, count)[source]#
class uproot_custom.readers.python.IReader(name: str)[source]#

Bases: object

data() → Any[source]#
read(stream: BinaryStream) → None[source]#
read_many(stream: BinaryStream, count: int) → int[source]#
read_many_memberwise(stream: BinaryStream, count: int) → int[source]#
read_until(stream: BinaryStream, end_pos: int) → int[source]#
class uproot_custom.readers.python.PrimitiveReader(name: str, dtype: Literal['bool', 'uint8', 'uint16', 'uint32', 'uint64', 'int8', 'int16', 'int32', 'int64', 'float32', 'float64'])[source]#

Bases: IReader

data()[source]#
read(stream)[source]#
class uproot_custom.readers.python.STLMapReader(name: str, with_header: bool, key_reader: IReader, value_reader: IReader)[source]#

Bases: IReader

data()[source]#
read(stream)[source]#
read_body(stream: BinaryStream, is_memberwise: bool)[source]#
read_element_version(stream: BinaryStream)[source]#
read_many(stream, count)[source]#
read_until(stream, end_pos)[source]#
class uproot_custom.readers.python.STLSeqReader(name: str, with_header: bool, element_reader: IReader)[source]#

Bases: IReader

data()[source]#
read(stream)[source]#
read_body(stream: BinaryStream, is_memberwise: bool)[source]#
read_element_version(stream: BinaryStream)[source]#
read_many(stream, count)[source]#
read_until(stream, end_pos)[source]#
class uproot_custom.readers.python.STLStringReader(name: str, with_header: bool)[source]#

Bases: IReader

data()[source]#
read(stream)[source]#
read_body(stream: BinaryStream)[source]#
read_many(stream, count)[source]#
read_until(stream, end_pos)[source]#
class uproot_custom.readers.python.TArrayReader(name: str, dtype: Literal['int8', 'int16', 'int32', 'int64', 'float32', 'float64'])[source]#

Bases: IReader

data()[source]#
read(stream)[source]#
class uproot_custom.readers.python.TObjectReader(name: str, keep_data: bool = False)[source]#

Bases: IReader

data()[source]#
read(stream)[source]#
class uproot_custom.readers.python.TStringReader(name: str, with_header: bool)[source]#

Bases: IReader

data()[source]#
read(stream)[source]#
read_many(stream, count)[source]#
read_until(stream, end_pos)[source]#
uproot_custom.readers.python.debug_print(*args, **kwargs)[source]#
uproot_custom.readers.python.read_data(data: NDArray[uint8], offsets: NDArray[uint32], cursor_offset: int, reader: IReader)[source]#

Module contents#