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.5.4

07 Dec 05:35
Compare
Choose a tag to compare

Bug fixes for Friday's demo.

2.5.3

06 Dec 13:25
Compare
Choose a tag to compare

Fixed issue #31.

2.5.1

05 Dec 21:53
Compare
Choose a tag to compare

Fixed issue #30.

2.5.0

05 Dec 21:22
b059021
Compare
Choose a tag to compare

Added histograms and functional chains.

Histograms:

  • any TH1* read from a ROOT file is given user-friendly methods via TH1Methods, in exact analogy with TTreeMethods.
  • this includes plotting in Bokeh and Holoviews (just trying a few things; of course Matplotlib is more relevant)
  • ASCII-art histograms :) .
  • histogram fill methods are Numba-accelerated; use them in a compiled Python function.
  • can create histograms that are not drawn from a ROOT file (histogram class has a constructor, unlike TTrees, which all come from ROOT files).

Functional chains:

  • full suite of map (actually, "define" and "intermediate"), filter, and reduce (general "reduce" and "hist") methods, a la Spark.
  • string-valued expressions and Python functions accepted; branches are pulled from ROOT file by free variable names or function parameter names.
  • like Spark, the chain is lazily evaluated when it is terminated by an action (filling histograms, general reduction, making arrays). The "define" nodes are substitution expressions and the "intermediate" nodes are reused (and someday cacheable) intermediate arrays.
  • "filter" applies cuts at the desired point in the chain.
  • all functions in the chain are compiled by Numba in the same LLVM pass, so optimizations can be applied across chain nodes (but not through filters).
  • parallel processing semantics implemented but untested. In principle, just passing a Python 3 Executor should parallelize the chain, but use at your own risk until the test suite is done.
  • "hists" method produces many histograms in a single pass.
  • actions have the same suite of cache options as TTree array methods.

Reference documentation has not been written for these features, nor have a suite of unit tests. Therefore, they should be considered experimental until the docs and tests are done (a future release). Use at your own risk.

2.4.1

29 Nov 19:42
Compare
Choose a tag to compare

Fixed issue #14.

2.4.0

29 Nov 19:05
9621f85
Compare
Choose a tag to compare

Revamped caching options:

  • cache is for whole, fully interpreted arrays. Supplying a cache is merely for the convenience of not having to rearrange an analysis script to explicitly save arrays, rather than re-reading them.
  • basketcache (used to be rawcache) is for raw basket data. Avoids re-reading from the file but goes through all of the machinery of interpretation and joining baskets.
  • keycache is to avoid re-reading TKey data. A user might want to always do this.

Also, cache access was made thread-safe (assuming the cache objects themselves are thread-safe).

2.3.3

29 Nov 17:05
Compare
Choose a tag to compare

Fixed issue #24.

2.3.2

29 Nov 16:01
Compare
Choose a tag to compare

Minor change: all keys(), values(), items(), etc. now return lists, rather than iterators. As in Python 2, there's an iterkeys(), itervalues(), iteritems() of each form.

On the Python command line, it's more convenient to look at a directory listing by f.keys() than list(f.keys()).

2.3.1

29 Nov 13:01
Compare
Choose a tag to compare

The Pandas connector (tree.pandas.df()) is now documented.

2.3.0

28 Nov 23:39
008b466
Compare
Choose a tag to compare

Added Pandas connector and "recover" feature for ROOT files incorrectly closed on writing.