Skip to main content

Core classes for scheduling problems' definition

Project description

schore

schore is a lightweight Python library providing core classes for scheduling problems.

  • Parameter management: Transform tabular or textual input into structured parameters for scheduling problems.
  • Schedule management: Abstract base classes for defining and managing schedule data.

โœจ Modules

Data Management

from schore.data import DfManager, Table2DManager
  • DfManager: Base class for managing a DataFrame.
  • Table2DManager: Manages a 2D table represented as a DataFrame.

Parameter Management

from schore.parameters import JobStageProcessingTimeManager, JobMachineProcessingTimeManager
  • JobStageProcessingTimeManager: Manages a 2D DataFrame with stages as columns and jobs as rows.
  • JobMachineProcessingTimeManager: Manages a 2D DataFrame with machines as columns and jobs as rows.

Schedule Management

from schore.schedule.abstract import Activity, Resource, ResourceGroup, ParallelResourceGroup
  • Activity: Represents a scheduled operation (in shop environments) or a job (in single/parallel machine environments).
  • Resource: Represents a single resource (e.g., machine or worker).
  • ResourceGroup: Manages a group of resources collectively.
  • ParallelResourceGroup: Manages a group of resources that can operate in parallel.

These abstract base classes help you define, extend, and manage schedule-related data structures for various scheduling problems.

Utility

from schore.util import TextDataParser
  • TextDataParser: Parses text data from a stream.

Visualization

from schore import GanttPlotter
  • GanttPlotter: General-purpose Gantt chart plotter for schedule visualization.
    • Supports group/resource/activity color modes.
    • Configurable layout, legend, and figure sizing.

Examples

from schore.parameters_examples.parallel_shop.identical_flow import HybridFlowshopParameters
  • HybridFlowshopParameters: Parameter class for a hybrid flowshop with identical parallel machines at each stage.

๐Ÿงช Testing

To run the tests, use the following command:

pytest tests/

Installation

pip:

pip install schore

If you use uv as your Python package manager:

uv add schore

๐Ÿ› ๏ธ Repository Structure

โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ schore/
โ”‚       โ”œโ”€โ”€ data/
โ”‚       โ”‚   โ”œโ”€โ”€ df_manager.py
โ”‚       โ”‚   โ””โ”€โ”€ table_2d_manager.py
โ”‚       โ”œโ”€โ”€ gantt_plotter.py
โ”‚       โ”œโ”€โ”€ parameters/
โ”‚       โ”‚   โ””โ”€โ”€ processing_time/
โ”‚       โ”‚       โ”œโ”€โ”€ job_mc_p.py
โ”‚       โ”‚       โ””โ”€โ”€ job_stage_p.py
โ”‚       โ”œโ”€โ”€ parameters_examples/
โ”‚       โ”‚   โ”œโ”€โ”€ parallel/
โ”‚       โ”‚   โ”œโ”€โ”€ parallel_shop/
โ”‚       โ”‚   โ”‚   โ””โ”€โ”€ identical_flow/
โ”‚       โ”‚   โ”‚       โ””โ”€โ”€ hybrid_flowshop.py
โ”‚       โ”‚   โ”œโ”€โ”€ shop/
โ”‚       โ”‚   โ”‚   โ””โ”€โ”€ flow/
โ”‚       โ”‚   โ”‚       โ”œโ”€โ”€ flowshop.py
โ”‚       โ”‚   โ”‚       โ””โ”€โ”€ flowshop_duedate.py
โ”‚       โ”‚   โ””โ”€โ”€ single/
โ”‚       โ”œโ”€โ”€ schedule/
โ”‚       โ”‚   โ””โ”€โ”€ abstract/
โ”‚       โ”‚       โ”œโ”€โ”€ activity.py
โ”‚       โ”‚       โ”œโ”€โ”€ resource.py
โ”‚       โ”‚       โ”œโ”€โ”€ resource_group.py
โ”‚       โ”‚       โ””โ”€โ”€ parallel_resource_group.py
โ”‚       โ”œโ”€โ”€ schedule_examples/
โ”‚       โ”‚   โ”œโ”€โ”€ machine.py
โ”‚       โ”‚   โ”œโ”€โ”€ parallel/
โ”‚       โ”‚   โ”œโ”€โ”€ parallel_shop/
โ”‚       โ”‚   โ”‚   โ””โ”€โ”€ identical_flow/
โ”‚       โ”‚   โ”‚       โ”œโ”€โ”€ hybrid_flowshop_operation.py
โ”‚       โ”‚   โ”‚       โ”œโ”€โ”€ hybrid_flowshop_machine.py
โ”‚       โ”‚   โ”‚       โ”œโ”€โ”€ hybrid_flowshop_stage.py
โ”‚       โ”‚   โ”‚       โ””โ”€โ”€ hybrid_flowshop_schedule.py
โ”‚       โ”‚   โ”œโ”€โ”€ shop/
โ”‚       โ”‚   โ”‚   โ””โ”€โ”€ flow/
โ”‚       โ”‚   โ”‚       โ”œโ”€โ”€ flowshop_operation.py
โ”‚       โ”‚   โ”‚       โ”œโ”€โ”€ flowshop_schedule.py
โ”‚       โ”‚   โ”‚       โ””โ”€โ”€ flowshop_stage.py
โ”‚       โ”‚   โ””โ”€โ”€ single/
โ”‚       โ”œโ”€โ”€ util/
โ”‚       โ”‚   โ””โ”€โ”€ text_data_parser.py
โ”‚       โ”œโ”€โ”€ type_aliases.py
โ”‚       โ””โ”€โ”€ type_defs.py
โ”œโ”€โ”€ tests/
โ”‚   โ”œโ”€โ”€ data/
โ”‚   โ”‚   โ”œโ”€โ”€ test_df_manager.py
โ”‚   โ”‚   โ””โ”€โ”€ test_table_2d_manager.py
โ”‚   โ”œโ”€โ”€ examples/
โ”‚   โ”‚   โ”œโ”€โ”€ parallel_shop/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ test_hybrid_flowshop.py
โ”‚   โ”‚   โ””โ”€โ”€ shop/
โ”‚   โ”‚       โ””โ”€โ”€ flow/
โ”‚   โ”‚           โ””โ”€โ”€ test_flowshop_duedate.py
โ”‚   โ”œโ”€โ”€ manager/
โ”‚   โ”‚   โ”œโ”€โ”€ test_job_machine_processing_time_manager.py
โ”‚   โ”‚   โ””โ”€โ”€ test_job_stage_processing_time_manager.py
โ”‚   โ”œโ”€โ”€ schedule/
โ”‚   โ”‚   โ””โ”€โ”€ abstract/
โ”‚   โ”‚       โ”œโ”€โ”€ test_activity.py
โ”‚   โ”‚       โ””โ”€โ”€ test_resource.py
โ”‚   โ”œโ”€โ”€ schedule_examples/
โ”‚   โ”‚   โ”œโ”€โ”€ parallel_shop/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ identical_flow/
โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ test_hybrid_flowshop_schedule.py
โ”‚   โ”‚   โ””โ”€โ”€ shop/
โ”‚   โ”‚       โ””โ”€โ”€ flow/
โ”‚   โ”‚           โ””โ”€โ”€ test_hybrid_flowshop_schedule.py
โ”‚   โ””โ”€โ”€ util/
โ”‚       โ””โ”€โ”€ test_text_data_parser.py

License

This project is licensed under the MIT License. See the LICENSE file for details.

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

schore-0.0.5.tar.gz (84.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

schore-0.0.5-py3-none-any.whl (44.8 kB view details)

Uploaded Python 3

File details

Details for the file schore-0.0.5.tar.gz.

File metadata

  • Download URL: schore-0.0.5.tar.gz
  • Upload date:
  • Size: 84.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for schore-0.0.5.tar.gz
Algorithm Hash digest
SHA256 c77136811819b54f219e04012f329bd8dc386138e24a3f7d6e64bcd14d981b71
MD5 949c77d97a42db149e9b578dc00242aa
BLAKE2b-256 03987d74bfce69bb648c3391fe16fc05d11d41e5c66b314c8813c57b2f6aaab2

See more details on using hashes here.

File details

Details for the file schore-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: schore-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 44.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for schore-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 626e0eb84a815ee9fbf73eeca29fbd5e3f1ded0e69651342d1d3642fef986714
MD5 2929b38ff88d78f7ba8d5beb54e541d2
BLAKE2b-256 b28a6401d299148e5bcb7a1569e9976e006a75ef59ee0b07899b2ec243cce92e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page