Files
Priceflow/pyproject.toml
T
Claude 36415b9cfc feat: Replace SearXNG with DuckDuckGo for product search
- Remove SearXNG container and configuration files
- Add duckduckgo-search library for web search
- Create duckduckgo_service.py with async search support
- Update search_service.py to use DuckDuckGo instead of SearXNG
- Fix BROWSERLESS_URL port to 3012

This eliminates the persistent limiter.toml directory issue and
provides a simpler, more reliable search solution.
2025-11-22 14:38:03 +00:00

101 lines
1.8 KiB
TOML

[project]
name = "priceflow-backend"
version = "0.1.0"
description = "Backend for PriceFlow Price Tracker"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"fastapi",
"uvicorn",
"sqlalchemy",
"psycopg2-binary",
"playwright",
"requests",
"httpx",
"pydantic",
"apprise",
"Pillow",
"apscheduler",
"python-multipart",
"pydantic-settings",
"aiofiles",
"litellm",
"alembic",
"tenacity",
"slowapi",
"duckduckgo-search",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["app"]
[project.optional-dependencies]
dev = [
"pytest",
"pytest-asyncio",
"pytest-cov",
"ruff",
"httpx",
"mypy",
"bandit",
"pip-audit",
"pre-commit",
]
[tool.hatch.envs.default]
dependencies = [
"pytest",
"ruff",
"httpx",
]
[tool.ruff]
line-length = 120
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "I", "W", "B", "UP", "PL", "RUF"]
ignore = []
[tool.ruff.lint.per-file-ignores]
"tests/*" = ["PLR2004"]
"app/routers/*" = ["B008"]
"app/main.py" = ["B008"]
[tool.pytest.ini_options]
pythonpath = ["."]
testpaths = ["tests"]
addopts = "--cov=app --cov-report=html --cov-report=term-missing"
asyncio_mode = "auto"
[tool.coverage.run]
source = ["app"]
omit = ["*/tests/*", "*/alembic/*"]
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"def __repr__",
"raise AssertionError",
"raise NotImplementedError",
"if __name__ == .__main__.:",
"if TYPE_CHECKING:",
"@abstractmethod",
]
[tool.mypy]
python_version = "3.12"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = false # Enable gradually
ignore_missing_imports = true
[tool.bandit]
exclude_dirs = ["tests", "app/alembic"]
skips = ["B101"] # Skip assert_used (common in tests)