Skip to main content

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/70366720/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 https://gitlab.com/OpenLabAutomation/lab-automation-packages/lab-scheduler.git

# 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://openlabautomation.gitlab.io/lab-automation-packages/lab-scheduler/

Credits

This package was created with Cookiecutter and the gitlab.com/opensourcelab/software-dev/cookiecutter-pypackage project template.

Metadata

Release files for uulabscheduler 0.3.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uulabscheduler 0.3.7
File Size Uploaded
uulabscheduler-0.3.7.tar.gz 244.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for uulabscheduler 0.3.7
File Interpreter ABI Platform
uulabscheduler-0.3.7-py3-none-any.whl Python 3 none any Details

Total release size: 339.4 kB

Release files / uulabscheduler-0.3.7.tar.gz

Download URL uulabscheduler-0.3.7.tar.gz
Size 244.0 kB
Tags Source
SHA-256 checksum
How to use checksums
87230f9f19e710db8512ced4af3735376178bb6b96af7d9f902530ed0ee1fb06
BLAKE2b-256 checksum
How to use checksums
70d235eb0810b193e7b30844fe8ee89dbf6796f3a4c22e266f0905d5ca3b33b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / uulabscheduler-0.3.7-py3-none-any.whl

Download URL uulabscheduler-0.3.7-py3-none-any.whl
Size 95.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bfb15f6c69b315f383b2990ca82a224e2073b3df9d84acb2ad2aa7ccb2a29062
BLAKE2b-256 checksum
How to use checksums
7faa1fe7ac93e5ec9a7dd56506e456f7652043c165df83b686ee5bcd4c86cd31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

0.3.7 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page