Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
106 lines (95 loc) · 2.33 KB
/
Copy pathpyproject.toml
File metadata and controls
106 lines (95 loc) · 2.33 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
[project]
name = "sentinelops-ai"
version = "0.2.0"
description = "Multi-agent incident response and reliability orchestration platform."
readme = "README.md"
requires-python = ">=3.11"
authors = [{ name = "Purvansh" }]
dependencies = [
"fastapi==0.115.0",
"uvicorn[standard]==0.30.6",
"pydantic==2.9.2",
"pydantic-settings==2.5.2",
"sqlalchemy==2.0.35",
"greenlet==3.1.1",
"psycopg[binary]==3.2.3",
"httpx==0.27.2",
"redis==5.0.8",
"celery==5.4.0",
"prometheus-client==0.20.0",
"structlog==24.4.0",
"opentelemetry-api==1.27.0",
"opentelemetry-sdk==1.27.0",
"python-jose[cryptography]==3.3.0",
"langgraph==0.2.34",
"langgraph-checkpoint-postgres>=2.0.0",
"slowapi>=0.1.9",
"PyYAML==6.0.2",
]
[project.optional-dependencies]
dev = [
"black==24.10.0",
"pytest==8.3.3",
"pytest-asyncio==0.24.0",
"respx==0.21.1",
"ruff==0.6.9",
"pytest-cov>=4.1.0",
"testcontainers[postgres,redis]>=3.7.1",
"flake8>=7.1.1",
"mypy>=1.11.2",
]
eval = [
"numpy==2.1.3",
"sentence-transformers==3.2.1",
]
[tool.pytest.ini_options]
pythonpath = [
"apps/api-server",
"apps/api-server/src",
]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
addopts = "--cov=apps/api-server/src --cov-config=apps/api-server/.coveragerc --cov-report=term-missing --cov-report=html"
testpaths = [
"apps/api-server/tests",
]
markers = [
"unit: Unit tests (no external dependencies, extremely fast)",
"integration: Integration tests (uses real infrastructure / databases)",
"e2e: End-to-end tests (verifies full-system flows)",
"evaluation: Evaluation tests (measures model and scoring quality)",
]
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I", "B"]
[tool.black]
line-length = 100
target-version = ["py311"]
[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
[tool.setuptools]
package-dir = {"" = "apps/api-server/src"}
include-package-data = true
[tool.setuptools.packages.find]
where = ["apps/api-server/src"]
include = ["*"]
[tool.mypy]
python_version = "3.11"
ignore_missing_imports = true
check_untyped_defs = false
disallow_untyped_defs = false
exclude = [
"tests/",
"venv/",
".venv/",
]
[[tool.mypy.overrides]]
module = [
"core.config",
"core.llm_client",
]
disallow_untyped_defs = true
check_untyped_defs = true