IO adapter registry and format backends for the Jarvis ecosystem
Project description
Jarvis-Portal
Jarvis-Portal is the standalone IO adapter and registry package for the Jarvis ecosystem.
It provides format-specific read/write behavior for scientific file formats used by Jarvis-HEP and related tools. The currently exposed format is JSON; SLHA, xSLHA, and future HEP calculator formats can be developed behind the registry until they are tested.
Jarvis-Portal is intended to serve YAML-driven Jarvis workflows through Jarvis-HEP. It does not own Jarvis-HEP YAML parsing or runtime workflow semantics.
Scope
Jarvis-Portal owns:
- format adapter registration and lookup
- JSON nested entry reads/writes
- future adapters for ROOT, HepMC, LHE, YODA, SPheno, MadGraph cards, and related HEP formats
Jarvis-HEP owns:
- YAML IO block parsing
- runtime path markers such as
&J,@PackID,@SampleID, and@Sdir - expression evaluation
- sample/runtime context
- save/copy/archive policy
- logger and IO manager integration
- deciding which variables are written or read
- plain file copy/save helpers that do not require format parsing
Quick Install
pip install Jarvis-HEP-Portal
Optional format extras:
pip install "Jarvis-HEP-Portal[slha]"
pip install "Jarvis-HEP-Portal[xslha]"
pip install "Jarvis-HEP-Portal[all]"
Development
python -m pip install -e ".[dev,all]"
python -m pytest
ruff check .
python -m build
Basic Usage
CLI:
jportal file
jportal man
jportal man json
jportal -h
jportal -v
jportal file is the only supported business CLI shape. It prints the observable dictionary itself as JSON. Utility exceptions are jportal man, jportal man <format>, -h/--help, and -v/--version.
Python:
from jarvis_portal import IOContext, create_default_registry
registry = create_default_registry()
adapter = registry.get("JSON", "input")
def evaluate_expression(expression, values):
if expression == "x * 2":
return values["x"] * 2
raise ValueError(expression)
context = IOContext(evaluate_expression=evaluate_expression)
observables = await adapter.write_input(
context,
{
"name": "params",
"path": "input.json",
"type": "JSON",
"actions": [
{
"type": "Dump",
"variables": [
{"name": "nested", "entry": "config.value", "expression": "x * 2"},
],
},
],
},
{"x": 1.0},
)
JSON adapter calls return the observable dictionary itself. For JSON input, plain dumped variables are written to the file; expression variables and saved file specs may contribute observables, matching Jarvis-HEP.
Documentation
- Docs index
- Development
- CLI
- Architecture
- Adapter authoring
- Format catalog
- JSON format usage
- Testing
- Release
- Contributing
Status
This package is in alpha development. Runtime behavior should stay small and adapter-focused so Jarvis-HEP can remain the owner of workflow semantics.
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
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 jarvis_hep_portal-1.2.0.tar.gz.
File metadata
- Download URL: jarvis_hep_portal-1.2.0.tar.gz
- Upload date:
- Size: 47.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
201def81a900344a75b1a81d42196d78500584915601442a66d09cfb7e7bbac3
|
|
| MD5 |
65008f53ec78c3b3a15f76662a01365e
|
|
| BLAKE2b-256 |
bee62cc8e1ecff10fe701a0476d91aab8bf0dc57e292fcda07987583ea8d458b
|
File details
Details for the file jarvis_hep_portal-1.2.0-py3-none-any.whl.
File metadata
- Download URL: jarvis_hep_portal-1.2.0-py3-none-any.whl
- Upload date:
- Size: 24.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b9c6a83cbe203b8e44f4af97563385c44da6e369c2ac51e108881c16a2dbfde
|
|
| MD5 |
6cf2505b6126653f899940e504686fcd
|
|
| BLAKE2b-256 |
ca4dd9470d1eb5fb4b712f7140b972b54b477c5bae2fe1f62e8d8150990975ae
|