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.
Versioned product surfaces (adapters are shared; interface factories are not):
| Surface | Import | Default formats |
|---|---|---|
V1 (top-level / jarvis_portal.v1) |
from jarvis_portal import create_entry_point_registry |
JSON, CSV, TSV, DAT, Wolfram, Text (input) |
| V2 | from jarvis_portal.v2 import create_entry_point_registry |
above + SLHA, xSLHA |
Shared IO implementations live under jarvis_portal.adapters. Do not call V1 factory
functions from V2 code (or vice versa).
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 and Wolfram nested entry reads/writes
- CSV, TSV, and DAT table reads/writes
- plain-text input placeholder replacement and upstream-file copying
- 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
Core dependencies include PyYAML, rich, pyslha, and xslha (no optional extras
needed for SLHA/xSLHA). Legacy install tags [slha] / [xslha] / [all] remain as empty aliases.
Development
python -m pip install -e ".[dev]"
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
- Table formats usage (CSV/TSV/DAT)
- Wolfram 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.
Metadata
Release files for Jarvis-HEP-Portal 1.5.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jarvis_hep_portal-1.5.2.tar.gz | 90.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jarvis_hep_portal-1.5.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 135.6 kB
Release files / jarvis_hep_portal-1.5.2.tar.gz
| Download URL | jarvis_hep_portal-1.5.2.tar.gz |
|---|---|
| Size | 90.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8caa864c125cd440d39b2f769b48bdbc2aa07b6ba7201a66e4546e64af6aabcf
|
|
BLAKE2b-256 checksum How to use checksums |
eb1f57b6aa64e9c8da3c564e418cb0f17d2075a8cc391e35119e114000e42dd8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.13
|
Release files / jarvis_hep_portal-1.5.2-py3-none-any.whl
| Download URL | jarvis_hep_portal-1.5.2-py3-none-any.whl |
|---|---|
| Size | 44.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a28152cb18d830e324c19dd1f5a82bc7cdc9fc58880bec34e790407dfe15becb
|
|
BLAKE2b-256 checksum How to use checksums |
64dfe84b6b59711fa0d5f2fee5256639e836a25a2eddc07473603e3f4484c93b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.13
|