Skip to content
This repository has been archived by the owner on Jun 21, 2022. It is now read-only.

Releases: scikit-hep/uproot3

2.1.5

27 Nov 21:59
Compare
Choose a tag to compare

Fixed a few small bugs discovered with new test files and enabled automatic deployment. (This will be the first release that triggers a deployment on PyPI.)

Bugs fixed:

  • branches with zero leaves should have no Interpretation
  • branch printout formatting as desired by user
  • fixed streamer-branch association for STL streamers with a single element 'This'.

2.1.1

27 Nov 20:56
Compare
Choose a tag to compare

Now each branch is associated with its streamer info (if possible). This makes it possible to read std::vectors, and std::vector<numbers> has been implemented.

2.0.5

24 Nov 21:05
Compare
Choose a tag to compare

uproot 2.x is a complete rewrite of the system.

  • Unlike 1.x, this version first reads the ROOT file's streamer info and uses that to deserialize almost all classes into Python objects. Apart from corner cases involving the bootstrapping classes (TFile, TKey, TStreamer*, etc.), the deserialization code will never be out of date.
  • It also replaces the spaghetti of special cases for numerical branches and string-valued branches with a generic "Interpretation" system, where different kinds of branches get custom classes (possibly generated from streamers) to turn the bytes on disk into different Python objects.
  • Jagged arrays (array of arbitrary-length arrays) are on the same footing as Numpy arrays, which is a basis for reading any arbitrary-length content (e.g. using classes generated from streamers).
  • All manipulations that must touch individual entries with Python code (e.g. making a jagged array of strings or std::vector<...>) is Numba-accelerated. If you have Numba installed, it will run as fast as Numpy calls (compiled code).
  • File-reading mechanism replaced with separated "source" and "cursor" to emulate memory mapped access for all file types, including XRootD.
  • Parallel executor and cache options simplified and made systematic across all method argument lists.
  • Any dict-like object may be a cache; memory-based and disk-based dict subclasses with LRU eviction policies included.

All old tests work. Reference documentation written. Tutorials in progress.

1.6.2

04 Nov 15:04
Compare
Choose a tag to compare

Fixed issue #16. The decompressor should be chosen based on the first two bytes of the compressed block, not the fCompress variable in TFile and/or TBranch.

1.6.1

18 Oct 16:42
Compare
Choose a tag to compare

For a while now, some uproot functions have been accepting a dictionary-like object as a cache, so if branches are in the supplied dictionary, they will not be extracted again from the ROOT file.

This version adds MemoryCache, ThreadSafeMemoryCache, and DiskCache (which is persistent and process-safe) as dictionary-like objects that can be used as caches. They all track memory usage (numbytes attribute) and evict the least-recently used items when it exceeds a threshold (limitbytes).

This code was mostly ported from the old PLUR project, adding process-safety to DiskCache so that a collection of servlets supervised by WSGI can share the same SSD cache (for example).

1.5.3

12 Oct 22:12
Compare
Choose a tag to compare

Bug-fixes during the preparation for LPC Computing talk. (Mostly bugs in the Arrowed connector, not main features.)

1.5.0

12 Oct 01:47
Compare
Choose a tag to compare

Added Pandas connector.

1.4.2

06 Oct 13:16
Compare
Choose a tag to compare

Added:

  • Low-level baskets interface for truly zero-copy operations from the memory-mapped file.
  • Interface to cast ROOT files as Arrow data structures through Arrowed (not currently available, so this feature will only get unlocked when Arrowed is released).
  • Various bug-fixes.
  • License at the top of all files is consistent with BSD-3 license for the whole project.

Pushed to PyPI.

1.3.1

20 Sep 18:03
Compare
Choose a tag to compare

Fixed @vkuznet's issues (#4 and #5) and pushed to PyPI.

1.3.0

20 Sep 16:49
Compare
Choose a tag to compare

Added the ability to generate, project, and iterate over arbitrary partitions of the data (uproot.partitions module).

Also fixed a bug in uproot.iterate that affected outputtypes other than dict.