@@ -7,19 +7,18 @@ name = "firebird-uuid"
77dynamic = [" version" ]
88description = ' Official tools for working with OID namespace managed by the Firebird Project.'
99readme = " README.md"
10- requires-python = " >=3.8 , <4"
10+ requires-python = " >=3.11 , <4"
1111license = { file = " LICENSE" }
1212keywords = [" Firebird" , " UUID" ]
1313authors = [
1414 {
name =
" Pavel Cisar" ,
email =
" [email protected] " },
1515]
1616classifiers = [
1717 " Development Status :: 4 - Beta" ,
18- " Programming Language :: Python" ,
19- " Programming Language :: Python :: 3.8" ,
20- " Programming Language :: Python :: 3.9" ,
21- " Programming Language :: Python :: 3.10" ,
18+ " Programming Language :: Python :: 3 :: Only" ,
2219 " Programming Language :: Python :: 3.11" ,
20+ " Programming Language :: Python :: 3.12" ,
21+ " Programming Language :: Python :: 3.13" ,
2322 " Programming Language :: Python :: Implementation :: CPython" ,
2423 " Programming Language :: Python :: Implementation :: PyPy" ,
2524 " License :: OSI Approved :: MIT License" ,
@@ -31,10 +30,10 @@ classifiers = [
3130 " Topic :: Software Development :: Libraries" ,
3231]
3332dependencies = [
34- " toml>=0.10 .2" ,
35- " PyYAML> =6.0.1, <7 " ,
36- " requests> =2.31.0 " ,
37- " firebird-base>=1.7 .0" ,
33+ " tomli-w>=1 .2" ,
34+ " PyYAML~ =6.0" ,
35+ " requests~ =2.31" ,
36+ " firebird-base~=2 .0" ,
3837]
3938
4039[project .urls ]
@@ -53,6 +52,9 @@ include = ["src"]
5352[tool .hatch .build .targets .wheel ]
5453packages = [" src/firebird" ]
5554
55+ [tool .hatch .metadata ]
56+ allow-direct-references = true
57+
5658[tool .hatch .envs .default ]
5759dependencies = [
5860]
@@ -75,77 +77,32 @@ cov = [
7577]
7678version = " python --version"
7779
78- [[tool .hatch .envs .test .matrix ]]
79- python = [" 3.8 " , " 3.9 " , " 3.10 " , " 3.11 " ]
80+ [[tool .hatch .envs .hatch- test .matrix ]]
81+ python = [" 3.11 " , " 3.12 " , " 3.13 " ]
8082
8183[tool .hatch .envs .doc ]
8284detached = false
8385platforms = [" linux" ]
8486dependencies = [
85- " Sphinx>=7.1 " ,
87+ " Sphinx==7.2.6 " ,
8688 " sphinx-bootstrap-theme>=0.8.1" ,
8789 " sphinx-autodoc-typehints>=1.24.0" ,
90+ " doc2dash>=3.0.0"
8891]
8992[tool .hatch .envs .doc .scripts ]
9093build = " cd docs ; make html"
91-
92- [tool .hatch .envs .lint ]
93- detached = true
94- dependencies = [
95- " black>=23.1.0" ,
96- " mypy>=1.0.0" ,
97- " ruff>=0.0.243" ,
98- ]
99- [tool .hatch .envs .lint .scripts ]
100- typing = " mypy --install-types --non-interactive {args:src/firebird/uuid tests}"
101- style = [
102- " ruff {args:.}" ,
103- " black --check --diff {args:.}" ,
104- ]
105- fmt = [
106- " black {args:.}" ,
107- " ruff --fix {args:.}" ,
108- " style" ,
94+ docset = [
95+ " cd docs ; doc2dash -u https://firebird-uuid.readthedocs.io/en/latest/ -f -i ./_static/fb-favicon.png -n firebird-uuid ./_build/html/" ,
96+ " cd docs; VERSION=`hatch version` ; tar --exclude='.DS_Store' -cvzf ../dist/firebird-uuid-$VERSION-docset.tgz firebird-uuid.docset" ,
10997]
110- all = [
111- " style" ,
112- " typing" ,
113- ]
114-
115- [tool .black ]
116- target-version = [" py38" ]
117- line-length = 120
118- skip-string-normalization = true
11998
12099[tool .ruff ]
121- target-version = " py38 "
100+ target-version = " py311 "
122101line-length = 120
123- select = [
124- " A" ,
125- " ARG" ,
126- " B" ,
127- " C" ,
128- " DTZ" ,
129- " E" ,
130- " EM" ,
131- " F" ,
132- " FBT" ,
133- " I" ,
134- " ICN" ,
135- " ISC" ,
136- " N" ,
137- " PLC" ,
138- " PLE" ,
139- " PLR" ,
140- " PLW" ,
141- " Q" ,
142- " RUF" ,
143- " S" ,
144- " T" ,
145- " TID" ,
146- " UP" ,
147- " W" ,
148- " YTT" ,
102+
103+ [tool .ruff .lint ]
104+ select = [" A" , " ARG" , " B" , " C" , " DTZ" , " E" , " EM" , " F" , " FBT" , " I" , " ICN" , " ISC" , " N" ,
105+ " PLC" , " PLE" , " PLR" , " PLW" , " Q" , " RUF" , " S" , " T" , " TID" , " UP" , " W" , " YTT" ,
149106]
150107ignore = [
151108 # Allow non-abstract empty methods in abstract base classes
@@ -156,21 +113,34 @@ ignore = [
156113 " S105" , " S106" , " S107" ,
157114 # Ignore complexity
158115 " C901" , " PLR0911" , " PLR0912" , " PLR0913" , " PLR0915" ,
116+ #
117+ " E741" ,
118+ # Allow relative imports
119+ " TID252" ,
120+ # Allow literals in exceptions
121+ " EM101" , " EM102" ,
122+ # Single quotes instead double
123+ " Q000"
159124]
160125unfixable = [
161126 # Don't touch unused imports
162127 " F401" ,
128+ # Don't change single quotes to double
129+ " Q000"
163130]
131+ exclude = [" *_pb2.py" , " *.pyi" , " tests/*" , " docs/*" , " work/*" ]
164132
165- [tool .ruff .isort ]
166- known-first-party = [" firebird.uuid" ]
133+ [tool .ruff .lint . isort ]
134+ known-first-party = [" firebird.uuid" , " firebird.base " ]
167135
168- [tool .ruff .flake8-tidy-imports ]
136+ [tool .ruff .lint . flake8-tidy-imports ]
169137ban-relative-imports = " all"
170138
171- [tool .ruff .per-file-ignores ]
139+ [tool .ruff .lint . per-file-ignores ]
172140# Tests can use magic values, assertions, and relative imports
173141"tests/**/*" = [" PLR2004" , " S101" , " TID252" ]
142+ "__init__.py" = [" F401" ]
143+ "_spec.py" = [" E501" ]
174144
175145[tool .coverage .run ]
176146source_pkgs = [" firebird.uuid" , " tests" ]
@@ -181,8 +151,8 @@ omit = [
181151]
182152
183153[tool .coverage .paths ]
184- firebird_uuid = [" src/python " , " */python/ src/firebird/uuid" ]
185- tests = [" tests" , " */python/tests " ]
154+ firebird_base = [" src/firebird/uuid" ]
155+ tests = [" tests" ]
186156
187157[tool .coverage .report ]
188158exclude_lines = [
0 commit comments