uproot.ObjectSource

Defined in uproot.source.object on line 88.

Inheritance order:

  1. uproot.source.chunk.MultithreadedSource

  2. uproot.source.chunk.Source

class uproot.source.object.ObjectSource(obj, **options)
Parameters:

obj – The file-like object to use.

A uproot.source.chunk.Source for a file-like object. (Although this is a uproot.source.chunk.MultithreadedSource, it never has more or less than one thread.)

This object must have the following methods:

  • read(num_bytes) where num_bytes is an integer number of bytes to read.

  • seek(position) where position is an integer position to seek to.

Both of these methods change the internal state of the object, its current seek position (because read moves that position forward num_bytes). Hence, it is in principle not thread-safe.

executor

Inherited from uproot.source.chunk.MultithreadedSource.

ObjectSource.executor

The uproot.source.futures.ResourceThreadPoolExecutor

num_workers

Inherited from uproot.source.chunk.MultithreadedSource.

ObjectSource.num_workers

The number of uproot.source.futures.ResourceWorker threads in the uproot.source.futures.ResourceThreadPoolExecutor.

chunk

Inherited from uproot.source.chunk.Source.

ObjectSource.chunk(start: int, stop: int) Chunk
Parameters:
  • start (int) – Seek position of the first byte to include.

  • stop (int) – Seek position of the first byte to exclude (one greater than the last byte to include).

Request a byte range of data from the file as a uproot.source.chunk.Chunk.

chunks

Inherited from uproot.source.chunk.Source.

ObjectSource.chunks(ranges: list[int, int], notifications: queue.Queue) list[Chunk]
Parameters:
  • ranges (list of (int, int) 2-tuples) – Intervals to fetch as (start, stop) pairs in a single request, if possible.

  • notifications (queue.Queue) – Indicator of completed chunks. After each gets filled, it is put on the queue; a listener should get from this queue len(ranges) times.

Request a set of byte ranges from the file.

This method has two outputs:

  • The method returns a list of unfilled uproot.source.chunk.Chunk objects, which get filled in a background thread. If you try to read data from an unfilled chunk, it will wait until it is filled.

  • The method also puts the same uproot.source.chunk.Chunk objects onto the notifications queue as soon as they are filled.

Reading data from chunks on the queue can be more efficient than reading them from the returned list. The total reading time is the same, but work on the filled chunks can be better parallelized if it is triggered by already-filled chunks, rather than waiting for chunks to be filled.

file_path

Inherited from uproot.source.chunk.Source.

ObjectSource.file_path

A path to the file (or URL).

num_bytes

Inherited from uproot.source.chunk.Source.

ObjectSource.num_bytes

The number of bytes in the file.

num_requests

Inherited from uproot.source.chunk.Source.

ObjectSource.num_requests

The number of requests that have been made (performance counter).

num_requested_chunks

Inherited from uproot.source.chunk.Source.

ObjectSource.num_requested_chunks

The number of uproot.source.chunk.Chunk objects that have been requested (performance counter).

num_requested_bytes

Inherited from uproot.source.chunk.Source.

ObjectSource.num_requested_bytes

The number of bytes that have been requested (performance counter).

performance_counters

Inherited from uproot.source.chunk.Source.

ObjectSource.performance_counters

close

Inherited from uproot.source.chunk.Source.

ObjectSource.close()

Manually closes the file(s) and stops any running threads.

closed

Inherited from uproot.source.chunk.Source.

ObjectSource.closed

True if the uproot.source.futures.ResourceThreadPoolExecutor has been shut down and the file handles have been closed.