Add project setup: pyproject.toml, .gitignore, .env.example
Set up Python project with hatch build system and all core dependencies: FastAPI, SQLAlchemy, Playwright, httpx, Streamlit, Plotly, rapidfuzz, APScheduler.
This commit is contained in:
parent
cac57ee299
commit
058d01cb78
3 changed files with 79 additions and 0 deletions
18
.env.example
Normal file
18
.env.example
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
DATABASE_URL=postgresql+asyncpg://smartcart:smartcart@localhost:5432/smartcart
|
||||
DATABASE_URL_SYNC=postgresql://smartcart:smartcart@localhost:5432/smartcart
|
||||
|
||||
# SuperValu login (required for scraping)
|
||||
SUPERVALU_EMAIL=
|
||||
SUPERVALU_PASSWORD=
|
||||
|
||||
# Scheduler
|
||||
SCRAPE_HOUR=22
|
||||
SCRAPE_MINUTE=0
|
||||
|
||||
# API
|
||||
API_HOST=0.0.0.0
|
||||
API_PORT=8000
|
||||
|
||||
# Dashboard
|
||||
DASHBOARD_PORT=8501
|
||||
API_BASE_URL=http://localhost:8000
|
||||
18
.gitignore
vendored
Normal file
18
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
*.egg-info/
|
||||
dist/
|
||||
build/
|
||||
.eggs/
|
||||
*.egg
|
||||
.env
|
||||
.venv/
|
||||
venv/
|
||||
*.db
|
||||
*.sqlite3
|
||||
.ruff_cache/
|
||||
.pytest_cache/
|
||||
.coverage
|
||||
htmlcov/
|
||||
.mypy_cache/
|
||||
43
pyproject.toml
Normal file
43
pyproject.toml
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
[project]
|
||||
name = "smartcart"
|
||||
version = "0.1.0"
|
||||
description = "Price comparison system for Irish supermarkets"
|
||||
requires-python = ">=3.12"
|
||||
dependencies = [
|
||||
"fastapi>=0.115.0",
|
||||
"uvicorn[standard]>=0.32.0",
|
||||
"sqlalchemy[asyncio]>=2.0.36",
|
||||
"alembic>=1.14.0",
|
||||
"asyncpg>=0.30.0",
|
||||
"pydantic>=2.10.0",
|
||||
"pydantic-settings>=2.6.0",
|
||||
"playwright>=1.49.0",
|
||||
"httpx>=0.28.0",
|
||||
"beautifulsoup4>=4.12.0",
|
||||
"rapidfuzz>=3.10.0",
|
||||
"apscheduler>=3.10.0",
|
||||
"streamlit>=1.40.0",
|
||||
"plotly>=5.24.0",
|
||||
"python-dotenv>=1.0.0",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"pytest>=8.3.0",
|
||||
"pytest-asyncio>=0.24.0",
|
||||
"pytest-cov>=6.0.0",
|
||||
"httpx>=0.28.0",
|
||||
"ruff>=0.8.0",
|
||||
]
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
asyncio_mode = "auto"
|
||||
testpaths = ["tests"]
|
||||
|
||||
[tool.ruff]
|
||||
target-version = "py312"
|
||||
line-length = 100
|
||||
Loading…
Add table
Add a link
Reference in a new issue