Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

endf-userpy

High-level interpretation of ENDF-6 nuclear data files.

endf-userpy is a Python library that answers user-friendly questions about ENDF-6 nuclear data evaluations: "what is the cross section of the (n,2n) reaction on Fe-56?", "what is the energy spectrum of neutrons emitted from U-238 at 14 MeV?", "how much Co-60m is produced per (n,gamma) reaction on Co-59?".

The library does not parse ENDF-6 itself. It builds on endf_parserpy, which turns an ENDF-6 file into a nested Python dict (endf_dict). endf-userpy then walks that dict to reconstruct cross sections, yields, and differential distributions, hiding which MF section a piece of data lives in.

Status. This is an early alpha release. The public API is stabilising but may still change. See "Known limitations" below. Feedback by creating issues is appreciated.

Installation

PyPI releases lag behind main. Development is active and new capabilities land several PRs at a time before a release is cut. Recent additions that are on main but not yet on PyPI include end-to-end JAX autodiff through the top-level API across all supported MF sections, resolved-resonance reconstruction (MLBW, Reich-Moore, and R-Matrix Limited with KRM=3) plus unresolved-resonance URR Case C with Gauss-Legendre or Ross-10 fluctuation-integral quadrature, numpy / numba / JAX backends on every resonance formalism, the gamma production pipeline (MF12/13/14/15), the tabulated photon spectra path, and MF6 LAW=5 charged-particle elastic scattering (nuclear-amplitude Legendre and tabulated LTP forms, with CM-to-LAB conversion). If you need those, install from source (see below). pip install endf-userpy gives you the last tagged release, which may be missing recent work.

pip install endf-userpy

Prebuilt wheels are available for cpython 3.9–3.13 on:

  • Linux x86_64 (manylinux_2_28)
  • macOS arm64 (>= 11.0)
  • macOS x86_64 (>= 10.12)
  • Windows AMD64

Other platforms or Python versions install from the sdist automatically and need a Fortran compiler (gfortran) on PATH.

Runtime dependencies (numpy, scipy, endf_parserpy) are pulled in automatically. Some examples additionally use matplotlib.

git clone https://github.com/IAEA-NDS/endf-userpy
cd endf-userpy
pip install -e .

The default install is pure Python and needs no compiler. To also build the optional Fortran parity-oracle extension used by the equivalence-test suite, set ENDF_USERPY_BUILD_FORTRAN=1 before pip install (requires gfortran on PATH; Windows users can opt into the Intel Fortran compiler ifx with ENDF_USERPY_USE_IFX=1).

Quick start

import numpy as np
from endf_parserpy import EndfParserFactory
from endf_userpy.quantities import (
    get_available_reactions,
    get_reaction_xs,
)

parser = EndfParserFactory.create()
endf_dict = parser.parsefile("tests/data/n-004_Be_009.endf")

print(get_available_reactions(endf_dict))
# ['(n,total)', '(n,n_0)', '(n,nonelas)', '(n,2n)', '(n,g)', ...]

eincs = np.array([0.0253, 1e3, 1e6, 1.4e7])  # eV
print(get_reaction_xs(endf_dict, "(n,total)", eincs))
# [6.162 6.144 3.341 1.528]   barn

Public API

All user-facing functions live in endf_userpy.quantities and take an endf_dict (already parsed) plus user-friendly string identifiers.

Function Returns What it does
get_available_reactions(endf_dict) list of reaction strings introspect a file
get_declared_residuals(endf_dict) list of residual strings every MF8-declared (ZAP, LFS) pair
is_residual_declared(endf_dict, residual) bool whether a specific residual is MF8-declared
get_declared_isomer_states(endf_dict, residual) list of suffix strings isomer states declared for a residual
get_incident_energies(endf_dict, reaction) array tabulated Einc mesh for a channel
get_emission_energies(endf_dict, reaction, particle) array tabulated Eout mesh
get_reaction_xs(endf_dict, reaction, eincs) array cross section of a named channel
get_residual_production_xs(endf_dict, residual, eincs) array production of a specific residual nucleus, isomer-resolved
get_particle_production_xs(endf_dict, reaction, particle, eincs) array ejectile production cross section
get_particle_production_dxs_dE(endf_dict, reaction, particle, eincs, eouts) array dσ/dE energy spectrum of emitted particle
get_particle_production_dxs_dmu(endf_dict, reaction, particle, eincs, mus) array dσ/dΩ angular distribution
get_particle_production_ddxs(endf_dict, reaction, particle, eincs, eouts, mus) array d²σ/dE/dΩ double-differential
get_particle_production_discrete_gamma_lines(endf_dict, reaction, eincs) list of per-line records per-line (Eg, y_per_ein, angdist_per_ein) for MF12 discrete gammas

Reaction strings for a neutron projectile follow the ENDF-6 MT convention:

String MT Meaning
"(n,total)" MT1 total cross section
"(n,n_0)" MT2 elastic scattering
"(n,nonelas)" MT3 non-elastic sum
"(n,n)" MT4 inelastic scattering sum (MT51..MT91)
"(n,n_i)" for i = 1, 2, ... MT51 + i-1 inelastic to i-th discrete level
"(n,2n)" MT16 (n,2n)
"(n,3n)" MT17 (n,3n)
"(n,fission)" MT18 total fission (all chances)
"(n,f)" MT19 first-chance fission only
"(n,nf)" MT20 second-chance fission
"(n,2nf)" MT21 third-chance fission
"(n,3nf)" MT38 fourth-chance fission
"(n,g)" MT102 radiative capture
"(n,p)" MT103 (n,proton)
"(n,d)" MT104 (n,deuteron)
"(n,t)" MT105 (n,triton)
"(n,h)" MT106 (n,³He)
"(n,a)" MT107 (n,α)

Two subtleties worth calling out:

  • Fission: (n,f) and (n,fission) are not the same. (n,f) is MT19 (first-chance fission only); (n,fission) is MT18 (total fission summed over all chances). Most modern evaluations put all their fission data under MT18 and leave MT19–MT21 empty (JENDL-5 U-238, ENDF/B-VIII.1 Pu-239, TENDL-2021 U-235 all do this), so (n,fission) is the query users almost always want. (n,f) will return 0 on those files. Some files that split by fission chance (older ENDF/B releases, some evaluations of higher actinides) do populate MT19 individually; on those, (n,f) gives you the first-chance piece only.
  • Inelastic scattering: (n,n) is MT4 (sum over discrete levels + continuum, MT51..MT91). (n,n_0) is MT2 (elastic). (n,n_1) is MT51 (inelastic to the first excited state), and so on. See the "Aggregate-reaction sum-MT queries under-count on sparse files" note under Known limitations for the admission- heuristic caveat.

Full lookup: endf_userpy/primitives/reactions.py:REACTION_DICT. get_available_reactions(endf_dict) returns the strings the file actually populates, so passing that list to your query is the safest way to avoid a silent zero from a mistyped or file-missing MT.

Particles: "n", "p", "d", "t", "h" (helium-3), "a" (alpha), "g" (gamma). Residual nuclei: "Z-Sym-A" (e.g. "27-Co-60") or "Sym-A" (e.g. "Co-60"), with optional isomer suffix g, m, m1, m2, ... ("Co-60m" = first metastable).

Runtime policies (RunOptions)

Every top-level get_* function takes a keyword-only options: RunOptions | None = None argument. The default RunOptions() is physics-first: resonance reconstruction on, MT5 catch-all redistributed to its specific residuals, activation-convention residual sum. Override a single field with RunOptions(above_range='raise', backend='jax'); dataclasses.replace() handles composition.

from endf_userpy.run_options import RunOptions

opts = RunOptions(above_range='nan', backend='numba')
xs = get_reaction_xs(endf_dict, '(n,total)', eincs, options=opts)

Fields (defined in endf_userpy/run_options.py):

Field Default What it does
above_range 'warn_nan' How to handle incident energies above the file's upper Ein bound. One of 'warn_nan', 'nan', 'warn_zero', 'zero', 'raise'.
resonance_range 'warn' How to handle Ein inside the resolved-resonance region when include_resonance=False (raw MF3 there is a subtractive background and can be negative). One of 'warn', 'warn_nan', 'nan', 'raise'. Ignored when include_resonance=True.
include_resonance True Compose the MF2 resolved-resonance reconstruction (MLBW / Reich-Moore / R-Matrix Limited KRM=3 / URR Case C) on top of the MF3 background per the ENDF-6 additive convention. Files without MF2 silently no-op. Set False to return raw MF3.
mt5_contrib True Whether to redistribute the MT5 catch-all contribution into specific-MT residual queries (via MF6 ZAP tags). Set False to drop MT5 entirely from such queries.
include_target False Whether get_residual_production_xs includes target-conserving channels (MT2 elastic, MT4 / MT51..MT91 inelastic) when the queried residual is the target in its ground state. Default follows the activation-library convention (IRDFF / EAF / NJOY-ACTIVA): channels that de-excite back to the ground state don't count toward "production of the target". Set True for the inclusive sum. Isomer queries are unaffected.
backend 'auto' Numerical backend. 'auto' picks numpy with opportunistic numba acceleration on MF2 resonance kernels (~30x speedup on actinides). 'numpy' pure numpy. 'numba' requires numba (raises at construction if missing). 'jax' enables end-to-end autodiff and @jax.jit (requires jax). Advanced users may pass an array_ns adapter object directly.
broadening_mesh_bounds None (emin, emax) for the internal mesh of the broadening DDX / dxs_dE path. Required under @jax.jit with a tracer energies_out; otherwise auto. Include the n_kernel_widths * kernel_width margin on both sides.
broadening_window_kernel_widths None Target span of each windowed sub-convolution inside adaptive_convolve, in units of kernel_width. Controls memory-vs-compile-time trade-off for broadened DDX / dxs_dE under jit. Default resolves to 200 (concrete grid) or inf (tracer). Set 50 for maximum eager-memory savings; inf to disable windowing. No effect unless broadening= is passed to the entry point.
urr_quadrature 'gauss_legendre_32' LRU=2 URR fluctuation-integral quadrature. 'gauss_legendre_32' matches Monte Carlo on the χ² integrand to ~1e-7; 'ross_10' is the NJOY-unresr-parity choice. Only effective when include_resonance=True and the file has an LSSF=0 URR range.
aggregation 'bottom_up' Admission-direction policy for scalar XS queries. 'bottom_up' combines the most fine-grained MF3 MTs available (pre-#135 default). 'top_down' uses the most aggregated MF3-tabulated MT that can address the query, avoiding interpolation-grid-mismatch error between separately-tabulated children. Differential APIs always use bottom-up (sum MTs don't carry per-ejectile distributions).

Validation runs at RunOptions(...) construction, so a typo like above_range='warn_naan' raises immediately rather than deep inside a leaf reader.

Per-call broadening= (not on RunOptions)

get_particle_production_dxs_dE and get_particle_production_ddxs accept a keyword-only broadening=None argument separate from options=. It is a measurement-resolution kernel applied to the full outgoing-energy spectrum: when non-zero, both the continuum part (convolved along E_out via adaptive_convolve) and the Dirac-delta discrete-line content (MF12/MF13 discrete gammas, MF6 LAW=1 ND>0 discrete lines, MF6 LAW=2/3/4/5 two-body kinematic deltas) are folded with the same kernel and summed. Without broadening the deltas cannot be represented on a continuous energies_out grid; the default drops them with a warning. Accepted forms:

Value Behavior
None (default) Continuum returned as-is; discrete-line content dropped; one summary UserWarning per top-level call names the affected MTs.
0 Same as None but the warning is silenced. Use when the user has already acknowledged the drop and wants an unbroadened spectrum.
sigma_eV (positive float) Convolve the continuum with a Gaussian kernel of standard deviation sigma_eV AND fold each discrete delta with the same Gaussian; add the two contributions.
(kernel, width) Same as the positive-float case but with a user-provided kernel. kernel is a callable k(E_rel) -> density on the detuning axis, width is the kernel's effective support (used to size the convolution mesh).

broadening= is a per-call physics knob, not a run-time policy — different queries on the same file want different kernels, so it lives on the signature rather than on RunOptions. The related jit-safety knobs (broadening_mesh_bounds, broadening_window_kernel_widths) stay on RunOptions because they describe the compile-time shape of the convolution mesh, not the physics of the kernel.

Examples

Nine runnable examples in examples/:

File What it shows
01_inspect_file.py discover what is in a file
02_reaction_xs.py cross sections of named channels with consistency check
03_particle_production_xs.py secondary-particle production from Fe-56
04_residual_production_isomers.py Co-58g/m and Co-60g/m via (n,2n) and (n,gamma)
05_emission_spectra_14mev.py classic 14 MeV neutron emission spectrum from U-238
06_ddx_uranium_14mev.py double-differential cross section heatmap
07_photonuclear_residuals.py (g,Nn) cascade on Au-197
08_policies_and_broadening.py the RunOptions policy knobs and the broadening= Gaussian folder
09_isomer_introspection.py enumerate declared residuals and isomer states before querying

Examples 1-2 use a small file shipped under tests/data/. Examples 3-9 each include the wget command to fetch the JENDL-5 file(s) they need.

Known limitations

  • Resonance reconstruction defaults to on. Every runtime policy lives on RunOptions (passed via a keyword-only options= argument to every get_* XS API): options=RunOptions(include_resonance=False) opts out and returns raw MF3. The default RunOptions() has include_resonance=True and composes the resonance reconstruction on top of the MF3 background per the ENDF-6 additive convention. Raw MF3 for evaluations that store the resolved-resonance region (RRR) as a subtractive background is not the physical cross section and can be negative (e.g. JENDL-5 Cu-63 MT1/MT2 tabulate -0.9 barn at thermal energies); when include_resonance=False, one summary UserWarning per call names the affected MTs and RRR bounds, and the resonance_range policy on RunOptions controls what gets written for the in-RRR points ('warn' default, 'warn_nan', 'nan', 'raise'). Supported formalisms: LRU=1 LRF=2 MLBW, LRU=1 LRF=3 Reich-Moore, LRU=1 LRF=7 R-Matrix Limited (KRM=3, KRL=0, IFG=0, NRO=0, KBK=0, KPS=0), and LRU=2 LRF=2 URR (Case C, INT=2) with Gauss-Legendre (default) or Ross-10 fluctuation-integral quadrature (set via RunOptions(urr_quadrature=...)). Unsupported ranges (Adler-Adler LRF=4, LRF=7 with KRM≠3 or with KBK/KPS/IFG/NRO out of range, URR with non-INT=2 tables) contribute zero and a UserWarning names the specific formalism. All backends supported via RunOptions(backend=...) with 'auto' (default), 'numpy', 'numba', or 'jax'; JAX propagates jax.grad to file-side ER / Γn / Γγ / Γf leaves. For files that pre-process to a full PENDF (e.g. NJOY RECONR output), pass the PENDF file in with options=RunOptions(include_resonance=False).
  • Aggregate-reaction sum-MT queries under-count on sparse files. get_reaction_xs("(n,n)") resolves to MT4 (inelastic-scattering sum over MT51..90). The admission heuristic drops the parent MT4 as soon as any child MT51..90 carries detailed MF4/5/6 distributions -- correct on well-formed evaluations where the full discrete-level series is populated, avoiding double-counting. On files with sparse discrete-level enumeration where some child MT has an MF3 cross section but no MF4/5/6/12/13 detail, that child's contribution is silently missed by the query (parent is dropped in favour of children, and the missing child falls through the escape hatch because its ancestor MT4 IS in MF3). Rare in modern ENDF/B-VIII, JEFF-4, TENDL-2021, JENDL-5 evaluations that populate the full MT51..90 series. When the pathology hits, one summary UserWarning per (file, parent) is emitted naming the missed children; the numeric answer is unchanged. Query the parent MT directly (bypasses the heuristic) or ask for the missing child MTs individually to recover the missing contribution.
  • MT5 catch-all rescue applies only to unique-path MTs. When an evaluation packages a residual channel into MF6/MT5 (the "any other" catch-all) instead of the specific MT for that residual, get_reaction_xs and get_residual_production_xs route the MT5 contribution to the specific MT so the requested reaction is not silently zero. The routing only fires when the specific MT is a unique path to its residual, meaning the residual is unshared with any other MT: gamma emission (MT102), single-proton emission (MT103), and neutron multiplication with mult >= 2 (MT16 (n,2n), MT17 (n,3n), etc.). Deuteron (MT104), triton (MT105), He-3 (MT106) and alpha (MT107) emissions are not rescued from MT5 because their residual ZA is also produced by multi-particle-exit MTs (MT28 (n,np) shares MT104's residual; MT32 (n,nd) and MT41 (n,2np) share MT105's; MT44 (n,n2p) and MT115 (n,pd) share MT106's; MT34 (n,n3He), MT116 (n,pt), MT183 (n,npd) and MT190 (n,2n2p) share MT107's), and lumping the full MT5 catch-all onto the single-ejectile MT would over-count the reaction whenever the file also folds those multi-particle paths into the same catch-all. Also not rescued: discrete-level scattering MTs (51..90, 601..648, 651..699, 701..748, 751..798, 801..848, 851..898), continuum-channel MTs (91, 649, 699, 749, 799, 849, 899), MT4 for a neutron projectile (single-neutron ejectile shared with elastic MT2), or the particle-production sum MTs (201..207). Files that carry those reactions only through MT5 return zero for the specific-MT query with no warning -- an MT5 catch-all cannot be uniquely apportioned across discrete levels, a single-neutron ejectile, or a composite-particle ejectile whose residual is shared with other exit channels. Ask for MT5 directly (or use get_residual_production_xs for the specific residual, or check get_available_reactions first) if the file evaluation uses an unenumerated catch-all.
  • DDX drops kinematic-delta channels unless broadened. The double-differential API cannot represent elastic and discrete-level inelastic channels on a continuous Eout grid (their outgoing energy is a Dirac delta at E' = E'_kin(mu, E_in)). When called with broadening=None (the default), the API skips those channels and emits a UserWarning listing the dropped MTs and pointing at the broadening=sigma_eV argument that folds each delta into a finite-width kernel that plots on the grid. They also appear in the 1D dσ/dE spectrum as sharp peaks.
  • sigma above the file's Ein mesh. By default, get_reaction_xs and the other get_* XS APIs fill above-range incident energies with NaN and emit one summary UserWarning per call. Configure via the above_range policy on RunOptions (options=RunOptions(above_range='nan')); accepted values are 'warn_nan' (default), 'nan', 'warn_zero', 'zero', 'raise'.
  • Unimplemented representations raise NotImplementedError: MF14 LTT=2 (tabulated photon angular, blocked upstream in endf_parserpy's recipe). MF6 LAW=3 (two-body isotropic in CM), LAW=4 (recoil), and LAW=5 (charged-particle elastic with phase shift): angular distributions are supported via the per-LAW reconstructions, but their continuous double-differential path (compute_dist2d_from_subsec) raises because the outgoing energy for these laws is a Dirac delta pinned by two-body kinematics, not a tabulated (E', mu) distribution. The DDX pipeline accepts LAW=2/3/4/5 subsections and folds the kinematic delta with a user broadening= kernel when the caller supplies one; without broadening=, those channels drop with a UserWarning (see the DDX kinematic-delta note above). MF6 LAW=5 scope: nuclear-amplitude Legendre LTP=1 for both LIDP=0 (distinguishable particles) and LIDP=1 (identical particles, p+p via manual eq. 6.14 with the eq. 6.10 Rutherford formula), plus the LIDP=0 tabulated LTP in {12, 14, 15} nuclear-plus-interference forms (manual eq. 6.19-6.20), in both the stored CM frame and after a two-body elastic CM-to-LAB conversion. LTP=2 (residual-XS Legendre expansion) and the hypothetical LIDP=1 + tabulated-LTP combination (not used in any neutron-adjacent corpus file) still raise.
  • Stubs. endf_userpy/discrete_quantities.py and endf_userpy/translation.py are work-in-progress sketches; do not rely on them.

See CONTRIBUTING.md for the testing conventions and per-representation coverage table.

Filing issues

github.com/IAEA-NDS/endf-userpy/issues

endf-userpy is distributed under the MIT license, see the LICENSE file for details.

Nothing in this license shall be construed as a waiver, either express or implied, of any of the privileges and immunities accorded to the IAEA by its Member States.

Copyright (c) 2026 International Atomic Energy Agency

Metadata

Release files for endf-userpy 0.1.0a6

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

Source distribution (sdist)

Source distribution for endf-userpy 0.1.0a6
File Size Uploaded Provenance
endf_userpy-0.1.0a6.tar.gz 1.4 MB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for endf-userpy 0.1.0a6
File
endf_userpy-0.1.0a6-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
endf_userpy-0.1.0a6-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
endf_userpy-0.1.0a6-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
endf_userpy-0.1.0a6-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
endf_userpy-0.1.0a6-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
endf_userpy-0.1.0a6-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
endf_userpy-0.1.0a6-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
endf_userpy-0.1.0a6-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
endf_userpy-0.1.0a6-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
endf_userpy-0.1.0a6-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
endf_userpy-0.1.0a6-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
endf_userpy-0.1.0a6-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
endf_userpy-0.1.0a6-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
endf_userpy-0.1.0a6-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
endf_userpy-0.1.0a6-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
endf_userpy-0.1.0a6-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
endf_userpy-0.1.0a6-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
endf_userpy-0.1.0a6-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details
endf_userpy-0.1.0a6-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
endf_userpy-0.1.0a6-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details

Total release size: 25.8 MB

Release files / endf_userpy-0.1.0a6.tar.gz

Download URL endf_userpy-0.1.0a6.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
b2afb2528adfe10d3d4b15db8e5444dcd0419052d7b4d6a4128c27a729940b12
BLAKE2b-256 checksum
How to use checksums
9b30fe2c425e9cb4248f07c271738ef5eb8ebccb3c5dd5dcce26a55f238894f7
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp313-cp313-win_amd64.whl

Download URL endf_userpy-0.1.0a6-cp313-cp313-win_amd64.whl
Size 1.8 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
2960ad3e7937bfd9ba7b1fe5888d2722efd3ffaf0667d338145e893ccf98f7f1
BLAKE2b-256 checksum
How to use checksums
d147111eb2ddae277c4c848c29509f004b3148c6064d9b6602b2013b563676a7
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL endf_userpy-0.1.0a6-cp313-cp313-manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0b1e9c329604604b5bb7581e845f3abfa693be726b3af57f2e16a4c845406b0f
BLAKE2b-256 checksum
How to use checksums
dcb266138f4a4a7bef5719cf5ba617ac771ee3d8f70f0ee82c07a3c0bd5b38c3
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp313-cp313-macosx_11_0_arm64.whl

Download URL endf_userpy-0.1.0a6-cp313-cp313-macosx_11_0_arm64.whl
Size 664.4 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
55ec47e1a8fab23709e9cb09998f0870ebdfaf87d832f64eb5377ad802e7ce87
BLAKE2b-256 checksum
How to use checksums
a2d6dc5d2eb7f89267e9374e5ca3eb66a6c54bbb90d3586e0f7095e04a445792
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp313-cp313-macosx_10_13_x86_64.whl

Download URL endf_userpy-0.1.0a6-cp313-cp313-macosx_10_13_x86_64.whl
Size 668.1 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
3432799b2c1aab13aba65167e2c92c9aa858676072b8e615604fe81fe0d105fb
BLAKE2b-256 checksum
How to use checksums
1b31ccfb40943fe97cf4f523bc745a57a0802a8a4f3451a45a50335611526da9
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp312-cp312-win_amd64.whl

Download URL endf_userpy-0.1.0a6-cp312-cp312-win_amd64.whl
Size 1.8 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
cd1ae10f64b7c48554fcd3b62aac874a666f0365c31d5939854414861d7dcbb5
BLAKE2b-256 checksum
How to use checksums
56c8c0a7c9ee20d85e067e9c2dcf078d1b03e9cdec1a680b2fa46e4b84094bd9
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL endf_userpy-0.1.0a6-cp312-cp312-manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
76d1ab526f013aeb35767ad0fa58572e5388b13376fbeeeab1b168ff9861d73d
BLAKE2b-256 checksum
How to use checksums
ed6097e730acbc9384098dd04f24b7acbf621517ba4ba161f787294fe79dc6dc
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp312-cp312-macosx_11_0_arm64.whl

Download URL endf_userpy-0.1.0a6-cp312-cp312-macosx_11_0_arm64.whl
Size 664.5 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b24a929a0e8ef1975ffd7dab762c9e66af17fbefcf66752efc45996281e9437a
BLAKE2b-256 checksum
How to use checksums
2583e640f26992830d9b8ea3292594d91681b2a8ffcd2f20304be41239e5e9f4
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp312-cp312-macosx_10_13_x86_64.whl

Download URL endf_userpy-0.1.0a6-cp312-cp312-macosx_10_13_x86_64.whl
Size 668.1 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
13515ee46a39a55a0d178c87fbb66c63ad04b55272a82d61342d05d9a81ad63a
BLAKE2b-256 checksum
How to use checksums
102a33381837d4bceb4b19d0c31679e03ac918fe76094ebffee85824cd349fc6
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp311-cp311-win_amd64.whl

Download URL endf_userpy-0.1.0a6-cp311-cp311-win_amd64.whl
Size 1.8 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
67125cabd721d284ee4a3b5a1665b70a1bd1b96e3064f7e2e1e72ab13d4fa4b0
BLAKE2b-256 checksum
How to use checksums
a4a8506720c22b6b523a0c268713673f259655969d6eb642168ed8b98e56eebe
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL endf_userpy-0.1.0a6-cp311-cp311-manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0e480cffe452a5aed7a1daee96dcd3b2541f6b5afde39c90da2fbdee7e859583
BLAKE2b-256 checksum
How to use checksums
29504d0e89048cf9ac6e6c093340144059ff3d9df97c30e736dab3c6e7b5cbb4
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp311-cp311-macosx_11_0_arm64.whl

Download URL endf_userpy-0.1.0a6-cp311-cp311-macosx_11_0_arm64.whl
Size 663.9 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4396263e7a226bf67a58c45fbd2ab737ae928874d59a46b7fdac43a3778bd238
BLAKE2b-256 checksum
How to use checksums
938c3a6e5f02094429dfb56619816b59fc1d747274beafaad06e85f87a6f4476
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp311-cp311-macosx_10_9_x86_64.whl

Download URL endf_userpy-0.1.0a6-cp311-cp311-macosx_10_9_x86_64.whl
Size 667.3 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
3f721a8e28cdc87436a4acc2f65983f0c8fbb44c4eff210c2d967f32d69b87e2
BLAKE2b-256 checksum
How to use checksums
b405f6355ec6f745ea121c014589f408d45590de34c9cdfafa8a5d3eb00297e5
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp310-cp310-win_amd64.whl

Download URL endf_userpy-0.1.0a6-cp310-cp310-win_amd64.whl
Size 1.8 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
3ac813406189ed650ac0637463d6eb9682599e660b5d0902d8aceefb6208b541
BLAKE2b-256 checksum
How to use checksums
39e30bbf03979bfd98035eb85f0e8a10d7bf49dbc92eb8000365d175e7ef72ba
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL endf_userpy-0.1.0a6-cp310-cp310-manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f6e7eb2218468834c6959ce8d99d17155864f1b59f4f26932bf5ce2c1560f8fa
BLAKE2b-256 checksum
How to use checksums
6c69dd0b207ed645a7208af28d8b0722698609caa714fa6ee2be4f6d02324413
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp310-cp310-macosx_11_0_arm64.whl

Download URL endf_userpy-0.1.0a6-cp310-cp310-macosx_11_0_arm64.whl
Size 663.9 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
312ad1c29f5d0f1d98a399a097a9a62df260840093de4c8ee4af036c748a2e6d
BLAKE2b-256 checksum
How to use checksums
0fb4751090f6ca31509a59c208b90b93c614e61b53715252200ed6541b6639f8
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp310-cp310-macosx_10_9_x86_64.whl

Download URL endf_userpy-0.1.0a6-cp310-cp310-macosx_10_9_x86_64.whl
Size 667.4 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
6d3ffc287d2cce91d372a6e4221da016e072c847fd4388603ebf18814aaf086d
BLAKE2b-256 checksum
How to use checksums
4b733d7e4045e1c1d60184fe1608546ea7412cdfe0b132b065fd87e9e982ded7
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp39-cp39-win_amd64.whl

Download URL endf_userpy-0.1.0a6-cp39-cp39-win_amd64.whl
Size 1.8 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
fb9cbf258954412df3a43f5c559a46b3523a60e2867f9a1472c0943d1bb8641a
BLAKE2b-256 checksum
How to use checksums
d21930e4cfc0540c1b6c7d80b6bae066bed6493db881bf1c01f9802bad205136
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp39-cp39-manylinux_2_28_x86_64.whl

Download URL endf_userpy-0.1.0a6-cp39-cp39-manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c2759320743707658330d5ddda6fbc48b35b8aec2d190bcc9a326d00c620062c
BLAKE2b-256 checksum
How to use checksums
f61637b5d4cb52cee09b1406039f3cc8082edc773f25da37689a23ab15cab60a
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp39-cp39-macosx_11_0_arm64.whl

Download URL endf_userpy-0.1.0a6-cp39-cp39-macosx_11_0_arm64.whl
Size 663.7 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
407619023f32cae014877bb8cf9b7ff578302ea6c81271a26b8f7d81682f676f
BLAKE2b-256 checksum
How to use checksums
92cfe71889ec112be5c6f3b7259d8000fc7988fdad8c28202d59dba725c56208
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 Oct 7, 2026.

Transparency log

Release files / endf_userpy-0.1.0a6-cp39-cp39-macosx_10_9_x86_64.whl

Download URL endf_userpy-0.1.0a6-cp39-cp39-macosx_10_9_x86_64.whl
Size 667.4 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
32059fa5e69e1cf81135da18c109f59a6a08e109f94843829bc4b17cd85e2185
BLAKE2b-256 checksum
How to use checksums
ab029d2abe3d7ef23753477c3b079bab089a2e8685508f9ff2036d447b23c32a
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 Oct 7, 2026.

Transparency log

Security for endf-userpy 0.1.0a6

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.

Full provenance

All 21 files in this release have been uploaded with provenance metadata.

Select from 21 files

Attestation for endf_userpy-0.1.0a6.tar.gz

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 Oct 7, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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