This module defines the “physical layer” of file-reading, which interacts with local filesystems or remote protocols like HTTP(S), S3 and XRootD. The “physical layer” is distinguished from “interpretation” in that the meaning of the bytes that have been read are not relevant in this layer. The “interpretation layer” interacts with the “physical layer” by requesting a uproot.source.chunk.Chunk from a uproot.source.chunk.Source and inspecting it with a uproot.Cursor.

Any threads used for parallel reading are launched and shut down with the file handle or handles themselves. Context management (Python’s with statement) controls both I/O resources and threads.

This module includes a uproot.source.futures implementation that connects file handles with threads.