pyjobshop


Namepyjobshop JSON
Version 0.0.5 PyPI version JSON
download
home_pageNone
SummarySolving scheduling problems with constraint programming.
upload_time2025-08-07 19:52:15
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT License
keywords scheduling job shop project scheduling constraint programming operations research
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![PyJobShop logo](docs/source/assets/images/logo.svg)

[![PyPI](https://img.shields.io/pypi/v/PyJobShop?style=flat-square)](https://pypi.org/project/pyjobshop/)
[![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](https://github.com/PyJobShop/PyJobShop/)
[![CI](https://img.shields.io/github/actions/workflow/status/PyJobShop/PyJobShop/.github%2Fworkflows%2FCI.yml?style=flat-square)](https://github.com/PyJobShop/PyJobShop/)
[![DOC](https://img.shields.io/readthedocs/pyjobshop?style=flat-square)](https://pyjobshop.org)
[![Codecov](https://img.shields.io/codecov/c/github/PyJobShop/PyJobShop?style=flat-square)](https://app.codecov.io/gh/PyJobShop/PyJobShop/)

PyJobShop is a Python library for solving scheduling problems with constraint programming.
It currently supports the following scheduling problems:

- **Resource environments:** single machines, parallel machines, hybrid flow shops, open shops, job shops, flexible job shops, renewable resources and non-renewable resources.
- **Constraints:** release dates, deadlines, due dates, multiple modes, permutations, sequence-dependent setup times, no-wait, no-idle, blocking, and arbitrary precedence constraints.
- **Objective functions:** minimizing makespan, total flow time, number of tardy jobs, total tardiness, total earliness, maximum tardiness, and total setup times.

You can find PyJobShop on the Python Package Index under the name `pyjobshop`. 
To install it, simply run:

``` shell
pip install pyjobshop
```

The documentation is available [here](https://pyjobshop.org/).

> [!TIP]
> If you are new to scheduling or constraint programming, you might benefit from first reading the [introduction to scheduling](https://pyjobshop.org/stable/setup/intro_to_scheduling.html) and [introduction to constraint programming](https://pyjobshop.org/stable/setup/intro_to_cp.html) pages.

## Constraint programming solvers

PyJobShop uses [OR-Tools'](https://github.com/google/or-tools) CP-SAT solver as its default constraint programming solver.
We also provide support for CP Optimizer. 
See [our documentation](https://pyjobshop.org/stable/setup/installation.html) for instructions on how to install PyJobShop with CP Optimizer.

## Examples

We provide example notebooks that show how PyJobShop may be used to solve scheduling problems.

- A short tutorial and introduction to PyJobShop's modeling interface, available [here](https://pyjobshop.org/stable/examples/simple_example.html). This is a great way to get started with PyJobShop.
- Notebooks solving the classical machine scheduling problems such as the hybrid flow shop ([here](https://pyjobshop.org/stable/examples/hybrid_flow_shop.html)) and the flexible job shop problem ([here](https://pyjobshop.org/stable/examples/flexible_job_shop.html)).
- A notebook showing how to solve different project scheduling problems, [here](https://pyjobshop.org/stable/examples/project_scheduling.html).

## Contributing

We are very grateful for any contributions you are willing to make. 
Please have a look [here](https://pyjobshop.org/stable/dev/contributing.html) to get started. 
If you aim to make a large change, it is helpful to discuss the change first in a new GitHub issue. Feel free to open one!

## Getting help

Feel free to open an issue or a new discussion thread here on GitHub.
Please do not e-mail us with questions, modeling issues, or code examples.
Those are much easier to discuss via GitHub than over e-mail.
When writing your issue or discussion, please follow the instructions [here](https://pyjobshop.org/stable/setup/getting_help.html).

### How to cite PyJobShop

If you use PyJobShop in your research, please consider citing the following paper:

> Lan, L., and Berkhout, J. (2025).
> PyJobShop: Solving scheduling problems with constraint programming in Python.
> https://arxiv.org/abs/2502.13483

Or, using the following BibTeX entry:

```bibtex
@misc{Lan_Berkhout_2025,
      title={{PyJobShop}: Solving scheduling problems with constraint programming in {Python}}, 
      author={Leon Lan and Joost Berkhout},
      year={2025},
      url={https://arxiv.org/abs/2502.13483}, 
      archivePrefix="arXiv"
      eprint={2502.13483},
}
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pyjobshop",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "scheduling, job shop, project scheduling, constraint programming, operations research",
    "author": null,
    "author_email": "Leon Lan <leon.lanyidong@gmail.com>, Joost Berkhout <joost.berkhout@vu.nl>",
    "download_url": "https://files.pythonhosted.org/packages/e1/2d/4ce785a6242b869e3738ea3372fc0fecec3f03d29f490a1af1db78eed8f8/pyjobshop-0.0.5.tar.gz",
    "platform": null,
    "description": "![PyJobShop logo](docs/source/assets/images/logo.svg)\n\n[![PyPI](https://img.shields.io/pypi/v/PyJobShop?style=flat-square)](https://pypi.org/project/pyjobshop/)\n[![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](https://github.com/PyJobShop/PyJobShop/)\n[![CI](https://img.shields.io/github/actions/workflow/status/PyJobShop/PyJobShop/.github%2Fworkflows%2FCI.yml?style=flat-square)](https://github.com/PyJobShop/PyJobShop/)\n[![DOC](https://img.shields.io/readthedocs/pyjobshop?style=flat-square)](https://pyjobshop.org)\n[![Codecov](https://img.shields.io/codecov/c/github/PyJobShop/PyJobShop?style=flat-square)](https://app.codecov.io/gh/PyJobShop/PyJobShop/)\n\nPyJobShop is a Python library for solving scheduling problems with constraint programming.\nIt currently supports the following scheduling problems:\n\n- **Resource environments:** single machines, parallel machines, hybrid flow shops, open shops, job shops, flexible job shops, renewable resources and non-renewable resources.\n- **Constraints:** release dates, deadlines, due dates, multiple modes, permutations, sequence-dependent setup times, no-wait, no-idle, blocking, and arbitrary precedence constraints.\n- **Objective functions:** minimizing makespan, total flow time, number of tardy jobs, total tardiness, total earliness, maximum tardiness, and total setup times.\n\nYou can find PyJobShop on the Python Package Index under the name `pyjobshop`. \nTo install it, simply run:\n\n``` shell\npip install pyjobshop\n```\n\nThe documentation is available [here](https://pyjobshop.org/).\n\n> [!TIP]\n> If you are new to scheduling or constraint programming, you might benefit from first reading the [introduction to scheduling](https://pyjobshop.org/stable/setup/intro_to_scheduling.html) and [introduction to constraint programming](https://pyjobshop.org/stable/setup/intro_to_cp.html) pages.\n\n## Constraint programming solvers\n\nPyJobShop uses [OR-Tools'](https://github.com/google/or-tools) CP-SAT solver as its default constraint programming solver.\nWe also provide support for CP Optimizer. \nSee [our documentation](https://pyjobshop.org/stable/setup/installation.html) for instructions on how to install PyJobShop with CP Optimizer.\n\n## Examples\n\nWe provide example notebooks that show how PyJobShop may be used to solve scheduling problems.\n\n- A short tutorial and introduction to PyJobShop's modeling interface, available [here](https://pyjobshop.org/stable/examples/simple_example.html). This is a great way to get started with PyJobShop.\n- Notebooks solving the classical machine scheduling problems such as the hybrid flow shop ([here](https://pyjobshop.org/stable/examples/hybrid_flow_shop.html)) and the flexible job shop problem ([here](https://pyjobshop.org/stable/examples/flexible_job_shop.html)).\n- A notebook showing how to solve different project scheduling problems, [here](https://pyjobshop.org/stable/examples/project_scheduling.html).\n\n## Contributing\n\nWe are very grateful for any contributions you are willing to make. \nPlease have a look [here](https://pyjobshop.org/stable/dev/contributing.html) to get started. \nIf you aim to make a large change, it is helpful to discuss the change first in a new GitHub issue. Feel free to open one!\n\n## Getting help\n\nFeel free to open an issue or a new discussion thread here on GitHub.\nPlease do not e-mail us with questions, modeling issues, or code examples.\nThose are much easier to discuss via GitHub than over e-mail.\nWhen writing your issue or discussion, please follow the instructions [here](https://pyjobshop.org/stable/setup/getting_help.html).\n\n### How to cite PyJobShop\n\nIf you use PyJobShop in your research, please consider citing the following paper:\n\n> Lan, L., and Berkhout, J. (2025).\n> PyJobShop: Solving scheduling problems with constraint programming in Python.\n> https://arxiv.org/abs/2502.13483\n\nOr, using the following BibTeX entry:\n\n```bibtex\n@misc{Lan_Berkhout_2025,\n      title={{PyJobShop}: Solving scheduling problems with constraint programming in {Python}}, \n      author={Leon Lan and Joost Berkhout},\n      year={2025},\n      url={https://arxiv.org/abs/2502.13483}, \n      archivePrefix=\"arXiv\"\n      eprint={2502.13483},\n}\n```\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Solving scheduling problems with constraint programming.",
    "version": "0.0.5",
    "project_urls": {
        "Documentation": "https://pyjobshop.org",
        "Homepage": "https://pyjobshop.org",
        "Issues": "https://github.com/PyJobShop/PyJobShop/issues",
        "Repository": "https://github.com/PyJobShop/PyJobShop"
    },
    "split_keywords": [
        "scheduling",
        " job shop",
        " project scheduling",
        " constraint programming",
        " operations research"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cebf897d71513c071f5fe534873ecb4be398cdd479629de3e85bbf570381e0b3",
                "md5": "94b449cc2319770811f78d13f0568c68",
                "sha256": "5fbc32bcaa7c155ecf076af9502aec7725625ca2de031e6b93990ed3e2d0be83"
            },
            "downloads": -1,
            "filename": "pyjobshop-0.0.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "94b449cc2319770811f78d13f0568c68",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 67063,
            "upload_time": "2025-08-07T19:52:14",
            "upload_time_iso_8601": "2025-08-07T19:52:14.764976Z",
            "url": "https://files.pythonhosted.org/packages/ce/bf/897d71513c071f5fe534873ecb4be398cdd479629de3e85bbf570381e0b3/pyjobshop-0.0.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e12d4ce785a6242b869e3738ea3372fc0fecec3f03d29f490a1af1db78eed8f8",
                "md5": "27e75bd7118a3a1aa1e0f65df5eae630",
                "sha256": "fb16e831c7bb0852ad71c7077da3846c2e8b93bc682fbca6d1c97bc47501341c"
            },
            "downloads": -1,
            "filename": "pyjobshop-0.0.5.tar.gz",
            "has_sig": false,
            "md5_digest": "27e75bd7118a3a1aa1e0f65df5eae630",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 56415,
            "upload_time": "2025-08-07T19:52:15",
            "upload_time_iso_8601": "2025-08-07T19:52:15.695594Z",
            "url": "https://files.pythonhosted.org/packages/e1/2d/4ce785a6242b869e3738ea3372fc0fecec3f03d29f490a1af1db78eed8f8/pyjobshop-0.0.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-07 19:52:15",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "PyJobShop",
    "github_project": "PyJobShop",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pyjobshop"
}
        
Elapsed time: 1.43861s