-
Notifications
You must be signed in to change notification settings - Fork 170
/
Copy pathpyproject.toml
145 lines (126 loc) · 3.61 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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
[tool.poetry]
name = "fastapi-utils"
version = "0.8.0"
description = "Reusable utilities for FastAPI"
license = "MIT"
authors = ["Yuval Levi <[email protected]>", "David Montague <[email protected]>"]
readme = "README.md"
homepage = "https://fastapiutils.github.io/fastapi-utils/"
repository = "https://github.com/dmontagu/fastapi-utils"
documentation = "https://fastapiutils.github.io/fastapi-utils/"
keywords = ["fastapi", "OOP", "RESTful"]
classifiers = [
"Intended Audience :: Information Technology",
"Intended Audience :: System Administrators",
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python",
"Topic :: Internet",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Software Development :: Libraries",
"Topic :: Software Development",
"Typing :: Typed",
"Development Status :: 4 - Beta",
"Environment :: Web Environment",
"Framework :: AsyncIO",
"Framework :: FastAPI",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Internet :: WWW/HTTP :: HTTP Servers",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Utilities"
]
[tool.poetry.dependencies]
python = "^3.8"
fastapi = ">=0.89,<1.0"
pydantic = ">1.0, <3.0"
sqlalchemy = { version = ">=1.4,<3.0", optional = true }
psutil = ">=5,<7"
pydantic-settings = { version= "^2.0.1", optional = true }
typing-inspect = { version = "^0.9.0", optional = true}
[tool.poetry.group.dev.dependencies]
# Starlette features
aiofiles = "*" # Serving static files
httpx = "*" # TestClient
# Testing
pytest = "^7.0"
pytest-cov = "*"
pytest-asyncio = [
{version = "^0.21.1", python = ">=3.8,<3.10"},
{version = "*", python = ">=3.10"}
]
coverage = "*"
codecov = "^2.1.13"
pytest-timeout = "^2.3.1"
# Documentation
mkdocs = "*"
mkdocs-material = "*"
markdown-include = "*"
autoflake = "^1.4"
# Static
ruff = ">0.3"
black = { version = "*", allow-prereleases = true }
mypy = "*"
sqlalchemy-stubs = "*"
types-setuptools = "*" # for pkg_resources import
[tool.poetry.extras]
all = ["sqlalchemy", "pydantic-settings", "typing-inspect"]
session = ["sqlalchemy"]
[tool.black]
line-length = 120
target_version = ['py39']
include = '\.pyi?$'
exclude = '''
(
/(
\.git
| \.mypy_cache
| \.pytest_cache
| htmlcov
| build
)/
)
'''
[tool.ruff]
line-length = 120
[tool.ruff.lint]
extend-select = ['RUF100', 'C90', 'I']
isort = { known-first-party = ['FastApi-RESTful', 'tests'] }
[tool.coverage.run]
source = ["fastapi_utils"]
branch = true
[tool.coverage.report]
precision = 2
exclude_lines = [
"pragma: no cover",
"raise NotImplementedError",
"raise NotImplemented",
"@overload",
"if TYPE_CHECKING:",
'if __name__ == "__main__":'
]
[tool.pytest.ini_options]
testpaths = "tests"
filterwarnings = "ignore:.*The explicit passing of coroutine objects to asyncio.wait()*:DeprecationWarning"
[tool.mypy]
plugins = "pydantic.mypy,sqlmypy"
follow_imports = "silent"
strict_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
disallow_any_generics = true
check_untyped_defs = true
ignore_missing_imports = true
disallow_untyped_defs = true
[tool.poetry-version-plugin]
source = "init"
[build-system]
requires = ["poetry_core>=1.0.0"]
build-backend = "poetry.core.masonry.api"