POTE/pyproject.toml
ilia 204cd0e75b Initial commit: POTE Phase 1 complete
- PR1: Project scaffold, DB models, price loader
- PR2: Congressional trade ingestion (House Stock Watcher)
- PR3: Security enrichment + deployment infrastructure
- 37 passing tests, 87%+ coverage
- Docker + Proxmox deployment ready
- Complete documentation
- Works 100% offline with fixtures
2025-12-14 20:45:34 -05:00

95 lines
1.9 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[build-system]
requires = ["setuptools>=65.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "pote"
version = "0.1.0"
description = "Public Officials Trading Explorer research-only transparency tool"
readme = "README.md"
requires-python = ">=3.10"
license = {text = "MIT"}
authors = [
{name = "POTE Research", email = "research@example.com"}
]
dependencies = [
"sqlalchemy>=2.0",
"alembic>=1.13",
"pydantic>=2.0",
"pydantic-settings>=2.0",
"pandas>=2.0",
"numpy>=1.24",
"httpx>=0.25",
"yfinance>=0.2.35",
"python-dotenv>=1.0",
"click>=8.1",
]
[project.optional-dependencies]
dev = [
"pytest>=7.4",
"pytest-cov>=4.1",
"pytest-asyncio>=0.21",
"ruff>=0.1",
"black>=23.0",
"mypy>=1.7",
"ipython>=8.0",
]
analytics = [
"scikit-learn>=1.3",
"matplotlib>=3.7",
"plotly>=5.18",
]
api = [
"fastapi>=0.104",
"uvicorn[standard]>=0.24",
]
[tool.setuptools.packages.find]
where = ["src"]
[tool.black]
line-length = 100
target-version = ["py310", "py311"]
[tool.ruff]
line-length = 100
target-version = "py310"
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"UP", # pyupgrade
]
ignore = [
"E501", # line too long (handled by black)
]
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"]
"tests/*.py" = ["B011"] # allow assert False in tests
[tool.mypy]
python_version = "3.10"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = false
ignore_missing_imports = true
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
addopts = "-v --strict-markers --tb=short"
markers = [
"integration: marks tests as integration tests (require DB/network)",
"slow: marks tests as slow",
]