ARPES workflow engine with SPR-KKR, OSCARpes and ML polarization calibration
Project description
Sparkkflow
ARPES workflow engine with SPR-KKR, OSCARpes ingestion and ML polarization calibration.
Install
pip install -e . # core
pip install -e ".[ml]" # + torch / scikit-learn
pip install -e ".[oscarpes]" # + OSCARpes ingestion
pip install -e ".[dev]" # + pytest / ruff / mypy
CLI
sparkkflow doctor # check tooling
sparkkflow scan --energy-range 20 50 --dicho # run an ARPES scan
sparkkflow generate --energy-range 20 100 --fine-grid
sparkkflow train --model-path pol.pth
sparkkflow predict --model-path pol.pth --energy 30
sparkkflow monitor --job-ids 12,34 --continuous
Library
from sparkkflow.config import manager
from sparkkflow.scans import scans
from sparkkflow.jobs import submitter
from sparkkflow.ml import pipeline, train, predict
from sparkkflow.monitor import watch, status
cfg = manager("config.yaml").config
runner = scans(scheduler_type=cfg.scheduler.default_type, ml_mode=False)
runner.run(energy_range=(20, 50), dicho=True)
Layout
sparkkflow/
__init__.py # public API surface
cli.py # `sparkkflow` console entry point
config.py # YAML loader, env overrides, validation
log.py # structured logging
jobs.py # SLURM / SGE submitter (`submitter`, `slurm`, `sge`)
scans.py # ARPES parameter scans (`scans`)
ml.py # PyTorch pipeline + train / predict
monitor.py # status polling and resubmission
plot.py # dichroism plotting
trcdad*.py # TR+CDAD utilities
calc_*.py # SPR-KKR calculators
atom_*.py # atomic-position scans
config.yaml # configuration template
examples/ # runnable demos
tests/ # pytest suite
Naming conventions
- All modules and public classes are lowercase, snake_case, ASCII.
- No
+,-, spaces, or version words likeenhancedin filenames. - One short responsibility per module name (
config,jobs,ml,scans).
Development
pytest -q
ruff check sparkkflow tests
mypy sparkkflow
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sparkkflow-2.0.0.tar.gz
(58.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sparkkflow-2.0.0.tar.gz.
File metadata
- Download URL: sparkkflow-2.0.0.tar.gz
- Upload date:
- Size: 58.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c624b8b65c579d1b910a1497d231aeda0203ca891a551244fdd3ae32d335b85
|
|
| MD5 |
1f7041e9efebfeb8955d9cafa050df6c
|
|
| BLAKE2b-256 |
002b948ffb8ad79183ac3a59d315727f49378d700223d32608c74b825e31b43c
|
File details
Details for the file sparkkflow-2.0.0-py3-none-any.whl.
File metadata
- Download URL: sparkkflow-2.0.0-py3-none-any.whl
- Upload date:
- Size: 45.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23a1cf66a5ad2988451915a77416da52a9abb6807d315488f8db95c9812c27c9
|
|
| MD5 |
ebc2d80503b933ff48be254ad24b102e
|
|
| BLAKE2b-256 |
e615f7763543198866d96edad4888a32d8ff424d1cf72c4eadcb5b9c0c758387
|