-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
51 lines (45 loc) · 1.21 KB
/
Copy pathpyproject.toml
File metadata and controls
51 lines (45 loc) · 1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
[project]
name = "portfolio-risk-analytics"
version = "1.4.0"
description = "Market data platform with a daily ingestion pipeline, PostgreSQL storage and portfolio risk analytics"
requires-python = ">=3.12"
dependencies = [
"fastapi>=0.139.0",
"fpdf2>=2.8.7",
"httpx>=0.28.0",
"matplotlib>=3.11.0",
"numpy>=2.5.1",
"pandas>=2.2.0",
"plotly>=6.9.0",
"psycopg2-binary>=2.9.0",
"pydantic>=2.13.0",
"sqlalchemy>=2.0.51",
"streamlit>=1.59.2",
"uvicorn>=0.51.0",
]
[dependency-groups]
dev = [
"mypy>=2.3.0",
"pytest>=9.1.1",
"pytest-cov>=7.0",
"ruff>=0.15.21",
]
[tool.ruff]
line-length = 100
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "W", "I", "UP", "B"]
# E501: line length is handled by the formatter
# B008: FastAPI's Depends() default-argument idiom is intentional
ignore = ["E501", "B008"]
[tool.mypy]
files = ["analytics", "api", "db", "ingestion", "reporting", "main.py", "app.py"]
python_version = "3.12"
check_untyped_defs = true
no_implicit_optional = true
warn_unused_ignores = true
[[tool.mypy.overrides]]
module = ["pandas.*", "plotly.*", "matplotlib.*", "fpdf.*"]
ignore_missing_imports = true
[tool.pytest.ini_options]
testpaths = ["tests"]