@@ -7,7 +7,7 @@ name = "firebird-butler-protobuf"
7
7
dynamic = [" version" ]
8
8
description = ' Firebird Butler protocol buffers'
9
9
readme = " README.md"
10
- requires-python = " >=3.8 "
10
+ requires-python = " >=3.11 "
11
11
license = { file = " LICENSE" }
12
12
keywords = [" Firebird" , " Butler" , " protobuf" ]
13
13
authors = [
@@ -18,17 +18,16 @@ classifiers = [
18
18
" Intended Audience :: Developers" ,
19
19
" License :: OSI Approved :: MIT License" ,
20
20
" Programming Language :: Python :: 3 :: Only" ,
21
- " Programming Language :: Python :: 3.8" ,
22
- " Programming Language :: Python :: 3.9" ,
23
- " Programming Language :: Python :: 3.10" ,
24
21
" Programming Language :: Python :: 3.11" ,
22
+ " Programming Language :: Python :: 3.12" ,
23
+ " Programming Language :: Python :: 3.13" ,
25
24
" Operating System :: POSIX :: Linux" ,
26
25
" Operating System :: Microsoft :: Windows" ,
27
26
" Operating System :: MacOS" ,
28
27
" Topic :: Software Development" ,
29
28
]
30
29
dependencies = [
31
- " protobuf>=4.23.4 " ,
30
+ " protobuf~=5.29 " ,
32
31
]
33
32
34
33
[project .urls ]
@@ -52,95 +51,46 @@ include = ["src"]
52
51
[tool .hatch .build .targets .wheel ]
53
52
packages = [" src/firebird" ]
54
53
55
- [tool .hatch .envs .test ]
54
+ [tool .hatch .metadata ]
55
+ allow-direct-references = true
56
+
57
+ [tool .hatch .envs .default ]
58
+ dependencies = [
59
+ ]
60
+
61
+ [tool .hatch .envs .hatch-test ]
62
+ extra-args = [" -vv" ]
56
63
dependencies = [
57
64
" coverage[toml]>=6.5" ,
58
65
" pytest" ,
59
66
]
60
- [tool .hatch .envs .test .scripts ]
61
- test = " pytest {args:tests}"
62
- test-cov = " coverage run -m pytest {args:tests}"
63
- cov-report = [
64
- " - coverage combine" ,
65
- " coverage report" ,
66
- ]
67
- cov = [
68
- " test-cov" ,
69
- " cov-report" ,
70
- ]
71
- version = " python --version"
72
67
73
- [[tool .hatch .envs .test .matrix ]]
74
- python = [" 3.8 " , " 3.9 " , " 3.10 " , " 3.11 " ]
68
+ [[tool .hatch .envs .hatch- test .matrix ]]
69
+ python = [" 3.11 " , " 3.12 " , " 3.13 " ]
75
70
76
71
[tool .hatch .envs .doc ]
77
72
detached = false
78
73
platforms = [" linux" ]
79
74
dependencies = [
80
- " Sphinx>=7.1 " ,
75
+ " Sphinx==7.2.6 " ,
81
76
" sphinx-bootstrap-theme>=0.8.1" ,
82
77
" sphinx-autodoc-typehints>=1.24.0" ,
78
+ " doc2dash>=3.0.0"
83
79
]
84
80
[tool .hatch .envs .doc .scripts ]
85
81
build = " cd docs ; make html"
86
-
87
- [tool .hatch .envs .lint ]
88
- detached = true
89
- dependencies = [
90
- " black>=23.1.0" ,
91
- " mypy>=1.0.0" ,
92
- " ruff>=0.0.243" ,
93
- ]
94
- [tool .hatch .envs .lint .scripts ]
95
- typing = " mypy --install-types --non-interactive {args:src/firebird/uuid tests}"
96
- style = [
97
- " ruff {args:.}" ,
98
- " black --check --diff {args:.}" ,
99
- ]
100
- fmt = [
101
- " black {args:.}" ,
102
- " ruff --fix {args:.}" ,
103
- " style" ,
104
- ]
105
- all = [
106
- " style" ,
107
- " typing" ,
82
+ docset = [
83
+ " cd docs ; doc2dash -u https://firebird-butler.readthedocs.io/en/latest/ -f -i ./_static/fb-favicon.png -n firebird-butler ./_build/html/" ,
84
+ " cd docs; VERSION=`hatch version` ; tar --exclude='.DS_Store' -cvzf ../dist/firebird-butler-$VERSION-docset.tgz firebird-butler.docset" ,
108
85
]
109
86
110
- [tool .black ]
111
- target-version = [" py38" ]
112
- line-length = 120
113
- skip-string-normalization = true
114
-
115
87
[tool .ruff ]
116
- target-version = " py38 "
88
+ target-version = " py311 "
117
89
line-length = 120
118
- select = [
119
- " A" ,
120
- " ARG" ,
121
- " B" ,
122
- " C" ,
123
- " DTZ" ,
124
- " E" ,
125
- " EM" ,
126
- " F" ,
127
- " FBT" ,
128
- " I" ,
129
- " ICN" ,
130
- " ISC" ,
131
- " N" ,
132
- " PLC" ,
133
- " PLE" ,
134
- " PLR" ,
135
- " PLW" ,
136
- " Q" ,
137
- " RUF" ,
138
- " S" ,
139
- " T" ,
140
- " TID" ,
141
- " UP" ,
142
- " W" ,
143
- " YTT" ,
90
+
91
+ [tool .ruff .lint ]
92
+ select = [" A" , " ARG" , " B" , " C" , " DTZ" , " E" , " EM" , " F" , " FBT" , " I" , " ICN" , " ISC" , " N" ,
93
+ " PLC" , " PLE" , " PLR" , " PLW" , " Q" , " RUF" , " S" , " T" , " TID" , " UP" , " W" , " YTT" ,
144
94
]
145
95
ignore = [
146
96
# Allow non-abstract empty methods in abstract base classes
@@ -151,32 +101,43 @@ ignore = [
151
101
" S105" , " S106" , " S107" ,
152
102
# Ignore complexity
153
103
" C901" , " PLR0911" , " PLR0912" , " PLR0913" , " PLR0915" ,
104
+ #
105
+ " E741" ,
106
+ # Allow relative imports
107
+ " TID252" ,
108
+ # Allow literals in exceptions
109
+ " EM101" , " EM102" ,
110
+ # Single quotes instead double
111
+ " Q000"
154
112
]
155
113
unfixable = [
156
114
# Don't touch unused imports
157
115
" F401" ,
116
+ # Don't change single quotes to double
117
+ " Q000"
158
118
]
119
+ exclude = [" *_pb2.py" , " *.pyi" , " tests/*" , " docs/*" , " personal/*" ]
159
120
160
- [tool .ruff .isort ]
161
- known-first-party = [" firebird.uuid " ]
121
+ [tool .ruff .lint . isort ]
122
+ known-first-party = [" firebird.butler " ]
162
123
163
- [tool .ruff .flake8-tidy-imports ]
124
+ [tool .ruff .lint . flake8-tidy-imports ]
164
125
ban-relative-imports = " all"
165
126
166
- [tool .ruff .per-file-ignores ]
127
+ [tool .ruff .lint . extend- per-file-ignores ]
167
128
# Tests can use magic values, assertions, and relative imports
168
129
"tests/**/*" = [" PLR2004" , " S101" , " TID252" ]
169
130
170
131
[tool .coverage .run ]
171
- source_pkgs = [" firebird.uuid " , " tests" ]
132
+ source_pkgs = [" firebird.butler " , " tests" ]
172
133
branch = true
173
134
parallel = true
174
135
omit = [
175
- " src/firebird/uuid /__about__.py" ,
136
+ " src/firebird/butler /__about__.py" ,
176
137
]
177
138
178
139
[tool .coverage .paths ]
179
- firebird_uuid = [" src/python " , " */python/src/firebird/uuid " ]
140
+ firebird_butler = [" */python/src/firebird/butler " ]
180
141
tests = [" tests" , " */python/tests" ]
181
142
182
143
[tool .coverage .report ]
0 commit comments