Skip to main content

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

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.

Releasing

jptrel is a maintainer-local script, excluded from Git and distribution archives.

Record changes in CHANGELOG.md, then run from this checkout (replace the example version with the intended release):

./jptrel 1.5.3 --dry
./jptrel 1.5.3

--dry performs read-only source and release-note checks. The normal command requires a clean Git checkout, builds and checks the wheel and sdist, uploads to PyPI, refreshes the local version with python3 -m pip install -e ., and verifies the installed version. Only then does it commit the version, push the vX.Y.Z tag, and create a GitHub release with changelog notes. Configure Twine and gh authentication before publishing.

Metadata

Release files for Jarvis-HEP-Portal 1.5.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Jarvis-HEP-Portal 1.5.3
File Size Uploaded
jarvis_hep_portal-1.5.3.tar.gz 66.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Jarvis-HEP-Portal 1.5.3
File Interpreter ABI Platform
jarvis_hep_portal-1.5.3-py3-none-any.whl Python 3 none any Details

Total release size: 111.9 kB

Release files / jarvis_hep_portal-1.5.3.tar.gz

Download URL jarvis_hep_portal-1.5.3.tar.gz
Size 66.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0d26a5307c8e64070e12eb09bca81b06ce5d12e380188d385b24117f44b64cc1
BLAKE2b-256 checksum
How to use checksums
c7dc5a7cf930e4770875be2f147ac4774b61aedb5ddfe13aed0b6264887116c0
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.3-py3-none-any.whl

Download URL jarvis_hep_portal-1.5.3-py3-none-any.whl
Size 45.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9cc62bf7105bab04d8fedf30a6029f696e523cd39d006fcf0b00838f6e21f5be
BLAKE2b-256 checksum
How to use checksums
badbf2552a8cedb7f2334c72812030ad6e5f542ec3574f9de96ced20a0a4eb26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.13

Release history Release notifications | RSS feed

This release

1.5.3 This release

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.1

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page