CLI runner for Rhylthyme real-time program schedules
Project description
Rhylthyme CLI Runner
Command-line interface for validating and running Rhylthyme real-time program schedules.
Installation
From Source
# Clone the repository
git clone https://github.com/rhylthyme/rhylthyme-cli-runner.git
cd rhylthyme-cli-runner
# Install the package
pip install -e .
# Or install with development dependencies
pip install -e ".[dev]"
From PyPI (when published)
pip install rhylthyme-cli-runner
Quick Start
The Rhylthyme CLI provides commands for working with real-time program schedules defined using the Rhylthyme JSON or YAML schema.
Validate a Program
Validate a program file against the schema to ensure it's properly formatted:
# Validate a JSON or YAML program file
rhylthyme validate my_program.json
# Validate with verbose output
rhylthyme validate my_program.json --verbose
# Validate with JSON output for CI/scripting
rhylthyme validate my_program.json --json
# Validate in strict mode (requires all tasks in resourceConstraints)
rhylthyme validate my_program.json --strict
Run a Program
Run a program with an interactive terminal UI for monitoring and controlling execution:
# Run a program file
rhylthyme run examples/breakfast_schedule.json
# Run with automatic start (no manual trigger needed)
rhylthyme run examples/breakfast_schedule.json --auto-start
# Run with a different time scale (2x faster)
rhylthyme run examples/breakfast_schedule.json --time-scale 2.0
# Run with a specific environment
rhylthyme run examples/breakfast_schedule.json --environment kitchen
# Run without validation (if you're sure the file is valid)
rhylthyme run examples/breakfast_schedule.json --no-validate
Optimize a Program
Create an optimized version of a program to reduce resource contention:
# Optimize a program and save to new file
rhylthyme plan examples/breakfast_schedule.json optimized_breakfast.json
# Optimize with verbose output
rhylthyme plan examples/breakfast_schedule.json optimized_breakfast.json --verbose
Work with Environments
List and validate environment catalogs:
# List all available environments
rhylthyme environments
# List environments in JSON format
rhylthyme environments --format json
# Validate all environment files
rhylthyme validate-environments
# Show information about a specific environment type
rhylthyme environment-info kitchen
Program File Examples
Simple Breakfast Schedule
{
"programId": "breakfast-schedule",
"name": "Breakfast Schedule",
"description": "Coordinated breakfast preparation",
"environmentType": "kitchen",
"startTrigger": {
"type": "manual"
},
"tracks": [
{
"trackId": "eggs",
"name": "Scrambled Eggs",
"steps": [
{
"stepId": "crack-eggs",
"name": "Crack and Whisk Eggs",
"startTrigger": {
"type": "programStart"
},
"duration": {
"type": "fixed",
"seconds": 60
}
}
]
}
],
"resourceConstraints": [
{
"task": "stove-burner",
"maxConcurrent": 2,
"description": "Maximum stove burners"
}
],
"version": "1.0.0"
}
Interactive UI Controls
When running a program, the interactive UI provides these controls:
- Space: Start/stop the program
- Enter: Trigger manual steps
- Arrow keys: Navigate between steps
- q: Quit the program
- r: Refresh the display
- s: Sort by different criteria
Command Reference
rhylthyme validate
Validates program files against the schema.
Options:
--schema PATH: Path to schema file (default: built-in schema)--verbose, -v: Show detailed validation information
rhylthyme run
Runs programs with interactive terminal UI.
Options:
--schema PATH: Path to schema file (default: built-in schema)-e, --environment TEXT: Environment ID to use--time-scale FLOAT: Time scale factor (default: 1.0)--validate / --no-validate: Validate before running (default: True)--auto-start: Automatically start without manual trigger
rhylthyme plan
Optimizes program schedules to reduce resource contention.
Options:
--verbose, -v: Show detailed planning information
rhylthyme environments
Lists available environment catalogs.
Options:
--format, -f: Output format (table, json, yaml)
rhylthyme validate-environments
Validates environment catalog files.
Options:
--environments-dir PATH: Directory containing environment files--verbose, -v: Show detailed validation information
rhylthyme environment-info
Shows information about a specific environment type.
Development
- Clone the repository
- Install development dependencies:
pip install -e ".[dev]" - Run tests:
pytest
License
Apache License 2.0
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 rhylthyme_cli_runner-0.1.0a0.tar.gz.
File metadata
- Download URL: rhylthyme_cli_runner-0.1.0a0.tar.gz
- Upload date:
- Size: 57.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94dffd430fe5e903815f481ae3fff87f78eff0d41273309518dd842d4f86bd41
|
|
| MD5 |
74b99692fb0f87da52523b553da6e174
|
|
| BLAKE2b-256 |
aaac34280f1ec20cca803cab1b11f2738a059f82b6b2e2e1c3f1a98a05e8a698
|
File details
Details for the file rhylthyme_cli_runner-0.1.0a0-py3-none-any.whl.
File metadata
- Download URL: rhylthyme_cli_runner-0.1.0a0-py3-none-any.whl
- Upload date:
- Size: 50.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46f32248755cc44f1e873e4fac5023d7ad4b759c0360166aa19c013eb165c87e
|
|
| MD5 |
08ef5e20177fe534f597e3393d92b464
|
|
| BLAKE2b-256 |
fd866363475971fd2362d0c9bb859ae813faf45346686fd1fcf7029f1a6a32b3
|