ab49da2180685f91a5e7162e99cf031c32538d88
Marco Ricci Import initial project files

Marco Ricci authored 2 years ago

1) [build-system]
Marco Ricci Purge hatch-gettext build p...

Marco Ricci authored 1 year ago

2) requires = ["hatchling"]
Marco Ricci Import initial project files

Marco Ricci authored 2 years ago

3) build-backend = "hatchling.build"
4) 
5) [project]
6) name = "derivepassphrase"
7) description = "An almost faithful Python reimplementation of James Coglan's vault."
8) readme = "README.md"
Marco Ricci Release 0.5

Marco Ricci authored 1 year ago

9) version = "0.5"
Marco Ricci Add support for Python 3.9

Marco Ricci authored 1 year ago

10) requires-python = ">= 3.9"
Marco Ricci Update copyright notices to...

Marco Ricci authored 1 year ago

11) license = { text = "zlib/libpng" }
Marco Ricci Import initial project files

Marco Ricci authored 2 years ago

12) keywords = []
13) authors = [
Marco Ricci Fix inconsistent indentatio...

Marco Ricci authored 1 year ago

14)     { name = "Marco Ricci", email = "software@the13thletter.info" },
Marco Ricci Import initial project files

Marco Ricci authored 2 years ago

15) ]
16) classifiers = [
Marco Ricci Fix inconsistent indentatio...

Marco Ricci authored 1 year ago

17)     "Development Status :: 4 - Beta",
18)     "Environment :: Console",
19)     "License :: OSI Approved :: zlib/libpng License",
20)     "Programming Language :: Python :: 3",
21)     "Programming Language :: Python :: 3.9",
22)     "Programming Language :: Python :: 3.10",
23)     "Programming Language :: Python :: 3.11",
24)     "Programming Language :: Python :: 3.12",
25)     "Programming Language :: Python :: 3.13",
Marco Ricci Assert compatibility with P...

Marco Ricci authored 1 year ago

26)     "Programming Language :: Python :: 3.14",
Marco Ricci Fix inconsistent indentatio...

Marco Ricci authored 1 year ago

27)     "Programming Language :: Python :: Implementation :: CPython",
28)     "Programming Language :: Python :: Implementation :: PyPy",
Marco Ricci Import initial project files

Marco Ricci authored 2 years ago

29) ]
30) dependencies = [
Marco Ricci Fix inconsistent indentatio...

Marco Ricci authored 1 year ago

31)     # We use click for the command-line interface.  We require version
32)     # 8.1.0 or higher due to click issue #1985.
33)     "click >= 8.1",
34)     # We include type annotations, and use facilities that are not
35)     # readily available in older Pythons (such as typing.Self).  These
36)     # are loaded from typing_extensions, instead of using explicit
37)     # version guards.
38)     "typing_extensions",
39)     # We read configuration files in JSON and TOML format.  The latter
40)     # is unavailable in the Python standard library until Python 3.11.
41)     'tomli; python_version < "3.11"'
Marco Ricci Overhaul dependency and env...

Marco Ricci authored 2 years ago

42) ]
43) 
44) [project.optional-dependencies]
Marco Ricci Specify project dependencie...

Marco Ricci authored 1 year ago

45) dev = [
Marco Ricci Pin testing dependencies

Marco Ricci authored 1 year ago

46)     # dev - developers' setup
47)     #
Marco Ricci Fix inconsistent indentatio...

Marco Ricci authored 1 year ago

48)     # Development uses the hatch build system, to isolate all tools in
49)     # their own virtual environment...
Marco Ricci Resolve dependency versions...

Marco Ricci authored 1 year ago

50)     "hatch >= 1.10",
Marco Ricci Fix inconsistent indentatio...

Marco Ricci authored 1 year ago

51)     # ...but it is still sensible to have most static analysis tools
52)     # available in the main virtual environment as well, so that your
53)     # editor/IDE setup can access them as well.
Marco Ricci Resolve dependency versions...

Marco Ricci authored 1 year ago

54)     "mypy >= 1.0",
55)     "ruff >= 0.9.0",
Marco Ricci Fix inconsistent indentatio...

Marco Ricci authored 1 year ago

56)     # Test dependencies should be installed as well, to have static
57)     # analysis in the test suite working too.  `packaging` is needed
58)     # because the test suite compares version numbers.
Marco Ricci Resolve dependency versions...

Marco Ricci authored 1 year ago

59)     "coverage[toml] >= 7.4",
60)     "coverage-enable-subprocess >= 1.0",
Marco Ricci Fix inconsistent indentatio...

Marco Ricci authored 1 year ago

61)     "hypothesis >= 6.0",
62)     "packaging",
Marco Ricci Resolve dependency versions...

Marco Ricci authored 1 year ago

63)     "pytest >= 8.1",
64)     "pytest-randomly >= 3.15",
65)     "pytest-xdist[psutil] >= 3.6.0",
Marco Ricci Pin testing dependencies

Marco Ricci authored 1 year ago

66)     # Versions 6.130.13 through 6.135.1 of `hypothesis` use syntax only
67)     # available on Python 3.10 and later: `with (x as y, a as b)`
68)     'hypothesis != 6.130.13, != 6.131.*, != 6.132.*, != 6.133.*, != 6.134.*, != 6.135.0, != 6.135.1 ; python_version < "3.10"',
Marco Ricci Specify project dependencie...

Marco Ricci authored 1 year ago

69) ]
Marco Ricci Add dependency on cryptogra...

Marco Ricci authored 1 year ago

70) export = [
Marco Ricci Pin testing dependencies

Marco Ricci authored 1 year ago

71)     # export - additional dependencies for `derivepassphrase export`
72)     #
Marco Ricci Fix inconsistent indentatio...

Marco Ricci authored 1 year ago

73)     # The vault configuration exporter relies on cryptography.
74)     # Version 38 was the first to include the `algorithms.AES256`
Marco Ricci Resolve dependency versions...

Marco Ricci authored 1 year ago

75)     # interface, instead of only the `algorithms.AES` interface, but
76)     # this was never tested, so we require the earliest cryptography
77)     # version we tested on.
78)     "cryptography >= 42.0.0",
Marco Ricci Add dependency on cryptogra...

Marco Ricci authored 1 year ago

79) ]
Marco Ricci Pin testing dependencies

Marco Ricci authored 1 year ago

80) export-dev-wheels = [
81)     # export-dev-wheels - wheel requirements for "export" in the "dev"
82)     # setup
83)     #
84)     # `cryptography` 44.0.0 does not publish wheels for PyPy 3.9
85)     # anymore.
86)     'cryptography < 44 ; python_version < "3.10" and platform_python_implementation == "PyPy"',
87)     # `cryptography` 44.0.1 is the first version to publish wheels for
88)     # PyPy 3.11.
89)     'cryptography > 44.0.1 ; python_version >= "3.11" and platform_python_implementation == "PyPy"',
90) ]
Marco Ricci Import initial project files

Marco Ricci authored 2 years ago

91) 
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

92) [project.scripts]
93) derivepassphrase = "derivepassphrase.cli:derivepassphrase"
94) 
Marco Ricci Import initial project files

Marco Ricci authored 2 years ago

95) [project.urls]
Marco Ricci Set up a web host for the d...

Marco Ricci authored 2 years ago

96) Documentation = "https://the13thletter.info/derivepassphrase/"
Marco Ricci Update declared URLs (issue...

Marco Ricci authored 1 year ago

97) Issues = "https://the13thletter.info/derivepassphrase/latest/wishlist/"
98) Source = "https://git.schokokeks.org/derivepassphrase.git"
Marco Ricci Import initial project files

Marco Ricci authored 2 years ago

99) 
Marco Ricci Prepare `bump-my-version` f...

Marco Ricci authored 1 year ago

100) [tool.bumpversion]
Marco Ricci Release 0.5

Marco Ricci authored 1 year ago

101) current_version = "0.5"
Marco Ricci Prepare `bump-my-version` f...

Marco Ricci authored 1 year ago

102) # As of bump-my-version 0.32.0, version components are strictly
103) # hierarchical in the order of occurrence, and there is no support for
104) # pre-release markers.  The documentation suggests a fake "dev/rc/final"
105) # marker, with "final" being suppressed on output; effectively, it's
106) # major.minor.patch-n.m, where -n.m is suppressed if n is some maximum
107) # value and m is zero.  This sort of scales to multiple levels of pre-
108) # oder development releases (e.g. distinguished alpha versions and
109) # development versions in between alpha versions) if you manually
110) # increment the lower markers manually, in descending order, while no
111) # committing the result... but at that point you're not really gaining
112) # that much over calculating the new version number yourself and forcing
113) # that.
114) #
115) # The primary reason to still fill out these templates is to ensure that
116) # the version number correctly round-trips within bump-my-version.
117) parse = '''(?x)
118)     (?P<major>\d+)
119)     \.(?P<minor>\d+)
120)     (?:\.(?P<patch>\d+))?
121)     (?:
122)         (?P<pre_l>-dev|a|b|rc|)
123)         (?P<pre_n>[1-9][0-9]*)
124)     )?
125)     (?:
126)         [-.]
127)         (?P<dev_t>dev|final)
128)         (?P<dev_n>[1-9][0-9]*)
129)     )?
130) '''
131) serialize = [
Marco Ricci Fix bump-my-version config...

Marco Ricci authored 1 year ago

132)     '{major}.{minor}.{patch}{pre_l}{pre_n}.{dev_t}{dev_n}',
Marco Ricci Prepare `bump-my-version` f...

Marco Ricci authored 1 year ago

133)     '{major}.{minor}.{patch}{pre_l}{pre_n}',
134)     '{major}.{minor}.{patch}',
Marco Ricci Fix bump-my-version config...

Marco Ricci authored 1 year ago

135)     '{major}.{minor}{pre_l}{pre_n}.{dev_t}{dev_n}',
Marco Ricci Prepare `bump-my-version` f...

Marco Ricci authored 1 year ago

136)     '{major}.{minor}{pre_l}{pre_n}',
137)     '{major}.{minor}',
138) ]
139) search = '{current_version}'
140) replace = '{new_version}'
141) regex = false
142) ignore_missing_version = false
143) ignore_missing_files = false
144) tag = true
145) sign_tags = false
146) tag_name = '{new_version}'
147) tag_message = 'Release derivepassphrase v{new_version}'
148) allow_dirty = true
149) commit = true
150) message = 'Release {new_version}'
151) moveable_tags = []
152) commit_args = ""
153) setup_hooks = []
154) pre_commit_hooks = []
155) post_commit_hooks = []
156) 
157) [tool.bumpversion.parts.dev_t]
158) values = ['dev', '']
159) optional_value = ''
160) 
161) [tool.bumpversion.parts.dev_n]
162) values = []
163) first_value = '1'
164) 
165) [tool.bumpversion.parts.pre_l]
166) values = ['-dev', 'a', 'b', 'rc', '']
167) optional_value = ''
168) 
169) [tool.bumpversion.parts.pre_n]
170) values = []
171) first_value = '1'
172) 
173) [[tool.bumpversion.files]]
174) glob = 'src/derivepassphrase/*.py'
175) search = '# SPDX-FileCopyrightText: \d\d\d\d'
176) replace = '# SPDX-FileCopyrightText: {now:%Y}'
177) regex = true
178) 
179) [[tool.bumpversion.files]]
180) glob = 'src/derivepassphrase/*/*.py'
181) search = '# SPDX-FileCopyrightText: \d\d\d\d'
182) replace = '# SPDX-FileCopyrightText: {now:%Y}'
183) regex = true
184) 
185) [[tool.bumpversion.files]]
186) glob = 'tests/*.py'
187) search = '# SPDX-FileCopyrightText: \d\d\d\d'
188) replace = '# SPDX-FileCopyrightText: {now:%Y}'
189) regex = true
190) 
191) [[tool.bumpversion.files]]
192) filename = 'pyproject.toml'
Marco Ricci Fix bump-my-version config...

Marco Ricci authored 1 year ago

193) search = "^ *version *= *'{current_version}'"
Marco Ricci Prepare `bump-my-version` f...

Marco Ricci authored 1 year ago

194) replace = "version = '{new_version}'"
195) regex = true
196) 
197) [[tool.bumpversion.files]]
198) filename = 'pyproject.toml'
Marco Ricci Fix bump-my-version config...

Marco Ricci authored 1 year ago

199) search = "^ *current_version *= *'{current_version}'"
Marco Ricci Prepare `bump-my-version` f...

Marco Ricci authored 1 year ago

200) replace = "current_version = '{new_version}'"
201) regex = true
202) 
203) [[tool.bumpversion.files]]
Marco Ricci Fix bump-my-version config...

Marco Ricci authored 1 year ago

204) glob = 'share/man/man1/derivepassphrase*.1'
Marco Ricci Prepare `bump-my-version` f...

Marco Ricci authored 1 year ago

205) regex = true
Marco Ricci Fix bump-my-version config...

Marco Ricci authored 1 year ago

206) search = '^\.Dd +\d\d\d\d-\d\d-\d\d'
Marco Ricci Prepare `bump-my-version` f...

Marco Ricci authored 1 year ago

207) replace = '.Dd {now:%Y-%m-%d}'
208) 
209) [[tool.bumpversion.files]]
Marco Ricci Fix bump-my-version config...

Marco Ricci authored 1 year ago

210) glob = 'share/man/man1/derivepassphrase*.1'
Marco Ricci Prepare `bump-my-version` f...

Marco Ricci authored 1 year ago

211) regex = true
Marco Ricci Fix bump-my-version config...

Marco Ricci authored 1 year ago

212) search = '^\.Os +derivepassphrase +{current_version}'
213) replace = '.Os derivepassphrase {new_version}'
Marco Ricci Prepare `bump-my-version` f...

Marco Ricci authored 1 year ago

214) 
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

215) [tool.coverage.html]
216) directory = "html/coverage"
Marco Ricci Import initial project files

Marco Ricci authored 2 years ago

217) 
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

218) [tool.coverage.paths]
219) src = ["src"]
220) tests = ["tests"]
Marco Ricci Import initial project files

Marco Ricci authored 2 years ago

221) 
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

222) [tool.coverage.report]
223) skip_covered = false
224) skip_empty = true
225) precision = 3
226) partial_branches = [
227)     'pragma: no branch',
228) ]
229) exclude_also = [
Marco Ricci Fix inconsistent indentatio...

Marco Ricci authored 1 year ago

230)     "if __name__ == .__main__.:",
231)     'if (?:typing\.)?TYPE_CHECKING:',
232)     "raise AssertionError",
233)     "raise NotImplementedError",
234)     'assert False',
235)     '(?:typing\.)?assert_never\(',
236)     '@overload',
237)     'class .*\(Protocol\):',
Marco Ricci Warn the user when `derivep...

Marco Ricci authored 1 year ago

238)     'pytest\.fail\(',
Marco Ricci Use a vault(1)-compatible n...

Marco Ricci authored 1 year ago

239)     '@(?:(?:pytest\.)?mark\.)?xfail\(',
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

240) ]
Marco Ricci Import initial project files

Marco Ricci authored 2 years ago

241) 
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

242) [tool.coverage.run]
243) source_pkgs = ["derivepassphrase", "tests"]
244) branch = true
245) parallel = true
246) omit = [
Marco Ricci Fix inconsistent indentatio...

Marco Ricci authored 1 year ago

247)     "__main__.py",
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

248) ]
Marco Ricci Instruct `coverage` to reco...

Marco Ricci authored 1 year ago

249) dynamic_context = 'test_function'
Marco Ricci Add tests for the configura...

Marco Ricci authored 1 year ago

250) concurrency = ['thread', 'multiprocessing']
251) sigterm = true
Marco Ricci Import initial project files

Marco Ricci authored 2 years ago

252) 
Marco Ricci Fix Python package build co...

Marco Ricci authored 1 year ago

253) [tool.hatch.build.targets.sdist]
254) exclude = [
Marco Ricci Switch from towncrier to sc...

Marco Ricci authored 1 year ago

255)     'docs/changelog.d/*.md',
Marco Ricci Fix Python package build co...

Marco Ricci authored 1 year ago

256) ]
257) 
258) [tool.hatch.build.targets.wheel]
Marco Ricci Make the manpages installab...

Marco Ricci authored 1 year ago

259) include = [
260)     'src/derivepassphrase',
Marco Ricci Automatically check and bui...

Marco Ricci authored 1 year ago

261)     'share/locale/',
Marco Ricci Make the manpages installab...

Marco Ricci authored 1 year ago

262)     'share/man/',
263) ]
264) sources = ['src']
Marco Ricci Fix Python package build co...

Marco Ricci authored 1 year ago

265) 
Marco Ricci Overhaul dependency and env...

Marco Ricci authored 2 years ago

266) [tool.hatch.env]
267) requires = [
Marco Ricci Fix inconsistent indentatio...

Marco Ricci authored 1 year ago

268)     "hatch-mkdocs",
Marco Ricci Overhaul dependency and env...

Marco Ricci authored 2 years ago

269) ]
270) 
271) [tool.hatch.env.collectors.mkdocs.docs]
272) path = "mkdocs.yml"
273) 
Marco Ricci Fill out README and documen...

Marco Ricci authored 2 years ago

274) [tool.hatch.envs.docs]
275) extra-dependencies = [
Marco Ricci Fix inconsistent indentatio...

Marco Ricci authored 1 year ago

276)     # Our documentation uses formatted function signatures (i.e. with
277)     # formatted type annotations), which requires `black`.
278)     "black",
279)     # We actually use functionality from MkDocs 1.6, so ensure the
280)     # version is at least this high.
281)     "mkdocs >= 1.6",
282)     # Our changelog is assembled from singular entries, orchestrated by
283)     # `scriv`.
284)     "scriv >= 1.4",
Marco Ricci Fill out README and documen...

Marco Ricci authored 2 years ago

285) ]
286) detached = false
287) 
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

288) [tool.hatch.envs.hatch-static-analysis]
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

289) config-path = "/dev/null"
Marco Ricci Specify project dependencie...

Marco Ricci authored 1 year ago

290) dependencies = [
Marco Ricci Add static analysis and tes...

Marco Ricci authored 1 year ago

291)     # Override the default dependencies, lest the ruff requirements
292)     # conflict.
293) ]
294) features = [
295)     "dev",
Marco Ricci Specify project dependencie...

Marco Ricci authored 1 year ago

296) ]
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

297) 
298) [tool.hatch.envs.hatch-test]
299) default-args = ['src', 'tests']
Marco Ricci Resolve dependency versions...

Marco Ricci authored 1 year ago

300) # See "dev" extra in main project section for commentary on the
301) # dependencies.  We override them here because hatch is too restrictive
302) # by default.
303) dependencies = [
304)     "coverage[toml] >= 7.4",
305)     "coverage-enable-subprocess >= 1.0",
Marco Ricci Fix inconsistent indentatio...

Marco Ricci authored 1 year ago

306)     "hypothesis >= 6.0",
Marco Ricci Resolve dependency versions...

Marco Ricci authored 1 year ago

307)     "packaging",
308)     "pytest >= 8.1",
309)     "pytest-randomly >= 3.15",
310)     "pytest-xdist[psutil] >= 3.6.0",
Marco Ricci Pin testing dependencies

Marco Ricci authored 1 year ago

311)     'hypothesis != 6.130.13, != 6.131.*, != 6.132.*, != 6.133.*, != 6.134.*, != 6.135.0, != 6.135.1 ; python_version < "3.10"',
Marco Ricci Set up the "hypothesis" tes...

Marco Ricci authored 1 year ago

312) ]
313) matrix-name-format = '{variable}_{value}'
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

314) 
315) [[tool.hatch.envs.hatch-test.matrix]]
Marco Ricci Add PyPy 3.11 to the test m...

Marco Ricci authored 1 year ago

316) python = ["3.13", "3.12", "3.11", "3.10", "3.9", "pypy3.11", "pypy3.10", "pypy3.9"]
Marco Ricci Set up the "hypothesis" tes...

Marco Ricci authored 1 year ago

317) cryptography = ["no", "yes"]
Marco Ricci Refactor code to run under...

Marco Ricci authored 1 year ago

318) parser-version = ["PEG"]
319) 
320) [[tool.hatch.envs.hatch-test.matrix]]
321) python = ["3.9", "pypy3.9"]
322) cryptography = ["no", "yes"]
323) parser-version = ["LL1"]
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

324) 
Marco Ricci Merge topic branch 'clean-u...

Marco Ricci authored 1 year ago

325) [tool.hatch.envs.hatch-test.overrides]
Marco Ricci Set up the "hypothesis" tes...

Marco Ricci authored 1 year ago

326) matrix.cryptography.features = [
327)     { value = "export", if = ["yes"] },
Marco Ricci Pin testing dependencies

Marco Ricci authored 1 year ago

328)     { value = "export-dev-wheels", if = ["yes"] },
Marco Ricci Merge topic branch 'clean-u...

Marco Ricci authored 1 year ago

329) ]
Marco Ricci Refactor code to run under...

Marco Ricci authored 1 year ago

330) matrix.parser-version.env-vars = [
331)     { key = "PYTHONOLDPARSER", value = "1", if = ["LL1"] },
332) ]
Marco Ricci Set up the "hypothesis" tes...

Marco Ricci authored 1 year ago

333) 
334) [tool.hatch.envs.hatch-test.scripts]
335) run = "pytest --hypothesis-profile={env:HYPOTHESIS_PROFILE:default}{env:HATCH_TEST_ARGS:} {args}"
336) run-cov = "coverage run -m pytest --hypothesis-profile={env:HYPOTHESIS_PROFILE:default}{env:HATCH_TEST_ARGS:} {args}"
337) cov-combine = "coverage combine"
338) cov-report = "coverage report"
Marco Ricci Merge topic branch 'clean-u...

Marco Ricci authored 1 year ago

339) 
Marco Ricci Import initial project files

Marco Ricci authored 2 years ago

340) [tool.hatch.envs.types]
Marco Ricci Add command-line interface...

Marco Ricci authored 1 year ago

341) features = [
Marco Ricci Add static analysis and tes...

Marco Ricci authored 1 year ago

342)     "dev",
Marco Ricci Add command-line interface...

Marco Ricci authored 1 year ago

343)     "export",
344) ]
345) 
Marco Ricci Import initial project files

Marco Ricci authored 2 years ago

346) [tool.hatch.envs.types.scripts]
347) check = "mypy --install-types --non-interactive {args:src/derivepassphrase tests}"
348) 
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

349) [tool.hatch.version]
350) path = "src/derivepassphrase/__init__.py"
Marco Ricci Import initial project files

Marco Ricci authored 2 years ago

351) 
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

352) [tool.mypy]
353) files = ['src/**/*.py', 'tests/**/*.py']
Marco Ricci Fix usage of `mypy --python...

Marco Ricci authored 1 year ago

354) mypy_path = '$MYPY_CONFIG_FILE_DIR/src:$MYPY_CONFIG_FILE_DIR/other-stubs'
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

355) explicit_package_bases = true
356) implicit_reexport = false
357) sqlite_cache = true
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

358) enable_error_code = ['ignore-without-code']
Marco Ricci Import initial project files

Marco Ricci authored 2 years ago

359) 
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

360) [tool.pytest.ini_options]
Marco Ricci Adjust hypothesis deadlines...

Marco Ricci authored 1 year ago

361) addopts = '--doctest-modules --dist=worksteal'
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

362) pythonpath = ['src']
363) testpaths = ['src', 'tests']
364) xfail_strict = true
Marco Ricci Fix style issues with ruff...

Marco Ricci authored 1 year ago

365) 
366) [tool.ruff]
367) line-length = 79
368) src = ["src"]
369) 
370) [tool.ruff.format]
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

371) docstring-code-format = true
Marco Ricci Reformat everything with ruff

Marco Ricci authored 1 year ago

372) docstring-code-line-length = "dynamic"
Marco Ricci Fix style issues with ruff...

Marco Ricci authored 1 year ago

373) preview = true
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

374) quote-style = 'single'
Marco Ricci Fix style issues with ruff...

Marco Ricci authored 1 year ago

375) 
376) [tool.ruff.lint]
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

377) ignore = [
378)     # Suggested ignore by ruff when also using ruff to format.  We *do*
Marco Ricci Apply new ruff ruleset to c...

Marco Ricci authored 1 year ago

379)     # check for E501, because this usually only happens when there is
Marco Ricci Fix automatic quality contr...

Marco Ricci authored 1 year ago

380)     # a text string that should be manually broken.  However, for
381)     # automated quality control, that specific check is turned off so
382)     # that the linting and formatting can proceed, and then *afterwards*
383)     # the files are re-linted.  We hope that any *true* E501 errors left
384)     # over from this *are* text strings that should be manually broken.
Marco Ricci Apply new ruff ruleset to c...

Marco Ricci authored 1 year ago

385)     'W191', 'E111', 'E114', 'E117', 'D206', 'D300', 'Q000', 'Q001',
386)     'Q002', 'Q003', 'COM812', 'COM819', 'ISC001', 'ISC002',
Marco Ricci Annotate settings and selec...

Marco Ricci authored 1 year ago

387)     # We use `assert` regularly to appease the type checker, and because
388)     # it is the right language tool for this job.
Marco Ricci Fix style issues with ruff...

Marco Ricci authored 1 year ago

389)     'S101',
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

390)     # The formatter takes care of trailing commas and docstring code
391)     # automatically.
392)     'COM812', 'W505',
Marco Ricci Apply new ruff ruleset to c...

Marco Ricci authored 1 year ago

393)     # We document transitive exceptions as well (if we feel they would
394)     # be surprising to the user otherwise).
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

395)     'DOC502',
Marco Ricci Apply new ruff ruleset to c...

Marco Ricci authored 1 year ago

396)     # We currently don't have issues for every TODO.  Forcing an issue
397)     # also goes against the philosophy of TODOs as low-overhead markers
398)     # for future work; see
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

399)     # https://gist.github.com/dmnd/ed5d8ef8de2e4cfea174bd5dafcda382 .
400)     'TD003',
Marco Ricci Apply new ruff ruleset to c...

Marco Ricci authored 1 year ago

401)     # We somewhat regularly use loops where each iteration needs
402)     # a separate try-except block.
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

403)     'PERF203',
Marco Ricci Apply new ruff ruleset to c...

Marco Ricci authored 1 year ago

404)     # We do not currently use pathlib.  The PTH rules are unselected,
405)     # but FURB includes several pathlib-related rules.
406)     'FURB101', 'FURB103',
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

407)     # We catch type-ignore comments without specific code via the mypy
408)     # configuration, not via ruff.
409)     'PGH003',
Marco Ricci Fix style issues with ruff...

Marco Ricci authored 1 year ago

410) ]
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

411) preview = true
412) # We select here in the order of presentation on the ruff documentation
413) # website.  ruff default selection (v0.6.2) is merely E4, E7, E9 and F.
414) select = [
415)     'F', 'E', 'W', 'C90', 'I', 'N', 'D', 'UP', 'YTT',
416)     'ANN', 'ASYNC', 'S', 'BLE', 'FBT', 'B', 'A', 'COM',
417)     'CPY', 'C4', 'DTZ', 'T10', 'DJ', 'EM', 'EXE', 'FA',
418)     'ISC', 'ICN', 'LOG', 'G', 'INP', 'PIE', 'T20', 'PYI',
Marco Ricci Update ruff to v0.8.x, refo...

Marco Ricci authored 1 year ago

419)     'PT', 'Q', 'RET', 'SLF', 'SLOT', 'SIM', 'TID', 'TC',
Marco Ricci Use `pathlib` for path or f...

Marco Ricci authored 1 year ago

420)     'INT', 'ARG', 'PTH', 'TD',
Marco Ricci Apply new ruff ruleset to c...

Marco Ricci authored 1 year ago

421)     # We use TODOs and FIXMEs as notes for later, and don't want the
422)     # linter to nag about every occurrence.  Disable 'FIX'.
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

423)     #
Marco Ricci Apply new ruff ruleset to c...

Marco Ricci authored 1 year ago

424)     # The "eradicate" rule is prone to a lot of false positives, and it
425)     # is unclear to me, and probably confusing to read, where to apply
426)     # a noqa marker.  Instead, disable 'ERA', and if necessary, specify
427)     # it on the command-line.
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

428)     'PD', 'PGH', 'PL', 'TRY', 'FLY', 'NPY', 'FAST',
429)     'AIR', 'PERF', 'FURB', 'DOC', 'RUF',
Marco Ricci Fix style issues with ruff...

Marco Ricci authored 1 year ago

430) ]
Marco Ricci Fix style issues with ruff...

Marco Ricci authored 1 year ago

431) 
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

432) [tool.ruff.lint.per-file-ignores]
433) "**/scripts/*" = [
Marco Ricci Fix inconsistent indentatio...

Marco Ricci authored 1 year ago

434)     # Suggested by hatch.
435)     'INP',
436)     # Suggested by hatch.
437)     'T20',
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

438) ]
Marco Ricci Fix style issues with ruff...

Marco Ricci authored 1 year ago

439) "**/tests/**/*" = [
Marco Ricci Fix inconsistent indentatio...

Marco Ricci authored 1 year ago

440)     # Suggested by hatch, assumingly because it may be important to
441)     # verify that the value is exactly the empty string, and not just
442)     # any falsy value.
443)     'PLC1901',
444)     # Suggested by hatch, assumingly because tests may use "magic
445)     # values".
446)     'PLR2004',
447)     # Suggested by hatch, because tests are typically organized as
448)     # classes and instance methods but may not really be using the
449)     # `self` argument.
450)     'PLR6301',
451)     # Suggested by hatch, because these warnings may be precisely what
452)     # the tests are supposed to test.
453)     'S',
454)     # Suggested by hatch, because pytest-style tests conventionally
455)     # import code from each other via relative imports.
456)     'TID252',
457)     # Our tests regularly use arguments named `input` to store an input
458)     # (text-/byte-)string.
459)     'A002',
460)     # We regularly annotate pytest fixtures like monkeypatch as `Any`.
461)     'ANN401',
462)     # Our tests generally don't contain docstrings.
463)     'D', 'DOC',
464)     # Our tests are regularly parametrized with booleans, for benign
465)     # purposes.
466)     'FBT',
467)     # One of our standard modules is called `derivepassphrase._types`.
468)     # Importing this from the tests directory would then automatically
469)     # trigger `PLC2701`.
470)     'PLC2701',
471)     # Too many public methods/arguments/returns/branches/locals doesn't
472)     # really apply here.
473)     'PLR0904', 'PLR0911', 'PLR0912', 'PLR0913', 'PLR0914', 'PLR0915',
474)     'PLR0916', 'PLR0917',
475)     # To fully test the `derivepassphrase.cli` module (and a couple
476)     # other things), we need to call and to mock several internal
477)     # functions, which would automatically trigger `SLF001`.
478)     'SLF001',
479)     # pytest does not support sensible introspection of
480)     # `assert all(...)` expressions in tests the same way it supports
481)     # introspection in `asssert all([...])`.  So the extra list
482)     # comprehension actually improves debuggability in this case.
483)     'C419',
484)     # The tests sometimes include long strings (in non-Python formats)
485)     # that should be included verbatim, without artificial line
486)     # breaking, so they can be grepped for.
487)     'E501',
Marco Ricci Fix style issues with ruff...

Marco Ricci authored 1 year ago

488) ]
489) 
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

490) [tool.ruff.lint.flake8-copyright]
491) # Include hatch-enforced SPDX-FileCopyrightText in check.
492) notice-rgx = '(?i)(?:Copyright\s+((?:\(C\)|©)\s+)?|SPDX-FileCopyrightText:\s+)\d{4}((-|,\s)\d{4})*'
Marco Ricci Add a changelog and support...

Marco Ricci authored 1 year ago

493) 
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

494) [tool.ruff.lint.flake8-pytest-style]
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

495) fixture-parentheses = false
496) mark-parentheses = false
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

497) parametrize-names-type = 'list'
Marco Ricci Add a changelog and support...

Marco Ricci authored 1 year ago

498) 
Marco Ricci Upgrade ruff to 0.6, and re...

Marco Ricci authored 1 year ago

499) [tool.ruff.lint.flake8-tidy-imports]
500) ban-relative-imports = "all"
501) 
502) [tool.ruff.lint.isort]
503) known-first-party = ["derivepassphrase"]
504) 
505) [tool.ruff.lint.pycodestyle]
506) ignore-overlong-task-comments = true  # for E501
507) max-doc-length = 72  # for W505
508) 
Marco Ricci Sort sections in pyproject....

Marco Ricci authored 1 year ago

509) [tool.ruff.lint.pydocstyle]
510) convention = 'google'
Marco Ricci Add a changelog and support...

Marco Ricci authored 1 year ago

511) 
Marco Ricci Switch from towncrier to sc...

Marco Ricci authored 1 year ago

512) [tool.scriv]
Marco Ricci Store the version only in p...

Marco Ricci authored 1 year ago

513) version = "literal: pyproject.toml: project.version"