pymkm.io.data_registry

Discovery and loading of default stopping power data files.

This module provides functions to:

  • Locate .txt files for specific ions and sources (e.g.`mstar_3_12`, geant4_11_3_0, fluka_2020_0)

  • List available sources and files

  • Load the elements.json periodic table lookup used throughout pyMKM

All file paths are resolved using importlib.resources, making them portable within installed packages or local development environments.

pymkm.io.data_registry.get_available_sources() List[str][source]

List all available data sources within the default data registry.

Looks for subdirectories under pymkm.data.defaults corresponding to different source categories.

Returns:

List of source names (subdirectory names).

Return type:

list[str]

Raises:

FileNotFoundError – If the base directory cannot be located.

pymkm.io.data_registry.get_default_txt_path(source: str, filename: str) str[source]

Locate a default .txt file for a given source and filename.

Tries first to resolve the file within the installed package. Falls back to a local relative path (for development use) if needed.

Parameters:
  • source (str) – The name of the data subdirectory (e.g., “ions”).

  • filename (str) – The name of the .txt file to locate.

Returns:

Absolute path to the located file.

Return type:

str

Raises:

FileNotFoundError – If the file cannot be found in either location.

pymkm.io.data_registry.list_available_defaults(source: str) List[str][source]

List all available .txt files under a given source folder.

Looks within pymkm.data.defaults.<source> and returns matching files.

Parameters:

source (str) – The name of the data source folder.

Returns:

List of filenames with .txt extension.

Return type:

list[str]

Raises:

FileNotFoundError – If the source folder or .txt files cannot be located.

pymkm.io.data_registry.load_lookup_table() Dict[str, Dict][source]

Load the chemical elements lookup table from a JSON file.

Tries to load elements.json from the installed package, with a fallback to a local relative file during development.

Returns:

Dictionary mapping element symbols to their properties.

Return type:

dict[str, dict]

Raises:
  • FileNotFoundError – If the elements.json file cannot be found.

  • json.JSONDecodeError – If the file content is not valid JSON.