Metadata-Version: 2.1
Name: steam_sdk
Version: 2026.7.1
Summary: Source code for APIs for STEAM tools.
Home-page: https://gitlab.cern.ch/steam/steam_sdk
Author: STEAM Team
Author-email: steam-team@cern.ch
Keywords: STEAM,SDK,API,CERN
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: gmsh ==4.15.1
Requires-Dist: matplotlib ==3.8.3
Requires-Dist: Jinja2 ==3.1.3
Requires-Dist: numpy ==1.26.4
Requires-Dist: pandas ==2.2.1
Requires-Dist: pydantic ==2.6.4
Requires-Dist: ruamel.yaml ==0.18.6
Requires-Dist: scipy ==1.14.1
Requires-Dist: deepdiff ==6.7.1
Requires-Dist: h5py ==3.10.0
Requires-Dist: npTDMS ==1.8.0
Requires-Dist: ipython ==8.22.2
Requires-Dist: matplotlib-inline ==0.1.6
Requires-Dist: openpyxl ==3.1.2
Requires-Dist: pysoleno ==0.0.8
Requires-Dist: reportlab ==4.1.0
Requires-Dist: requests ==2.31.0
Requires-Dist: ruamel.yaml.clib ==0.2.8
Requires-Dist: seaborn ==0.13.2
Requires-Dist: STEAM-materials ==2025.6.1
Requires-Dist: steam-magnetic-calculations ==0.1
Requires-Dist: steam-roxie-parser ==2026.7.9
Requires-Dist: steam-tfm ==2026.7.0
Requires-Dist: svglib ==1.5.1
Requires-Dist: PyYAML ==6.0.1
Requires-Dist: steam-pysigma ==2026.7.2
Requires-Dist: pyarrow ==15.0.1
Requires-Dist: tqdm ==4.66.2
Requires-Dist: mplcursors ==0.5.3
Provides-Extra: all
Requires-Dist: gmsh ==4.15.1 ; extra == 'all'
Requires-Dist: matplotlib ==3.8.3 ; extra == 'all'
Requires-Dist: Jinja2 ==3.1.3 ; extra == 'all'
Requires-Dist: numpy ==1.26.4 ; extra == 'all'
Requires-Dist: pandas ==2.2.1 ; extra == 'all'
Requires-Dist: pydantic ==2.6.4 ; extra == 'all'
Requires-Dist: ruamel.yaml ==0.18.6 ; extra == 'all'
Requires-Dist: scipy ==1.14.1 ; extra == 'all'
Requires-Dist: deepdiff ==6.7.1 ; extra == 'all'
Requires-Dist: h5py ==3.10.0 ; extra == 'all'
Requires-Dist: npTDMS ==1.8.0 ; extra == 'all'
Requires-Dist: ipython ==8.22.2 ; extra == 'all'
Requires-Dist: matplotlib-inline ==0.1.6 ; extra == 'all'
Requires-Dist: openpyxl ==3.1.2 ; extra == 'all'
Requires-Dist: pysoleno ==0.0.8 ; extra == 'all'
Requires-Dist: reportlab ==4.1.0 ; extra == 'all'
Requires-Dist: requests ==2.31.0 ; extra == 'all'
Requires-Dist: ruamel.yaml.clib ==0.2.8 ; extra == 'all'
Requires-Dist: seaborn ==0.13.2 ; extra == 'all'
Requires-Dist: STEAM-materials ==2025.6.1 ; extra == 'all'
Requires-Dist: steam-magnetic-calculations ==0.1 ; extra == 'all'
Requires-Dist: steam-roxie-parser ==2026.7.9 ; extra == 'all'
Requires-Dist: steam-tfm ==2026.7.0 ; extra == 'all'
Requires-Dist: svglib ==1.5.1 ; extra == 'all'
Requires-Dist: PyYAML ==6.0.1 ; extra == 'all'
Requires-Dist: steam-pysigma ==2026.7.2 ; extra == 'all'
Requires-Dist: pyarrow ==15.0.1 ; extra == 'all'
Requires-Dist: tqdm ==4.66.2 ; extra == 'all'
Requires-Dist: mplcursors ==0.5.3 ; extra == 'all'
Requires-Dist: Markdown ==3.8 ; extra == 'all'
Requires-Dist: markdown-include ==0.8.1 ; extra == 'all'
Requires-Dist: MarkupSafe ==2.1.5 ; extra == 'all'
Requires-Dist: mkdocs ==1.6.1 ; extra == 'all'
Requires-Dist: mkdocs-autorefs ==1.4.1 ; extra == 'all'
Requires-Dist: mkdocs-git-revision-date-localized-plugin ==1.4.5 ; extra == 'all'
Requires-Dist: mkdocs-include-markdown-plugin ==7.1.5 ; extra == 'all'
Requires-Dist: mkdocs-material ==9.6.14 ; extra == 'all'
Requires-Dist: mkdocs-material-extensions ==1.3.1 ; extra == 'all'
Requires-Dist: mkdocstrings ==0.29.0 ; extra == 'all'
Requires-Dist: mkdocstrings-python ==1.16.10 ; extra == 'all'
Requires-Dist: Pygments ==2.17.2 ; extra == 'all'
Requires-Dist: pymdown-extensions ==10.7.1 ; extra == 'all'
Requires-Dist: coverage ==7.4.3 ; extra == 'all'
Requires-Dist: coverage-badge ==1.1.0 ; extra == 'all'
Requires-Dist: griffe ==1.7.3 ; extra == 'all'
Requires-Dist: unittest-xml-reporting ==4.0.0 ; extra == 'all'
Requires-Dist: unittest-parallel ==1.8.2 ; extra == 'all'
Requires-Dist: setuptools ==69.2.0 ; extra == 'all'
Requires-Dist: twine ==6.1.0 ; extra == 'all'
Provides-Extra: build
Requires-Dist: setuptools ==69.2.0 ; extra == 'build'
Requires-Dist: twine ==6.1.0 ; extra == 'build'
Provides-Extra: docs
Requires-Dist: Markdown ==3.8 ; extra == 'docs'
Requires-Dist: markdown-include ==0.8.1 ; extra == 'docs'
Requires-Dist: MarkupSafe ==2.1.5 ; extra == 'docs'
Requires-Dist: mkdocs ==1.6.1 ; extra == 'docs'
Requires-Dist: mkdocs-autorefs ==1.4.1 ; extra == 'docs'
Requires-Dist: mkdocs-git-revision-date-localized-plugin ==1.4.5 ; extra == 'docs'
Requires-Dist: mkdocs-include-markdown-plugin ==7.1.5 ; extra == 'docs'
Requires-Dist: mkdocs-material ==9.6.14 ; extra == 'docs'
Requires-Dist: mkdocs-material-extensions ==1.3.1 ; extra == 'docs'
Requires-Dist: mkdocstrings ==0.29.0 ; extra == 'docs'
Requires-Dist: mkdocstrings-python ==1.16.10 ; extra == 'docs'
Requires-Dist: Pygments ==2.17.2 ; extra == 'docs'
Requires-Dist: pymdown-extensions ==10.7.1 ; extra == 'docs'
Provides-Extra: test
Requires-Dist: coverage ==7.4.3 ; extra == 'test'
Requires-Dist: coverage-badge ==1.1.0 ; extra == 'test'
Requires-Dist: griffe ==1.7.3 ; extra == 'test'
Requires-Dist: unittest-xml-reporting ==4.0.0 ; extra == 'test'
Requires-Dist: unittest-parallel ==1.8.2 ; extra == 'test'

# STEAM_SDK

Source code for STEAM SDK and various APIs.
(Copyright © 2022, CERN, Switzerland. All rights reserved.)

# Folders Structure
![Alt text](documents/STEAM_SDK_folder_structure.svg)

# User settings
Important: Before running the tests, make sure to set up your user settings.

* The settings file must be located in the subfolder steam_sdk\tests
* The file must be called settings.username.yaml, where username is your user name in the machine on which you are running the analysis.
It is recommended to start by making a copy of the example settings.SYSTEM.yaml file.
* Note: It is not recommended to change other settings files within this project (some files are generated by the software).

# Documentation
https://steam-sdk.docs.cern.ch/

# Installation

pip install steam-sdk

# Test model library (`steam_models` submodule)

The magnet input models used by the tests live in the shared
[`steam_models`](https://gitlab.cern.ch/steam/steam_models) repository, included here as a
**git submodule** at `tests/_inputs_steam_models/` (magnets under `tests/_inputs_steam_models/magnets/<MAGNET>/input/`). It is
pinned to a specific `steam_models` commit and configured as a *shallow* submodule (only the pinned
revision is fetched, not the full history — `steam_models` is several GB).

## First checkout — get the submodule

Clone with the submodule in one step:

```bash
git clone --recurse-submodules ssh://git@gitlab.cern.ch:7999/steam/steam_sdk.git
```

Already cloned without it? Initialise it (shallow):

```bash
git submodule update --init --recommend-shallow tests/_inputs_steam_models
```

**PyCharm:** on first opening a project with a submodule, PyCharm asks *“Would you like to check out
the submodules?”* — click **Yes**. If dismissed, run **Git ▸ Update Project…** (Ctrl+T / ⌘T) and
PyCharm checks the submodule out to the pinned commit.

## Sync the submodule to the pinned commit

After pulling changes where someone moved the submodule pointer:

```bash
git submodule update --init --recommend-shallow tests/_inputs_steam_models
```

**PyCharm:** **Git ▸ Update Project…** (Ctrl+T / ⌘T) updates submodules to the pinned commit as part
of the project update.

## Update the submodule to the latest `steam_models`

To pull the newest magnet models (move the pin to the current `steam_models` `master`):

```bash
git submodule update --remote tests/_inputs_steam_models   # fetch steam_models master and check it out
git add steam_models                          # record the new pin in this repo
git commit -m "Bump steam_models submodule"
```

**PyCharm:** there is no one-click “advance submodule to latest” button — use the built-in **Terminal**
(Alt+F12) for the commands above, or open `steam_models/` as its own project, `git pull` there, then
commit the moved pointer in this repo (**Git ▸ Commit**, then **Git ▸ Push**).

> The submodule uses a **relative URL** (`../steam_models.git`), so it resolves over whatever transport
> you cloned this repo with (SSH for developers, HTTPS for CI) — no per-user URL tweaking.

# Links
STEAM website: https://cern.ch/steam
SDK section: https://steam.docs.cern.ch/tools/sdk/

# Contact
steam-team@cern.ch

# STEAM User Agreement
By using any software of the STEAM framework, users agree with this document:
https://edms.cern.ch/document/2024516
