UHI: Universal Histogram Interface
This is a package meant primarily for documenting histogram indexing and the PlottableHistogram Protocol and any future cross-library standards. It also contains the code for the PlottableHistogram Protocol, to be used in type checking libraries wanting to conform to the protocol. Eventually, it might gain a set of tools for testing conformance to UHI indexing, as well. It is not usually a runtime dependency, but only a type checking, testing, and/or docs dependency in support of other libraries (such as boost-histogram 0.13+, hist 2.1+, mplhep 0.2.15+, uproot 4+, and histoprint 2+). There are a few useful runtime usable components (listed below). It requires Python 3.6+. See what's new.
To assist plotting libraries in accepting Histograms from classic sources, see
uhi.numpy_plottable.ensure_plottable_histogram, which will adapt NumPy style
tuples into a simple PlottableHistogram.
The Protocols provided do support runtime checking, so
isinstance(h, uhi.typing.plotting.PlottableHistogram) is valid at runtime and
might be simpler than manually checking for the expected methods.