from setuptools import setup, find_packages with open("README.md", "r", encoding="utf-8") as fh: long_description = fh.read() setup( name="supply-roster-optimization", version="1.0.0", description="A Streamlit application for optimizing supply roster management using OR-Tools", long_description=long_description, long_description_content_type="text/markdown", author="HaLim Jun", author_email="hjun@unicef.org", url="https://github.com/UNICEF-Ventures/SupplyDivision_Roster_Management", project_urls={ "Bug Reports": "https://github.com/UNICEF-Ventures/SupplyDivision_Roster_Management/issues", "Source": "https://github.com/UNICEF-Ventures/SupplyDivision_Roster_Management", "Demo": "https://huggingface.co/spaces/OOI-FrontierTech/supply-roster-optimization", }, packages=find_packages(), keywords="optimization, scheduling, supply-chain, streamlit, or-tools, workforce-management", install_requires=[ # Core optimization and data processing "ortools>=9.0.0", "pandas>=1.5.0", "numpy>=1.21.0", # Web interface "streamlit>=1.28.0", "plotly>=5.0.0", # Data processing "openpyxl>=3.0.0", "xlrd>=2.0.0", "python-dateutil>=2.9.0", ], extras_require={ "dev": [ "pytest>=7.0.0", "black>=22.0.0", "flake8>=4.0.0", "mypy>=0.950", ], "viz": [ "networkx>=2.8.0", "matplotlib>=3.5.0", "seaborn>=0.11.0", ] }, python_requires=">=3.10,<3.12", entry_points={ "console_scripts": [ "supply-roster=main:main", ], }, include_package_data=True, package_data={ "": ["*.yaml", "*.json", "*.md"], }, )