Releases: scikit-hep/uproot5
Version 5.0.9
Version 5.0.8
New features
Bug fixes and performance
- fix: histograms from Geant4 by @henryiii in #884
- fix: bugs caught by a Ruff update by @pre-commit-ci in #882
- fix: adapt to scikit-hep/awkward#2437. by @jpivarski in #892
- fix: awkward_form breadcrumbs class issue 880 by @ioanaif in #886
Other
- chore: update pre-commit hooks by @pre-commit-ci in #889
- chore(deps): bump pypa/gh-action-pypi-publish from 1.8.5 to release/v1 by @dependabot in #887
- chore: update pre-commit hooks by @pre-commit-ci in #893
Full Changelog: v5.0.7...v5.0.8
Version 5.0.7
Note: This release introduces a slight change in behavior. Previously, uproot.dask
would default to step_size="100 MB"
if open_files=True
and whole-file-steps (limit on step size) if open_files=False
. Now both open_files
cases default to steps_per_file=1
(whole-file-steps) for uniformity. If you have been using uproot.dask
and this version suddenly gives you large Dask partitions, use either step_size
or steps_per_file
to control your partition size (step_size="100 MB"
is the old behavior).
New features
Bug-fixes and performance
(none!)
Other
- ci: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #874
- chore(deps): bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5 by @dependabot in #873
Full Changelog: v5.0.6...v5.0.7
Version 5.0.6
New features
- feat: add pyodide support for jupyter-lite for files opened via HTTP by @ioanaif in #868
- feat: add support for pandas is_numeric API change by @ioanaif in #871
- feat: have unknown type become float64 when in array context by @ioanaif in #870
Bug-fixes and performance
Other
- ci: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #865
- ci: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #867
- chore(deps): bump pypa/gh-action-pypi-publish from 1.7.1 to 1.8.1 by @dependabot in #864
- chore(deps): bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.4 by @dependabot in #869
Full Changelog: v5.0.5...v5.0.6
Version 5.0.5
New features
(none!)
Bug-fixes and performance
- fix: test 0814 name by @ioanaif in #845
- fix: update licence url for tests by @ioanaif in #846
- fix: replaced incorrect AwkwardForth
var_set
logic with a check to see if the Form is complete by @jpivarski in #851 - fix: unable to delete hist from ROOT file by @ioanaif in #844
- fix: AwkwardForth was nesting the same ListOffsetArray (same node name) multiple times by @jpivarski in #855
Other
- ci: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #842
- chore: don't repeat awkward dependency by @agoose77 in #843
- chore(deps): bump pypa/gh-action-pypi-publish from 1.6.4 to 1.7.1 by @dependabot in #856
Full Changelog: v5.0.4...v5.0.5
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...