haileyhalimj@gmail.com commited on
Commit
f80b531
·
1 Parent(s): 7fa68d2

📦 Upgrade setup.py to v1.0.0 with comprehensive metadata and dependencies

Browse files

- Update package name to 'supply-roster-optimization'
- Bump version to 1.0.0 (stable release)
- Add comprehensive project metadata (URLs, classifiers, keywords)
- Include long description from README.md
- Sync dependencies with requirements.txt
- Add development and visualization extras
- Include console script entry point
- Add package data configuration
- Expand Python version support to 3.11
- Organize dependencies by category with comments
- Add proper project URLs (GitHub, Hugging Face demo)

Files changed (2) hide show
  1. requirements.txt +20 -6
  2. setup.py +72 -18
requirements.txt CHANGED
@@ -1,12 +1,26 @@
1
- streamlit>=1.28.0
 
2
  pandas>=1.5.0
3
  numpy>=1.21.0
4
- plotly>=5.0.0
5
  scipy>=1.9.0
6
- ortools>=9.0.0
 
 
 
 
 
7
  openpyxl>=3.0.0
8
  xlrd>=2.0.0
9
- # Optional visualization dependencies for enhanced hierarchy dashboard
10
- # Install with: pip install -r requirements-viz.txt
 
 
 
 
11
 
12
- networkx>=2.8.0 # For dependency network graphs
 
 
 
 
 
 
1
+ # Core optimization and data processing
2
+ ortools>=9.0.0
3
  pandas>=1.5.0
4
  numpy>=1.21.0
 
5
  scipy>=1.9.0
6
+
7
+ # Web interface
8
+ streamlit>=1.28.0
9
+ plotly>=5.0.0
10
+
11
+ # Data processing
12
  openpyxl>=3.0.0
13
  xlrd>=2.0.0
14
+ python-dateutil>=2.9.0
15
+ python-dotenv>=1.0.0
16
+ pytz>=2024.1
17
+
18
+ # Visualization and network analysis
19
+ networkx>=2.8.0
20
 
21
+ # Supporting libraries
22
+ absl-py>=1.0.0
23
+ immutabledict>=4.0.0
24
+ protobuf>=3.20,<6
25
+ six>=1.16.0
26
+ typing_extensions>=4.0.0
setup.py CHANGED
@@ -1,29 +1,83 @@
1
  from setuptools import setup, find_packages
2
 
 
 
 
3
  setup(
4
- name="supply-roster-tool-real",
5
- version="0.1.0",
6
- description="Supply roster optimization tool",
 
 
7
  author="HaLim Jun",
8
  author_email="hjun@unicef.org",
 
 
 
 
 
 
9
  packages=find_packages(),
 
 
 
 
 
 
 
 
 
 
 
 
10
  install_requires=[
11
- "absl-py>=2.3.1",
12
- "immutabledict>=4.2.1",
13
- "numpy>=2.2.0",
14
- "ortools>=9.14.0",
15
- "pandas>=2.3.0",
16
- "plotly>=5.24.0",
17
- "protobuf>=3.20,<6",
18
- "python-dateutil>=2.9.0",
19
- "python-dotenv>=1.0.0",
20
- "pytz>=2025.2",
21
- "six>=1.17.0",
22
- "streamlit>=1.39.0",
23
- "typing_extensions>=4.14.0",
24
- "tzdata>=2025.2",
25
  "openpyxl>=3.0.0",
26
  "xlrd>=2.0.0",
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  ],
28
- python_requires=">=3.10,<3.11",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  )
 
1
  from setuptools import setup, find_packages
2
 
3
+ with open("README.md", "r", encoding="utf-8") as fh:
4
+ long_description = fh.read()
5
+
6
  setup(
7
+ name="supply-roster-optimization",
8
+ version="1.0.0",
9
+ description="A comprehensive Streamlit application for optimizing supply roster management using OR-Tools",
10
+ long_description=long_description,
11
+ long_description_content_type="text/markdown",
12
  author="HaLim Jun",
13
  author_email="hjun@unicef.org",
14
+ url="https://github.com/UNICEF-Ventures/SupplyDivision_Roster_Management",
15
+ project_urls={
16
+ "Bug Reports": "https://github.com/UNICEF-Ventures/SupplyDivision_Roster_Management/issues",
17
+ "Source": "https://github.com/UNICEF-Ventures/SupplyDivision_Roster_Management",
18
+ "Demo": "https://huggingface.co/spaces/OOI-FrontierTech/supply-roster-optimization",
19
+ },
20
  packages=find_packages(),
21
+ classifiers=[
22
+ "Development Status :: 4 - Beta",
23
+ "Intended Audience :: Manufacturing",
24
+ "Intended Audience :: Science/Research",
25
+ "Topic :: Office/Business :: Scheduling",
26
+ "Topic :: Scientific/Engineering :: Mathematics",
27
+ "License :: OSI Approved :: MIT License",
28
+ "Programming Language :: Python :: 3",
29
+ "Programming Language :: Python :: 3.10",
30
+ "Operating System :: OS Independent",
31
+ ],
32
+ keywords="optimization, scheduling, supply-chain, streamlit, or-tools, workforce-management",
33
  install_requires=[
34
+ # Core optimization and data processing
35
+ "ortools>=9.0.0",
36
+ "pandas>=1.5.0",
37
+ "numpy>=1.21.0",
38
+ "scipy>=1.9.0",
39
+
40
+ # Web interface
41
+ "streamlit>=1.28.0",
42
+ "plotly>=5.0.0",
43
+
44
+ # Data processing
 
 
 
45
  "openpyxl>=3.0.0",
46
  "xlrd>=2.0.0",
47
+ "python-dateutil>=2.9.0",
48
+ "python-dotenv>=1.0.0",
49
+ "pytz>=2024.1",
50
+
51
+ # Visualization and network analysis
52
+ "networkx>=2.8.0",
53
+
54
+ # Supporting libraries
55
+ "absl-py>=1.0.0",
56
+ "immutabledict>=4.0.0",
57
+ "protobuf>=3.20,<6",
58
+ "six>=1.16.0",
59
+ "typing_extensions>=4.0.0",
60
  ],
61
+ extras_require={
62
+ "dev": [
63
+ "pytest>=7.0.0",
64
+ "black>=22.0.0",
65
+ "flake8>=4.0.0",
66
+ "mypy>=0.950",
67
+ ],
68
+ "viz": [
69
+ "matplotlib>=3.5.0",
70
+ "seaborn>=0.11.0",
71
+ ]
72
+ },
73
+ python_requires=">=3.10,<3.12",
74
+ entry_points={
75
+ "console_scripts": [
76
+ "supply-roster=main:main",
77
+ ],
78
+ },
79
+ include_package_data=True,
80
+ package_data={
81
+ "": ["*.yaml", "*.json", "*.md"],
82
+ },
83
  )