-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathpyproject.toml
More file actions
132 lines (123 loc) · 3.91 KB
/
pyproject.toml
File metadata and controls
132 lines (123 loc) · 3.91 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
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
[project]
name = "meatie"
version = "0.0.0"
description = "Meatie is a Python typed REST client library that eliminates the need for boilerplate code when integrating with external APIs. The library generates code for calling a REST API based on method signatures annotated with type hints. Meatie abstracts away mechanics related to HTTP communication, such as building URLs, encoding query parameters, parsing, and dumping Pydantic models. With some modest additional configuration effort, generated HTTP clients offer rate limiting, retries, and caching."
readme = "README.md"
keywords = [
"aiohttp",
"API",
"api-client",
"asyncio",
"HTTP",
"http-client",
"httpx",
"pydantic",
"requests",
"REST",
"type-hints",
]
license = "BSD-3-Clause"
license-files = [ "LICENSE.md" ]
authors = [ { name = "pmateusz", email = "pmateusz@users.noreply.github.com" } ]
requires-python = ">=3.9"
classifiers = [
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
]
repository = "https://github.com/pmateusz/meatie"
dependencies = [
"typing-extensions>=4.7.0"
]
[project.optional-dependencies]
aiohttp = [ "aiohttp>=3.7" ]
httpx = [ "httpx>=0.19" ]
pydantic = [ "pydantic>=1.10" ]
requests = [ "requests>=2.26" ]
[dependency-groups]
docs = [
"mkdocs>=1.2",
"mkdocs-material>=7.1",
"mkdocstrings>=0.28",
"mkdocstrings-python>=1.14.5",
]
test = [
"cryptography>=42.0.2",
"pytest>=7.4.3",
"pytest-asyncio>=1.1.0",
"pytest-cov>=6.0.0",
"pytest-xdist[psutil]>=3.6.1",
]
mypy = [
"pip",
"mypy>=1.18.2",
"types-setuptools",
"types-requests",
"types-docutils",
"types-Pygments",
"types-PySocks"
]
[tool.uv]
managed = true
package = true
default-groups = [ "test" ]
[tool.uv.build-backend]
module-name = ["meatie", "meatie_aiohttp", "meatie_httpx", "meatie_requests"]
[build-system]
requires = ["uv_build>=0.8.10,<0.9.0"]
build-backend = "uv_build"
[tool.ruff]
line-length = 120
fix = true
cache-dir = ".ruff"
[tool.ruff.lint]
preview = true
extend-select = [ "CPY001", "D", "I" ]
ignore = [ "D100", "D105" ]
per-file-ignores."src/meatie/internal/adapter/**" = [ "D" ]
per-file-ignores."src/meatie/internal/cache.py" = [ "D" ]
per-file-ignores."src/meatie/internal/limit/**" = [ "D" ]
per-file-ignores."src/meatie/internal/retry/**" = [ "D" ]
per-file-ignores."src/meatie_aiohttp/**" = [ "D" ]
per-file-ignores."src/meatie_httpx/**" = [ "D" ]
per-file-ignores."src/meatie_requests/**" = [ "D" ]
per-file-ignores."test_*.py" = [ "D" ]
per-file-ignores."tests/**" = [ "D" ]
flake8-copyright.min-file-size = 1024
flake8-copyright.notice-rgx = "(?i)Copyright \\d{4} The Meatie Authors. All rights reserved.[\\r\\n]+# Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.[\\r\\n]*"
pydocstyle.convention = "google"
[tool.pytest.ini_options]
log_cli = true
pythonpath = [ "src", "tests/shared" ]
addopts = [
"--import-mode=importlib",
"-nauto", # Automatically run tests in parallel, disable by running `pytest -n 1`
]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
[tool.mypy]
mypy_path = [ "$MYPY_CONFIG_FILE_DIR/src", "$MYPY_CONFIG_FILE_DIR/tests/shared" ]
cache_dir = "./.mypy"
pretty = true
allow_empty_bodies = true
check_untyped_defs = true
disallow_any_generics = true
disallow_any_unimported = true
disallow_incomplete_defs = true
disallow_untyped_defs = true
disallow_untyped_decorators = true
disallow_untyped_calls = true
explicit_package_bases = true
local_partial_types = true
no_warn_no_return = true
no_implicit_reexport = true
show_error_context = true
strict_equality = true
warn_unreachable = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_unused_configs = true