Releases: scikit-hep/uproot5
Version 5.0.4
New features
- feat: allow
uproot.dask
to re-map forms at the data source by @lgray in #830 - feat: add support for TLeafG by @ioanaif in #840
Bug-fixes and performance
- fix: separate ZstdDecompressor for each thread (re-do) by @nsmith- in #828
- fix:
_awkward_forth.symbol_dict
was missingnp.dtype(">i1")
by @jpivarski in #827 - fix: ak_add_doc should add docs to both the lazy and the materialized array. by @jpivarski in #832
- fix: Uproot should be able to run without Awkward. by @jpivarski in #831
- fix: add ttree title to doc of top level record by @lgray in #836
- fix: complain about CannotBeAwkward earlier, before reading data. by @jpivarski in #838
- fix: models should not be wrapped in a ListOffsetForm by @ioanaif in #841
- fix: let form mappings apply a behavior by @lgray in #834
Other
- docs: add renyhp as a contributor for code by @allcontributors in #829
- ci: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #839
- chore: move to Ruff by @henryiii in #825
New Contributors
Full Changelog: v5.0.3...v5.0.4
Version 5.0.3
New features
- feat: Infrastructure for writing of RNTuple (incomplete functionality) by @Moelf in #705
- feat: [WIP] RNTuple Basic Writing by @Moelf in #813
Bug-fixes and performance
- fix: an uproot.dask test was wrong; revealed by new dask-awkward. by @jpivarski in #812
- fix: separate AwkwardForth machine for each TBranch context. by @jpivarski in #819
- fix: separate ZstdDecompressor for each thread. by @jpivarski in #820
Other
- ci: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #810
- ci: pre-commit autoupdate by @pre-commit-ci in #821
Full Changelog: v5.0.2...v5.0.3
Version 5.0.2
New features
(none!)
Bug-fixes and performance
- fix: uproot.dask: Protect against
branches=None
inproject_columns
by @douglasdavis in #806 - fix: AsStridedObjects.awkward_form was still including the '@' members. by @jpivarski in #808
Other
- ci: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #807
Full Changelog: v5.0.1...v5.0.2
Version 5.0.1
New features
(none!)
Bug-fixes and performance
- fix: protect Uproot's 'project_columns' from Dask node names. by @jpivarski in #801
Other
- ci: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #799
- docs: update documentation about Pandas; we don't do MultiIndex anymore. by @jpivarski in #802
- chore(deps): bump pypa/gh-action-pypi-publish from 1.6.1 to 1.6.4 by @dependabot in #797
Full Changelog: v5.0.0...v5.0.1
Version 5.0.0
Uproot version 5.0.0
Uproot version 5 has a few major new features, one removal (uproot.lazy
), and is based on Awkward Array version 2 instead of version 1.
uproot.lazy → uproot.dask
@kkothari2001 upgraded Uproot from Awkward version 1 to version 2, the major part of which was replacing uproot.lazy
, which is based on Awkward 1's virtual and partitioned lazy arrays, with the new Dask collection, dask-awkward. The entry point for this function is uproot.dask
.
@kkothari2001 also simplified Uproot's Pandas backend, which used to "explode" ragged arrays from ROOT into Pandas DataFrames with a non-trivial MultiIndex. Now, it takes advantage of awkward-pandas to put ragged (and more complex) Awkward Arrays directly into Pandas columns.
If you want the old behavior, you can read data using library="ak"
to get an Awkward Array, and use ak.to_dataframe to "explode" the data into a MultiIndex.
TTree-reading with AwkwardForth
@aryan26roy added a new code path to the TTree-reading routines to read them with AwkwardForth instead of pure Python. Users won't see any interface changes due to this code, but the performance of reading TBranches with AsObject
or AsStrings
Interpretations should be orders of magnitude faster. For example, std::vector<std::vector<float>>
reading is now 400× faster.
Reading RNTuples
@Moelf added a complete reader of RNTuple data with most of an RNTuple-writer in an unmerged pull request (#705). Although the RNTuple format is still in development, this is a very good start at reading RNTuple data, whose structure is a close match to Awkward Arrays (so the translation is more one-to-one than it is for TTrees, for instance).
New features
- feat: move to hatchling by @henryiii in #688
- feat:
from_map
like optimization for dask arrays by @kkothari2001 in #679 - feat: Finalizing AwkwardForth reader for Uproot by @aryan26roy in #644
- feat: implemented NON-memberwise deserialization for AsMap. by @jpivarski in #746
- feat: Added column_projection optimization by @kkothari2001 in #755
- feat: support categorical axes on boost histograms by @lobis in #764
- feat: warn about TBranch name, alias name conflict. by @jpivarski in #776
- feat: any Mapping assigned to a WritableDirectory is interpreted as a TTree or failure, no fall-through. by @jpivarski in #779
- feat: add 'interp_options' mechanism and ak_add_doc. by @jpivarski in #784
- feat: Use awkward pandas, instead of the existing code that explodes Pandas Dataframes by @kkothari2001 in #734
- feat: made 'very optional' arguments keyword-only by @jpivarski in #787
- feat: adjust for name change in scikit-hep/awkward#1919. by @jpivarski in #788
Bug-fixes and performance
- fix: depend on packaging, not setuptools vendored packaging by @henryiii in #684
- fix: Avoid triggering temporary dask-awkward/awkward incompatibility. by @jpivarski in #694
- fix: Do not write incorrect fSumw2 in histograms (v5). by @jpivarski in #698
- fix: Fixes uproot.dask bug with empty branches by @kkothari2001 in #700
- fix: Use
from_map
optimization for delayed numpy arrays and add tests with empty branches for the same by @kkothari2001 in #703 - fix: use ctx manager to ensure resources are freed by @agoose77 in #713
- fix: ReadOnlyDirectory should provide the largest abs(cycle) when cycle is unspecified, not the largest cycle. by @jpivarski in #715
- fix: regularize ROOT type aliases to C fundamental type names. by @jpivarski in #717
- fix: avoid empty TBasket issue in embedded TBasket by @jpivarski in #751
- fix: don't use Awkward in test_0751 that doesn't need it by @jpivarski in #753
- fix: working TList serialization by @lobis in #763
- fix: histogram weights not handled correctly in hist / boost conversion by @lobis in #774
- perf: streamline metadata handling for TBranch name lookup and uproot.dask by @jpivarski in #772
- fix: ensure AwkwardForth fallback path is tested without history. by @jpivarski in #780
- fix: all AwkwardForth Forms now agree with awkward_form method output. by @jpivarski in #790
- fix: Uproot tests now work with Awkward 2.0.0. by @jpivarski in #795
Other
- Manually add a Model for TMatrixTSym. by @jpivarski in #484
- Updating docs and test in response to the removal of uproot.lazy in Uproot5 by @kkothari2001 in #615
- changed arguments for awkward_form by @aryan26roy in #617
- Completed the Forth based AsStrings reader. by @aryan26roy in #616
- Actually pass user-specified 'awkward_form' arguments into context. by @jpivarski in #622
- Fix annoying gaps in test files. by @jpivarski in #625
- Cleaning up string generation in streamers.py by @aryan26roy in #629
- chore: add dependabot for actions by @henryiii in #631
- Bump actions/checkout from 2 to 3 by @dependabot in #632
- Bump actions/upload-artifact from 2 to 3 by @dependabot in #633
- Bump pypa/gh-action-pypi-publish from 1.4.2 to 1.5.0 by @dependabot in #634
- Bump actions/download-artifact from 2 to 3 by @dependabot in #635
- Forth based ROOT reader (revised) by @aryan26roy in #636
- Set up tests for AsObjects, for the AwkwardForth reader by @jpivarski in #637
- Iterate over objects in TDirectory in linear time. by @jpivarski in #638
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #641
- Awkward v2 update by @kkothari2001 in #620
- docs: add aryan26roy as a contributor for code by @allcontributors in #645
- docs: add kkothari2001 as a contributor for code by @allcontributors in #646
- docs: add Moelf as a contributor for code by @allcontributors in #647
- chore: cleanup flake8 by @henryiii in #527
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #650
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #654
- Bump pypa/gh-action-pypi-publish from 1.5.0 to 1.5.1 by @dependabot in #656
- Primitive Support for RNTuple by @Moelf in #630
- Set ReadOnlyDirectory attributes when fSeekKeys == 0 by @kakwok in #660
- docs: add kakwok as a contributor for code by @allcontributors in #663
- Dask awkward support for uproot.dask by @kkothari2001 in #652
- pathlib.Path drops '//' (naturally), but it's sometimes used for URLs by @jpivarski in #670
- Gets the number of overflow bins for hist.axis.IntCategory, at least. by @jpivarski in #671
- Prevent std::pair from being AsStridedObjects. by @jpivarski in #673
- Implement transformed axis from boost-histogram/hist. by @jpivarski in #675
- AsDynamic has no self._header. by @jpivarski in #674
- Fixed TTree write_anew in a subdirectory (consistent caches). by @jpivarski in #677
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #657
- Implement stl containers for RNTuple by @Moelf in #662
- Multiple clusters support for RNTuple by @Moelf in #682
- ci: Get test dependencies from one source by @jpivarski in #686
- ci: autocancel repeated runs by @henryiii in #685
- ci: use m...
Version 5.0.0rc7
New features
- feat: support categorical axes on boost histograms by @lobis in #764
- feat: warn about TBranch name, alias name conflict. by @jpivarski in #776
- feat: any Mapping assigned to a WritableDirectory is interpreted as a TTree or failure, no fall-through. by @jpivarski in #779
- feat: add 'interp_options' mechanism and ak_add_doc. by @jpivarski in #784
- feat: Use awkward pandas, instead of the existing code that explodes Pandas Dataframes by @kkothari2001 in #734
- feat: made 'very optional' arguments keyword-only by @jpivarski in #787
- feat: adjust for name change in scikit-hep/awkward#1919. by @jpivarski in #788
Bug-fixes and performance
- fix: histogram weights not handled correctly in hist / boost conversion by @lobis in #774
- perf: streamline metadata handling for TBranch name lookup and uproot.dask by @jpivarski in #772
- fix: ensure AwkwardForth fallback path is tested without history. by @jpivarski in #780
- fix: all AwkwardForth Forms now agree with awkward_form method output. by @jpivarski in #790
Other
- refactor: final refactoring for Forth generation by @aryan26roy in #749
- test: make tests parallelizable (custom_classes in uproot.open). by @jpivarski in #786
- docs: fix TRef.py doc urls by @veprbl in #782
- docs:
uproot.dask
docs by @kkothari2001 in #702 - ci: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #773
- ci: pre-commit autoupdate by @pre-commit-ci in #783
- ci: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #789
- ci: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #793
- chore(deps): bump pypa/gh-action-pypi-publish from 1.5.1 to 1.6.1 by @dependabot in #792
Full Changelog: v5.0.0rc6...v5.0.0rc7
Version 5.0.0rc6
This release is coordinated with Awkward 2.0.0rc2 because it involves a change that had to be applied to both (removal of Identifier/Identities).
New features
(none!)
Bug-fixes and performance
Other
- refactor: refactor Forth generation by @aryan26roy in #710
- docs: add lobis as a contributor for code by @allcontributors in #771
- ci: update to Python 3.11 final by @henryiii in #766
- chore: remove Identifier and
"uproot"
parameter. by @jpivarski in #770
New Contributors
Full Changelog: v5.0.0rc5...v5.0.0rc6
Version 5.0.0rc5
This is the first Uproot release that requires awkward>=2.0.0rc1
. See Awkward Array v2.0.0rc1.
New features
- feat: implemented NON-memberwise deserialization for AsMap. by @jpivarski in #746
- feat: Added column_projection optimization by @kkothari2001 in #755
Bug-fixes and performance
- fix: avoid empty TBasket issue in embedded TBasket by @jpivarski in #751
- fix: don't use Awkward in test_0751 that doesn't need it by @jpivarski in #753
Other
- ci: remove GHA workaround for macOS Python 3.11 by @henryiii in #743
- chore: some cleanup inpsired by refurb by @henryiii in #745
- chore(deps): update pre-commit hooks by @pre-commit-ci in #737
- chore(deps): bump amannn/action-semantic-pull-request from 4 to 5 by @dependabot in #757
- chore: update Uproot to require Awkward 2.0.0rc1. by @jpivarski in #765
Full Changelog: v5.0.0rc4...v5.0.0rc5
Version 4.3.7
New features
(none)
Bug-fixes and performance
- fix: avoid empty TBasket issue in embedded TBasket (v4) by @jpivarski in #752
Other
(none)
Full Changelog: v4.3.6...v4.3.7
Version 4.3.6
New features
- feat: implemented NON-memberwise deserialization for AsMap (v4). by @jpivarski in #747
Bug-fixes and performance
- fix: ReadOnlyDirectory should provide the largest abs(cycle) when cycle is unspecified, not the largest cycle (v4). by @jpivarski in #721
- fix: regularize ROOT type aliases to C fundamental type names (v4). by @jpivarski in #718
Other
- test: adjust for boost-histogram 1.3.2's _storage_type deprecation (v4). by @jpivarski in #720
Full Changelog: v4.3.5...v4.3.6