-
Notifications
You must be signed in to change notification settings - Fork 2
/
pyproject.toml
105 lines (94 loc) · 2.37 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
[tool.poetry]
name = "arrest"
version = "0.1.9"
description = "Arrest is a wrapper of pydantic and httpx to make your REST api calls type-safe and structured"
authors = ["shiladitya <shiladitya_basu@live.com>"]
license = "MIT"
readme = "README.md"
include = ["CHANGELOG.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.scripts]
arrest = "arrest.__main__:main"
[tool.poetry.dependencies]
pydantic = ">=1.10.13"
python = "^3.10"
httpx = "^0.24.1"
orjson = "^3.9.10"
pyyaml = "^6.0.1"
backoff = "^2.2.1"
jinja2 = { version = "^3.1.3", optional = true }
argcomplete = "^3.2.2"
datamodel-code-generator = { version = "^0.25.2", optional = true }
[tool.poetry.extras]
openapi = ["jinja2", "datamodel-code-generator"]
[tool.poetry.group.dev.dependencies]
pytest = "^7.4.0"
pytest-cov = "^4.1.0"
pytest-asyncio = "^0.21.1"
pytest-mock = "^3.12.0"
respx = "^0.20.2"
pre-commit = "^3.5.0"
coverage = { extras = ["toml"], version = "^7.3.2" }
safety = "^2.3.5"
black = "^23.11.0"
isort = "^5.12.0"
bandit = "^1.7.5"
flake8 = "^6.1.0"
tox = "^4.11.4"
[tool.poetry.group.docs.dependencies]
mkdocs = "^1.5.3"
mkdocs-material = "^9.4.14"
mkdocstrings = { extras = ["python"], version = "^0.24.0" }
[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.coverage.run]
omit = [".*", "*/site-packages/*", "*/tests/*", "*.jinja2"]
source = ["arrest"]
[tool.coverage.report]
fail_under = 100
exclude_lines = [
"if self.debug:",
"pragma: no cover",
"except ImportError",
"raise NotImplementedError",
"if __name__ == .__main__.:",
"if TYPE_CHECKING:",
"if not TYPE_CHECKING:",
"class Config:",
"if PYDANTIC_V2",
]
[tool.isort]
line_length = 110
profile = "black"
skip_glob = ["**/fixtures/*"]