rhylthyme-cli-runner 0.1.0a0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- rhylthyme_cli_runner-0.1.0a0/PKG-INFO +268 -0
- rhylthyme_cli_runner-0.1.0a0/README.md +209 -0
- rhylthyme_cli_runner-0.1.0a0/setup.cfg +4 -0
- rhylthyme_cli_runner-0.1.0a0/setup.py +89 -0
- rhylthyme_cli_runner-0.1.0a0/src/rhylthyme_cli_runner/__init__.py +15 -0
- rhylthyme_cli_runner-0.1.0a0/src/rhylthyme_cli_runner/cli.py +273 -0
- rhylthyme_cli_runner-0.1.0a0/src/rhylthyme_cli_runner/environment_icons.py +258 -0
- rhylthyme_cli_runner-0.1.0a0/src/rhylthyme_cli_runner/environment_loader.py +293 -0
- rhylthyme_cli_runner-0.1.0a0/src/rhylthyme_cli_runner/environment_schemas.py +443 -0
- rhylthyme_cli_runner-0.1.0a0/src/rhylthyme_cli_runner/program_planner.py +871 -0
- rhylthyme_cli_runner-0.1.0a0/src/rhylthyme_cli_runner/program_runner.py +2257 -0
- rhylthyme_cli_runner-0.1.0a0/src/rhylthyme_cli_runner/validate_program.py +457 -0
- rhylthyme_cli_runner-0.1.0a0/src/rhylthyme_cli_runner.egg-info/PKG-INFO +268 -0
- rhylthyme_cli_runner-0.1.0a0/src/rhylthyme_cli_runner.egg-info/SOURCES.txt +21 -0
- rhylthyme_cli_runner-0.1.0a0/src/rhylthyme_cli_runner.egg-info/dependency_links.txt +1 -0
- rhylthyme_cli_runner-0.1.0a0/src/rhylthyme_cli_runner.egg-info/entry_points.txt +2 -0
- rhylthyme_cli_runner-0.1.0a0/src/rhylthyme_cli_runner.egg-info/requires.txt +25 -0
- rhylthyme_cli_runner-0.1.0a0/src/rhylthyme_cli_runner.egg-info/top_level.txt +1 -0
- rhylthyme_cli_runner-0.1.0a0/tests/test_cli.py +235 -0
- rhylthyme_cli_runner-0.1.0a0/tests/test_example_validation.py +235 -0
- rhylthyme_cli_runner-0.1.0a0/tests/test_examples_integration.py +677 -0
- rhylthyme_cli_runner-0.1.0a0/tests/test_program_runner.py +327 -0
- rhylthyme_cli_runner-0.1.0a0/tests/test_validate_examples_ci.py +121 -0
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: rhylthyme-cli-runner
|
|
3
|
+
Version: 0.1.0a0
|
|
4
|
+
Summary: CLI runner for Rhylthyme real-time program schedules
|
|
5
|
+
Home-page: https://github.com/rhylthyme/rhylthyme-cli-runner
|
|
6
|
+
Author: Rhylthyme Team
|
|
7
|
+
Author-email: team@rhylthyme.org
|
|
8
|
+
Project-URL: Bug Reports, https://github.com/rhylthyme/rhylthyme-cli-runner/issues
|
|
9
|
+
Project-URL: Source, https://github.com/rhylthyme/rhylthyme-cli-runner
|
|
10
|
+
Project-URL: Documentation, https://github.com/rhylthyme/rhylthyme-cli-runner#readme
|
|
11
|
+
Keywords: real-time,scheduling,logistics,cli,validation
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
23
|
+
Requires-Python: >=3.8
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
Requires-Dist: click>=8.0.0
|
|
26
|
+
Requires-Dist: jsonschema>=4.0.0
|
|
27
|
+
Requires-Dist: pyyaml>=6.0
|
|
28
|
+
Requires-Dist: colorama>=0.4.0
|
|
29
|
+
Requires-Dist: rhylthyme-spec>=0.1.0-alpha
|
|
30
|
+
Provides-Extra: dev
|
|
31
|
+
Requires-Dist: pytest>=6.0.0; extra == "dev"
|
|
32
|
+
Requires-Dist: pytest-cov>=2.10.0; extra == "dev"
|
|
33
|
+
Requires-Dist: pytest-mock>=3.0.0; extra == "dev"
|
|
34
|
+
Requires-Dist: pytest-xdist>=2.0.0; extra == "dev"
|
|
35
|
+
Requires-Dist: black>=21.0.0; extra == "dev"
|
|
36
|
+
Requires-Dist: flake8>=3.8.0; extra == "dev"
|
|
37
|
+
Requires-Dist: isort>=5.0.0; extra == "dev"
|
|
38
|
+
Requires-Dist: mypy>=0.800; extra == "dev"
|
|
39
|
+
Requires-Dist: responses>=0.12.0; extra == "dev"
|
|
40
|
+
Requires-Dist: freezegun>=1.0.0; extra == "dev"
|
|
41
|
+
Provides-Extra: docs
|
|
42
|
+
Requires-Dist: sphinx>=4.0.0; extra == "docs"
|
|
43
|
+
Requires-Dist: sphinx-rtd-theme>=1.0.0; extra == "docs"
|
|
44
|
+
Provides-Extra: build
|
|
45
|
+
Requires-Dist: build>=0.7.0; extra == "build"
|
|
46
|
+
Requires-Dist: twine>=3.4.0; extra == "build"
|
|
47
|
+
Dynamic: author
|
|
48
|
+
Dynamic: author-email
|
|
49
|
+
Dynamic: classifier
|
|
50
|
+
Dynamic: description
|
|
51
|
+
Dynamic: description-content-type
|
|
52
|
+
Dynamic: home-page
|
|
53
|
+
Dynamic: keywords
|
|
54
|
+
Dynamic: project-url
|
|
55
|
+
Dynamic: provides-extra
|
|
56
|
+
Dynamic: requires-dist
|
|
57
|
+
Dynamic: requires-python
|
|
58
|
+
Dynamic: summary
|
|
59
|
+
|
|
60
|
+
# Rhylthyme CLI Runner
|
|
61
|
+
|
|
62
|
+
Command-line interface for validating and running Rhylthyme real-time program schedules.
|
|
63
|
+
|
|
64
|
+
## Installation
|
|
65
|
+
|
|
66
|
+
### From Source
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# Clone the repository
|
|
70
|
+
git clone https://github.com/rhylthyme/rhylthyme-cli-runner.git
|
|
71
|
+
cd rhylthyme-cli-runner
|
|
72
|
+
|
|
73
|
+
# Install the package
|
|
74
|
+
pip install -e .
|
|
75
|
+
|
|
76
|
+
# Or install with development dependencies
|
|
77
|
+
pip install -e ".[dev]"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### From PyPI (when published)
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pip install rhylthyme-cli-runner
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Quick Start
|
|
87
|
+
|
|
88
|
+
The Rhylthyme CLI provides commands for working with real-time program schedules defined using the Rhylthyme JSON or YAML schema.
|
|
89
|
+
|
|
90
|
+
### Validate a Program
|
|
91
|
+
|
|
92
|
+
Validate a program file against the schema to ensure it's properly formatted:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# Validate a JSON or YAML program file
|
|
96
|
+
rhylthyme validate my_program.json
|
|
97
|
+
|
|
98
|
+
# Validate with verbose output
|
|
99
|
+
rhylthyme validate my_program.json --verbose
|
|
100
|
+
|
|
101
|
+
# Validate with JSON output for CI/scripting
|
|
102
|
+
rhylthyme validate my_program.json --json
|
|
103
|
+
|
|
104
|
+
# Validate in strict mode (requires all tasks in resourceConstraints)
|
|
105
|
+
rhylthyme validate my_program.json --strict
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Run a Program
|
|
109
|
+
|
|
110
|
+
Run a program with an interactive terminal UI for monitoring and controlling execution:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# Run a program file
|
|
114
|
+
rhylthyme run examples/breakfast_schedule.json
|
|
115
|
+
|
|
116
|
+
# Run with automatic start (no manual trigger needed)
|
|
117
|
+
rhylthyme run examples/breakfast_schedule.json --auto-start
|
|
118
|
+
|
|
119
|
+
# Run with a different time scale (2x faster)
|
|
120
|
+
rhylthyme run examples/breakfast_schedule.json --time-scale 2.0
|
|
121
|
+
|
|
122
|
+
# Run with a specific environment
|
|
123
|
+
rhylthyme run examples/breakfast_schedule.json --environment kitchen
|
|
124
|
+
|
|
125
|
+
# Run without validation (if you're sure the file is valid)
|
|
126
|
+
rhylthyme run examples/breakfast_schedule.json --no-validate
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Optimize a Program
|
|
130
|
+
|
|
131
|
+
Create an optimized version of a program to reduce resource contention:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
# Optimize a program and save to new file
|
|
135
|
+
rhylthyme plan examples/breakfast_schedule.json optimized_breakfast.json
|
|
136
|
+
|
|
137
|
+
# Optimize with verbose output
|
|
138
|
+
rhylthyme plan examples/breakfast_schedule.json optimized_breakfast.json --verbose
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Work with Environments
|
|
142
|
+
|
|
143
|
+
List and validate environment catalogs:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
# List all available environments
|
|
147
|
+
rhylthyme environments
|
|
148
|
+
|
|
149
|
+
# List environments in JSON format
|
|
150
|
+
rhylthyme environments --format json
|
|
151
|
+
|
|
152
|
+
# Validate all environment files
|
|
153
|
+
rhylthyme validate-environments
|
|
154
|
+
|
|
155
|
+
# Show information about a specific environment type
|
|
156
|
+
rhylthyme environment-info kitchen
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Program File Examples
|
|
160
|
+
|
|
161
|
+
### Simple Breakfast Schedule
|
|
162
|
+
|
|
163
|
+
```json
|
|
164
|
+
{
|
|
165
|
+
"programId": "breakfast-schedule",
|
|
166
|
+
"name": "Breakfast Schedule",
|
|
167
|
+
"description": "Coordinated breakfast preparation",
|
|
168
|
+
"environmentType": "kitchen",
|
|
169
|
+
"startTrigger": {
|
|
170
|
+
"type": "manual"
|
|
171
|
+
},
|
|
172
|
+
"tracks": [
|
|
173
|
+
{
|
|
174
|
+
"trackId": "eggs",
|
|
175
|
+
"name": "Scrambled Eggs",
|
|
176
|
+
"steps": [
|
|
177
|
+
{
|
|
178
|
+
"stepId": "crack-eggs",
|
|
179
|
+
"name": "Crack and Whisk Eggs",
|
|
180
|
+
"startTrigger": {
|
|
181
|
+
"type": "programStart"
|
|
182
|
+
},
|
|
183
|
+
"duration": {
|
|
184
|
+
"type": "fixed",
|
|
185
|
+
"seconds": 60
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
]
|
|
189
|
+
}
|
|
190
|
+
],
|
|
191
|
+
"resourceConstraints": [
|
|
192
|
+
{
|
|
193
|
+
"task": "stove-burner",
|
|
194
|
+
"maxConcurrent": 2,
|
|
195
|
+
"description": "Maximum stove burners"
|
|
196
|
+
}
|
|
197
|
+
],
|
|
198
|
+
"version": "1.0.0"
|
|
199
|
+
}
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## Interactive UI Controls
|
|
203
|
+
|
|
204
|
+
When running a program, the interactive UI provides these controls:
|
|
205
|
+
|
|
206
|
+
- **Space**: Start/stop the program
|
|
207
|
+
- **Enter**: Trigger manual steps
|
|
208
|
+
- **Arrow keys**: Navigate between steps
|
|
209
|
+
- **q**: Quit the program
|
|
210
|
+
- **r**: Refresh the display
|
|
211
|
+
- **s**: Sort by different criteria
|
|
212
|
+
|
|
213
|
+
## Command Reference
|
|
214
|
+
|
|
215
|
+
### `rhylthyme validate`
|
|
216
|
+
|
|
217
|
+
Validates program files against the schema.
|
|
218
|
+
|
|
219
|
+
**Options:**
|
|
220
|
+
- `--schema PATH`: Path to schema file (default: built-in schema)
|
|
221
|
+
- `--verbose, -v`: Show detailed validation information
|
|
222
|
+
|
|
223
|
+
### `rhylthyme run`
|
|
224
|
+
|
|
225
|
+
Runs programs with interactive terminal UI.
|
|
226
|
+
|
|
227
|
+
**Options:**
|
|
228
|
+
- `--schema PATH`: Path to schema file (default: built-in schema)
|
|
229
|
+
- `-e, --environment TEXT`: Environment ID to use
|
|
230
|
+
- `--time-scale FLOAT`: Time scale factor (default: 1.0)
|
|
231
|
+
- `--validate / --no-validate`: Validate before running (default: True)
|
|
232
|
+
- `--auto-start`: Automatically start without manual trigger
|
|
233
|
+
|
|
234
|
+
### `rhylthyme plan`
|
|
235
|
+
|
|
236
|
+
Optimizes program schedules to reduce resource contention.
|
|
237
|
+
|
|
238
|
+
**Options:**
|
|
239
|
+
- `--verbose, -v`: Show detailed planning information
|
|
240
|
+
|
|
241
|
+
### `rhylthyme environments`
|
|
242
|
+
|
|
243
|
+
Lists available environment catalogs.
|
|
244
|
+
|
|
245
|
+
**Options:**
|
|
246
|
+
- `--format, -f`: Output format (table, json, yaml)
|
|
247
|
+
|
|
248
|
+
### `rhylthyme validate-environments`
|
|
249
|
+
|
|
250
|
+
Validates environment catalog files.
|
|
251
|
+
|
|
252
|
+
**Options:**
|
|
253
|
+
- `--environments-dir PATH`: Directory containing environment files
|
|
254
|
+
- `--verbose, -v`: Show detailed validation information
|
|
255
|
+
|
|
256
|
+
### `rhylthyme environment-info`
|
|
257
|
+
|
|
258
|
+
Shows information about a specific environment type.
|
|
259
|
+
|
|
260
|
+
## Development
|
|
261
|
+
|
|
262
|
+
1. Clone the repository
|
|
263
|
+
2. Install development dependencies: `pip install -e ".[dev]"`
|
|
264
|
+
3. Run tests: `pytest`
|
|
265
|
+
|
|
266
|
+
## License
|
|
267
|
+
|
|
268
|
+
Apache License 2.0
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# Rhylthyme CLI Runner
|
|
2
|
+
|
|
3
|
+
Command-line interface for validating and running Rhylthyme real-time program schedules.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
### From Source
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Clone the repository
|
|
11
|
+
git clone https://github.com/rhylthyme/rhylthyme-cli-runner.git
|
|
12
|
+
cd rhylthyme-cli-runner
|
|
13
|
+
|
|
14
|
+
# Install the package
|
|
15
|
+
pip install -e .
|
|
16
|
+
|
|
17
|
+
# Or install with development dependencies
|
|
18
|
+
pip install -e ".[dev]"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### From PyPI (when published)
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
pip install rhylthyme-cli-runner
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Quick Start
|
|
28
|
+
|
|
29
|
+
The Rhylthyme CLI provides commands for working with real-time program schedules defined using the Rhylthyme JSON or YAML schema.
|
|
30
|
+
|
|
31
|
+
### Validate a Program
|
|
32
|
+
|
|
33
|
+
Validate a program file against the schema to ensure it's properly formatted:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Validate a JSON or YAML program file
|
|
37
|
+
rhylthyme validate my_program.json
|
|
38
|
+
|
|
39
|
+
# Validate with verbose output
|
|
40
|
+
rhylthyme validate my_program.json --verbose
|
|
41
|
+
|
|
42
|
+
# Validate with JSON output for CI/scripting
|
|
43
|
+
rhylthyme validate my_program.json --json
|
|
44
|
+
|
|
45
|
+
# Validate in strict mode (requires all tasks in resourceConstraints)
|
|
46
|
+
rhylthyme validate my_program.json --strict
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Run a Program
|
|
50
|
+
|
|
51
|
+
Run a program with an interactive terminal UI for monitoring and controlling execution:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Run a program file
|
|
55
|
+
rhylthyme run examples/breakfast_schedule.json
|
|
56
|
+
|
|
57
|
+
# Run with automatic start (no manual trigger needed)
|
|
58
|
+
rhylthyme run examples/breakfast_schedule.json --auto-start
|
|
59
|
+
|
|
60
|
+
# Run with a different time scale (2x faster)
|
|
61
|
+
rhylthyme run examples/breakfast_schedule.json --time-scale 2.0
|
|
62
|
+
|
|
63
|
+
# Run with a specific environment
|
|
64
|
+
rhylthyme run examples/breakfast_schedule.json --environment kitchen
|
|
65
|
+
|
|
66
|
+
# Run without validation (if you're sure the file is valid)
|
|
67
|
+
rhylthyme run examples/breakfast_schedule.json --no-validate
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Optimize a Program
|
|
71
|
+
|
|
72
|
+
Create an optimized version of a program to reduce resource contention:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# Optimize a program and save to new file
|
|
76
|
+
rhylthyme plan examples/breakfast_schedule.json optimized_breakfast.json
|
|
77
|
+
|
|
78
|
+
# Optimize with verbose output
|
|
79
|
+
rhylthyme plan examples/breakfast_schedule.json optimized_breakfast.json --verbose
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Work with Environments
|
|
83
|
+
|
|
84
|
+
List and validate environment catalogs:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# List all available environments
|
|
88
|
+
rhylthyme environments
|
|
89
|
+
|
|
90
|
+
# List environments in JSON format
|
|
91
|
+
rhylthyme environments --format json
|
|
92
|
+
|
|
93
|
+
# Validate all environment files
|
|
94
|
+
rhylthyme validate-environments
|
|
95
|
+
|
|
96
|
+
# Show information about a specific environment type
|
|
97
|
+
rhylthyme environment-info kitchen
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Program File Examples
|
|
101
|
+
|
|
102
|
+
### Simple Breakfast Schedule
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"programId": "breakfast-schedule",
|
|
107
|
+
"name": "Breakfast Schedule",
|
|
108
|
+
"description": "Coordinated breakfast preparation",
|
|
109
|
+
"environmentType": "kitchen",
|
|
110
|
+
"startTrigger": {
|
|
111
|
+
"type": "manual"
|
|
112
|
+
},
|
|
113
|
+
"tracks": [
|
|
114
|
+
{
|
|
115
|
+
"trackId": "eggs",
|
|
116
|
+
"name": "Scrambled Eggs",
|
|
117
|
+
"steps": [
|
|
118
|
+
{
|
|
119
|
+
"stepId": "crack-eggs",
|
|
120
|
+
"name": "Crack and Whisk Eggs",
|
|
121
|
+
"startTrigger": {
|
|
122
|
+
"type": "programStart"
|
|
123
|
+
},
|
|
124
|
+
"duration": {
|
|
125
|
+
"type": "fixed",
|
|
126
|
+
"seconds": 60
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
"resourceConstraints": [
|
|
133
|
+
{
|
|
134
|
+
"task": "stove-burner",
|
|
135
|
+
"maxConcurrent": 2,
|
|
136
|
+
"description": "Maximum stove burners"
|
|
137
|
+
}
|
|
138
|
+
],
|
|
139
|
+
"version": "1.0.0"
|
|
140
|
+
}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Interactive UI Controls
|
|
144
|
+
|
|
145
|
+
When running a program, the interactive UI provides these controls:
|
|
146
|
+
|
|
147
|
+
- **Space**: Start/stop the program
|
|
148
|
+
- **Enter**: Trigger manual steps
|
|
149
|
+
- **Arrow keys**: Navigate between steps
|
|
150
|
+
- **q**: Quit the program
|
|
151
|
+
- **r**: Refresh the display
|
|
152
|
+
- **s**: Sort by different criteria
|
|
153
|
+
|
|
154
|
+
## Command Reference
|
|
155
|
+
|
|
156
|
+
### `rhylthyme validate`
|
|
157
|
+
|
|
158
|
+
Validates program files against the schema.
|
|
159
|
+
|
|
160
|
+
**Options:**
|
|
161
|
+
- `--schema PATH`: Path to schema file (default: built-in schema)
|
|
162
|
+
- `--verbose, -v`: Show detailed validation information
|
|
163
|
+
|
|
164
|
+
### `rhylthyme run`
|
|
165
|
+
|
|
166
|
+
Runs programs with interactive terminal UI.
|
|
167
|
+
|
|
168
|
+
**Options:**
|
|
169
|
+
- `--schema PATH`: Path to schema file (default: built-in schema)
|
|
170
|
+
- `-e, --environment TEXT`: Environment ID to use
|
|
171
|
+
- `--time-scale FLOAT`: Time scale factor (default: 1.0)
|
|
172
|
+
- `--validate / --no-validate`: Validate before running (default: True)
|
|
173
|
+
- `--auto-start`: Automatically start without manual trigger
|
|
174
|
+
|
|
175
|
+
### `rhylthyme plan`
|
|
176
|
+
|
|
177
|
+
Optimizes program schedules to reduce resource contention.
|
|
178
|
+
|
|
179
|
+
**Options:**
|
|
180
|
+
- `--verbose, -v`: Show detailed planning information
|
|
181
|
+
|
|
182
|
+
### `rhylthyme environments`
|
|
183
|
+
|
|
184
|
+
Lists available environment catalogs.
|
|
185
|
+
|
|
186
|
+
**Options:**
|
|
187
|
+
- `--format, -f`: Output format (table, json, yaml)
|
|
188
|
+
|
|
189
|
+
### `rhylthyme validate-environments`
|
|
190
|
+
|
|
191
|
+
Validates environment catalog files.
|
|
192
|
+
|
|
193
|
+
**Options:**
|
|
194
|
+
- `--environments-dir PATH`: Directory containing environment files
|
|
195
|
+
- `--verbose, -v`: Show detailed validation information
|
|
196
|
+
|
|
197
|
+
### `rhylthyme environment-info`
|
|
198
|
+
|
|
199
|
+
Shows information about a specific environment type.
|
|
200
|
+
|
|
201
|
+
## Development
|
|
202
|
+
|
|
203
|
+
1. Clone the repository
|
|
204
|
+
2. Install development dependencies: `pip install -e ".[dev]"`
|
|
205
|
+
3. Run tests: `pytest`
|
|
206
|
+
|
|
207
|
+
## License
|
|
208
|
+
|
|
209
|
+
Apache License 2.0
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Setup script for Rhylthyme CLI Runner
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from setuptools import setup, find_packages
|
|
7
|
+
import os
|
|
8
|
+
|
|
9
|
+
# Read the README file
|
|
10
|
+
def read_readme():
|
|
11
|
+
readme_path = os.path.join(os.path.dirname(__file__), 'README.md')
|
|
12
|
+
if os.path.exists(readme_path):
|
|
13
|
+
with open(readme_path, 'r', encoding='utf-8') as f:
|
|
14
|
+
return f.read()
|
|
15
|
+
return "Rhylthyme CLI Runner - Command-line interface for running and validating Rhylthyme programs"
|
|
16
|
+
|
|
17
|
+
setup(
|
|
18
|
+
name="rhylthyme-cli-runner",
|
|
19
|
+
version="0.1.0-alpha",
|
|
20
|
+
description="CLI runner for Rhylthyme real-time program schedules",
|
|
21
|
+
long_description=read_readme(),
|
|
22
|
+
long_description_content_type="text/markdown",
|
|
23
|
+
author="Rhylthyme Team",
|
|
24
|
+
author_email="team@rhylthyme.org",
|
|
25
|
+
url="https://github.com/rhylthyme/rhylthyme-cli-runner",
|
|
26
|
+
packages=find_packages(where="src"),
|
|
27
|
+
package_dir={"": "src"},
|
|
28
|
+
install_requires=[
|
|
29
|
+
"click>=8.0.0",
|
|
30
|
+
"jsonschema>=4.0.0",
|
|
31
|
+
"pyyaml>=6.0",
|
|
32
|
+
"colorama>=0.4.0",
|
|
33
|
+
"rhylthyme-spec>=0.1.0-alpha",
|
|
34
|
+
],
|
|
35
|
+
extras_require={
|
|
36
|
+
"dev": [
|
|
37
|
+
# Testing framework
|
|
38
|
+
"pytest>=6.0.0",
|
|
39
|
+
"pytest-cov>=2.10.0",
|
|
40
|
+
"pytest-mock>=3.0.0",
|
|
41
|
+
"pytest-xdist>=2.0.0", # Parallel test execution
|
|
42
|
+
|
|
43
|
+
# Code quality
|
|
44
|
+
"black>=21.0.0",
|
|
45
|
+
"flake8>=3.8.0",
|
|
46
|
+
"isort>=5.0.0",
|
|
47
|
+
|
|
48
|
+
# Type checking
|
|
49
|
+
"mypy>=0.800",
|
|
50
|
+
|
|
51
|
+
# Testing utilities
|
|
52
|
+
"responses>=0.12.0", # Mock HTTP responses
|
|
53
|
+
"freezegun>=1.0.0", # Mock datetime
|
|
54
|
+
],
|
|
55
|
+
"docs": [
|
|
56
|
+
"sphinx>=4.0.0",
|
|
57
|
+
"sphinx-rtd-theme>=1.0.0",
|
|
58
|
+
],
|
|
59
|
+
"build": [
|
|
60
|
+
"build>=0.7.0",
|
|
61
|
+
"twine>=3.4.0",
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
entry_points={
|
|
65
|
+
"console_scripts": [
|
|
66
|
+
"rhylthyme=rhylthyme_cli_runner.cli:main",
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
python_requires=">=3.8",
|
|
70
|
+
classifiers=[
|
|
71
|
+
"Development Status :: 3 - Alpha",
|
|
72
|
+
"Intended Audience :: Developers",
|
|
73
|
+
"License :: OSI Approved :: Apache Software License",
|
|
74
|
+
"Operating System :: OS Independent",
|
|
75
|
+
"Programming Language :: Python :: 3",
|
|
76
|
+
"Programming Language :: Python :: 3.8",
|
|
77
|
+
"Programming Language :: Python :: 3.9",
|
|
78
|
+
"Programming Language :: Python :: 3.10",
|
|
79
|
+
"Programming Language :: Python :: 3.11",
|
|
80
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
81
|
+
"Topic :: System :: Distributed Computing",
|
|
82
|
+
],
|
|
83
|
+
keywords="real-time, scheduling, logistics, cli, validation",
|
|
84
|
+
project_urls={
|
|
85
|
+
"Bug Reports": "https://github.com/rhylthyme/rhylthyme-cli-runner/issues",
|
|
86
|
+
"Source": "https://github.com/rhylthyme/rhylthyme-cli-runner",
|
|
87
|
+
"Documentation": "https://github.com/rhylthyme/rhylthyme-cli-runner#readme",
|
|
88
|
+
},
|
|
89
|
+
)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Rhylthyme CLI Runner Package
|
|
4
|
+
|
|
5
|
+
This package provides the command-line interface for running and validating
|
|
6
|
+
Rhylthyme real-time program schedules.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
__version__ = "0.1.0-alpha"
|
|
10
|
+
__author__ = "Rhylthyme Team"
|
|
11
|
+
__description__ = "CLI runner for Rhylthyme real-time program schedules"
|
|
12
|
+
|
|
13
|
+
from .cli import cli, main
|
|
14
|
+
|
|
15
|
+
__all__ = ['cli', 'main']
|