uproot.model.UnknownClass

Defined in uproot.model on line 1411.

Inheritance order:

  1. uproot.Model

class uproot.model.UnknownClass

Placeholder for a C++ class instance that has no uproot.model.DispatchByVersion and no TStreamerInfo in the current uproot.ReadOnlyFile to produce one.

chunk

UnknownClass.chunk

The chunk of data associated with the unknown class, referred to by a weak reference (to avoid memory leaks in uproot.model.UnknownClass objects). If the original chunk has been garbage-collected, this raises RuntimeError.

Primarily useful in the debug method.

context

UnknownClass.context

The auxiliary data used in deserialization.

Primarily useful in the debug method.

debug

UnknownClass.debug(skip_bytes=0, limit_bytes=None, dtype=None, offset=0, stream=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)
Parameters:
  • skip_bytes (int) – Number of bytes to skip before presenting the remainder of the uproot.source.chunk.Chunk. May be negative, to examine the byte stream leading up to the attempted instantiation. The default, 0, starts where the number of bytes and version number would be (just before read_numbytes_version).

  • limit_bytes (None or int) – Number of bytes to limit the output to. A line of debugging output (without any offset) is 20 bytes, so multiples of 20 show full lines. If None, everything is shown to the end of the uproot.source.chunk.Chunk, which might be large.

  • dtype (None, numpy.dtype, or its constructor argument) – If None, present only the bytes as decimal values (0-255). Otherwise, also interpret them as an array of a given NumPy type.

  • offset (int) – Number of bytes to skip before interpreting a dtype; can be helpful if the numerical values are out of phase with the first byte shown. Not to be confused with skip_bytes, which determines which bytes are shown at all. Any offset values that are equivalent modulo dtype.itemsize show equivalent interpretations.

  • stream (object with a write(str) method) – Stream to write the debugging output to.

Presents the byte stream at the point where this instance would have been deserialized.

Example output with dtype=">f4" and offset=3.

--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+-
123 123 123  63 140 204 205  64  12 204 205  64  83  51  51  64 140 204 205  64
  {   {   {   ? --- --- ---   @ --- --- ---   @   S   3   3   @ --- --- ---   @
                        1.1             2.2             3.3             4.4
    --+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+-
    176   0   0  64 211  51  51  64 246 102 102  65  12 204 205  65  30 102 102  66
    --- --- ---   @ ---   3   3   @ ---   f   f   A --- --- ---   A ---   f   f   B
            5.5             6.6             7.7             8.8             9.9
    --+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+-
    202   0   0  67  74   0   0  67 151 128   0 123 123
    --- --- ---   C   J --- ---   C --- --- ---   {   {
          101.0           202.0           303.0

debug_array

UnknownClass.debug_array(skip_bytes=0, dtype=dtype('uint8'))
Parameters:
  • skip_bytes (int) – Number of bytes to skip before presenting the remainder of the uproot.source.chunk.Chunk. May be negative, to examine the byte stream leading up to the attempted instantiation. The default, 0, starts where the number of bytes and version number would be (just before read_numbytes_version).

  • dtype (numpy.dtype or its constructor argument) – Data type in which to interpret the data. (The size of the array returned is truncated to this dtype.itemsize.)

Like debug, but returns a NumPy array for further inspection.

classname

Inherited from uproot.Model.

UnknownClass.classname

The C++ (decoded) classname of the modeled class.

See uproot.classname_decode, uproot.classname_encode, and uproot.model.classname_version.

encoded_classname

Inherited from uproot.Model.

UnknownClass.encoded_classname

The Python (encoded) classname of the modeled class. May or may not include version.

See uproot.classname_decode, uproot.classname_encode, and uproot.model.classname_version.

class_version

Inherited from uproot.Model.

UnknownClass.class_version

The version number of the modeled class (int) if any; None otherwise.

See uproot.classname_decode, uproot.classname_encode, and uproot.model.classname_version.

cursor

Inherited from uproot.Model.

UnknownClass.cursor

A cursor pointing to the start of this instance in the byte stream (before read_numbytes_version).

file

Inherited from uproot.Model.

UnknownClass.file

A uproot.ReadOnlyFile, which may be open and readable, or a uproot.reading.DetachedFile, which only contains information about the original file (not an open file handle).

close

Inherited from uproot.Model.

UnknownClass.close()

Closes the file from which this object is derived, if such a file is still attached (i.e. not uproot.reading.DetachedFile).

closed

Inherited from uproot.Model.

UnknownClass.closed

True if the associated file is known to be closed; False if it is known to be open. If the associated file is detached (uproot.reading.DetachedFile), then the value is None.

parent

Inherited from uproot.Model.

UnknownClass.parent

The object that was deserialized before this one in recursive descent, usually the containing object (or the container’s container).

concrete

Inherited from uproot.Model.

UnknownClass.concrete

The Python instance corresponding to the concrete (instantiated) class in C++, which is self if this is the concrete class or another object if this is actually a holder of superclass members for that other object (i.e. if this object is in the other’s bases).

members

Inherited from uproot.Model.

UnknownClass.members

A dict of C++ member data directly associated with this class (i.e. not its superclasses). For all members, see all_members.

all_members

Inherited from uproot.Model.

UnknownClass.all_members

A dict of C++ member data for this class and its superclasses. For only direct members, see members.

has_member

Inherited from uproot.Model.

UnknownClass.has_member(name, all=True)

Returns True if calling member with the same arguments would return a value; False if the member is missing.

member

Inherited from uproot.Model.

UnknownClass.member(name, all=True, none_if_missing=False)
Parameters:
  • name (str) – The name of the member datum to retrieve.

  • all (bool) – If True, recursively search all superclasses in bases. Otherwise, search the direct class only.

  • none_if_missing (bool) – If a member datum doesn’t exist in the search path, none_if_missing=True has this function return None, but none_if_missing=False would have it raise an exception. Note that None is a possible value for some member data.

Returns a C++ member datum by name.

bases

Inherited from uproot.Model.

UnknownClass.bases

List of uproot.Model objects representing superclass data for this object in the order given in C++ (opposite method resolution order).

  • If this object has no superclasses, bases is empty.

  • If it has one superclass, which itself might have superclasses, bases has length 1.

  • Only if this object multiply inherits from more than one superclass at the same level does bases have length greater than 1.

Since multiple inheritance is usually avoided, bases rarely has length greater than 1. A linear chain of superclasses deriving from super-superclasses is represented by bases containing an object whose bases contains objects.

base

Inherited from uproot.Model.

UnknownClass.base(*cls)

Extracts instances from bases by Python class type.

The cls arguments may be Python classes or C++ classname strings to match.

is_instance

Inherited from uproot.Model.

UnknownClass.is_instance(*cls)

Returns True if this object matches a given type in the C++ class hierarchy.

The cls arguments may be Python classes or C++ classname strings to match.

num_bytes

Inherited from uproot.Model.

UnknownClass.num_bytes

Number of bytes expected in the (uncompressed) serialization of this instance.

This value may be None (unknown before reading) or an integer.

If the value is an integer and the object exists (no exceptions in read), then the expected number of bytes agreed with the actual number of bytes, and this numer is reliable.

If this object is re-serialized, it won’t necessarily occupy the same number of bytes.

instance_version

Inherited from uproot.Model.

UnknownClass.instance_version

Version of this instance as read from the byte stream.

If this model is versioned (uproot.model.VersionedModel), the instance_version ought to be equal to the class_version.

If this model is versionless, the instance_version contains new information about the actual version deserialized.

is_memberwise

Inherited from uproot.Model.

UnknownClass.is_memberwise

True if the object was serialized in ROOT’s memberwise format; False otherwise.

awkward_form

Inherited from uproot.Model.

classmethod UnknownClass.awkward_form(file, context)
Parameters:
  • cls (subclass of uproot.Model) – This class.

  • file (uproot.ReadOnlyFile) – File to use to generate uproot.Model classes from its streamers and file_path for error messages.

  • context (dict) – Context for the Form-generation; defaults are the remaining arguments below.

  • index_format (str) – Format to use for indexes of the awkward.forms.Form; may be "i32", "u32", or "i64".

  • header (bool) – If True, include header fields of each C++ class.

  • tobject_header (bool) – If True, include header fields of each TObject base class.

  • breadcrumbs (tuple of class objects) – Used to check for recursion. Types that contain themselves cannot be Awkward Arrays because the depth of instances is unknown.

The awkward.forms.Form to use to put objects of type type in an Awkward Array.

strided_interpretation

Inherited from uproot.Model.

classmethod UnknownClass.strided_interpretation(file, header=False, tobject_header=True, breadcrumbs=(), original=None)
Parameters:
  • cls (subclass of uproot.Model) – This class.

  • file (uproot.ReadOnlyFile) – File to use to generate uproot.Model classes from its streamers and file_path for error messages.

  • header (bool) – If True, assume the outermost object has a header.

  • tobject_header (bool) – If True, assume that TObjects have headers.

  • original (None, uproot.Model, or uproot.containers.Container) – The original, non-strided model or container.

  • breadcrumbs (tuple of class objects) – Used to check for recursion. Types that contain themselves cannot be strided because the depth of instances is unknown.

Returns a list of (str, numpy.dtype) pairs to build a uproot.AsStridedObjects interpretation.

tojson

Inherited from uproot.Model.

UnknownClass.tojson()

Serializes this object in its ROOT JSON form (as Python lists and dicts, which can be passed to json.dump or json.dumps).

empty

Inherited from uproot.Model.

classmethod UnknownClass.empty()

Creates a model instance (of subclass cls) with no data; all required attributes are None or empty.

read

Inherited from uproot.Model.

classmethod UnknownClass.read(chunk, cursor, context, file, selffile, parent, concrete=None)
Parameters:

Creates a model instance by reading data from a file.

read_numbytes_version

Inherited from uproot.Model.

UnknownClass.read_numbytes_version(chunk, cursor, context)
Parameters:

Reads the number of bytes and instance version from the byte stream, which is usually 6 bytes (4 + 2). Bits with special meanings are appropriately masked out.

Some types don’t have a 6-byte header or handle it differently; in those cases, this method should be overridden.

read_members

Inherited from uproot.Model.

UnknownClass.read_members(chunk, cursor, context, file)
Parameters:

Reads the member data for this class. The abstract class uproot.Model has an empty read_members method; this must be overridden by subclasses.

check_numbytes

Inherited from uproot.Model.

UnknownClass.check_numbytes(chunk, cursor, context)
Parameters:

Reads nothing; checks the expected number of bytes against the actual movement of the cursor at the end of the object, possibly raising a uproot.DeserializationError exception.

If num_bytes is None, this method does nothing.

It is possible that a subclass would override this method, but not likely.

postprocess

Inherited from uproot.Model.

UnknownClass.postprocess(chunk, cursor, context, file)
Parameters:

Called for any additional processing after the object has been fully read.

The return value from this method is the object that actually represents the ROOT data, which might be a different instance or even a different type from this class. The default in uproot.Model is to return self.

Note that for versioned models, postprocess is called first, then postprocess is called on its output, allowing a uproot.model.DispatchByVersion to refine all data of its type, regardless of version.

hook_before_read

Inherited from uproot.Model.

UnknownClass.hook_before_read(**kwargs)

Called in read, before any data have been read.

hook_before_read_members

Inherited from uproot.Model.

UnknownClass.hook_before_read_members(**kwargs)

Called in read, after read_numbytes_version and before read_members.

hook_after_read_members

Inherited from uproot.Model.

UnknownClass.hook_after_read_members(**kwargs)

Called in read, after read_members and before check_numbytes.

hook_before_postprocess

Inherited from uproot.Model.

UnknownClass.hook_before_postprocess(**kwargs)

Called in read, after check_numbytes and before postprocess.

to_writable

Inherited from uproot.Model.

UnknownClass.to_writable()
Parameters:

obj (uproot.Model instance of the same C++ class) – The object to convert to this class version.

Returns a writable version of this object or raises a NotImplementedError if no writable version exists.

serialize

Inherited from uproot.Model.

UnknownClass.serialize(name=None)

Serialize a object (from num_bytes and version onward) for writing into an output ROOT file.

If a name is given, override the object’s current name.

This method has not been implemented on all classes (raises NotImplementedError).

to_pyroot

Inherited from uproot.Model.

UnknownClass.to_pyroot(name=None)
Parameters:

name (str or None) – A name for the new PyROOT object.

Converts this uproot.Model into a PyROOT object if it is writable. A minority of Uproot models are writable, mostly just histograms. Writability is necessary for conversion to PyROOT because it is serialized through a ROOT TMessage.