v0.7.0
This is a minor release from v0.6.3
→ v0.7.0
.
Important Notes
-
Please note this release has API breaking changes and carefully read these notes while updating your code to the
v0.7.0
API. -
All backends are now fully compatible and tested with Python 3.10. (PR #1809)
-
The
pyhf.tensorlib.poisson
API now allows for the expected rate parameterlam
to be0
in the case that the observed eventsn
is0
given that the limit$$\lim_{\lambda \to 0} ,\mathrm{Pois}(n | \lambda)$$ is well defined. (PR #1657) -
pyhf.readxml.parse
now supports reading of XML configurations with absolute paths. To support this,pyhf xlm2json
now has a-v/--mount
option. (PR #1909) -
Support for model specifications without a parameter of interest defined is added. (PRs #1638, #1636)
-
The
pyhf.parameters.paramsets
classessuggested_fixed
attribute behavior has been updated. To access the behavior used inpyhf
v0.6.x
use thesuggested_fixed_as_bool
attribute. (PR #1639) -
pyhf.pdf._ModelConfig.par_names
is changed to be a property attribute. (PR #2027) -
The order of model parameters is now sorted by model parameter name. (PR #1625)
-
Support for writing user custom modifiers is added. (PRs #1625, #1644)
-
Performance in
pyhf.readxml
is increased by improvements topyhf.readxml.import_root_histogram
. (PR #1691) -
pyhf.contrib.utils.download
is now more robust to different target file types. (PRs #1697, #1704) -
A
pyhf.default_backend
has been added that is configurable through adefault
kwarg inpyhf.set_backend
. (PR #1646) This is part of work to makepyhf
fully automatic differentiable. (Issue #882) -
Schema validation now allows for both
list
andpyhf.tensorlib
objects to exist in the model specification. (PR #1647) -
The minimum required dependencies have been updated to support added features:
-
The minimum required backend versions have been updated to support added features:
- JAX backend requires
jax>=0.2.10
,jaxlib>=0.1.61
(PR #1962) - PyTorch backend requires
torch>=1.10.0
(PR #1657) - TensorFlow backend requires
tensorflow>=2.7.0
,tensorflow-probability>=0.11.0
(PRs #1962, #1657) - iminuit optimizer requires
iminuit>=2.7.0
(PR #1895) -
'xmlio'
extra requiresuproot>=4.1.1
(PR #1567)
- JAX backend requires
Fixes
-
Use improvements to
jsonschema.RefResolver
to avoidjsonschema.exceptions.RefResolutionError
. (PR #1976) -
Use the conditional maximum likelihood estimators of the nuisance parameters to create the sampling distributions for
pyhf.infer.calculators.ToyCalculator
. (PR #1610) This follows the joint recommendations of the ATLAS and CMS experiments in Procedure for the LHC Higgs boson search combination in Summer 2011.
Features
Python API
-
The following functions have been added to the
pyhf.tensorlib
API: -
pyhf.readxml.parse
now supports reading of XML configurations with absolute paths with the addition of themounts
optional argument. (PR #1909) -
Support for overriding the paths for finding schemas is added, using the
pyhf
installed location as a base viapyhf.utils.schemas
. (PRs #1753, #1818)>>> from pathlib import Path >>> import pyhf.schema >>> current_schema_path = pyhf.schema.path >>> current_schema_path PosixPath('/path/to/your/venv/lib/python3.X/site-packages/pyhf/schemas') >>> custom_schema_path = Path("/path/to/custom/pyhf/schema") >>> with pyhf.schema(custom_schema_path): ... print(repr(pyhf.schema.path)) ... PosixPath('/path/to/custom/pyhf/schema') >>> pyhf.schema.path PosixPath('/path/to/your/venv/lib/python3.X/site-packages/pyhf/schemas')
-
In
pyhf.workspace.Workspace.model
the parameter of interest specified in the measurement may now be overridden using the addedpoi_name
kwarg. (PR #1636) -
The
pyhf.parameters.paramsets
classessuggested_fixed
attribute behavior has been updated to return alist
ofbool
of lengthn_parameters
. To access the behavior used inpyhf
v0.6.x
use thesuggested_fixed_as_bool
attribute. (PR #1639) -
pyhf.pdf._ModelConfig.par_names
is changed to be a property attribute. (PR #2027) -
The order of model parameters is now sorted by model parameter name. (PR #1625)
>>> import pyhf >>> model = pyhf.simplemodels.correlated_background( ... signal=[12.0, 11.0], ... bkg=[50.0, 52.0], ... bkg_up=[45.0, 57.0], ... bkg_down=[55.0, 47.0], ... ) >>> model.config.par_order ['correlated_bkg_uncertainty', 'mu'] >>> model.config.par_names ['correlated_bkg_uncertainty', 'mu']
-
Support for writing user custom modifiers is added.
(PRs #1625, #1644) This is still in the stage where it is targeted at expert users. -
{modifier}_builder
classes are added for all modifiers. (PRs #1625) For example,pyhf.modifiers.histosys.histosys_builder
. -
When using
pyhf.writexml
and thenormfactor
parameter config is missinginits
orbounds
, fall back to using default values. (PRs #1819) -
Supported options for
pyhf.infer.hypotest
can now be passed as kwargs through thepyhf.infer.intervals.upper_limits.upper_limit
API. (PR #1613) This now enables things like usingpyhf.infer.calculators.ToyCalculator
as the calculator used for the hypothesis test scan:>>> import numpy as np >>> import pyhf >>> pyhf.set_backend("jax") >>> model = pyhf.simplemodels.uncorrelated_background( ... signal=[12.0, 11.0], bkg=[50.0, 52.0], bkg_uncertainty=[3.0, 7.0] ... ) >>> observations = [51, 48] >>> data = pyhf.tensorlib.astensor(observations + model.config.auxdata) >>> scan = np.linspace(0, 5, 21) >>> obs_limit, exp_limits, (scan, results) = pyhf.infer.intervals.upper_limits.upper_limit( ... data, model, scan, return_results=True, calctype="toybased", ntoys=3000 ... )
-
Allow for fit parameter values from required fits in
pyhf.infer.test_statistics
functions to be returned by use ofreturn_fitted_pars
kwarg with thepyhf.infer.test_statistics
functions andreturn_calculator
kwarg withpyhf.infer.hypotest
. (PR #1554) -
A
validate
kwarg has been added topyhf.workspace.Workspace
and
pyhf.pdf.Model
to allow skipping validation. (PR #1646) This should only be used by expert users who understand the risks. -
A
pyhf.default_backend
has been added that is configurable through adefault
kwarg inpyhf.set_backend
. (PR #1646) This allows setting thepyhf.default_backend
to be different from the value ofpyhf.tensorlib
returned bypyhf.get_backend
, which can be useful in situations where differentiable model construction is needed.>>> import jax >>> import pyhf >>> pyhf.set_backend("jax", default=True) >>> pyhf.set_backend("numpy") >>> pyhf.get_backend() (<pyhf.tensor.numpy_backend.numpy_backend object at 0x...>, <pyhf.optimize.scipy_optimizer object at 0x...>) >>> pyhf.default_backend <pyhf.tensor.jax_backend.jax_backend object at 0x...> >>> def example_op(x): ... return 2 * pyhf.default_backend.power(pyhf.default_backend.astensor(x), 3) ... >>> example_op([2.0]) DeviceArray([16.], dtype=float64) >>> jax.jacrev(jax.jit(example_op))([2.0]) [DeviceArray([24.], dtype=float64, weak_type=True)]
-
Schema validation now allows for both
list
andpyhf.tensorlib
objects to exist in the model specification. (PR #1647)>>> import pyhf >>> signal = pyhf.tensorlib.astensor([12.0, 11.0]) >>> background = pyhf.tensorlib.astensor([50.0, 52.0]) >>> background_uncertainty = pyhf.tensorlib.astensor([3.0, 7.0]) >>> model = pyhf.simplemodels.uncorrelated_background( ... signal=signal, bkg=background, bkg_uncertainty=background_uncertainty ... )
CLI API
-
The
pyhf xlm2json
CLI API now has a-v/--mount
option to support reading XML configurations with absolute paths. (PR #1909) Similar to Docker volume mounts, the options allows a user to pass two fields separated by a colon (:
). The first field is a local path and the second field is the absolute path specified in the XML configuration to be substituted. Without the-v/--mount
option a user would have to manually edit the absolute path in each XML file it appeared in!pyhf xml2json \ --mount /local/path/to/workspace:/absolute/path/to/replace/inside/xml \ --output-file workspace.json \ workspace/analysis_config.xml
Deprecations
Python API
- The
pyhf.infer.intervals.upperlimit
API has been deprecated in favor ofpyhf.infer.intervals.upper_limits.upper_limit
.
Thepyhf.infer.intervals.upperlimit
API will removed inpyhf
v0.9.0
. (PR #1274)
Removals
Python API
-
The
pyhf.simplemodels.hepdata_like
API, deprecated sincepyhf
v0.6.2
, has been removed. (PR #1670) Use thepyhf.simplemodels.uncorrelated_background
API instead. -
pyhf.workspace.Workspace
'sparameters
attribute is removed in favor of usingpyhf.pdf._ModelConfig
'sparameters
. (PR #1625) -
pyhf.workspace.Workspace.get_measurement
has thepoi_name
kwarg removed. (PR #1636)
Contributors
v0.7.0
benefited from contributions from:
- Alexander Held
- Mason Proffitt
- Lars Henkelmann
- Aryan Roy
- Graeme Watt
- Jerry Ling
- Nathan Simpson
- Beojan Stanislaus
Changes
- fix: Update notebooks to use
include_auxdata
kwarg forpyhf.Workspace.data
by @matthewfeickert in #1588 - ci: Skip doctest for 'Minimum supported dependencies' workflow by @matthewfeickert in #1589
- chore: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1593
- docs: Correct v0.6.3 release notes to note
pyhf.pdf._ModelConfig.channels
is a list by @RhnSharma in #1592 - ci: Add Python 3.9 to 'Current Release' workflow tests by @matthewfeickert in #1596
- docs: Update maintainer release checklist with v0.6.3 notes by @matthewfeickert in #1597
- ci: Use
jupyter-black
pre-commit hook overnbqa-black
by @matthewfeickert in #1598 - docs: Add use citation from publishing statistical models white paper by @matthewfeickert in #1600
- docs: Add
uproot4
writing speedup to v0.6.3 release notes by @matthewfeickert in #1601 - docs: Add use citation from collider signatures of coannihilating dark matter paper by @matthewfeickert in #1604
- fix: Use MLEs of NPs to create sampling distributions in ToyCalculator by @masonproffitt in #1610
- docs: Add use citation from simplified likelihoods ATLAS PUB note by @matthewfeickert in #1614
- docs: Use sphinxcontrib-bibtex style 'unsrt' to sort citations in reverse chronological order by @matthewfeickert in #1615
- chore: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1616
- docs: Use sphinx-copybutton prompt regex to fully capture examples by @matthewfeickert in #1617
- ci: Allow reporting of coverage on PRs from forks by @matthewfeickert in #1622
- ci: Update codecov-action to v2 API by @matthewfeickert in #1623
- ci: Report coverage to Codecov without token by @matthewfeickert in #1628
- feat: Add hypotest kwargs to pyhf.infer.intervals.upperlimit by @aryan26roy in #1613
- feat: Expose fitted parameter values of implicit fits in test statistic calls by @lhenkelm in #1554
- ci: Add absolufy-imports pre-commit hook by @matthewfeickert in #1635
- feat: Add setup for custom modifiers by @lukasheinrich in #1625
- feat: Allow POI-less models via Workspace.model by @kratsg in #1636
- fix: Fix bug in impact plot visualization by @matthewfeickert in #1642
- feat: Add POI-less specification support by @kratsg in #1638
- docs: Add and apply codespell as a pre-commit hook by @alexander-held in #1645
- fix: custom modifier / new parameter support and test by @lukasheinrich in #1644
- test: Use netlocs that are known to not exist or give known return by @matthewfeickert in #1651
- feat: Add support for arrayful JSON by @lukasheinrich in #1647
- test: Remove 'src' from pytest test testpaths to allow for non-editable install in CI by @matthewfeickert in #1467
- feat: Allow zero rate Poisson by @matthewfeickert in #1657
- ci: Add release candidates to HEAD of dependencies workflow by @matthewfeickert in #1660
- feat: Configurable default backend by @kratsg in #1646
- refactor: Simplified parameters by @lukasheinrich in #1639
- ci: Turn off PyPI release tests on pull requests by @matthewfeickert in #1664
- build: Set lower bound of scipy v1.1.0 by @matthewfeickert in #1661
- build: Update lower bound on jax to v0.2.10 by @matthewfeickert in #1666
- feat: Remove pyhf.simplemodels.hepdata_like from API by @aryan26roy in #1670
- docs: Update 2021 published ATLAS probability models by @matthewfeickert in #1671
- chore: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1679
- refactor: Pass
Accept
header to requests incontrib.utils.download
by @matthewfeickert in #1673 - fix: Use https protocol as unauthenticated git protocol is no longer supported by @matthewfeickert in #1680
- docs: Add ATLAS top group probability model records through June 2021 by @matthewfeickert in #1681
- docs: Add ATLAS third-generation scalar leptoquarks search statistical model record by @matthewfeickert in #1682
- fix: Speed-up readxml by caching key lookup instead of using try/except by @kratsg in #1691
- feat: Add percentile function to tensorlib by @matthewfeickert in #817
- docs: only lists are accepted when specifying objects to prune by @alexander-held in #1692
- feat: Add transpose function to tensorlib by @matthewfeickert in #1696
- refactor: Use jax.numpy for JAX backend tensorlib.tolist by @matthewfeickert in #1138
- refactor: Use tensorlib.percentile in calculators by @matthewfeickert in #1694
- test: Use xfail for tests that fail for upstream problems by @matthewfeickert in #1702
- build: Set only lower bounds on backend dependencies by @matthewfeickert in #1698
- docs: Ensure docstring examples are contiguous by @matthewfeickert in #1703
- refactor: Make contrib.utils.download robust to archive file types by @matthewfeickert in #1697
- fix: Accept tar and zip headers in contrib.utils.download requests by @matthewfeickert in #1704
- fix: Ensure
_ModelConfig.suggested_fixed
list contains only booleans for all modifiers by @alexander-held in #1706 - ci: Quote GitHub Action python-version number as YAML strings by @matthewfeickert in #1707
- feat: Raise exception if bin-wise modifier data length doesn't match sample data by @matthewfeickert in #1708
- feat: Catch unexpected keyword arguments in workspace construction by @alexander-held in #1709
- test: Use scikit-hep-testdata to provide probability models for regression tests by @matthewfeickert in #1711
- fix: Skip doctest of
pyhf.contrib.utils.download
by @matthewfeickert in #1715 - chore: Use constraints.txt for lower bound testing by @matthewfeickert in #1713
- docs: Fix download method of probability models archive in impact plot notebook by @matthewfeickert in #1721
- chore: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1723
- docs: Fix download method of probability models archive in pull plot notebook by @matthewfeickert in #1724
- feat: Allow skipping validation when constructing workspaces by @alexander-held in #1710
- test: Make fail_backend markers add pytest.mark.xfail and remove fail_jax marker on percentile tests by @matthewfeickert in #1730
- ci: Publish to TestPyPI on tag or by workflow dispatch trigger by @matthewfeickert in #1727
- docs: Truncate floating point docstring examples to 8 decimal places by @matthewfeickert in #1726
- docs: Add GitHub Release Radar check to release checklist by @matthewfeickert in #1733
- docs: Update citation references publication status by @matthewfeickert in #1738
- docs: Add milestone for 1000 project commits to README by @matthewfeickert in #1739
- fix: Disallow nbsphinx v0.8.8 to avoid empty "raw" directive bug by @matthewfeickert in #1742
- chore: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1741
- docs: Note shapesys and staterror modifier set to 1 for modifier data of 0 by @matthewfeickert in #1740
- ci: Limit concurrent workflow jobs to one per workflow per branch by @matthewfeickert in #1632
- ci: Update gh-action-pypi-publish to use print_hash by @matthewfeickert in #1743
- docs: Add use citation from revisiting mono-tau tails at the LHC paper by @matthewfeickert in #1744
- fix: Accept ValueError for JAX backend
tolist
fallback by @matthewfeickert in #1746 - ci: Launch tmate session if pytest fails on workflow dispatch run by @matthewfeickert in #1748
- chore: Update black to first stable release v22.1.0 by @matthewfeickert in #1754
- test: Avoid tensorflow macOS floating point deviation with pytest.approx by @matthewfeickert in #1761
- ci: Add macos-latest to dependency release candidates testing by @matthewfeickert in #1760
- docs: Update scipy intersphinx url to drop 'reference' by @matthewfeickert in #1767
- chore: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1765
- test: Add html coverage reports from pytest by @matthewfeickert in #1771
- test: Consolidate and update pytest options in pyproject.toml by @matthewfeickert in #1773
- docs: fix link to TRExFitter documentation by @alexander-held in #1777
- docs: Add citation from 'HL-LHC Computing Review Stage 2' paper by @matthewfeickert in #1779
- build: Require setuptools v42.0.0+ for stability by @matthewfeickert in #1783
- build: Remove wheel and attrs from build-system requires by @matthewfeickert in #1788
- docs: Add section for tutorial and docs to README by @matthewfeickert in #1789
- feat: Use tbump over bump2version by @matthewfeickert in #1790
- docs: Add general citation from MadJAX paper by @matthewfeickert in #1799
- docs: Update Lukas's affiliation to Technical University of Munich by @matthewfeickert in #1798
- docs: Add use citation from ATLAS UEH MS displaced jet paper by @matthewfeickert in #1800
- docs: Correct Giordon's affiliation to SCIPP in CITATON.cff by @matthewfeickert in #1801
- docs: Add use citation from ATLAS UEH displaced jets CalRatio paper by @matthewfeickert in #1802
- docs: Fix tiny typo in MC Stat Error documentation by @kratsg in #1803
- chore: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1805
- refactor: Clarify exception message applies only to profile likelihood ratio by @matthewfeickert in #1806
- ci: Add CPython 3.10 to testing by @matthewfeickert in #1808
- build: Add support for Python 3.10 across all backends by @matthewfeickert in #1809
- docs: Add use citation from neos paper by @matthewfeickert in #1812
- docs: Update JAX backend normal docstring to jax v0.3.2 returns by @matthewfeickert in #1813
- feat: Alternative Schema Locations by @kratsg in #1753
- ci: Report coverage for oldest and newest Python tested by @matthewfeickert in #1817
- fix: writexml handles missing parameter configs for normfactor by @kratsg in #1819
- feat: Add contextlib support to pyhf.schema API by @kratsg in #1818
- test: Assert exported StatError has no name attribute by @kratsg in #1821
- fix: Disallow Jinja2 v3.1.0 to avoid nbsphinx triggering attribute error by @matthewfeickert in #1824
- docs: Add JupyterLite REPL for interactive pyhf in docs by @matthewfeickert in #1820
- fix: bump black to 22.3.0 due to click 8.1 release by @henryiii in #1827
- ci: Use actions/setup-python v3 by @matthewfeickert in #1828
- fix: Add filterwarnings ignore for Pillow DeprecationWarning by @matthewfeickert in #1834
- ci: Update GitHub Actions to next stable version by @matthewfeickert in #1833
- ci: Add matplotlib nightly wheels to HEAD of dependencies testing by @matthewfeickert in #1835
- ci: Add concurrency group to HEAD of dependencies workflow by @matthewfeickert in #1836
- revert: Remove Jinja2 restrictions given nbconvert v6.4.5 by @matthewfeickert in #1837
- chore: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1839
- fix: Override error on filterwarnings to pass notebook tests by @matthewfeickert in #1841
- docs: Add general use citation from SimpleAnalysis ATLAS PUB note by @matthewfeickert in #1842
- docs: Add general use citation from End-to-End Optimization paper by @matthewfeickert in #1843
- docs: Add general use citation from Survey of Open Data Concepts paper by @matthewfeickert in #1844
- ci: Add bump version workflow for release tags by @matthewfeickert in #1846
- refactor: Deprecate distutils in favor of setuptools._distutils by @matthewfeickert in #1849
- docs: Update developer documentation by @matthewfeickert in #1847
- docs: Deprecate use of git.io URL shortener by @matthewfeickert in #1851
- docs: Fix broken links identified by Sphinx linkcheck by @matthewfeickert in #1854
- ci: Add sphinx linkcheck builder to docs build workflow by @matthewfeickert in #1855
- chore: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1859
- ci: Update ReadTheDocs build to Ubuntu 22.04 by @matthewfeickert in #1860
- docs: Add use citation from strange quark probe Snowmass paper by @matthewfeickert in #1861
- docs: Add use citation from ATLAS dE/dX long-lived particle paper by @matthewfeickert in #1863
- feat: Allow readxml to demote validation exception to warning by @kratsg in #1865
- docs: Clarify staterror modifier specification by @Moelf in #1856
- test: Ignore LHEP DOI URLs during Sphinx linkcheck by @matthewfeickert in #1866
- ci: Add semantic PR check GHA workflow by @matthewfeickert in #1868
- test: Ignore EPJ Web of Conferences DOI URLs during Sphinx linkcheck by @matthewfeickert in #1870
- test: Restrict tf dependency protobuf to ABI compatible releases by @matthewfeickert in #1869
- build: Update lower bound on tensorflow to v2.6.5 by @matthewfeickert in #1874
- fix: Allow for true_divide or divide
RuntimeWarning
from NumPy by @matthewfeickert in #1873 - docs: Set English as language for Sphinx by @matthewfeickert in #1875
- docs: Update Matthew's affiliation to University of Wisconsin-Madison by @matthewfeickert in #1876
- ci: Add 'name-tests-test' to pre-commit hooks by @matthewfeickert in #1877
- chore: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1878
- ci: Use
github.workflow
property to ensure unique concurrency group by @matthewfeickert in #1879 - build: Use
find_namespace:
to ensure discovery of package data by @matthewfeickert in #1881 - build: Use
license_files
in setup.cfg by @matthewfeickert in #1883 - feat: Allow for clipping negative yields in the main model by @kratsg in #1845
- ci: Use '--pytest-test-first' option for naming clarity by @matthewfeickert in #1892
- build: Update lower bound on iminuit to v2.7.0 by @matthewfeickert in #1895
- docs: Add use citation from Audrey Kvam's Ph.D. thesis by @matthewfeickert in #1896
- docs: Update use citations published in journals in June 2022 by @matthewfeickert in #1897
- chore: Use actions/setup-python v4 by @matthewfeickert in #1898
- ci: Enable Dependabot version updates for GitHub Actions by @henryiii in #1900
- chore: Update Docker GitHub Actions to Dependabot bumped versions by @matthewfeickert in #1906
- build(deps): bump codecov/codecov-action from 2 to 3 by @dependabot in #1903
- chore: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1913
- fix: Disallow Sphinx v5.1.0 to avoid 'exception: pop from an empty deque' by @matthewfeickert in #1925
- build(deps): bump pypa/gh-action-pypi-publish from 1.5.0 to 1.5.1 by @dependabot in #1924
- chore: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1927
- docs: Update lower bound on Sphinx to v5.1.1 by @matthewfeickert in #1926
- fix: Manually set uncertainties for fixed parameters to 0 by @matthewfeickert in #1919
- docs: Add July 2022 use citations by @matthewfeickert in #1929
- docs: Add use citation from Lucas Santiago Borgna's Ph.D. thesis by @matthewfeickert in #1930
- ci: Add yesqa pre-commit hook by @matthewfeickert in #1932
- fix: Coverage for importing XML channels with no data by @kratsg in #1931
- fix: Handle importing XML measurements with no POI attribute by @kratsg in #1933
- feat: Handle absolute paths in XML config files (xml2json / readxml) by @kratsg in #1909
- ci: Report coverage for all Python versions by @matthewfeickert in #1936
- feat: Enable typehints in pre-commit and add typehints to readxml by @kratsg in #1934
- test: Ignore TYPE_CHECKING for coverage by @kratsg in #1937
- build: Set lower bound of typing-extensions to v3.7.4 by @matthewfeickert in #1938
- ci: Make
build
error on warnings by @matthewfeickert in #1887 - chore: Remove 'lint' extra from setup.py by @matthewfeickert in #1943
- refactor: Use string literal types of generic builtins for type checking by @matthewfeickert in #1942
- build: Update git archival options to support auto versioning by @matthewfeickert in #1951
- ci: Use 'strict' option for twine check by @matthewfeickert in #1954
- feat: Validate workspace specification before accessing parts of it by @alexander-held in #1953
- ci: Deploy GitHub Pages docs directly using GitHub Actions by @matthewfeickert in #1955
- fix: Populate the schema cache with local
defs.json
again by @lhenkelm in #1917 - feat: Add typehints to pyhf.tensor by @kratsg in #1940
- build: Update lower bound of click to v8.0.0 by @matthewfeickert in #1958
- build: Update lower bound of typing-extensions to v3.7.4.3 by @matthewfeickert in #1961
- build: Update lower bounds to tensorflow v2.7.0, jaxlib v0.1.61 by @matthewfeickert in #1962
- ci: Restrict deployments of environments to PR merges by @matthewfeickert in #1960
- docs: Add link to public-probability-models website by @matthewfeickert in #1956
- fix: Keep staterror from affecting multiple samples by @lukasheinrich in #1965
- ci: Publish to PyPI on publish of GitHub release by @matthewfeickert in #1968
- docs: Add typehint aliases by @kratsg in #1969
- fix: Base URI for jsonschema.RefResolver has better behavior by @kratsg in #1976
- build: Update lower bounds to jsonschema v4.15.0, importlib-resources v1.4.0 by @matthewfeickert in #1979
- fix: Add PR number to Semantic PR Title Check concurrency group by @kratsg in #1981
- feat: Promote
validate
kwarg to top-level functions inpyhf.simplemodels
by @phinate in #1858 - docs: Clarify absolute/relative for histosys by @kratsg in #1971
- docs: Document Channel Summary Mixin by @kratsg in #1972
- docs: Harmonize docstring for test_stat in ToyCalculator by @kratsg in #1970
- feat: Add support for
_ModelConfig.set_poi(None)
to unset model POI by @kratsg in #1985 - chore: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1989
- fix: Add guards against shared shapesys paramsets by @kratsg in #1977
- feat: Add type hints for tensor manager by @kratsg in #1963
- fix: Form data through loop over channels for multichannel coupled histo notebook by @kratsg in #1974
- feat: Allow schema validation with tensor types by @kratsg in #1665
- fix: Guard against nan in test stat calculation by @matthewfeickert in #1993
- fix: Pin codemetapy to v0.3.5 for
--no-extras
functionality by @matthewfeickert in #1995 - ci: Install release candidates for 'current release' test workflow by @matthewfeickert in #1996
- refactor: Use urllib.parse.urlsplit over urlparse by @matthewfeickert in #1997
- docs: Add Binder Python runtime environment specification by @matthewfeickert in #1998
- fix: Update codemeta lower bounds for jsonschema, importlib-resources by @matthewfeickert in #2000
- docs: Add milestone for 2000 project GitHub items by @matthewfeickert in #2001
- fix: Use codemetapy v2.2.2+ API by @matthewfeickert in #2002
- fix: Add filterwarnings ignore for protobuf DeprecationWarning by @matthewfeickert in #2005
- fix: Specify encoding as utf-8 to enforce PEP 597 by @matthewfeickert in #2007
- docs: Add FAQ on reasons for need to downgrade dependencies by @matthewfeickert in #1529
- test: Update test_plot_results_no_axis baseline image by @matthewfeickert in #2009
- feat: Add internal API to warn of deprecation and future removal by @matthewfeickert in #2012
- fix: Use function scope to avoid altering hypotest_args fixture by @matthewfeickert in #2011
- test: Discover pytest fixtures during doctest by @matthewfeickert in #2017
- feat: Add autoscan for upper limit using TOMS Algorithm 748 by @beojan in #1274
- ci: Ignore Dependabot PRs to update tests/constraints.txt by @matthewfeickert in #2010
- chore: Update references to default branch to 'main' by @matthewfeickert in #2019
- docs: Remove requests install from JupyterLite REPL setup by @matthewfeickert in #2020
- docs: Update list of statistical models for 2022 by @matthewfeickert in #2018
- docs: Update release checklist notes for Conda-forge and LCG views by @matthewfeickert in #2021
- chore: Update codemeta.json for scipy lower bounds by @matthewfeickert in #2023
- docs: Add versionadded to new tensorlib methods by @kratsg in #2025
- docs: Update use citations and general citations to latest distribution by @matthewfeickert in #2026
- feat: Make
par_names
a _ModelConfig property attribute by @matthewfeickert in #2027 - docs: Add v0.7.0 release notes by @matthewfeickert in #1705
New Contributors
- @RhnSharma made their first contribution in #1592
- @masonproffitt made their first contribution in #1610
- @aryan26roy made their first contribution in #1613
- @lhenkelm made their first contribution in #1554
- @Moelf made their first contribution in #1856
- @phinate made their first contribution in #1858
- @beojan made their first contribution in #1274
Full Changelog: v0.6.3...v0.7.0