Skip to content

Releases: scikit-hep/boost-histogram

Version 0.6.0

01 Dec 20:23

Choose a tag to compare

Version 0.6

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, #255
  • You can now view a histogram with accumulators, with property access such as h.view().value #194
  • Circular variable and integer axes added #231
  • Split Category into StrCategory and IntCategory, now allows empty categories when growth=True #221
  • StrCategory fills are safer and faster #239, #244
  • Added axes transforms #192
  • Function(forward, inverse) transform added, allowing ultra-fast C function pointer transforms #231
  • You 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. #183
  • bh.project has become bh.sum #185
  • .reduce(...) and the reducers in bh.algorithm have been removed in favor of dictionary based UHI slicing #259
  • bh.numpy module interface updates, histogram=bh.Histogram replaces cryptic bh=True, and density=True is now supported in Numpy mode #256
  • Added hist.copy() #218 and hist.shape #264
  • Signatures are much nicer in Python 3 #188
  • Reprs are better, various properties like __module__ are now set correctly #200

Bug fixes:

  • Unlimited and AtomicInt storages now allow single item access #194
  • .view() now no longer makes a copy #194
  • Fixes related to string category axis fills #233, #230
  • Axes are no longer copies, support setting metadata #238, #246
  • Pickling accumulator storages is now comparable in performance simple storages #258

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. #183
  • The uhi module is now tag. #183
  • boost_histogram.cpp as bh provides C++ high-compatibility mode. #183
  • Indexing 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.2

24 Oct 01:18
034c720

Choose a tag to compare

Another small release, mostly focused on fixing a few bugs that primarily affected Windows + Python 3.8 users. Reprs have become much nicer, making histograms easier to work with in REPLs. Serialization code is now shared with Boost.Histogram, which will make maintenance easier and fixes unlimited storage pickling.

User changes:

  • bh.loc supports an offset #164
  • Nicer reprs in several places #167
  • Deprecate .at and .axis #170

Bug fixes:

  • Use relative paths in setup.py to avoid resolving WSL paths on Windows #162, #163
  • Better Pybind11 support for Python 3.8 #168

Developer changes:

  • Serialization code shared with Boost.Histogram #166
  • Avoid unused PEP 517 isolation for now #171 (may return with proper PEP 518 support eventually)

Version 0.5.1

18 Oct 20:22
4009c1f

Choose a tag to compare

This release has a few quick bugfixes from PyHEP 2019. It also has one new feature, h.axes, which did not quite make it in for 0.5.0, and has removed the indexed iterator (fully replaced by axes).

User changes:

  • Removed the bh.indexed/h.indexed iterator #150
  • Added .axes AxisTuple, with direct access to properties #150
  • Cleaned up tab completion in IPython #150

Bug fixes:

  • Fixed a bug in the sdist missing Boost.Variant2 #154
  • Fixed filling on strided inputs #158

Version 0.5: First beta

16 Oct 12:56
dcfacae

Choose a tag to compare

First beta release.

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)