* Sun Oct 23 2022 Atri Bhattacharya <badshah400@gmail.com>
- Update to version 1.9.7
* Add Stat and Uncor to labels flagged as uncorrelated.
* Update yaml-cpp version for C++17 compatibility.
* Replace distutils with sysconfig and manual calls to the
compiler.
- Add YODA-correct-python-platlib.patch: Use correct python
platlib ($prefix/lib64) consistently across different python
versions; although we do not build for multiple python versions,
we would not want to adapt the file list everytime upstream
python vacillates between lib (e.g. python 3.8/3.10) vs lib64
(e.g. python 3.9) for platlib.
* Wed Aug 24 2022 Atri Bhattacharya <badshah400@gmail.com>
- Set PYTHONPATH to buildroot's python3_sitearch before testing to
allow importing of yoda module.
* Fri Jul 15 2022 Atri Bhattacharya <badshah400@gmail.com>
- Update to version 1.9.6:
* Pass ignoreOffDiagonalTerms correctly when retrieving
covariance matrix from a Scatter2D.
* Add a covariance/off-diag test to test-s2d.py
* Force Cython rebuilds on all .pyx files, if possible (helps
with Python ABI compat).
- Drop 0001-fix-cython-rebuild-after-configure.patch: incorporated
upstream.
* Thu Jul 07 2022 Christophe Giboudeaux <christophe@krop.fr>
- Add patch to fix build with python 3.10:
* 0001-fix-cython-rebuild-after-configure.patch
- Spec cleanup
* Sun May 29 2022 Atri Bhattacharya <badshah400@gmail.com>
- Update to version 1.9.5:
* Add per-AO double-precision writing if the
WriterDoublePrecision annotation is set.
* Ensure that default variation +- errors are both positive, for
all Scatter types. Original patch by Jon Butterworth.
* Protect against NaNs arising from the YAML parser in
error-breakdown calcs.
* Tue Dec 07 2021 Atri Bhattacharya <badshah400@gmail.com>
- Update to version 1.9.4:
* Fix Scatter.variations keys to be string instead of bytes in
Python 3.
- Changes from version 1.9.3:
* yoda2root,root2yoda: use ROOT in the batch mode.
* Restructure tests to use autotools standard naming and trigger
on extensions, and to ensure testwriter runs before
testreader.
* Fix Point.errMap() keys to be string instead of bytes in
Python 3.
* Catch low-stats errors in computing errors in H1 and H2
conversion to scatters.
* Sat Nov 13 2021 Atri Bhattacharya <badshah400@gmail.com>
- Update to version 1.9.2:
* Fix ao.path setting to use ao.setPath() in root2yoda.
* Introduce rmVariations() for Points and Scatters
* Add precision arguments to unbound write functions, and Python
mapping of setPrecision() and useCompression() methods of
Writer classes.
* Fix IO failure modes to actually report exceptions, and with
correct types and error messages.
* Fix broken reading gzipped files in Python (was a regression
in 1.9.0)
* Provide more options to specify the Cython command to be used.
* Fix yAvgErr -> yErrAvg typo in Scatter2D.yErrAvgs.
* yodascale: improved handling of .yoda.gz extensions, and
adding --output.
* Fix a bug with reading files while running with non-US
locales.
* Remove rogue s.variations() call, causing rivet-merge to crash
* Change the Axis2D edge-uniqueness test to be based on the
smallest bin width rather than the median.
* Remove adoptPoint, make addPoint(Point) argument non-const
since one should always want to update the parent of the
point.
* Add updateTotalUncertainty method which allows the user to
automatically set the total error to the sum in quad of the
error components for each point.
* Add adoptPoint(s) methods to the Scatter*D classes, which
allows to add a previously-instantiated point while modifying
its parentage so that it points back to that Scatter.
* Modify the Scatter*D copy constructor so that the parentage of
the relevant points is correctly set, to avoid set faults
after a Scatter*D is clone()'d.
* Add some missing functionality which used to only be available
to Scatter2D to also cover Scatter{1,3}D.
* Add many additional tests to cover the ErrorBreakdown
functionality in existing pytest scripts
* Bin2D: use fuzzyEquals for bin edge comparisons. Required for
correct rivet-merge behaviour with 2D histograms.
* Provide x,yWidths() functions on Histos and Profiles.
Version: 1.9.0-bp154.1.63
* Thu Apr 01 2021 Atri Bhattacharya <badshah400@gmail.com>
- Update to version 1.9.0:
* Add missing inline declarations to free IO functions.
* Add fillDim() methods to the Bin, Bin1D and Bin2D classes.
* Rename the Point getParentAO etc. to getParent, using the new
Scatter base, and improve the accessor methods.
* Add Scatter base class to the Scatter classes, with rmPoints()
implemented there.
* Add Binned and Fillable base classes, the former introducing
the fillDim() method and rmBin(), and use them as ABCs for the
counter, histo and profile types.
* Allow YODA's Python interface to read from StringIO and FileIO
objects.
* Add rmPoint() and rmPoints() methods on all Scatter types.
* Change scaleDim() to scale() for points and scatters
* Remove ROOT5 compatibility, and handle 6.22 change in PyROOT.
* Fix out-of-source builds re. bash completions.
* Fixes to the Profile1D Python interface.
* Add <limits> header include to AnalysisObject.h to support
GCC11 (cf. http://gcc.gnu.org/gcc-11/porting_to.html)
* Restructure yodamerge to use pairwise merges, avoiding
simultaneous loading of all the input files and greatly
speeding up processing. Simultaneous simplification by
replacement of yodamerge stacking functionality with
yodastack.
* Sat Nov 28 2020 Atri Bhattacharya <badshah400@gmail.com>
- Update to version 1.8.5:
* Add relErrs() functions to the H1D and H2D Python interfaces.
* Add an explicit configure test and override variable for the
cython executable.
* Fix typo from xAvgErr -> xErrAvg in Scatter2D.xErrAvgs()
Python function.
* Mon Nov 09 2020 Atri Bhattacharya <badshah400@gmail.com>
- Update to version 1.8.4:
* Don't suppress cross-section-normalised empty histograms in
yodamerge.
* Use ROOT's ROOT_VERSION_CODE and ROOT_VERSION macros to handle
the changing TPython API.
* Do not apply bin-width scaling by default between YODA and
ROOT binned objects.
* Improve ROOT conversion utilities to support a fuller set of
width-scaling and focus-mapping options.
* Fix Point1D.setXErrs() function to handle sources and asymm
errors correctly.
* Map scatter reset() functions into Python.
* Create bash completion dir in $prefix/etc if it doesn't exist.
* Fix missing call-parentheses in Python-mapped Bin classes,
including in the __repr__ functions, which was making
print(bin) crash.
- Move bash_completion file from /usr/etc, where it is installed,
to the correct dir: `%{_datadir}/bash-completions/completions/`;
add BuildRequires: bash-completion for correct dir ownership.
* Tue Jul 14 2020 Atri Bhattacharya <badshah400@gmail.com>
- Update to version 1.8.3:
* The python method `Histo2D.addBins` was reimplemented using
`Histo2D::addBins()` C++ method instead of `Histo2D::addBin()`
for better performance.
* Make the low stats error for variances strictly require Neff >
1, rather than a fuzzy comparison that can cause trouble
downstream.
* Make xyMids,Foci,Errs,Mins,Maxs etc. runtime configurable with
'unique' and 'asgrid' optional params.
* Convert geometric axis-property array functions on Histo2D and
Profile2D to return the unique edges, mins, maxes, mids, etc.
rather than the heavily repeated versions for all the bins.
* Fix Histo2D.volumes() Python mapping, and add sumWs()
functions to all histo types.
* Add asgrid optional arguments to value-related Python methods
for Histo2D and Profile2D
* Add computation of Python versions and passing them to Cython
as command-line flags.
- Changes from version 1.8.2:
* Fix off-by-one error in Axis2D.numBinsX/Y() return values,
fixing Histo2D and Profile2D.
* Add numBinsX() methods to the 1D histogram and profile
classes.
* Py3 compatibility fix
* Fix call to `Histo1D.annotationsDict`
- Changes from version 1.8.1:
* Fix list-return read YODA-format function.
* Removed unwanted space at end of headers.
* Set correct dimension when calling setErrs.
* Added zerrs to 3DScatter headers.
* Added xErrs, yErrs, zErrs to Scatter3D.pyx
* Add underflow and overflow reporting to the verbose yodals
printout.
* Re-instate title() and fix bug in z-error storage for scatter
3Ds.
* Python3 compatibility tweaks
* Add a pdfspace() function in C++ and a Python equivalent --
recoded rather than mapped, due to the technical implications
of passing Python callables as std::functions -- for custom
binning from a density function.
* Fix YODA 1.7 style call to AO.dim.
* Update yodamerge ao_out.point(i).setVal(dim, val_i)
* IO.pyx: missing python3 compatibility
* Sort dicts on IO write(), and return ordered dicts in read
mode if possible.
- Drop YODA-py3-compatibility-for-IO_pyx.patch: incorporated
upstream.
Version: 1.8.0-bp152.1.30
* Sat Jan 18 2020 Atri Bhattacharya <badshah400@gmail.com>
- Add YODA-py3-compatibility-for-IO_pyx.patch -- Py3 compatibilty
for IO.pyx; patch taken from upstream commit and modified to fix
further similar errors
(https://gitlab.com/hepcedar/yoda/issues/4).
- Change hashbangs referring to python or `env python` to use
`/usr/bin/python3` consistently in source dir, rather than
from buildroot after installation. This allows to run the tests
correctly in the %check section.
- Move binaries using the python module to python3-%{name}
package.
- Run make check.
* Wed Jan 08 2020 Atri Bhattacharya <badshah400@gmail.com>
- Switch to python3:
* Requires and BuildRequires switched to python3 versions
* Rename python package to python3-%{name} and provide
python-%{name} from it; this makes the py3 switch clear to
users.
* Explicitly pass PYTHON_VERSION as py3 version to make it build
against python3
* Drop an unecessary hashbang from a file in non-exec location.
- Remove an sed hack for buildroot in *.pyc file(s); no longer
needed.
* Sat Jan 04 2020 Atri Bhattacharya <badshah400@gmail.com>
- Update to version 1.8.0:
* Add extra optional bool arguments to the mkScatter converter
functions for Histo1D and Histo2D types.
* Force rebuild of the Python interface if a sufficient Cython
is found, even if the generated .cpp file is present at
configure-time.
* Final conversion to use ast module not just in autotype but as
first choice in AO.annotation.
* Remove ALL uses of @property in the Python interfaces: all
methods must have call-parentheses now.
* Improve Python annotation parsing to preferentially use ast
rather than yaml.
* Add x/yErrs and x/yErrAvgs functions to Scatter2D Python.
- Rebase so numbering patch for updated version.
* Wed Aug 21 2019 Atri Bhattacharya <badshah400@gmail.com>
- Update to version 1.7.7:
* Fix printing of YAML annotations.
* Fix Python 3 / Unicode compatibility for Point.pyx.
- Changes from version 1.7.6:
* Add xEdges and yEdges methods to the 2D Histo and Profile
classes, in C++ and Python.
* Remove @property attributes from Python xEdges methods.
* Fix Python3/argparse attribute access bug in yodamerge.
- Changes from version 1.7.5:
* Convert bin/* scripts to use Python3-compatible argparse
rather than old optparse.
* Fix Histo1D::integralRange to include the second-argument bin
content as described in the docstring.
* Fix Python3 StringIO import compatibility
* Add -m/-M filtering to yodadiff.
* Fix HistoBin2D printing in Python interface.
* Protect yodamerge against zero-valued (?!) ScaledBy
attributes.
- Drop conditional for boost BuildRequires pertaining to outdated
versions of openSUSE.
* Wed May 01 2019 Atri Bhattacharya <badshah400@gmail.com>
- Update to version 1.7.4:
* Roll out sameBinning methods for Profile1D and Profile2D.
* Add sameBinning methods for Histo1D and Histo2D.
* Remove debug couts from single-AO Writer::write() function.
* Add --ignore-missing and --ignore-new flags to yodadiff.
* Tidy up point-comparison output of yodadiff.
* Fix additional weighting in yodamerge
- See %{_docdir}/YODA-devel/ChangeLog for changes between version
1.7.1 through 1.7.3.
- Rebase sover.diff to apply cleanly.
Version: 1.7.0-bp151.1.6
* Wed May 23 2018 badshah400@gmail.com
- Update to version 1.7.0:
* Add Nentries printout to yodals -v
* Patches for ROOT conversion from Robert Hatcher -- thanks!
* Add YODA format version annotation, at version 2, and update
YODA reader to use version info and multiline YAML EOF marker.
* Write YODA annotations in YAML with a --- YAML break-line.
* Enable compressed writing from Python.
* Remove UNUSED macro in favour of anonymous args.
* Enable zipped writing... but only works from C++ so far.
* Add HistoBin2D::area(), and provide a default normto=1.0
argument on the Python Histo2D.normalize() method.
* Change license explicitly to GPLv3, cf. MCnet3 agreement.
* Parse YODA format AO headers as YAML (restriction to
single-line dict entries for now).
* Use a slightly enhanced fast numeric parser in ReaderYODA
(taken from LHAPDF, originally inspired by Gavin Salam).
* Add an UNSCALE spec option to yodascale, to undo ScaledBy
effects.
* Add optional zlib support via zstr
* Fix setVal(i, x) numbered-axis methods on Point2D and Point3D:
switch break statements were missing.
* Explicitly load all ROOT objects as a list rather than
generator. Patch from Dmitry Kalinkin.
* Improvements to yodaplot, including two operating modes: the
default CMP mode is suitable for plotting histos by path, from
raw .yoda files.
* Update yoda.plotting functions to treat plot-keys as args and
AO annotations via case-insensitive keys.
* Add annotationsDict to the Python AO interface.
* Add AO as an alias for AnalysisObject.
* Add parallel/compatibility yoda1 package to aid eventual
transition to YODA v2.
* Add x,y,zMins and Maxs to all 1D data types and scatters (and
x,yMin/Max to the scatters) -- Python interface only.
* Rework some of the yoda.plotting tools, making it a bit more
compatible with user-scripted matplotlib.
* Add convenience aliases H1D, H2D, P1D, P2D, and S1D, S2D, S3D
for the HistoXD, ProfileXD, and ScatterXD classes
respectively.
* Add xyVals/Errs and other 'bin array property' accessors to
the Python Histo1D and Profile1D types: important for
connection to matplotlib.
* Use Python natsort library to sort yodals output if available.
- Rebase sover.diff.
- Add BuildRequires: pkgconfig(zlib); now required for bulding
YODA.
- Fix env-based hashbangs.
Version: 1.6.7-bp150.2.5
* Wed Aug 02 2017 badshah400@gmail.com
- Update to version 1.6.7:
* pyext/yoda/rootcompat.pyx: Fix ordering of TH1 vs. TProfile
conversion
* Add static Reader methods to match the Writer ones.
* Fix Histo2D and Profile2D total distribution reading from YODA
format.
* Convert TH1F to TH1D in root2flat. Much simpler than
duplicating the TH1D stuff in pyext.
- Changes from version 1.6.6:
* Bugfixes in Cython bins accessors for Histo2D.
* Fixed warning messages about the obsoleteness of AIDA so that
the scripts actually still work.
* Mon Feb 13 2017 jengelh@inai.de
- Call ldconfig directly. Add sover.diff, enforce versioning
as per guidelines.
* Thu Feb 02 2017 adam.majer@suse.de
- use individual libboost-*-devel packages instead of boost-devel
* Thu Nov 10 2016 badshah400@gmail.com
- Update to version 1.6.5:
* Fix handling of --enable/disable-root configure options.
* Improvements to Cython version testing.
- Numerous changes from last packaged version (1.3.1) through
version 1.6.4. Please see ChangeLog file for details.
- Drop YODA-boost-configure-for-GCC5.patch: no longer needed due
to fixes in upstream code.
* Thu Jun 25 2015 badshah400@gmail.com
- Add YODA-boost-configure-for-GCC5.patch to fix autoconf
boost macros lookup with GCC5; patch taken from boost.m4
upstream [https://github.com/tsuna/boost.m4].
- Clean up some further remnants of %buildroot in python
byte-compiled files.
* Thu Jun 25 2015 badshah400@gmail.com
- Update to version 1.3.1:
+ Adding usefocus optional argument to some mkScatter functions,
plus the Python bindings.
+ Cleaning up some Python mappings of 2D histogram bin classes.
+ Removing mappings of bin-level fill and scale operations in
Python.
+ Fix formatting and error handling in Python Bin and Dbn
__repr__ methods.
+ Add a -i/--in-place option pair on yodascale.
+ Convert script matching options to use re search rather than
match.
+ Adding matching options and verbose option to yodals.
+ Improvements and additions to ROOTCnv.h routines, particularly
to TProfile creation: thanks to Roman Lysak for advice.
+ Add convenience YODA/YODA.h header.
+ yodascale now uses PointMatcher and can normalize or multiply
to abs values or ref histos/bin ranges.
+ Adding yoda.matcher Python sub-package with PointMatcher
functionality. To be used in Professor 2.0 and in yodascale.
+ Adding 'scat2' type to yodahist.
+ Add match/unmatch args to all conversion scripts, via a new
Python yoda.script_helpers function.
+ Script updates, improved docstrings, and improved tab
completion.
+ Add a yoda.plotting sub-module, based on matplotlib.
+ Small build improvements.
+ Handle overflow filling in binned types without invoking an
exception.
+ Change inRange to have non-fuzzy comparison behaviour.
+ Improving/adding __div__ functions in Python for all binned
types.
+ Add std:: prefix to isinf() calls in BinSearcher.h.
* Sun Oct 26 2014 badshah400@gmail.com
- Update to version 1.3.0:
+ Use numEntries() rather than effNumEntries() when checking
consistency of inputs to efficiency() calculations -- the
effNumEntries of a set can be smaller than that of a strict
subset, surprisingly!
+ Small improvements to yodahist and yodaplot behaviours/UIs.
+ Adding setX/Y/Z(val, err) methods to Point3D.
+ Add an efficiency method for 2D histos.
+ Hide fill and fillBin methods from Python mappings of bin
types.
* Thu Sep 18 2014 badshah400@gmail.com
- Update to version 1.2.1:
+ Hide non-const access to bin objects from histogram user:
avoids potential for inconsistency between total dbns and
in-range bins.
+ Bug in BinSearcher fixed by Peter Richardson: constructor
arguments were passed in the wrong order when constructing
a LinEstimator in cases where log binning wouldn't be
allowed.
+ Add protection against / characters in histo names in
yoda2root
+ Add +=, -=, *-, /=, ++ and -- operators to Counter, along
with an (implicit) constructor from a double -- all for user
convenience so Counter can be used in lieu of a simple number
- Changes from version 1.2.0:
+ Many changes from 1.1.0 version, please see installed
ChangeLog file
- Add the new binaries yadals, yodaplot and yodascale to filelist.
* Sat Jun 21 2014 badshah400@gmail.com
- Update to version 1.1.0:
+ YODA 1.1.0 release.
+ Adding unit tests against ref data for yodamerge in make check.
+ Removing 'foreach' macro definition and using raw
BOOST_FOREACH instead until C++11 is allowed.
+ Adding pytest-p1d and pytest-p2d tests, and FLAT
writing/reading in pytests.
+ Tweaking WriterFLAT and adding ReaderFLAT functionality for 2D
histos and profiles.
+ Some basic (FLAT) write-out capability for 2D histos
+ Improvements to the yodahist script, including support for 2D
histograms and input files.
+ Adding bin edges constructors for all 1D and 2D histos in
Python.
+ Improvements to Profile2D and Point2D interfaces in Python.
+ Add a single-file at a time yodacnv multi-format converter
script (thanks to Andrii Verbytskyi for the suggestion).
+ Typo fixes in Profile2D YODA-format parsing: 2D histo tests
now pass!
+ Adding Python tests for Histo2D and Profile2D.
+ Adding a YODA/Predicates.h header and using it in Axis2D bin
edge construction.
+ Enabling Profile2D writing in various Writers, and a bit of IO
code tidying.
+ Disable writing out of Histo2D and Profile2D outflows for now,
while they are redesigned, and get 2D I/O working for the
in-range part.
+ Mapping the divide and efficiency functions into the Python
interface as class methods, including the __div__ special
function.
+ Add the AnalysisObject::type() method back in Python (even
though type(ao) is more Pythonic, this may be useful)
+ Add Profile2D YODA format writing, note need for Scatter
format change, add sumXY storage to both 2D histo types.
+ Adding YODA reader functionality for Histo2D and Profile2D,
but without outflows support yet.
+ Adding simple command line yodahist script for quick 1D
histogramming from plain text files, with weight support. More
development to come!
+ Mapping linspace, logspace and a few stat functions into
Python.
+ Fixes, script installation, and detailed numerical comparisons
in yodadiff.
+ Change AnalysisObject::annotations to return the list of
annotation keys rather than the map, since the previous
behaviour mapped very badly into Python.
+ Add special case handling for 2-arg use of x2y scripts where
the second arg is -, for stdin. This will be treated as
writing out to stdout, not converting two files one of which
is stdin.
+ Adding a more portable version of getline to be used in the
YODA file parsing to avoid falling over on DOS-produced input
files.
+ Adding the namespace protection workaround for Boost described
at http://www.boost.org/doc/libs/1_55_0/doc/html/foreach.html
+ Adding an assumed-equal-run-size, ratio-like merging heuristic
for Scatter2Ds to yodamerge, and renaming the --normalize-all
flag to --assume-normalized.
+ Adding and installing a pkg-config data file for YODA.
+ Rationalising (and fixing?) the yodamerge logic re. user &
normalization scalings, and making way for a Scatter2D merging
heuristic
- Packaging changes:
+ Package new binaries yodacnv, yodadiff, yodahist
+ Package new pkgconfig file (buildrequires pkg-config).
* Tue Dec 10 2013 badshah400@gmail.com
- Initial version