PythonLab Scheduler
Generic Scheduler for Lab Automation Processes. 'Scheduling' in this sense means taking a workflow description and a descriptions of a lab(also called job shop) and assigning timestamps and machines to the steps of the workflow in an intelligent way.
flowchart TD
A[Scheduler]--computes-->B[Schedule];
B --contains-->C[Start Times];
B --contains-->D[Machine Assignments];
E[Job Shop]--YAML-->A;
F[Workflow]--python-->A;
G[Precedences]--make up-->F;
H[Process Steps]--make up-->F;
I[Machines]--make up-->E;
In other words: It solves a generalization of the Job Shop Scheduling Problem(JSSP). The main generalizations are
- Jobs can have several operations on the same machine
- There might be several machines of a kind
- Time-constraints between Operations (soft and hard)
- Machines can have capacities to do several operations in parallel
- Jobs can intersect(i.e. operations can have precedence constraints to other jobs operations)
More precise information on this can be found here
Installation
pip install labscheduler --index-url https://gitlab.com/api/v4/projects/25166382/packages/pypi/simple
Scheduling Framework Overview
The framework is designed to be very generic: The core scheduling algorithm can be exchanged by any scheduling concept that shall be developed, tested or used in a real world application. The scheduler itself can be used via python import or as a micro service via SiLA. More information in the framework can be found here.
graph TD;
A[User] <-- python --> B[Scheduler];
A <-- sila_python --> C[SiLA-Client];
C <-- SiLA --> D[SiLA-Server];
B <--> D;
B --> E[AlgorithmInterface];
E -- implemented by --> F[Algorithm];
E -- implemented by --> G[Algorithm];
E -- implemented by --> H[Algorithm];
Usage
For help in the console type
labscheduler --help
The scheduler can be accessed via standard python import or run on a SiLA-server and accessed via a SiLA-client. Examples can be found here:
Development
git clone gitlab.com/opensourcelab/labscheduler
# create a virtual environment and activate it then run
pip install -e .[dev]
# run unittests
invoke test # use the invoke environment to manage development
# commit changes: please install pre-commit hooks
pre-commit install
Documentation
The Documentation can be found here: https://opensourcelab.gitlab.io/labscheduler
Credits
This package was created with Cookiecutter and the gitlab.com/opensourcelab/software-dev/cookiecutter-pypackage project template.
Metadata
Release files for labscheduler 0.2.43
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| labscheduler-0.2.43.tar.gz | 59.0 kB | Without provenance | Details for labscheduler-0.2.43.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| labscheduler-0.2.43-py3-none-any.whl | Python 3 | none | any | Details for labscheduler-0.2.43-py3-none-any.whl |
Total release size: 142.9 kB
Release files / labscheduler-0.2.43.tar.gz
| Download URL | labscheduler-0.2.43.tar.gz |
|---|---|
| Size | 59.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e213f69cc44db178d8b9db8007665229b04597faaea608da5336a1e9d677a50e
|
|
BLAKE2b-256 checksum How to use checksums |
589b48ff9a9d5df6e47e4847f3d9a5ce105058bdca2c86c2c08faa2398b3165d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.10
|
Release files / labscheduler-0.2.43-py3-none-any.whl
| Download URL | labscheduler-0.2.43-py3-none-any.whl |
|---|---|
| Size | 83.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8476654b3f77a083b6e4c358ba3ec407623c35e6e4fb293e5f335b0a8536a009
|
|
BLAKE2b-256 checksum How to use checksums |
3e1981f5c0a1052796b5e4f56ff1809317437fa3bf4a7f3a581bdef6cb88d79d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.10
|
Security for labscheduler 0.2.43
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.