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 onmainbut 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-userpygives 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.
From source (recommended for latest features)
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-onlyoptions=argument to everyget_*XS API):options=RunOptions(include_resonance=False)opts out and returns raw MF3. The defaultRunOptions()hasinclude_resonance=Trueand 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 barnat thermal energies); wheninclude_resonance=False, one summaryUserWarningper call names the affected MTs and RRR bounds, and theresonance_rangepolicy onRunOptionscontrols 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 viaRunOptions(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 aUserWarningnames the specific formalism. All backends supported viaRunOptions(backend=...)with'auto'(default),'numpy','numba', or'jax'; JAX propagatesjax.gradto 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 withoptions=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 summaryUserWarningper (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_xsandget_residual_production_xsroute 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 useget_residual_production_xsfor the specific residual, or checkget_available_reactionsfirst) 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
Eoutgrid (their outgoing energy is a Dirac delta atE' = E'_kin(mu, E_in)). When called withbroadening=None(the default), the API skips those channels and emits aUserWarninglisting the dropped MTs and pointing at thebroadening=sigma_eVargument that folds each delta into a finite-width kernel that plots on the grid. They also appear in the 1Ddσ/dEspectrum as sharp peaks. sigmaabove the file's Ein mesh. By default,get_reaction_xsand the otherget_*XS APIs fill above-range incident energies withNaNand emit one summaryUserWarningper call. Configure via theabove_rangepolicy onRunOptions(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 inendf_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 userbroadening=kernel when the caller supplies one; withoutbroadening=, those channels drop with aUserWarning(see the DDX kinematic-delta note above). MF6 LAW=5 scope: nuclear-amplitude LegendreLTP=1for bothLIDP=0(distinguishable particles) andLIDP=1(identical particles, p+p via manual eq. 6.14 with the eq. 6.10 Rutherford formula), plus theLIDP=0tabulatedLTP 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 hypotheticalLIDP=1+ tabulated-LTP combination (not used in any neutron-adjacent corpus file) still raise. - Stubs.
endf_userpy/discrete_quantities.pyandendf_userpy/translation.pyare 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
License and copyright
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| endf_userpy-0.1.0a6.tar.gz | 1.4 MB | With provenance | Details |
Built distributions (wheels)
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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logSecurity 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.
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 logA 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.