dcorcoran commited on
Commit
91c3e25
·
1 Parent(s): 08c3eef

Added toml

Browse files
Files changed (1) hide show
  1. pyproject.toml +170 -0
pyproject.toml ADDED
@@ -0,0 +1,170 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [tool.poetry]
6
+ package-mode = false
7
+
8
+
9
+ # We are using Poetry for dependency management not an actual Package
10
+ [project]
11
+ name = "off-the-path"
12
+ version = "1.0.0"
13
+ description = "ML-powered Travel Recommendation tool"
14
+ authors = [
15
+ {name = "Group 1"},
16
+ ]
17
+ readme = "README.md"
18
+ license = {text = "Apache-2.0"}
19
+ requires-python = ">=3.10,<3.13"
20
+ keywords = ["mlops", "machine-learning", "travel", "recommendation-system", "faiss", "fastapi", "streamlit"]
21
+ classifiers = [
22
+ "Development Status :: 4 - Beta",
23
+ "Intended Audience :: Education",
24
+ "License :: OSI Approved :: Apache Software License",
25
+ "Programming Language :: Python :: 3",
26
+ "Programming Language :: Python :: 3.9",
27
+ "Programming Language :: Python :: 3.10",
28
+ "Programming Language :: Python :: 3.11",
29
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
30
+ "Topic :: Software Development :: Libraries :: Python Modules",
31
+ ]
32
+
33
+ # Core dependencies for travel recommendation
34
+ dependencies = [
35
+ # Data processing & analysis
36
+ "pandas>=1.5.3",
37
+ "numpy>=1.24.3",
38
+
39
+ # Machine learning & recommendation systems
40
+ #"scikit-learn>=1.4.0,<1.7.0",
41
+ "faiss-cpu>=1.7.4",
42
+
43
+ # Image processing & computer vision
44
+ "pillow>=10.0.0",
45
+
46
+ # Experiment tracking & model management
47
+ "mlflow>=2.3.1",
48
+
49
+ # Utilities
50
+ "pyyaml>=6.0",
51
+ "joblib>=1.3.1",
52
+ #"redis>=4.5.0",
53
+ "python-dotenv>=1.0.0",
54
+ "sqlalchemy>=2.0.44,<3.0.0",
55
+ "psycopg2-binary>=2.9.11,<3.0.0",
56
+
57
+ # BM25 package
58
+ "rank-bm25>=0.2.1",
59
+
60
+ # LLM
61
+ "huggingface-hub>=0.34.0",
62
+
63
+ # FAISS - PyTorch and transformers
64
+ "torch>=2.0.0,<2.6.0",
65
+ "transformers>=4.57.3,<5.0.0",
66
+
67
+ # Code quality
68
+ "ruff>=0.14.8,<0.15.0",
69
+
70
+ # AWS access
71
+ "boto3>=1.30.0",
72
+ ]
73
+
74
+ [project.optional-dependencies]
75
+ # API service dependencies
76
+ api = [
77
+ "fastapi>=0.95.0",
78
+ "uvicorn>=0.22.0",
79
+ "pydantic>=1.10.0",
80
+ ]
81
+
82
+ # Frontend service dependencies
83
+ frontend = [
84
+ "streamlit>=1.24.0",
85
+ "requests>=2.28.0",
86
+ ]
87
+
88
+ # Development dependencies
89
+ dev = [
90
+ "pytest>=7.3.1",
91
+ "pytest-mock>=3.12.0",
92
+ "ipykernel>=6.29.5",
93
+ "jupyter>=1.0.0",
94
+ "black>=22.0.0",
95
+ "isort>=5.0.0",
96
+ "flake8>=6.0.0",
97
+
98
+ "mkdocs>=1.5.0",
99
+ "mkdocs-material>=9.4.0",
100
+ "mkdocstrings[python]>=0.23.0",
101
+ ]
102
+
103
+ # All dependencies combined
104
+ #all = [
105
+ # "anythings-pawsible[api,frontend,dev]",
106
+ #]
107
+
108
+ [project.urls]
109
+ #Homepage = "https://github.com/trevoradriaanse/anythings-pawsible"
110
+ #Documentation = "https://github.com/trevoradriaanse/anythings-pawsible"
111
+ #Repository = "https://github.com/trevoradriaanse/anythings-pawsible"
112
+ #Issues = "https://github.com/trevoradriaanse/anythings-pawsible/issues"
113
+
114
+ [tool.hatch.build.targets.wheel]
115
+ packages = ["backend/src"]
116
+
117
+ [tool.black]
118
+ line-length = 88
119
+ target-version = ['py39']
120
+ include = '\.pyi?$'
121
+ extend-exclude = '''
122
+ /(
123
+ # directories
124
+ \.eggs
125
+ | \.git
126
+ | \.hg
127
+ | \.mypy_cache
128
+ | \.tox
129
+ | \.venv
130
+ | _build
131
+ | buck-out
132
+ | build
133
+ | dist
134
+ )/
135
+ '''
136
+
137
+ [tool.isort]
138
+ profile = "black"
139
+ multi_line_output = 3
140
+ include_trailing_comma = true
141
+ force_grid_wrap = 0
142
+ use_parentheses = true
143
+ ensure_newline_before_comments = true
144
+ line_length = 88
145
+
146
+ [tool.pytest.ini_options]
147
+ testpaths = ["tests"]
148
+ python_files = ["test_*.py"]
149
+ python_classes = ["Test*"]
150
+ python_functions = ["test_*"]
151
+ addopts = "-v --tb=short"
152
+ markers = [
153
+ "integration: tests that require a real database or external services",
154
+ ]
155
+
156
+ [tool.coverage.run]
157
+ source = ["src"]
158
+ omit = ["*/tests/*", "*/test_*.py"]
159
+
160
+ [tool.coverage.report]
161
+ exclude_lines = [
162
+ "pragma: no cover",
163
+ "def __repr__",
164
+ "if self.debug:",
165
+ "if settings.DEBUG",
166
+ "raise AssertionError",
167
+ "raise NotImplementedError",
168
+ "if 0:",
169
+ "if __name__ == .__main__.:",
170
+ ]