cli.JoshCLI

cli.JoshCLI(
    josh_jar=None,
    java_path='java',
    auto_download=True,
    working_dir=None,
    jar_dir=None,
)

Executes Josh CLI commands via subprocess.

This is a thin wrapper that builds command lines and runs them. No business logic - just CLI invocation.

Supports three jar modes: - Path: Use a specific jar file - JarMode.PROD: Use production jar from joshsim.org (default) - JarMode.DEV: Use development jar from joshsim.org - JarMode.LOCAL: Use local jar from jar/joshsim-fat.jar

Attributes

Name Type Description
josh_jar Path | JarMode | None Path to jar, JarMode enum, or None for default (PROD).
java_path str Path to java executable.
auto_download bool If True, download jars automatically if needed.
working_dir Path | None Working directory for command execution.

Examples

>>> cli = JoshCLI(josh_jar=Path("joshsim-fat.jar"))
>>> # Run a simulation
>>> result = cli.run(RunConfig(
...     script=Path("sim.josh"),
...     simulation="Main",
...     replicates=5,
... ))
>>> # Preprocess data
>>> result = cli.preprocess(PreprocessConfig(
...     script=Path("sim.josh"),
...     simulation="Main",
...     data_file=Path("temp.nc"),
...     variable="temperature",
...     units="K",
...     output=Path("temp.jshd"),
... ))

Methods

Name Description
discover_config Discover configuration variables in a Josh script.
inspect_exports Inspect export paths in a Josh script.
inspect_jshd Inspect values in a JSHD file.
preprocess Preprocess geospatial data into JSHD format.
run Execute a simulation.
run_remote Execute a simulation on Josh Cloud.
validate Validate a Josh script.

discover_config

cli.JoshCLI.discover_config(config, timeout=None)

Discover configuration variables in a Josh script.

Parameters

Name Type Description Default
config DiscoverConfigConfig Discover config configuration. required
timeout float | None Timeout in seconds. None

Returns

Name Type Description
CLIResult CLIResult with execution details.

inspect_exports

cli.JoshCLI.inspect_exports(config, timeout=None)

Inspect export paths in a Josh script.

Parameters

Name Type Description Default
config InspectExportsConfig Inspect exports configuration. required
timeout float | None Timeout in seconds. None

Returns

Name Type Description
ExportPaths ExportPaths with parsed export file information.

Raises

Name Type Description
RuntimeError If command fails (includes exit code context).

inspect_jshd

cli.JoshCLI.inspect_jshd(config, timeout=None)

Inspect values in a JSHD file.

Parameters

Name Type Description Default
config InspectJshdConfig Inspect JSHD configuration. required
timeout float | None Timeout in seconds. None

Returns

Name Type Description
CLIResult CLIResult with execution details.

preprocess

cli.JoshCLI.preprocess(config, timeout=None)

Preprocess geospatial data into JSHD format.

Parameters

Name Type Description Default
config PreprocessConfig Preprocess configuration. required
timeout float | None Timeout in seconds. None

Returns

Name Type Description
CLIResult CLIResult with execution details.

run

cli.JoshCLI.run(config, timeout=None)

Execute a simulation.

Parameters

Name Type Description Default
config RunConfig Run configuration. required
timeout float | None Timeout in seconds. None

Returns

Name Type Description
CLIResult CLIResult with execution details.

run_remote

cli.JoshCLI.run_remote(config, timeout=None)

Execute a simulation on Josh Cloud.

Parameters

Name Type Description Default
config RunRemoteConfig Run remote configuration. required
timeout float | None Timeout in seconds. None

Returns

Name Type Description
CLIResult CLIResult with execution details.

validate

cli.JoshCLI.validate(config, timeout=None)

Validate a Josh script.

Parameters

Name Type Description Default
config ValidateConfig Validate configuration. required
timeout float | None Timeout in seconds. None

Returns

Name Type Description
CLIResult CLIResult with execution details.