-
Notifications
You must be signed in to change notification settings - Fork 6
/
pyproject.toml
115 lines (95 loc) · 2.19 KB
/
pyproject.toml
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
107
108
109
110
111
112
113
114
115
[tool.poetry]
name = "foxops"
# managed by poetry-dynamic-versioning, do not change.
version = "0.0.0"
description = "Foxops 🦊"
license = "Apache-2.0"
authors = [
"Alexander Hungenberg <[email protected]>",
"Timo Furrer <[email protected]>",
]
readme = "README.md"
[tool.poetry.scripts]
fengine = 'foxops.engine.__main__:app'
[tool.poetry.dependencies]
python = ">=3.12,<4.0"
# Web Framework
uvicorn = "^0.31.0"
fastapi = ">=0.115.0"
# Auxiliary
httpx = "^0.27.2"
tenacity = "^9.0.0"
pydantic = "^2.3.0"
structlog = "^24.4.0"
aiopath = "^0.7.7"
# Database
SQLAlchemy = {extras = ["asyncio"], version = "^2.0.2"}
asyncpg = "^0.29.0"
aiosqlite = "^0.20.0"
alembic = {extras = ["tz"], version = "^1.8.1"}
greenlet = "^3.1.1"
# CLI
typer = "^0.12.5"
# Business
"ruamel.yaml" = "^0.17.20"
Jinja2 = "^3.0.3"
pydantic-settings = "^2.0.3"
[tool.poetry.dev-dependencies]
# Linting
flake8 = "^6.0.0"
flake8-bugbear = "^23.5.9"
isort = "^5.9.3"
# Testing
pytest = "^7.1.3"
pytest-asyncio = "^0.21.0"
pytest-mock = "^3.10.0"
pytest-randomly = "^3.12.0"
# Typing
mypy = "^1.5.1"
SQLAlchemy = {extras = ["mypy"], version = "^2.0.2"}
# Docs
Sphinx = "^7.2.5"
sphinx-copybutton = "^0.5.0"
sphinx-design = "^0.5.0"
sphinx-autobuild = "^2021.3.14"
sphinxcontrib-mermaid = "^0.9.2"
myst-parser = "^2.0.0"
furo = "^2023.5.20"
pytest-alembic = "^0.10.0"
[tool.poetry.group.dev.dependencies]
black = {extras = ["d"], version = "^23.3.0"}
coverage = "^7.3.1"
pytest-xdist = "^3.3.1"
[tool.black]
line-length = 120
[tool.isort]
profile = "black"
[tool.pytest.ini_options]
filterwarnings = [
'ignore:directory "/var/run/secrets/foxops" does not exist'
]
markers = [
"e2e: end-to-end tests",
"frontend: frontend tests",
"api: api tests",
"db: tests involving the database",
]
asyncio_mode = "auto"
[tool.mypy]
plugins = [
"pydantic.mypy",
]
overrides = [
{module = "aiopath", ignore_missing_imports = true}
]
[tool.coverage.run]
include = ["src/**"]
[tool.coverage.report]
fail_under = 80
[tool.poetry-dynamic-versioning]
enable = true
vcs = "git"
style = "pep440"
[build-system]
requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning"]
build-backend = "poetry_dynamic_versioning.backend"