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" ofawkward
as 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
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 tomode="dask"
. The olddelayed=False
is now equivalent tomode="eager"
.At the same time, the
coffea 0.7
processors and executors have been revived and analysis can be done usingcoffea 0.7
-like syntaxAnalyses 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"
toNanoEventsFactory.from_root()
when working on single file.For scaling, you can still use the
dataset_tools
like the followingIt 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 usesawkward1
).Please reach out for any help and to report problems.
New features
@original_array
attr to events in virtual mode by @ikrommyd in feat: add@original_array
attr to events in virtual mode #1327column_accumulator
support awkward arrays and add accumulator tests by @ikrommyd in feat: makecolumn_accumulator
support awkward arrays and add accumulator tests #1352max_chunks
return the first N chunks per dataset (not per file per dataset like it is now) by @ikrommyd in feat: makemax_chunks
return the first N chunks per dataset (not per file per dataset like it is now) #1359Bug-fixes and performance
None
when calling min/max over length zero chunks in weight statistics, return infinities instead by @ikrommyd in fix: do not error or returnNone
when calling min/max over length zero chunks in weight statistics, return infinities instead #1328OSError
s when skipping bad files using executors by @ikrommyd in fix: skipOSError
s when skipping bad files using executors #1333NanoAODSchema
the default in exectors for consistency withapply_to_fileset
by @ikrommyd in fix: makeNanoAODSchema
the default in exectors for consistency withapply_to_fileset
#1335awkward
for min and max inWeights
to avoid inconsistencies between eager/virtual and dask mode by @ikrommyd in fix: useawkward
for min and max inWeights
to avoid inconsistencies between eager/virtual and dask mode #1337@original_array
attribute as that will get copied by @ikrommyd in fix: make nanoevents properly copiable and do not store the@original_array
attribute as that will get copied #1346ListOffsetArray
coming from uproot (fix physlite entry start problem) by @ikrommyd in fix: make offsets start at zero forListOffsetArray
coming from uproot (fix physlite entry start problem) #1363Other
None
in the cases wheregetattr
fails inlinkcode_resolve
by @ikrommyd in docs: returnNone
in the cases wheregetattr
fails 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