-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
78 lines (65 loc) · 2.84 KB
/
pyproject.toml
File metadata and controls
78 lines (65 loc) · 2.84 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
[build-system]
requires = [ "maturin>=1.5,<2.0",]
build-backend = "maturin"
[project]
name = "httpr"
description = "Fast HTTP client for Python"
readme = "README.md"
requires-python = ">=3.9"
keywords = [ "python", "request",]
classifiers = [ "Programming Language :: Rust", "Programming Language :: Python :: 3", "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 :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: Libraries :: Python Modules",]
# Version is set dynamically by CI from git tags (e.g., v1.2.3 -> 1.2.3).
# Do not edit manually. See .github/actions/set-version/ for details.
version = "0.0.0.dev0"
dependencies = []
[[project.authors]]
name = "thomasht86"
[project.license]
text = "MIT License"
[project.optional-dependencies]
dev = [ "certifi", "pytest>=8.1.1", "pytest-asyncio>=0.25.3", "pytest-benchmark>=5.1.0", "pytest-httpbin>=2.1.0", "typing_extensions; python_version <= '3.11'", "mypy>=1.14.1", "ruff>=0.9.2", "maturin", "trustme", "cbor2", "go-task-bin", "pre-commit",]
docs = [ "mkdocs-material[imaging]", "mkdocstrings[python]>=0.27.0", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-llmstxt",]
benchmark = [ "matplotlib", "pandas", "starlette", "uvicorn", "requests", "httpx", "tls-client", "curl_cffi", "pycurl", "typing_extensions", "aiohttp", "cbor2", "jupyter", "ipykernel", "gunicorn", "fastapi",]
[tool.maturin]
features = [ "pyo3/extension-module",]
[tool.ruff]
line-length = 120
exclude = [ ".github",]
[tool.ruff.lint]
select = [ "E", "F", "UP", "B", "SIM", "I",]
[tool.ruff.lint.per-file-ignores]
# Tests: allow assert statements, broad exception catching, multiple with statements
"tests/**" = [
"B011", # assert-false
"B017", # assert-raises-exception
"SIM117", # multiple-with-statements (common in test fixtures)
]
# Benchmarks: more relaxed rules for scripts
"benchmark/**" = [
"B018", # useless-expression (intentional for benchmarking .text/.json())
"SIM108", # if-else-block-instead-of-if-exp (readability preference)
"SIM117", # multiple-with-statements
]
[tool.mypy]
python_version = "3.9"
exclude = [ "benchmark/",]
[[tool.mypy.overrides]]
module = [
"pytest_httpbin.*",
"starlette.*",
"httpx.*",
]
ignore_missing_imports = true
[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
markers = [
"e2e: end-to-end tests requiring Docker and httpbun container",
]
[tool.uv]
[[tool.uv.cache-keys]]
file = "pyproject.toml"
[[tool.uv.cache-keys]]
file = "rust/Cargo.toml"
[[tool.uv.cache-keys]]
file = "**/*.rs"