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
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
discover_config
cli.JoshCLI.discover_config(config, timeout= None )
Discover configuration variables in a Josh script.
Parameters
config
DiscoverConfigConfig
Discover config configuration.
required
timeout
float | None
Timeout in seconds.
None
Returns
CLIResult
CLIResult with execution details.
inspect_exports
cli.JoshCLI.inspect_exports(config, timeout= None )
Inspect export paths in a Josh script.
Parameters
config
InspectExportsConfig
Inspect exports configuration.
required
timeout
float | None
Timeout in seconds.
None
Returns
ExportPaths
ExportPaths with parsed export file information.
Raises
RuntimeError
If command fails (includes exit code context).
inspect_jshd
cli.JoshCLI.inspect_jshd(config, timeout= None )
Inspect values in a JSHD file.
Parameters
config
InspectJshdConfig
Inspect JSHD configuration.
required
timeout
float | None
Timeout in seconds.
None
Returns
CLIResult
CLIResult with execution details.
preprocess
cli.JoshCLI.preprocess(config, timeout= None )
Preprocess geospatial data into JSHD format.
Parameters
config
PreprocessConfig
Preprocess configuration.
required
timeout
float | None
Timeout in seconds.
None
Returns
CLIResult
CLIResult with execution details.
run
cli.JoshCLI.run(config, timeout= None )
Execute a simulation.
Parameters
config
RunConfig
Run configuration.
required
timeout
float | None
Timeout in seconds.
None
Returns
CLIResult
CLIResult with execution details.
run_remote
cli.JoshCLI.run_remote(config, timeout= None )
Execute a simulation on Josh Cloud.
Parameters
config
RunRemoteConfig
Run remote configuration.
required
timeout
float | None
Timeout in seconds.
None
Returns
CLIResult
CLIResult with execution details.
validate
cli.JoshCLI.validate(config, timeout= None )
Validate a Josh script.
Parameters
config
ValidateConfig
Validate configuration.
required
timeout
float | None
Timeout in seconds.
None
Returns
CLIResult
CLIResult with execution details.