Skip to main content

ARPES workflow engine with SPR-KKR, OSCARpes and ML polarization calibration

Reason this release was yanked:

old format

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 like enhanced in filenames.
  • One short responsibility per module name (config, jobs, ml, scans).

Development

pytest -q
ruff check sparkkflow tests
mypy sparkkflow

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sparkkflow-0.1.0.tar.gz (40.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sparkkflow-0.1.0-py3-none-any.whl (43.3 kB view details)

Uploaded Python 3

File details

Details for the file sparkkflow-0.1.0.tar.gz.

File metadata

  • Download URL: sparkkflow-0.1.0.tar.gz
  • Upload date:
  • Size: 40.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for sparkkflow-0.1.0.tar.gz
Algorithm Hash digest
SHA256 94ba4bfc2cd2b9b185c7a9aa57e78e58f80e92df69c27303059e10b03bc97c2c
MD5 035c39649bfb0cff7249d4286694752d
BLAKE2b-256 703b33b97ab59385cc687c9467a3c32c2161e7fa6dd088929beb4b8392cd6f31

See more details on using hashes here.

File details

Details for the file sparkkflow-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sparkkflow-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 43.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for sparkkflow-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 48562fd5b50cc5d8c53167d0bfc128d8e7b6474227f0ea64de3f7ba9a2ec6b42
MD5 116e496f89e5bc4f52c9654d8dbf7582
BLAKE2b-256 d847fb61af1b5c6385365470384e50e3876279be21ba6f0b528c1f978ab1abb7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page