Skip to main content

Python package PyPI publisher

exfor-tools

Some lightweight tools to grab data from the EXFOR database using the x4i3 library, and organize it for visualization and use in model calibration and uncertainty quantification.

scope

Currently, exfor_tools supports most reactions in EXFOR, but only a small subset of the observables/quantities. Feel free to contribute! If it doesn't meet your needs check out the project it's built on, which is far more complete: x4i3.

quick start

 pip install exfor-tools

Package hosted at pypi.org/project/exfor-tools/. Otherwise, for development, simply clone the repo and install locally:

git clone git@github.com:beykyle/exfor_tools.git --recurse-submodules
pip instal exfor_tools -e 

tutorials

You can run the notebooks in the examples/ directory to see how to use the package.

To run the notebooks, some additional dependencies are required:

pip install -r examples/requirements.txt

There are two directories in examples/: examples/examples_2025_release/ and examples/examples_2023_release/. The former contains notebooks with stored outputs valid for the latest EXFOR release, while the latter contains notebooks with stored outputs valid for the 2023-04-29 release. You can run either one, the only difference is the stored outputs (which are used for testing).

The examples include:

These demonstrate how to query for and parse exfor entries, and curate and plot data sets. In the first one, you will produce this figure:

test

The tests and the examples are one and the same. To run the tests, first install the dependencies for the notebooks:

pip install -r examples/requirements.txt

Then, to test that the notebooks run, use:

pytest --nbmake examples/examples_2025_release/

To test that they produce the expected results, use:

pytest --nbval-lax examples/examples_2025_release/

Note that there may be some difference in your installation, e.g. if you're using a different version of the EXFOR database, so the expected results may not be exactly the same as those in the tutorials.

By default, x4i3 ships with the 2023-04-29 EXFOR release. There are a set of notebooks with stored outputs valid for that release in examples/examples_2023_release/. These are used in the github actions. If you haven't updated to a more recent release but you would like to run the tests, then simply run:

pytest --nbval-lax examples/examples_2023_release/

updating the EXFOR data base

First, download your desired version <exfor-YYYY.zip> from here: https://nds.iaea.org/nrdc/exfor-master/list.html. The latest is recomended. Then:

bash update_database.sh </path/to/exfor-XXXX.zip> --db-dir </path/where/db/should/go/>

This will extract and process the data to </path/where/db/should/go/unpack_exfor-YYYY/X4-YYYY-12-31>, setting the environment variable $X43I_DATAPATH accordingly. x4i3 uses this environment variable to find the database on import, so you should add this to your environment setup. If you use bash, this will look something like this:

echo export X43I_DATAPATH=$X43I_DATAPATH >> ~/.bashrc

This functionality for modifying the database used by x4i3 is provided in x4i3_tools, which is included as a submodule.

Release files for exfor-tools 1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for exfor-tools 1.3
File Size Uploaded
exfor_tools-1.3.tar.gz 2.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for exfor-tools 1.3
File Interpreter ABI Platform
exfor_tools-1.3-py3-none-any.whl Python 3 none any Details

Total release size: 2.6 MB

Release files / exfor_tools-1.3.tar.gz

Download URL exfor_tools-1.3.tar.gz
Size 2.6 MB
Tags Source
SHA-256 checksum
How to use checksums
a71bda778238490b58c0662d8f34e6e159de2dc8fff23ec201bbffc5cdcc0f47
BLAKE2b-256 checksum
How to use checksums
51647d6d361de3ca2745c06cdabd11c35deb2141d3787ee539aa43ceb30f100b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / exfor_tools-1.3-py3-none-any.whl

Download URL exfor_tools-1.3-py3-none-any.whl
Size 28.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fdffd2ec6fd51ea256f5b535fea69ab2bc3a92efcb0637de7db80bdcd28271f3
BLAKE2b-256 checksum
How to use checksums
0db90589d565afeb6c070eb6fb9bd655cd47ef2f645509b152b1dae2398b946e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.3 This release

2 release files

1.2

2 release files

1.1

2 release files

1.0

2 release files

0.4

2 release files

0.3.1

2 release files

0.3

2 release files

0.2

2 release files

0.1.1

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page