GEMSTONe: Generic Engine for Modular Software Task Orchestration and Negotiation
Project description
GEMSTONe: Generic Engine for Modular Software Task Orchestration and Negotiation
Overview
GEMSTONe is an engine that runs customizable modular workflows. We use the term "module" in the usual sense — a standalone process that takes inputs and produces outputs.
When modules are linked together in a workflow, GEMSTONe refers to each one as a "stage"; otherwise terms "module" and "stage" can be used interchangeably.
Each stage is a standalone processing step: it reads input files, does its job, and writes outputs. A workflow links these stages together in sequence. GEMSTONe takes care of running them in order, passing data along the way.
Your role is to make each stage GEMSTONe-ready so the engine can:
- Start it with the right parameters
- Handle all file paths and connections between stages automatically
Install
pip install gemstone-engine
Design Goals
-
No proprietary language. Simple and obvious human-readable syntax for all configuration files (
specs.txt,iofiles.txt,stageflows.txt, etc.) -
Boilerplate code eliminated. Parameter validation, path management, file compatibility, and chaining are handled by the engine.
-
Zero coupling. Module code and engine code are 100% independent — changes to one never require changes to the other.
Quick Start
To plug a stage into GEMSTONe, just include these three files:
specs.txt: lists user input parameters and any defaults or constraintsiofiles.txt: defines the stage’s inputs and outputs in table formatrun.py: containsdef run(params, paths):, which launches your code- Your module’s own implementation lives in a
runtime/subdirectory inside the stage folder.
To connect stages into a workflow, add:
stageflows.txt: shows how outputs from one stage become inputs to the nextstandards.txt: lists the types of files your workflow uses
That’s it. With these files in place, GEMSTONe handles path management and input validation automatically — no need to write custom code for filenames, directories, or parameter parsing.
Example Usage
Launching a workflow
A GEMSTONe workflow is started from the command line:
gemstone <param file>
The CLI accepts these optional arguments:
gemstone <param file> [<jobid override>] [--test_mode] [--stop_on_error]
--stop_on_error applies only to CSV-format param files (batch mode), where
each row of the CSV is one complete parameter set and the engine runs the
pipeline once per row.
Inside a stage (run.py)
Each stage defines:
def run(params: Params, paths: Paths):
param_file = paths.get_parameter_file_path()
write_param_file(param_file, params)
args = make_args(params, param_file, paths)
subprocess.run(
args,
cwd=paths.stage,
capture_output=True,
text=True,
check=True
)
The engine supplies both params and paths; your code focuses only on launching the underlying executable.
Project Status
GEMSTONe is under active development and already in use for production research pipelines. Interfaces shown here are stable, but minor refinements are expected as the documentation and tooling expand.
Documentation
Full integration documentation will be released with the public source repository.
Until then, concise usage notes and guidance are available—please reach out through the project’s PyPI page or institutional contact channels if you need assistance integrating a module or workflow.
License
Creative Commons BY‑ND 4.0
Project details
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 gemstone_engine-1.5.0.tar.gz.
File metadata
- Download URL: gemstone_engine-1.5.0.tar.gz
- Upload date:
- Size: 38.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59b53d8d1888a4db79efb57eadd2b48e40580736c27b196323970fc6888bcfbc
|
|
| MD5 |
b4450e5b5aeb1a727945c3ed26d78b54
|
|
| BLAKE2b-256 |
56e6c1b61f3e9663d5af79063fa39f569dda14a7939bfb7fb2a5bcb4097a27a4
|
File details
Details for the file gemstone_engine-1.5.0-py3-none-any.whl.
File metadata
- Download URL: gemstone_engine-1.5.0-py3-none-any.whl
- Upload date:
- Size: 42.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71c5729b4813f501e9358fa87167687467be6e1ee6463d1b8685854fb0abdcda
|
|
| MD5 |
4c77d6091fc11713b1be11ca35db8857
|
|
| BLAKE2b-256 |
fe6f862d145eb85f23b737344f1e42696b125469ad8e9714e24a2c727eea04a9
|