Changelog#
Version 1.3#
Version 1.3.2#
Changes#
Bug fixes#
Patch broken sum with fully empty (0 bin) axis. #718
Fix zero range
bh.numpy.histogram
to matchnumpy.histogram
behavior. #721Avoid triggering
__init__
when copying (better support for subclasses with custom init’s). #759IntCategory now supports numbers larger than 2^24 (now 2^53). #792
Pick a subset now supported inside a larger expression. #793
Backend and docs#
Version 1.3.1#
Bug fixes#
Fixed regression with invalid
.project
input causing segfaults. #708Minor skips for specific tests on ppc64le, primarily for a NumPy bug. #707
Avoid using EH for program control, better on Pyodide. #709
Fix regression with exact float not being accepted for
.index
forIntCategory
in 1.3.0. Addhist
nox session to check downstream (manually for the moment). #710
Version 1.3.0#
User changes#
Bug fixes#
Developer changes#
Version 1.2#
Version 1.2.1#
User changes#
musllinux wheels now provided along with manylinux #656
Bug fixes#
Fixed single-element negative growth fill #654
Developer changes#
Version 1.2.0#
User changes#
Bug fixes#
Support custom setters on AxesTuple subclasses. #627
Faster picking if slices are not also used #645 or if they are #648 (1000x or more in some cases)
Throw an error when an AxesTuple setter is the wrong length (inspired by zip strict in Python 3.10) #627
Fix error thrown on comparison with axis and non-axis object #631
Static typing no longer thinks
storage=
is required #604
Developer changes#
Version 1.1#
Version 1.1.0#
User changes#
Bug fixes#
Developer changes#
Version 1.0#
Version 1.0.2#
Version 1.0.1#
Subclassing Histogram changes#
A
family=
is no longer required if you only subclass Histogram. #533
Bug fixes#
Typing changes#
Version 1.0.0#
Dropped support for Python 2 and 3.5; removed large numbers of workarounds.
Fully statically typed. API compatible with the final 0.x
release for most
uses, except for subclassing; subclassing histogram components now uses Python
3 class keyword syntax to set families.
User changes#
Subclassing Histogram changes#
Bug fixes#
Version 0.13#
Version 0.13.2#
Backport fix scaling a weighted storage
Backport fix partial summation over a Categorical axis
Version 0.13.1#
Backport fix for Mean/WeightedMean summing.
Backport fix for
boost_histogram.numpy
density.Backport missing metadata from the repr’s.
Ignore
family=
on Histogram subclassing to make subclassing Histogram only possible in 1.x + 0.x code.
Version 0.13.0#
PlottableProtocol provides a way to plot in different libraries, and easy access to common quantities. This is expected to be the final release for Python 2, and mostly equivalent in API to 1.0.
User changes#
Support for PlottableProtocol. You can now access
.values()
,.counts()
, and.variances()
on all storages; used by plotting libraries..kind
describes the Kind of the histogram (bh.Kind.COUNT
orbh.Kind.MEAN
)..options
has been renamed to.traits
, and a few more useful traits were added, like.discrete
. Most other portions of the Protocol were already present. #476Removed deprecated
.rank
on histograms (since 0.8). Use.ndim
instead. #505Supports converting user histogram objects that provide a
_to_boost_histogram_
method. #483A
view=True
parameter must now be passed to get a View instead of a standard NumPy values array fromto_numpy()
. #498
Bug fixes#
Developer changes#
Version 0.12#
Version 0.12.0#
Pressing forward to 1.0.
User changes#
Bug fixes#
Developer changes#
Upgrade warning#
If you are using Axis.options
, please transition to Axis.traits
. traits
includes all the old options, along with some new traits, and matches the
PlottableProtocol requirements.
Version 0.11#
Version 0.11.1#
Updating pybind11 to 2.6.0. #443 Features:
Python 3.9 support
PyPy2 / PyPy3.6 / PyPy3.7 support
Warnings on latest AppleClang fixed
40% faster accumulator fills, simpler implementation
Segfaults when passing an object with a throwing repr fixed
kwargs replaced older workarounds (partially at the moment)
Using new
py::type
instead ofpybind11::detail
usageEnhanced CMake support, finds conda and venv now, uses
pybind11_find_import
Using setuptools support from pybind11 (previously vendored, so benefits have been available since 0.11.0)
Also cleans up SDists a bit. #467
Version 0.11.0#
A release focused on preparing for the upcoming Hist 2.0 release.
User changes#
Bug fixes#
Developer changes#
Version 0.10#
Version 0.10.2#
Quick fix for extra print statement in fill.
Bug fixes#
Fixed debugging print statement in fill. #438
Developer changes#
Version 0.10.1#
Several fixes were made, mostly related to Weight storage histograms from Uproot 4.
Bug fixes#
Version 0.10.0#
This version was released during PyHEP 2020. Several improvements were made to usability when plotting and indexing.
User changes#
AxesTuple array now support operations via ArrayTuple #414
Support
sum
andbh.rebin
without slice #424Nicer error messages in some cases #415
Made a few properties hidden for accumulators that were not public #418
Boolean now supports reduction, faster compile #422
AxesTuple now available publicly for subprojects #419
Bug fixes#
Histograms support operations with arrays, no longer take the first element only #417
Version 0.9#
Version 0.9.0#
This version was released just before PyHEP 2020. Several important fixes were made, along with a few new features to better support downstream projects.
User changes#
Developer changes#
Bug fixes#
Version 0.8#
Version 0.8.0#
This version was released just before SciPy 2020 and Boost 1.74. Highlights include better accumulator views, simpler summing, better NumPy and Pandas compatibility, and sums on growing axes. Lots of backend work, including a new wheel building system, internal changes and better reliance on Boost.Histogram’s C++ tools for actions like cropping.
User changes#
Weighted histogram cells can now be assigned directly from iterables #375
Weighted views can be summed and added #368
Sum is now identical to the built-in sum function #365
Adding growing axis is better supported #358
Slicing an AxesTuple now keeps the type #384
ndim
replacesrank
for NumPy compatibility #385Any array-like supported in fill #391, any iterable can be used for Categories #392
Added Boolean axes, from Boost.Histogram 1.74 #390
Division between histograms is supported #393
More deprecated functionality removed
Bug fixes#
Support older versions of CloudPickle (issue also fixed upstream) #343
Drop extra printout #338
Throw an error instead of returning an incorrect result in more places #386
Developer changes#
Update Boost to 1.73 #359, pybind11 to 2.5.0 #351, Boost.Histogram to pre-1.74 #388
Cropping no longer uses workaround #373
Many more checks added to
pre-commit
#366Deprecating
cpp
interface #391Wheelbuilding migrated to
cibuildwheel
and GHA #361
Version 0.7#
Version 0.7.0#
This version removes deprecated functionality, and has several backend improvements. The most noticeable user-facing change is the multithreaded fill feature, which can enable significant speedups when you have a dataset that is much larger than the number of bins in your histogram and have free cores to use. Several small bugs have been fixed.
User changes#
Bug fixes#
Developer changes#
Build system update, higher requirements for developers (only) #314
Version is now obtained from
setuptools_scm
, no longer stored in repo
Removed
futures
requirement for Python 2 testsUpdated Boost.Histogram, cleaner code with fewer workarounds
Version 0.6#
Version 0.6.2#
Common analysis tasks are now better supported. Much more complete documentation. Now using development branch of Boost.Histogram again.
Bug fixes#
Developer changes#
Now using scikit-hep/azure-wheel-helpers via subtree #292
Version 0.6.1#
Examples and notebooks are now up to date with the current state of the library. Using Boost 1.72 release.
User changes#
Bug fixes#
Version 0.6.0#
This version fills out most of the remaining features missing from the 0.5.x series. You can now use all the storages without the original caveats; even the accumulators can be accessed array-at-a-time without copy, pickled quickly, and set array-at-a-time, as well.
The API has changed considerably, providing a more consistent experience in Python. Most of the classic API still works in this release, but will issue a warning and will be removed from the next release. Please use this release to transition existing 0.5.x code to the new API.
User changes#
Histogram and Axis classes now follow PEP 8 naming scheme (
histogram
->Histogram
,regular
->Regular
,int
->Int64
etc.) #192, #255You can now view a histogram with accumulators, with property access such as
h.view().value
#194Circular variable and integer axes added #231
Split Category into
StrCategory
andIntCategory
, now allows empty categories whengrowth=True
#221Added axes transforms #192
Function(forward, inverse)
transform added, allowing ultra-fast C function pointer transforms #231You can now set histogram contents directly #250
You can now sum over a range with endpoints #185
h.axes
now has the functions from axis as well. #183bh.project
has becomebh.sum
#185.reduce(...)
and the reducers inbh.algorithm
have been removed in favor of dictionary based UHI slicing #259bh.numpy
module interface updates,histogram=bh.Histogram
replaces crypticbh=True
, anddensity=True
is now supported in NumPy mode #256Signatures are much nicer in Python 3 #188
Reprs are better, various properties like
__module__
are now set correctly #200
Bug fixes#
Developer changes#
The linux wheels are now 10-20x smaller #229
The hist/axis classes are now pure Python, with a C++ object inside #183
Most internal names changed,
core->_core
, etc. #183The
uhi
module is nowtag
. #183boost_histogram.cpp as bh
provides C++ high-compatibility mode. #183Indexing tags now use full UHI instead of workarounds #185
Removed log and sqrt special axes types#231
Family and registration added, new casting system #200
Version 0.5#
Version 0.5.2#
User changes:#
Bug fixes:#
Developer changes:#
Version 0.5.1#
User changes:#
Bug fixes:#
Version 0.5.0#
First beta release and beginning of the changelog.
Known issues:#
Unlimited storage does not support pickling or classic multiprocessing
Some non-simple storages do not support some forms of access, like
.view
Indexing and the array versions (such as centers) are incomplete and subject to change
The numpy module is provisional and subject to change
Docstrings and signatures will improve in later versions (especially on Python 3)