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

Releases: scikit-hep/uproot3

3.4.12

07 Mar 22:58
Compare
Choose a tag to compare

Fixed #246: error messages pertaining to file formatting now print out which file has failed. Useful if you are running a large job over many files and want to find the one that broke the job.

3.4.11

07 Mar 08:56
c52054b
Compare
Choose a tag to compare

Added support for reading std::map<std::string, X> where X is a numerical type or a std::string. (PR #245)

3.4.10

06 Mar 16:22
a30c77c
Compare
Choose a tag to compare

Requests for array(...) or arrays(...) through HTTP and XRootD now start asynchronous downloads of all the basket data before starting to read, decompress, and interpret. This keeps the network busy prefetching while the CPU is preoccupied, hiding latency. The HTTP preloader is implemented with concurrent.futures.ThreadPoolExecutor (not selected by default in Python 2, as that would require a non-standard library dependency), and the XRootD preloader is implemented with a pyxrootd callback. The threads parameter is a number of threads for HTTP and a boolean for XRootD: yes-parallelize or no-don't, because we don't control how many threads pyxrootd uses. (PR #242)

Binder now uses JupyterLab, rather than Jupyter Notebook. (PR #244)

3.4.9

28 Feb 19:48
662d1f8
Compare
Choose a tag to compare

Moved Event.root to an HTTP source to make the tests directory smaller.

uproot.numentries is now documented.

3.4.8

27 Feb 20:44
2116b1f
Compare
Choose a tag to compare

Deploy another one because the last already exists in PyPI (not a clean test).

3.4.7

27 Feb 20:15
Compare
Choose a tag to compare

Merge PR #235, which only adds to tests, but it required a removal of PyOpenSSL from Travis, so I need to know if it will deploy properly (the reason the PyOpenSSL update was in there).

3.4.6

22 Feb 17:12
00c2283
Compare
Choose a tag to compare

Fixed #232, in which Double32 couldn't be converted to a flat Pandas DataFrame.

3.4.5

11 Feb 21:27
88bdc49
Compare
Choose a tag to compare

PR #226, #229, and issue #227

  • loosening the definition of "compatible interpretations" across files in uproot.iterate
  • fixed tree.pandas.df(flatten=True) for jagged arrays that contain lists
  • corrected handling of truncated Double32

3.4.4

06 Feb 15:25
a49d8f0
Compare
Choose a tag to compare

Faster TTree.pandas.df(flatten=True) provided by PR #223.

One capability that was lost was reading branches with different jagged structure into the same DataFrame with flatten=True. For instance, a TTree containing different numbers of electrons and muons can't be simultaneously flattened. The old code managed to do this with an outer join on DataFrames. We no longer do this in the TTree.pandas.df code; instead, we broadcast JaggedArrays, which is not just faster, it's also more correct. Does it make sense to put the first electron and the first muon in the same row, then the second electron and the second muon in another row, where the two sets have different sizes in each event? (The shorter of the two then has to be padded with NaN.) This joint row-membership doesn't correspond to any property the second electron and second muon share.

Now there's a ValueError warning you if you try to do this. You can encounter this error rather easily by not specifying branches—implicitly saying you want all branches from a TTree, which may contain incompatible branches. Remember that you can use glob patterns to ask for all branches satisfying a name pattern.

If you really do want to mix different cardinalities in the same DataFrame, you can explicitly do an outer join in Pandas:

muons = tree.pandas.df("Muon_*", flatten=True)
electrons = tree.pandas.df("Electron_*", flatten=True)
muons.join(electrons, how="outer")

You can also choose to not flatten the DataFrame, which puts no constraints on the structure of the contents (but is less useful if you have a lot of jagged data).

3.4.3

01 Feb 00:56
Compare
Choose a tag to compare

Purely a touch-up to the PyPI page.