You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The default behavior of NanoEventsFactory.from_root() has changed. It now reads the input root file using virtual arrays by default.
The backend choice is controlled by the mode argument of the method which can be set to "eager", "virtual", or "dask".
The new default is "virtual" while the delayed argument has been removed.
The old delayed=True is now equivalent to mode="dask". The old delayed=False is now equivalent to mode="eager".
At the same time, the coffea 0.7 processors and executors have been revived and analysis can be done using coffea 0.7-like syntax
Analyses still using coffea 0.7 can and should seamlessly transition to this new release.
If you still want to use the dask interface (create task graphs), you should specify mode="dask" to NanoEventsFactory.from_root() when working on single file.
For scaling, you can still use the dataset_tools like the following
It is recommended to convert all analyses to use the new virtual arrays feature of awkward2 and not stick with packages that are unmaintained for 3 years (coffea 0.7 which still uses awkward1 ).
Please reach out for any help and to report problems.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Important announcement
This release changes the default behavior of
coffea. We are now focusing on doing analysis with the newly developed "virtual arrays" ofawkwardas the main backend.For more information on virtual arrays, see this talk at PyHEP.dev 2025.
For examples of virtual array usage, see the following example repositories:
https://github.com/ikrommyd/coffea-virtual-array-tests
https://github.com/ikrommyd/coffea-virtual-array-demo
https://github.com/iris-hep/calver-coffea-agc-demo/blob/2025_IRISHEP_Training/agc-coffea-2025-virtual-arrays-and-executors.ipynb
https://github.com/ikrommyd/virtual-array-agc
The default behavior of
NanoEventsFactory.from_root()has changed. It now reads the input root file using virtual arrays by default.The backend choice is controlled by the
modeargument of the method which can be set to "eager", "virtual", or "dask".The new default is "virtual" while the
delayedargument has been removed.The old
delayed=Trueis now equivalent tomode="dask". The olddelayed=Falseis now equivalent tomode="eager".At the same time, the
coffea 0.7processors and executors have been revived and analysis can be done usingcoffea 0.7-like syntaxAnalyses still using
coffea 0.7can and should seamlessly transition to this new release.If you still want to use the dask interface (create task graphs), you should specify
mode="dask"toNanoEventsFactory.from_root()when working on single file.For scaling, you can still use the
dataset_toolslike the followingIt is recommended to convert all analyses to use the new virtual arrays feature of
awkward2and not stick with packages that are unmaintained for 3 years (coffea 0.7which still usesawkward1).Please reach out for any help and to report problems.
New features
@original_arrayattr to events in virtual mode by @ikrommyd in feat: add@original_arrayattr to events in virtual mode #1327column_accumulatorsupport awkward arrays and add accumulator tests by @ikrommyd in feat: makecolumn_accumulatorsupport awkward arrays and add accumulator tests #1352max_chunksreturn the first N chunks per dataset (not per file per dataset like it is now) by @ikrommyd in feat: makemax_chunksreturn the first N chunks per dataset (not per file per dataset like it is now) #1359Bug-fixes and performance
Nonewhen calling min/max over length zero chunks in weight statistics, return infinities instead by @ikrommyd in fix: do not error or returnNonewhen calling min/max over length zero chunks in weight statistics, return infinities instead #1328OSErrors when skipping bad files using executors by @ikrommyd in fix: skipOSErrors when skipping bad files using executors #1333NanoAODSchemathe default in exectors for consistency withapply_to_filesetby @ikrommyd in fix: makeNanoAODSchemathe default in exectors for consistency withapply_to_fileset#1335awkwardfor min and max inWeightsto avoid inconsistencies between eager/virtual and dask mode by @ikrommyd in fix: useawkwardfor min and max inWeightsto avoid inconsistencies between eager/virtual and dask mode #1337@original_arrayattribute as that will get copied by @ikrommyd in fix: make nanoevents properly copiable and do not store the@original_arrayattribute as that will get copied #1346ListOffsetArraycoming from uproot (fix physlite entry start problem) by @ikrommyd in fix: make offsets start at zero forListOffsetArraycoming from uproot (fix physlite entry start problem) #1363Other
Nonein the cases wheregetattrfails inlinkcode_resolveby @ikrommyd in docs: returnNonein the cases wheregetattrfails inlinkcode_resolve#1349Full Changelog: v2025.3.0...v2025.7.0
This discussion was created from the release v2025.7.0.
Beta Was this translation helpful? Give feedback.
All reactions