1+ [build-system ]
2+ requires = [" hatchling >= 1.26" ]
3+ build-backend = " hatchling.build"
4+
5+ [tool .hatch .build .targets .wheel ]
6+ packages = [" src/crate" ]
7+
8+ [tool .hatch .version ]
9+ path = " src/crate/client/__init__.py"
10+
11+ [project ]
12+ name = " crate-python"
13+ dynamic = [" version" ]
14+ description = " CrateDB Python Client"
15+ authors = [{ name = " Crate.io" , email = " office@crate.io" }]
16+ requires-python = " >=3.10"
17+ readme = " README.rst"
18+ license = { file = " LICENSE" }
19+ classifiers = [
20+ " Development Status :: 5 - Production/Stable" ,
21+ " Intended Audience :: Developers" ,
22+ " License :: OSI Approved :: Apache Software License" ,
23+ " Operating System :: OS Independent" ,
24+ " Programming Language :: Python" ,
25+ " Programming Language :: Python :: 3" ,
26+ " Programming Language :: Python :: 3.10" ,
27+ " Programming Language :: Python :: 3.11" ,
28+ " Programming Language :: Python :: 3.12" ,
29+ " Programming Language :: Python :: 3.13" ,
30+ " Programming Language :: Python :: Implementation :: CPython" ,
31+ " Programming Language :: Python :: Implementation :: PyPy" ,
32+ " Topic :: Database" ,
33+ ]
34+ dependencies = [
35+ " orjson>=3.11.3" ,
36+ " urllib3>=2.5.0" ,
37+ ]
38+
39+ [dependency-groups ]
40+ dev = [
41+ " certifi>=2025.10.5" ,
42+ " coverage>=7.11.0" ,
43+ " mypy>=1.18.2" ,
44+ " pytest>=8.4.2" ,
45+ " pytz>=2025.2" ,
46+ " ruff>=0.14.2" ,
47+ " setuptools>=80.9.0" ,
48+ " stopit>=1.1.2" ,
49+ " verlib2>=0.3.1" ,
50+ ]
51+
52+
153[tool .mypy ]
254mypy_path = " src"
355packages = [
@@ -18,65 +70,67 @@ non_interactive = true
1870line-length = 80
1971
2072extend-exclude = [
21- " /example_*" ,
73+ " /example_*" ,
2274]
2375
2476lint.select = [
25- # Builtins
26- " A" ,
27- # Bugbear
28- " B" ,
29- # comprehensions
30- " C4" ,
31- # Pycodestyle
32- " E" ,
33- # eradicate
34- " ERA" ,
35- # Pyflakes
36- " F" ,
37- # isort
38- " I" ,
39- # pandas-vet
40- " PD" ,
41- # return
42- " RET" ,
43- # Bandit
44- " S" ,
45- # print
46- " T20" ,
47- " W" ,
48- # flake8-2020
49- " YTT" ,
77+ # Builtins
78+ " A" ,
79+ # Bugbear
80+ " B" ,
81+ # comprehensions
82+ " C4" ,
83+ # Pycodestyle
84+ " E" ,
85+ # eradicate
86+ " ERA" ,
87+ # Pyflakes
88+ " F" ,
89+ # isort
90+ " I" ,
91+ # pandas-vet
92+ " PD" ,
93+ # return
94+ " RET" ,
95+ # Bandit
96+ " S" ,
97+ # print
98+ " T20" ,
99+ " W" ,
100+ # flake8-2020
101+ " YTT" ,
50102]
51103
52104lint.extend-ignore = [
53- # Unnecessary variable assignment before `return` statement
54- " RET504" ,
55- # Unnecessary `elif` after `return` statement
56- " RET505" ,
105+ # Unnecessary variable assignment before `return` statement
106+ " RET504" ,
107+ # Unnecessary `elif` after `return` statement
108+ " RET505" ,
57109]
58110
59111lint.per-file-ignores."example_*" = [
60- " ERA001" , # Found commented-out code
61- " T201" , # Allow `print`
112+ " ERA001" , # Found commented-out code
113+ " T201" , # Allow `print`
62114]
63115lint.per-file-ignores."devtools/*" = [
64- " T201" , # Allow `print`
116+ " T201" , # Allow `print`
65117]
66118lint.per-file-ignores."examples/*" = [
67- " ERA001" , # Found commented-out code
68- " T201" , # Allow `print`
119+ " ERA001" , # Found commented-out code
120+ " T201" , # Allow `print`
69121]
70122lint.per-file-ignores."tests/*" = [
71- " S106" , # Possible hardcoded password assigned to argument: "password"
72- " S311" , # Standard pseudo-random generators are not suitable for cryptographic purposes
123+ " S101" , # Asserts.
124+ " S105" , # Possible hardcoded password assigned to: "password"
125+ " S106" , # Possible hardcoded password assigned to argument: "password"
126+ " S311" , # Standard pseudo-random generators are not suitable for cryptographic purposes
73127]
74128lint.per-file-ignores."src/crate/client/{connection.py,http.py}" = [
75- " A004" , # Import `ConnectionError` is shadowing a Python builtin
76- " A005" , # Import `ConnectionError` is shadowing a Python builtin
129+ " A004" , # Import `ConnectionError` is shadowing a Python builtin
130+ " A005" , # Import `ConnectionError` is shadowing a Python builtin
77131]
78132lint.per-file-ignores."tests/client/test_http.py" = [
79- " A004" , # Import `ConnectionError` is shadowing a Python builtin
133+ " A004" , # Import `ConnectionError` is shadowing a Python builtin
80134]
81135
82136
0 commit comments