Skip to content

Releases: scikit-hep/boost-histogram

Version 1.4.1

30 Mar 07:01
c88b660
Compare
Choose a tag to compare

Features

  • NumPy 2 support. #918
  • 32-bit Windows Python 3.12 wheel added (matching NumPy). #920

Bugfixes

  • Support filling Integer axes with unsigned integers #917
  • Avoid triggering NumPy 2 dev release install on Python 3.12. #914

Backend and docs

  • Add missing API docs #909
  • Use boost 1.84 #920

New Contributors

Full Changelog: v1.4.0...v1.4.1

Version 1.4.0

11 Sep 22:05
9e316a0
Compare
Choose a tag to compare

This release supports Python 3.7-3.12. You can now turn off the flow bin on Int/Str Categories, and filling an integer-based axis requires an integer array - a floating point array is disallowed (a single float was always disallowed), due to issues with rounding around 0.

Features

  • overflow=False is now supported for IntCategory and StrCategory. #883

Changes

  • Using _storage_type now produces a DeprecationWarning instead of PendingDeprecationWarning. #801
  • Updated Boost to 1.82. The upper limit on Regular axes without overflow is now inclusive like NumPy. #802
  • Produce more detailed error messages on C++ errors #848

Bugfixes

  • Make filling an integer axis with a float array (also) an error. #876
  • Include -latomic on armv7l #823

Backend and docs

  • Add Python 3.12 support and binary wheels, also latest PyPy. manylinux2014+ required. #880, #878
  • Drop Python 3.6 support. #798
  • Drop pre-built wheels for 32-bit Linux (NumPy also dropped). #849
  • Add testing for WebAssembly (Pyodide). #850
  • Use Ruff #829

New Contributors

Full Changelog: v1.3.2...v1.4.0

Version 1.3.2

19 Sep 21:02
0c8659c
Compare
Choose a tag to compare

1.3 is the final release series supporting Python 3.6 and manylinux1 - manylinux2010. The next release will move to non EoL Python and manylinux images only.

Changes

  • Added storage_type() as public API #781, with pending deprecation for _storage_type. #786 #790
  • Better errors generated for missing or incorrect sample to mean storage. #782
  • Better error message when views are set with an incompatible array. #794

Bug fixes

  • Patch broken sum with fully empty (0 bin) axis. #718
  • Fix zero range bh.numpy.histogram to match numpy.histogram behavior. #721
  • Avoid triggering __init__ when copying (better support for subclasses with custom init's). #759
  • IntCategory now supports numbers larger than 224 (now 253). #792
  • Pick a subset now supported inside a larger expression. #793

Backend and docs

  • Minor optimizations for UFuncs. #771
  • Added Python 3.11 wheels. #789
  • Include PyPy 3.9 binary wheels. #730
  • Using pybind11 2.10 #767
  • Explicit reset() documentation. #783
  • Minor cleanup and further removal of a little Python 2 back-compat code.
  • Warnings have better stacklevel settings.

Version 1.3.1

16 Feb 14:34
Compare
Choose a tag to compare

Bug fixes

  • Fixed regression with invalid .project input causing segfaults. #708
  • Minor 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 for IntCategory
    in 1.3.0. Add hist nox session to check downstream (manually for the
    moment). #710

Version 1.3.0

16 Feb 17:12
aad615e
Compare
Choose a tag to compare

User changes

  • PyPy 3.8 now supported with binary wheels. #677
  • The GIL is released a little more often now. #662
  • AxesTuple does not allow construction of non-axes. #680
  • KeyError is now thrown when accessing a non-existent item in a Category Axis #689
  • WeightedViews now support np.cumsum #699

Bug fixes

  • Fixed WeightedMean storages producing NaN for .variances() #695
  • Modify local include slightly to enable WebAssembly compilation in Pyodide #702

Developer changes

  • Use PyLint in CI to check for some style issues #690
  • Developer (CMake) installs no longer require toml #698

Version 1.2.1

05 Oct 03:45
5f89f92
Compare
Choose a tag to compare

User changes

  • musllinux wheels now provided along with manylinux #656

Bug fixes

  • Fixed single-element negative growth fill #654

Developer changes

  • No longer require Docker for clang-format, runs online too #610
  • Using pybind11 2.8.0 #658

Version 1.2.0

16 Sep 21:14
Compare
Choose a tag to compare

User changes

  • Python 3.10 officially supported, with wheels.
  • Support subtraction on histograms #636
  • Integer histograms are now signed #636

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

  • Support NumPy 1.21 for static type checking #625
  • Use newer Boost 1.77 and Boost.Histogram 1.77+1 #594
  • Provide nox support #647

Version 1.1.0

07 Jul 00:31
2361517
Compare
Choose a tag to compare

User changes

  • Experimentally support list selection on categorical axes #577
  • Support Python 3.8 on Apple Silicon #600
  • Scaling and addition with a scalar affect flow bins too #580
  • Change sum_of_deltas_squared to _sum_of_deltas_squared (was an implementation detail) #602

Bug fixes

  • Fix "picking" on a flow bin #576
  • Better error message on getattr #596

Developer changes

  • Test on Python 3.10 beta releases #600
  • Provide a CMakeLists for quick standalone Boost.Histogram C++ experiments #591
  • Adding logging with PyTest failure output #575

Version 1.0.2

29 Apr 22:14
Compare
Choose a tag to compare
  • Fix scaling a weighted storage #559
  • Fix partial summation over a Categorical axis #564
  • Support running type checking from Python < 3.8 #542

Version 0.13.2

29 Apr 21:52
Compare
Choose a tag to compare
  • Backport fix scaling a weighted storage
  • Backport fix partial summation over a Categorical axis