-
Notifications
You must be signed in to change notification settings - Fork 2
/
pyproject.toml
119 lines (100 loc) · 2.57 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
[tool.poetry]
name = "arrest"
version = "0.1.10"
description = "Arrest is a wrapper of pydantic and httpx to make your REST api calls type-safe and structured"
authors = ["shiladitya <[email protected]>"]
license = "MIT"
readme = "README.md"
homepage = "https://s-bose.github.io/arrest"
repository = "https://github.com/s-bose/arrest"
documentation = "https://s-bose.github.io/arrest"
keywords = ["arrest", "rest", "pydantic", "httpx", "api"]
classifiers = [
"Natural Language :: English",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Topic :: Software Development :: Libraries",
]
[tool.poetry.urls]
changelog = "https://s-bose.github.io/arrest/release-notes"
[tool.poetry.scripts]
arrest = "arrest.__main__:main"
[tool.poetry.dependencies]
pydantic = ">=1.10.15, <3.0.0"
python = "^3.10"
httpx = "^0.27.0"
orjson = "^3.9.10"
pyyaml = "^6.0.1"
jinja2 = { version = "^3.1.3", optional = true }
argcomplete = "^3.2.2"
datamodel-code-generator = { version = "0.25.8", optional = true }
tenacity = "^8.5.0"
[tool.poetry.extras]
openapi = ["jinja2", "datamodel-code-generator"]
[tool.poetry.group.test.dependencies]
pytest = "^7.4.0"
pytest-cov = "^5.0.0"
pytest-asyncio = "^0.21.1"
pytest-mock = "^3.12.0"
respx = "^0.20.2"
[tool.poetry.group.dev.dependencies]
pre-commit = "^3.5.0"
safety = "3.2.4"
isort = "^5.12.0"
bandit = "^1.7.5"
flake8 = "^6.1.0"
tox = "^4.11.4"
black = "^24.4.2"
[tool.poetry.group.docs.dependencies]
mkdocs = "^1.5.3"
mkdocs-material = "9.5.42"
mkdocstrings = { version = "0.25.2", extras = ["python"] }
[tool.poetry.group.openapi.dependencies]
datamodel-code-generator = "^0.25.8"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[tool.black]
target-version = ["py310"]
color = false
line-length = 110
exclude = '''
/(
\.git
| \.mypy_cache
| \.tox
| \.venv
| build
| venv
)/
'''
force-exclude = '''
/(
| tests/fixtures/*
)/
'''
[tool.pytest.ini_options]
addopts = "--ignore=example"
[tool.coverage.run]
omit = [".*", "*/site-packages/*", "*/tests/*", "*.jinja2"]
source = ["arrest"]
[tool.coverage.report]
fail_under = 85
exclude_lines = [
"if self.debug:",
"pragma: no cover",
"raise NotImplementedError",
"except ImportError",
"if __name__ == .__main__.:",
"if TYPE_CHECKING:",
"if not TYPE_CHECKING:",
"class Config:",
]
[tool.isort]
line_length = 110
profile = "black"
skip_glob = ["**/fixtures/*"]
[tool.mypy]
plugins = ["arrest.mypy"]