| Name | lekinpy JSON |
| Version |
0.1.0
JSON |
| download |
| home_page | None |
| Summary | A Python library for job shop scheduling compatible with LEKIN and JSON formats. |
| upload_time | 2025-10-23 19:39:16 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.9 |
| license | None |
| keywords |
scheduling
job shop
lekin
optimization
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# lekinpy
A Python library for job shop scheduling, compatible with LEKIN file formats and JSON. Easily extensible for new algorithms and open source contributions.
## Installation
```bash
pip install lekinpy
```
Or for local development:
```bash
pip install .
```
## Features
- Parse and write `.job`, `.mch`, `.seq`, and `.json` files
- Add jobs and machines programmatically or via files
- Run scheduling algorithms (FCFS, SPT, EDD, WSPT)
- Output schedules in LEKIN-compatible or JSON format
- Plot Gantt charts (requires `matplotlib`)
## Example Usage
```python
from lekinpy.system import System
from lekinpy.job import Job, Operation
from lekinpy.machine import Machine, Workcenter
from lekinpy.algorithms.fcfs import FCFSAlgorithm
# Create a new scheduling system
system = System()
# Define a machine and assign it to a workcenter
machine = Machine("M1", release=0, status="A")
workcenter = Workcenter("WC1", release=0, status="A", machines=[machine])
system.add_workcenter(workcenter)
# Define a job with one operation assigned to WC1
job = Job("J1", release=0, due=10, weight=1, operations=[Operation("WC1", 5, "A")])
system.add_job(job)
# Choose the scheduling algorithm (First-Come First-Served)
algo = FCFSAlgorithm()
# Generate the schedule for the system
schedule = algo.schedule(system)
# Attach the computed schedule to the system
system.set_schedule(schedule)
# Print schedule details as a dictionary
print(system.schedule.to_dict())
# Plot a Gantt chart of the schedule (requires matplotlib)
schedule.plot_gantt_chart(system)
```
## API Reference
📚 **Full API Reference:** [docs/API_REFERENCE.md](docs/API_REFERENCE.md)
- `System`, `Job`, `Operation`, `Machine`, `Workcenter`
- Algorithms: `FCFSAlgorithm`, `SPTAlgorithm`, `EDDAlgorithm`, `WSPTAlgorithm`
- IO: `export_jobs_to_jobfile`, `export_workcenters_to_mchfile`, etc.
## Contributing
- Fork, branch, and submit pull requests for new algorithms or features.
- See `tests/` for unit test examples.
## License
MIT
## Contact
Author: Ruturaj Vasant
Email: rvt2018@nyu.edu
Raw data
{
"_id": null,
"home_page": null,
"name": "lekinpy",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "scheduling, job shop, lekin, optimization",
"author": null,
"author_email": "Ruturaj Vasant Tambe <rvt2018@nyu.edu>",
"download_url": "https://files.pythonhosted.org/packages/0c/2f/4ce536e9c3bba6b4babf96c24432bf3915b4bc7767f590cbe7290a2e72dd/lekinpy-0.1.0.tar.gz",
"platform": null,
"description": "\n# lekinpy\n\nA Python library for job shop scheduling, compatible with LEKIN file formats and JSON. Easily extensible for new algorithms and open source contributions.\n\n## Installation\n\n```bash\npip install lekinpy\n```\nOr for local development:\n```bash\npip install .\n```\n\n## Features\n- Parse and write `.job`, `.mch`, `.seq`, and `.json` files\n- Add jobs and machines programmatically or via files\n- Run scheduling algorithms (FCFS, SPT, EDD, WSPT)\n- Output schedules in LEKIN-compatible or JSON format\n- Plot Gantt charts (requires `matplotlib`)\n\n## Example Usage\n```python\nfrom lekinpy.system import System\nfrom lekinpy.job import Job, Operation\nfrom lekinpy.machine import Machine, Workcenter\nfrom lekinpy.algorithms.fcfs import FCFSAlgorithm\n\n# Create a new scheduling system\nsystem = System()\n\n# Define a machine and assign it to a workcenter\nmachine = Machine(\"M1\", release=0, status=\"A\")\nworkcenter = Workcenter(\"WC1\", release=0, status=\"A\", machines=[machine])\nsystem.add_workcenter(workcenter)\n\n# Define a job with one operation assigned to WC1\njob = Job(\"J1\", release=0, due=10, weight=1, operations=[Operation(\"WC1\", 5, \"A\")])\nsystem.add_job(job)\n\n# Choose the scheduling algorithm (First-Come First-Served)\nalgo = FCFSAlgorithm()\n\n# Generate the schedule for the system\nschedule = algo.schedule(system)\n\n# Attach the computed schedule to the system\nsystem.set_schedule(schedule)\n\n# Print schedule details as a dictionary\nprint(system.schedule.to_dict())\n\n# Plot a Gantt chart of the schedule (requires matplotlib)\nschedule.plot_gantt_chart(system)\n```\n\n## API Reference\n\ud83d\udcda **Full API Reference:** [docs/API_REFERENCE.md](docs/API_REFERENCE.md)\n\n- `System`, `Job`, `Operation`, `Machine`, `Workcenter`\n- Algorithms: `FCFSAlgorithm`, `SPTAlgorithm`, `EDDAlgorithm`, `WSPTAlgorithm`\n- IO: `export_jobs_to_jobfile`, `export_workcenters_to_mchfile`, etc.\n\n## Contributing\n\n- Fork, branch, and submit pull requests for new algorithms or features.\n- See `tests/` for unit test examples.\n\n## License\n\nMIT\n\n## Contact\n\nAuthor: Ruturaj Vasant \nEmail: rvt2018@nyu.edu\n",
"bugtrack_url": null,
"license": null,
"summary": "A Python library for job shop scheduling compatible with LEKIN and JSON formats.",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/Ruturaj-Vasant/Lekin_Python"
},
"split_keywords": [
"scheduling",
" job shop",
" lekin",
" optimization"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "5bc05b65135a8bc081fd836da5ff88362fa48247c997c3aeb0e07353833f4cb3",
"md5": "5e5045ff91046946b6807bc07482a9f7",
"sha256": "805f1f78b48e7453971f4d4164b7443c4a9057386398ed4f55304d9c0261b92b"
},
"downloads": -1,
"filename": "lekinpy-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5e5045ff91046946b6807bc07482a9f7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 16146,
"upload_time": "2025-10-23T19:39:15",
"upload_time_iso_8601": "2025-10-23T19:39:15.695764Z",
"url": "https://files.pythonhosted.org/packages/5b/c0/5b65135a8bc081fd836da5ff88362fa48247c997c3aeb0e07353833f4cb3/lekinpy-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0c2f4ce536e9c3bba6b4babf96c24432bf3915b4bc7767f590cbe7290a2e72dd",
"md5": "1b2c1c3269a378a44a2d2e251da0f7f5",
"sha256": "4d64ba354a0bcc3c6381ea66a34fed2616948e76a9f41c8ebe6baf5fdf1a54b0"
},
"downloads": -1,
"filename": "lekinpy-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "1b2c1c3269a378a44a2d2e251da0f7f5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 14177,
"upload_time": "2025-10-23T19:39:16",
"upload_time_iso_8601": "2025-10-23T19:39:16.696018Z",
"url": "https://files.pythonhosted.org/packages/0c/2f/4ce536e9c3bba6b4babf96c24432bf3915b4bc7767f590cbe7290a2e72dd/lekinpy-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-23 19:39:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Ruturaj-Vasant",
"github_project": "Lekin_Python",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "lekinpy"
}