Welcome to endf-parserpy’s documentation!

endf-parserpy is a Python package for reading and writing ENDF files. This functionality in combination with Python’s powerful facilities for data handling enables you to perform various actions on ENDF files, such as:

  • Easily access any information

  • Modify, delete and insert data

  • Perform format validation

  • Convert from and to other file formats, such as JSON

  • Merge data from various ENDF-6 files into a single one

  • Compare ENDF-6 files with meaningful reporting on differences

  • Construct ENDF-6 files from scratch

Many of these actions can be performed via the command line. The support for the ENDF-6 format is comprehensive and some special NJOY output formats are also supported. The package has been tested on the various sublibraries of the major nuclear data libraries, such as ENDF/B, JEFF, and JENDL. Note that the package does not support several materials in a single ENDF-6 file.

Install endf-parserpy

python -m pip install endf-parserpy --upgrade

Note

Accelerated parsing relies on compiled C++ code. If a suitable binary wheel isn’t available for your platform, an attempt will be made to compile the C++ source files during installation, which may take up to ten minutes. You may reduce the optimization level to significantly reduce the compilation time at the expense of slower parsing by setting the INSTALL_ENDF_PARSERPY_CPP_OPTIM environment variable with a value between 0 (no optimization) to 3 (maximal optimization). The value 1 seems to be a good trade-off between compilation time and achievable parsing and writing speed. Under Linux and MacOS, the command would be

export INSTALL_ENDF_PARSERPY_CPP_OPTIM=1

and under Windows

set INSTALL_ENDF_PARSERPY_CPP_OPTIM=1

If you want to disable the compilation of the C++ modules, you can set the environment variable INSTALL_ENDF_PARSERPY_CPP to no before executing the pip install command.

Note

The package is still evolving and will be extended with convenience functions to enhance the user experience. You can always check for updated versions on PyPI.

Resources