Command Line API#
pyhf#
Top-level CLI entrypoint.
pyhf [OPTIONS] COMMAND [ARGS]...
Options
- --version#
Show the version and exit.
- --cite, --citation#
Print the bibtex citation for this software
cls#
Compute CLs value(s) for a given pyhf workspace.
Example:
$ curl -sL https://raw.githubusercontent.com/scikit-hep/pyhf/main/docs/examples/json/2-bin_1-channel.json | pyhf cls
{
"CLs_exp": [
0.07807427911686156,
0.17472571775474618,
0.35998495263681285,
0.6343568235898907,
0.8809947004472013
],
"CLs_obs": 0.3599845631401915
}
pyhf cls [OPTIONS] [WORKSPACE]
Options
- --output-file <output_file>#
The location of the output json file. If not specified, prints to screen.
- --measurement <measurement>#
- -p, --patch <patch>#
- --test-poi <test_poi>#
- --test-stat <test_stat>#
- Options:
q | qtilde
- --calctype <calctype>#
- Options:
asymptotics | toybased
- --backend <backend>#
The tensor backend used for the calculation.
- Options:
numpy | pytorch | tensorflow | jax | np | torch | tf
- --optimizer <optimizer>#
The optimizer used for the calculation.
- Options:
scipy | minuit
- --optconf <optconf>#
Arguments
- WORKSPACE#
Optional argument
combine#
Combine two workspaces into a single workspace.
See pyhf.workspace.Workspace.combine()
for more information.
pyhf combine [OPTIONS] [WORKSPACE_ONE] [WORKSPACE_TWO]
Options
- -j, --join <join>#
The join operation to apply when combining the two workspaces.
- Options:
none | outer | left outer | right outer
- --output-file <output_file>#
The location of the output json file. If not specified, prints to screen.
- --merge-channels, --no-merge-channels#
Whether or not to deeply merge channels. Can only be done with left/right outer joins.
Arguments
- WORKSPACE_ONE#
Optional argument
- WORKSPACE_TWO#
Optional argument
completions#
Generate shell completion code.
pyhf completions [OPTIONS] SHELL
Arguments
- SHELL#
Required argument
contrib#
Contrib experimental operations.
Note
Requires installation of the contrib
extra.
$ python -m pip install 'pyhf[contrib]'
pyhf contrib [OPTIONS] COMMAND [ARGS]...
download#
Download the patchset archive from the remote URL and extract it in a directory at the path given.
Example:
$ pyhf contrib download --verbose https://doi.org/10.17182/hepdata.90607.v3/r3 1Lbb-likelihoods
1Lbb-likelihoods/patchset.json
1Lbb-likelihoods/README.md
1Lbb-likelihoods/BkgOnly.json
- Raises:
InvalidArchiveHost
: if the provided archive host name is not known to be valid
pyhf contrib download [OPTIONS] ARCHIVE_URL OUTPUT_DIRECTORY
Options
- -v, --verbose#
Enables verbose mode
- -f, --force#
Force download from non-approved host
- -c, --compress#
Keep the archive in a compressed tar.gz form
Arguments
- ARCHIVE_URL#
Required argument
- OUTPUT_DIRECTORY#
Required argument
digest#
Use hashing algorithm to calculate the workspace digest.
- Returns:
digests (
dict
): A mapping of the hashing algorithms used to the computed digest for the workspace.
Example:
$ curl -sL https://raw.githubusercontent.com/scikit-hep/pyhf/main/docs/examples/json/2-bin_1-channel.json | pyhf digest
sha256:dad8822af55205d60152cbe4303929042dbd9d4839012e055e7c6b6459d68d73
pyhf digest [OPTIONS] [WORKSPACE]
Options
- -a, --algorithm <algorithm>#
The hashing algorithm used to compute the workspace digest.
- -j, --json, -p, --plaintext#
Output the hash values as a JSON dictionary or plaintext strings
Arguments
- WORKSPACE#
Optional argument
fit#
Perform a maximum likelihood fit for a given pyhf workspace.
Example:
$ curl -sL https://raw.githubusercontent.com/scikit-hep/pyhf/main/docs/examples/json/2-bin_1-channel.json | pyhf fit --value
{
"mle_parameters": {
"mu": [
0.00017298628839781602
],
"uncorr_bkguncrt": [
1.0000015671710816,
0.9999665895859197
]
},
"twice_nll": 23.19636590468879
}
pyhf fit [OPTIONS] [WORKSPACE]
Options
- --output-file <output_file>#
The location of the output json file. If not specified, prints to screen.
- --measurement <measurement>#
- -p, --patch <patch>#
- --value#
Flag for returning the fitted value of the objective function.
- --backend <backend>#
The tensor backend used for the calculation.
- Options:
numpy | pytorch | tensorflow | jax | np | torch | tf
- --optimizer <optimizer>#
The optimizer used for the calculation.
- Options:
scipy | minuit
- --optconf <optconf>#
Arguments
- WORKSPACE#
Optional argument
inspect#
Inspect a pyhf JSON document.
Example:
$ curl -sL https://raw.githubusercontent.com/scikit-hep/pyhf/main/docs/examples/json/2-bin_1-channel.json | pyhf inspect
Summary
------------------
channels 1
samples 2
parameters 2
modifiers 2
channels nbins
---------- -----
singlechannel 2
samples
----------
background
signal
parameters constraint modifiers
---------- ---------- ----------
mu unconstrained normfactor
uncorr_bkguncrt constrained_by_poisson shapesys
measurement poi parameters
---------- ---------- ----------
(*) Measurement mu (none)
pyhf inspect [OPTIONS] [WORKSPACE]
Options
- --output-file <output_file>#
The location of the output json file. If not specified, prints to screen.
- --measurement <measurement>#
Arguments
- WORKSPACE#
Optional argument
json2xml#
Convert pyhf JSON back to XML + ROOT files.
pyhf json2xml [OPTIONS] [WORKSPACE]
Options
- --output-dir <output_dir>#
- --specroot <specroot>#
- --dataroot <dataroot>#
- --resultprefix <resultprefix>#
- -p, --patch <patch>#
Arguments
- WORKSPACE#
Optional argument
patchset#
Operations involving patchsets.
pyhf patchset [OPTIONS] COMMAND [ARGS]...
apply#
Apply a patch from patchset to the background-only workspace specification.
- Raises:
InvalidPatchLookup
: if the provided patch name is not in the patchsetPatchSetVerificationError
: if the patchset cannot be verified against the workspace specification- Returns:
workspace (
Workspace
): The patched background-only workspace.
pyhf patchset apply [OPTIONS] [BACKGROUND_ONLY] [PATCHSET]
Options
- --name <name>#
The name of the patch to extract.
- --output-file <output_file>#
The location of the output json file. If not specified, prints to screen.
Arguments
- BACKGROUND_ONLY#
Optional argument
- PATCHSET#
Optional argument
extract#
Extract a patch from a patchset.
- Raises:
InvalidPatchLookup
: if the provided patch name is not in the patchset- Returns:
jsonpatch (
list
): A list of jsonpatch operations to apply to a workspace.
pyhf patchset extract [OPTIONS] [PATCHSET]
Options
- --name <name>#
The name of the patch to extract.
- --output-file <output_file>#
The location of the output json file. If not specified, prints to screen.
- --with-metadata, --without-metadata#
Include patchset metadata in output.
Arguments
- PATCHSET#
Optional argument
inspect#
Inspect the PatchSet (e.g. list individual patches).
- Returns:
None
pyhf patchset inspect [OPTIONS] [PATCHSET]
Arguments
- PATCHSET#
Optional argument
verify#
Verify the patchset digests against a background-only workspace specification. Verified if no exception was raised.
- Raises:
PatchSetVerificationError
: if the patchset cannot be verified against the workspace specification- Returns:
None
pyhf patchset verify [OPTIONS] [BACKGROUND_ONLY] [PATCHSET]
Arguments
- BACKGROUND_ONLY#
Optional argument
- PATCHSET#
Optional argument
prune#
Prune components from the workspace.
See pyhf.workspace.Workspace.prune()
for more information.
pyhf prune [OPTIONS] [WORKSPACE]
Options
- --output-file <output_file>#
The location of the output json file. If not specified, prints to screen.
- -c, --channel <CHANNEL>...>#
- -s, --sample <SAMPLE>...>#
- -m, --modifier <MODIFIER>...>#
- -t, --modifier-type <modifier_type>#
- Options:
histosys | lumi | normfactor | normsys | shapefactor | shapesys | staterror
- --measurement <MEASUREMENT>...>#
Arguments
- WORKSPACE#
Optional argument
rename#
Rename components of the workspace.
See pyhf.workspace.Workspace.rename()
for more information.
pyhf rename [OPTIONS] [WORKSPACE]
Options
- --output-file <output_file>#
The location of the output json file. If not specified, prints to screen.
- -c, --channel <PATTERN> <REPLACE>...>#
- -s, --sample <PATTERN> <REPLACE>...>#
- -m, --modifier <PATTERN> <REPLACE>...>#
- --measurement <PATTERN> <REPLACE>...>#
Arguments
- WORKSPACE#
Optional argument
sort#
Sort the workspace.
See pyhf.workspace.Workspace.sorted()
for more information.
Example:
$ curl -sL https://raw.githubusercontent.com/scikit-hep/pyhf/main/docs/examples/json/2-bin_1-channel.json | pyhf sort | jq '.' | md5
8be5186ec249d2704e14dd29ef05ffb0
$ curl -sL https://raw.githubusercontent.com/scikit-hep/pyhf/main/docs/examples/json/2-bin_1-channel.json | jq -S '.channels|=sort_by(.name)|.channels[].samples|=sort_by(.name)|.channels[].samples[].modifiers|=sort_by(.name,.type)|.observations|=sort_by(.name)' | md5
8be5186ec249d2704e14dd29ef05ffb0
pyhf sort [OPTIONS] [WORKSPACE]
Options
- --output-file <output_file>#
The location of the output json file. If not specified, prints to screen.
Arguments
- WORKSPACE#
Optional argument
xml2json#
Entrypoint XML: The top-level XML file for the PDF definition.
pyhf xml2json [OPTIONS] ENTRYPOINT_XML
Options
- --basedir <basedir>#
The base directory for the XML files to point relative to.
- -v, --mount <mount>#
Consists of two fields, separated by a colon character ( : ). The first field is the local path to where files are located, the second field is the path where the file or directory are saved in the XML configuration. This is similar in spirit to Docker.
- --output-file <output_file>#
The location of the output json file. If not specified, prints to screen.
- --track-progress, --hide-progress#
- --validation-as-error, --validation-as-warning#
Arguments
- ENTRYPOINT_XML#
Required argument