txt2ebook 0.1.144__tar.gz → 0.1.145__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. txt2ebook-0.1.145/.pre-commit-config.yaml +49 -0
  2. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/CHANGELOG.md +7 -0
  3. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/PKG-INFO +1 -1
  4. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/noxfile.py +4 -0
  5. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/pyproject.toml +1 -1
  6. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/locales/en/LC_MESSAGES/txt2ebook.po +6 -6
  7. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/locales/txt2ebook.pot +6 -6
  8. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.po +6 -6
  9. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.po +6 -6
  10. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/uv.lock +84 -93
  11. txt2ebook-0.1.144/.pre-commit-config.yaml +0 -117
  12. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/.coveragerc +0 -0
  13. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/.gitignore +0 -0
  14. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/.python-version +0 -0
  15. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/CONTRIBUTING.md +0 -0
  16. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/LICENSE.md +0 -0
  17. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/README.md +0 -0
  18. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/docs/Makefile +0 -0
  19. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/docs/make.bat +0 -0
  20. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/docs/source/CHANGELOG.md +0 -0
  21. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/docs/source/CONTRIBUTING.md +0 -0
  22. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/docs/source/LICENSE.md +0 -0
  23. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/docs/source/README.md +0 -0
  24. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/docs/source/_static/logo.png +0 -0
  25. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/docs/source/conf.py +0 -0
  26. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/docs/source/index.rst +0 -0
  27. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/docs/source/txt2ebook.formats.rst +0 -0
  28. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/docs/source/txt2ebook.helpers.rst +0 -0
  29. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/docs/source/txt2ebook.models.rst +0 -0
  30. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/docs/source/txt2ebook.parsers.rst +0 -0
  31. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/docs/source/txt2ebook.rst +0 -0
  32. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/__init__.py +0 -0
  33. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/__main__.py +0 -0
  34. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/cli.py +0 -0
  35. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/exceptions.py +0 -0
  36. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/formats/__init__.py +0 -0
  37. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/formats/base.py +0 -0
  38. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/formats/epub.py +0 -0
  39. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/formats/gmi.py +0 -0
  40. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/formats/md.py +0 -0
  41. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/formats/pdf.py +0 -0
  42. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/formats/templates/__init__.py +0 -0
  43. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/formats/templates/epub/__init__.py +0 -0
  44. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/formats/templates/epub/clean.css +0 -0
  45. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/formats/templates/epub/condense.css +0 -0
  46. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/formats/templates/epub/noindent.css +0 -0
  47. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/formats/tex.py +0 -0
  48. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/formats/txt.py +0 -0
  49. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/formats/typ.py +0 -0
  50. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/helpers/__init__.py +0 -0
  51. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/languages/__init__.py +0 -0
  52. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/languages/en.py +0 -0
  53. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/languages/zh_cn.py +0 -0
  54. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/languages/zh_tw.py +0 -0
  55. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/locales/en/LC_MESSAGES/txt2ebook.mo +0 -0
  56. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.mo +0 -0
  57. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.mo +0 -0
  58. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/models/__init__.py +0 -0
  59. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/models/book.py +0 -0
  60. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/models/chapter.py +0 -0
  61. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/models/volume.py +0 -0
  62. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/parser.py +0 -0
  63. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/subcommands/__init__.py +0 -0
  64. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/subcommands/env.py +0 -0
  65. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/subcommands/epub.py +0 -0
  66. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/subcommands/gmi.py +0 -0
  67. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/subcommands/massage.py +0 -0
  68. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/subcommands/md.py +0 -0
  69. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/subcommands/parse.py +0 -0
  70. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/subcommands/pdf.py +0 -0
  71. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/subcommands/tex.py +0 -0
  72. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/subcommands/typ.py +0 -0
  73. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/tokenizer.py +0 -0
  74. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/src/txt2ebook/zh_utils.py +0 -0
  75. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/__init__.py +0 -0
  76. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/conftest.py +0 -0
  77. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/fixtures/empty_file.txt +0 -0
  78. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/fixtures/missing_chapters.txt +0 -0
  79. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/fixtures/sample.txt +0 -0
  80. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/fixtures/sample_all_headers.txt +0 -0
  81. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/fixtures/sample_long_headers.txt +0 -0
  82. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/fixtures/sample_remove_wrapping.txt +0 -0
  83. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/fixtures/sample_unsorted_headers.txt +0 -0
  84. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/fixtures/sample_with_issues.txt +0 -0
  85. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/fixtures/sample_with_metadata.txt +0 -0
  86. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_epub_writer.py +0 -0
  87. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_filename_format_flag.py +0 -0
  88. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_format_option.py +0 -0
  89. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_header_number_flag.py +0 -0
  90. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_input_file_arg.py +0 -0
  91. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_language_option.py +0 -0
  92. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_output_file_arg.py +0 -0
  93. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_overwrite_flag.py +0 -0
  94. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_parser.py +0 -0
  95. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_purge_flag.py +0 -0
  96. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_quiet_flag.py +0 -0
  97. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_raise_warnings.py +0 -0
  98. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_sort_volume_and_chapter_flag.py +0 -0
  99. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_split_volume_and_chapter_flag.py +0 -0
  100. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_subcommand_env.py +0 -0
  101. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_subcommand_epub.py +0 -0
  102. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_subcommand_massage.py +0 -0
  103. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_test_parsing_flag.py +0 -0
  104. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_tokenizer.py +0 -0
  105. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_translator_option.py +0 -0
  106. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_txt2ebook.py +0 -0
  107. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_verbose_flag.py +0 -0
  108. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_volume_page_flag.py +0 -0
  109. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_zh_utils_zh_halfwidth_to_fullwidth.py +0 -0
  110. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_zh_utils_zh_numeric.py +0 -0
  111. {txt2ebook-0.1.144 → txt2ebook-0.1.145}/tests/test_zh_utils_zh_words_to_numbers.py +0 -0
@@ -0,0 +1,49 @@
1
+ # See https://pre-commit.com for more information
2
+ # See https://pre-commit.com/hooks.html for more hooks
3
+ repos:
4
+ - repo: https://github.com/pre-commit/pre-commit-hooks
5
+ rev: v5.0.0
6
+ hooks:
7
+ - id: check-case-conflict
8
+ - id: check-merge-conflict
9
+ - id: check-toml
10
+ - id: check-yaml
11
+ - id: debug-statements
12
+ - id: detect-private-key
13
+ - id: end-of-file-fixer
14
+ exclude: "locales/.*$"
15
+ - id: mixed-line-ending
16
+ - id: trailing-whitespace
17
+
18
+ - repo: https://github.com/abravalheri/validate-pyproject
19
+ rev: v0.24.1
20
+ hooks:
21
+ - id: validate-pyproject
22
+ name: validate pyproject
23
+
24
+ - repo: https://github.com/codespell-project/codespell
25
+ rev: v2.4.1
26
+ hooks:
27
+ - id: codespell
28
+ args:
29
+ - --skip=uv.lock
30
+
31
+ - repo: https://github.com/pre-commit/mirrors-prettier
32
+ rev: v4.0.0-alpha.8
33
+ hooks:
34
+ - id: prettier
35
+ exclude: (poetry.lock)
36
+
37
+ - repo: https://github.com/astral-sh/ruff-pre-commit
38
+ rev: v0.12.0
39
+ hooks:
40
+ - id: ruff-check
41
+ args:
42
+ - --fix
43
+ - --exit-non-zero-on-fix
44
+
45
+ - repo: https://github.com/pre-commit/mirrors-mypy
46
+ rev: v1.16.1
47
+ hooks:
48
+ - id: mypy
49
+ exclude: docs/
@@ -7,6 +7,13 @@ and this project adheres to [0-based versioning](https://0ver.org/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## v0.1.145 (2025-06-22)
11
+
12
+ - Bump deps and `pre-commit` hooks
13
+ - Clear previous release builds before releasing
14
+ - Remove other lint tools from `pre-commit`
15
+ - Update translations
16
+
10
17
  ## v0.1.144 (2025-06-15)
11
18
 
12
19
  - Bump deps
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: txt2ebook
3
- Version: 0.1.144
3
+ Version: 0.1.145
4
4
  Summary: CLI tool to convert txt file to ebook format
5
5
  Project-URL: Homepage, https://github.com/kianmeng/txt2ebook
6
6
  Project-URL: Repository, https://github.com/kianmeng/txt2ebook
@@ -15,6 +15,8 @@
15
15
 
16
16
  """Nox configuration."""
17
17
 
18
+ import os
19
+ import shutil
18
20
  import datetime
19
21
 
20
22
  import nox
@@ -211,6 +213,8 @@ def release(session: nox.Session) -> None:
211
213
 
212
214
  prompt = "Build and publish package to pypi? (y/n): "
213
215
  if input(prompt).lower() in ["y", "yes"]:
216
+ dist_dir = os.path.join(os.getcwd(), "dist")
217
+ shutil.rmtree(dist_dir)
214
218
  session.run("uv", "build")
215
219
  session.run("uv", "publish")
216
220
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "txt2ebook"
3
- version = "0.1.144"
3
+ version = "0.1.145"
4
4
  description = "CLI tool to convert txt file to ebook format"
5
5
  authors = [{ name = "Kian-Meng Ang", email = "kianmeng@cpan.org" }]
6
6
  requires-python = "~=3.9"
@@ -1,26 +1,26 @@
1
- #: src/txt2ebook/formats/base.py:140
1
+ #: src/txt2ebook/formats/base.py:137
2
2
  msgid "title:"
3
3
  msgstr "Title:"
4
4
 
5
- #: src/txt2ebook/formats/base.py:141
5
+ #: src/txt2ebook/formats/base.py:138
6
6
  msgid "author:"
7
7
  msgstr "Author:"
8
8
 
9
- #: src/txt2ebook/formats/base.py:142
9
+ #: src/txt2ebook/formats/base.py:139
10
10
  msgid "translator:"
11
11
  msgstr "Translator:"
12
12
 
13
- #: src/txt2ebook/formats/base.py:143
13
+ #: src/txt2ebook/formats/base.py:140
14
14
  msgid "tag:"
15
15
  msgstr "Tag:"
16
16
 
17
- #: src/txt2ebook/formats/base.py:154 src/txt2ebook/formats/gmi.py:62
17
+ #: src/txt2ebook/formats/base.py:146 src/txt2ebook/formats/gmi.py:62
18
18
  #: src/txt2ebook/formats/md.py:61 src/txt2ebook/formats/pdf.py:130
19
19
  #: src/txt2ebook/formats/txt.py:71
20
20
  msgid "toc"
21
21
  msgstr "Table of Content"
22
22
 
23
- #: src/txt2ebook/formats/epub.py:147
23
+ #: src/txt2ebook/formats/epub.py:141
24
24
  msgid "cover"
25
25
  msgstr "Cover"
26
26
 
@@ -1,26 +1,26 @@
1
- #: src/txt2ebook/formats/base.py:140
1
+ #: src/txt2ebook/formats/base.py:137
2
2
  msgid "title:"
3
3
  msgstr ""
4
4
 
5
- #: src/txt2ebook/formats/base.py:141
5
+ #: src/txt2ebook/formats/base.py:138
6
6
  msgid "author:"
7
7
  msgstr ""
8
8
 
9
- #: src/txt2ebook/formats/base.py:142
9
+ #: src/txt2ebook/formats/base.py:139
10
10
  msgid "translator:"
11
11
  msgstr ""
12
12
 
13
- #: src/txt2ebook/formats/base.py:143
13
+ #: src/txt2ebook/formats/base.py:140
14
14
  msgid "tag:"
15
15
  msgstr ""
16
16
 
17
- #: src/txt2ebook/formats/base.py:154 src/txt2ebook/formats/gmi.py:62
17
+ #: src/txt2ebook/formats/base.py:146 src/txt2ebook/formats/gmi.py:62
18
18
  #: src/txt2ebook/formats/md.py:61 src/txt2ebook/formats/pdf.py:130
19
19
  #: src/txt2ebook/formats/txt.py:71
20
20
  msgid "toc"
21
21
  msgstr ""
22
22
 
23
- #: src/txt2ebook/formats/epub.py:147
23
+ #: src/txt2ebook/formats/epub.py:141
24
24
  msgid "cover"
25
25
  msgstr ""
26
26
 
@@ -1,26 +1,26 @@
1
- #: src/txt2ebook/formats/base.py:140
1
+ #: src/txt2ebook/formats/base.py:137
2
2
  msgid "title:"
3
3
  msgstr "书名:"
4
4
 
5
- #: src/txt2ebook/formats/base.py:141
5
+ #: src/txt2ebook/formats/base.py:138
6
6
  msgid "author:"
7
7
  msgstr "作者:"
8
8
 
9
- #: src/txt2ebook/formats/base.py:142
9
+ #: src/txt2ebook/formats/base.py:139
10
10
  msgid "translator:"
11
11
  msgstr "翻译:"
12
12
 
13
- #: src/txt2ebook/formats/base.py:143
13
+ #: src/txt2ebook/formats/base.py:140
14
14
  msgid "tag:"
15
15
  msgstr "票签:"
16
16
 
17
- #: src/txt2ebook/formats/base.py:154 src/txt2ebook/formats/gmi.py:62
17
+ #: src/txt2ebook/formats/base.py:146 src/txt2ebook/formats/gmi.py:62
18
18
  #: src/txt2ebook/formats/md.py:61 src/txt2ebook/formats/pdf.py:130
19
19
  #: src/txt2ebook/formats/txt.py:71
20
20
  msgid "toc"
21
21
  msgstr "目录"
22
22
 
23
- #: src/txt2ebook/formats/epub.py:147
23
+ #: src/txt2ebook/formats/epub.py:141
24
24
  msgid "cover"
25
25
  msgstr "封面"
26
26
 
@@ -1,26 +1,26 @@
1
- #: src/txt2ebook/formats/base.py:140
1
+ #: src/txt2ebook/formats/base.py:137
2
2
  msgid "title:"
3
3
  msgstr "书名:"
4
4
 
5
- #: src/txt2ebook/formats/base.py:141
5
+ #: src/txt2ebook/formats/base.py:138
6
6
  msgid "author:"
7
7
  msgstr "作者:"
8
8
 
9
- #: src/txt2ebook/formats/base.py:142
9
+ #: src/txt2ebook/formats/base.py:139
10
10
  msgid "translator:"
11
11
  msgstr "翻译:"
12
12
 
13
- #: src/txt2ebook/formats/base.py:143
13
+ #: src/txt2ebook/formats/base.py:140
14
14
  msgid "tag:"
15
15
  msgstr "标签:"
16
16
 
17
- #: src/txt2ebook/formats/base.py:154 src/txt2ebook/formats/gmi.py:62
17
+ #: src/txt2ebook/formats/base.py:146 src/txt2ebook/formats/gmi.py:62
18
18
  #: src/txt2ebook/formats/md.py:61 src/txt2ebook/formats/pdf.py:130
19
19
  #: src/txt2ebook/formats/txt.py:71
20
20
  msgid "toc"
21
21
  msgstr "目录"
22
22
 
23
- #: src/txt2ebook/formats/epub.py:147
23
+ #: src/txt2ebook/formats/epub.py:141
24
24
  msgid "cover"
25
25
  msgstr "封面"
26
26
 
@@ -84,7 +84,7 @@ wheels = [
84
84
 
85
85
  [[package]]
86
86
  name = "bandit"
87
- version = "1.8.3"
87
+ version = "1.8.5"
88
88
  source = { registry = "https://pypi.org/simple" }
89
89
  dependencies = [
90
90
  { name = "colorama", marker = "sys_platform == 'win32'" },
@@ -92,9 +92,9 @@ dependencies = [
92
92
  { name = "rich" },
93
93
  { name = "stevedore" },
94
94
  ]
95
- sdist = { url = "https://files.pythonhosted.org/packages/1a/a5/144a45f8e67df9d66c3bc3f7e69a39537db8bff1189ab7cff4e9459215da/bandit-1.8.3.tar.gz", hash = "sha256:f5847beb654d309422985c36644649924e0ea4425c76dec2e89110b87506193a", size = 4232005, upload-time = "2025-02-17T05:24:57.031Z" }
95
+ sdist = { url = "https://files.pythonhosted.org/packages/4e/01/b2ce2f54db060ed7b25960892b275ad8238ca15f5a8821b09f8e7f75870d/bandit-1.8.5.tar.gz", hash = "sha256:db812e9c39b8868c0fed5278b77fffbbaba828b4891bc80e34b9c50373201cfd", size = 4237566, upload-time = "2025-06-17T01:43:36.697Z" }
96
96
  wheels = [
97
- { url = "https://files.pythonhosted.org/packages/88/85/db74b9233e0aa27ec96891045c5e920a64dd5cbccd50f8e64e9460f48d35/bandit-1.8.3-py3-none-any.whl", hash = "sha256:28f04dc0d258e1dd0f99dee8eefa13d1cb5e3fde1a5ab0c523971f97b289bcd8", size = 129078, upload-time = "2025-02-17T05:24:54.068Z" },
97
+ { url = "https://files.pythonhosted.org/packages/02/b0/5c8976e61944f91904d4fd33bdbe55248138bfbd1a6092753b1b0fb7abbc/bandit-1.8.5-py3-none-any.whl", hash = "sha256:cb2e57524e99e33ced48833c6cc9c12ac78ae970bb6a450a83c4b506ecc1e2f9", size = 131759, upload-time = "2025-06-17T01:43:35.045Z" },
98
98
  ]
99
99
 
100
100
  [[package]]
@@ -121,11 +121,11 @@ sdist = { url = "https://files.pythonhosted.org/packages/10/ed/7e8b97591f6f45617
121
121
 
122
122
  [[package]]
123
123
  name = "certifi"
124
- version = "2025.4.26"
124
+ version = "2025.6.15"
125
125
  source = { registry = "https://pypi.org/simple" }
126
- sdist = { url = "https://files.pythonhosted.org/packages/e8/9e/c05b3920a3b7d20d3d3310465f50348e5b3694f4f88c6daf736eef3024c4/certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6", size = 160705, upload-time = "2025-04-26T02:12:29.51Z" }
126
+ sdist = { url = "https://files.pythonhosted.org/packages/73/f7/f14b46d4bcd21092d7d3ccef689615220d8a08fb25e564b65d20738e672e/certifi-2025.6.15.tar.gz", hash = "sha256:d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b", size = 158753, upload-time = "2025-06-15T02:45:51.329Z" }
127
127
  wheels = [
128
- { url = "https://files.pythonhosted.org/packages/4a/7e/3db2bd1b1f9e95f7cddca6d6e75e2f2bd9f51b1246e546d88addca0106bd/certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3", size = 159618, upload-time = "2025-04-26T02:12:27.662Z" },
128
+ { url = "https://files.pythonhosted.org/packages/84/ae/320161bd181fc06471eed047ecce67b693fd7515b16d495d8932db763426/certifi-2025.6.15-py3-none-any.whl", hash = "sha256:2e0c7ce7cb5d8f8634ca55d2ba7e6ec2689a2fd6537d8dec1296a477a4910057", size = 157650, upload-time = "2025-06-15T02:45:49.977Z" },
129
129
  ]
130
130
 
131
131
  [[package]]
@@ -137,15 +137,6 @@ wheels = [
137
137
  { url = "https://files.pythonhosted.org/packages/c5/55/51844dd50c4fc7a33b653bfaba4c2456f06955289ca770a5dbd5fd267374/cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9", size = 7249, upload-time = "2023-08-12T20:38:16.269Z" },
138
138
  ]
139
139
 
140
- [[package]]
141
- name = "chardet"
142
- version = "5.2.0"
143
- source = { registry = "https://pypi.org/simple" }
144
- sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7", size = 2069618, upload-time = "2023-08-01T19:23:02.662Z" }
145
- wheels = [
146
- { url = "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970", size = 199385, upload-time = "2023-08-01T19:23:00.661Z" },
147
- ]
148
-
149
140
  [[package]]
150
141
  name = "charset-normalizer"
151
142
  version = "3.4.2"
@@ -411,16 +402,16 @@ wheels = [
411
402
 
412
403
  [[package]]
413
404
  name = "flake8"
414
- version = "7.2.0"
405
+ version = "7.3.0"
415
406
  source = { registry = "https://pypi.org/simple" }
416
407
  dependencies = [
417
408
  { name = "mccabe" },
418
409
  { name = "pycodestyle" },
419
410
  { name = "pyflakes" },
420
411
  ]
421
- sdist = { url = "https://files.pythonhosted.org/packages/e7/c4/5842fc9fc94584c455543540af62fd9900faade32511fab650e9891ec225/flake8-7.2.0.tar.gz", hash = "sha256:fa558ae3f6f7dbf2b4f22663e5343b6b6023620461f8d4ff2019ef4b5ee70426", size = 48177, upload-time = "2025-03-29T20:08:39.329Z" }
412
+ sdist = { url = "https://files.pythonhosted.org/packages/9b/af/fbfe3c4b5a657d79e5c47a2827a362f9e1b763336a52f926126aa6dc7123/flake8-7.3.0.tar.gz", hash = "sha256:fe044858146b9fc69b551a4b490d69cf960fcb78ad1edcb84e7fbb1b4a8e3872", size = 48326, upload-time = "2025-06-20T19:31:35.838Z" }
422
413
  wheels = [
423
- { url = "https://files.pythonhosted.org/packages/83/5c/0627be4c9976d56b1217cb5187b7504e7fd7d3503f8bfd312a04077bd4f7/flake8-7.2.0-py2.py3-none-any.whl", hash = "sha256:93b92ba5bdb60754a6da14fa3b93a9361fd00a59632ada61fd7b130436c40343", size = 57786, upload-time = "2025-03-29T20:08:37.902Z" },
414
+ { url = "https://files.pythonhosted.org/packages/9f/56/13ab06b4f93ca7cac71078fbe37fcea175d3216f31f85c3168a6bbd0bb9a/flake8-7.3.0-py2.py3-none-any.whl", hash = "sha256:b9696257b9ce8beb888cdbe31cf885c90d31928fe202be0889a7cdafad32f01e", size = 57922, upload-time = "2025-06-20T19:31:34.425Z" },
424
415
  ]
425
416
 
426
417
  [[package]]
@@ -743,7 +734,7 @@ wheels = [
743
734
 
744
735
  [[package]]
745
736
  name = "mypy"
746
- version = "1.16.0"
737
+ version = "1.16.1"
747
738
  source = { registry = "https://pypi.org/simple" }
748
739
  dependencies = [
749
740
  { name = "mypy-extensions" },
@@ -751,39 +742,39 @@ dependencies = [
751
742
  { name = "tomli", marker = "python_full_version < '3.11'" },
752
743
  { name = "typing-extensions" },
753
744
  ]
754
- sdist = { url = "https://files.pythonhosted.org/packages/d4/38/13c2f1abae94d5ea0354e146b95a1be9b2137a0d506728e0da037c4276f6/mypy-1.16.0.tar.gz", hash = "sha256:84b94283f817e2aa6350a14b4a8fb2a35a53c286f97c9d30f53b63620e7af8ab", size = 3323139, upload-time = "2025-05-29T13:46:12.532Z" }
755
- wheels = [
756
- { url = "https://files.pythonhosted.org/packages/64/5e/a0485f0608a3d67029d3d73cec209278b025e3493a3acfda3ef3a88540fd/mypy-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7909541fef256527e5ee9c0a7e2aeed78b6cda72ba44298d1334fe7881b05c5c", size = 10967416, upload-time = "2025-05-29T13:34:17.783Z" },
757
- { url = "https://files.pythonhosted.org/packages/4b/53/5837c221f74c0d53a4bfc3003296f8179c3a2a7f336d7de7bbafbe96b688/mypy-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e71d6f0090c2256c713ed3d52711d01859c82608b5d68d4fa01a3fe30df95571", size = 10087654, upload-time = "2025-05-29T13:32:37.878Z" },
758
- { url = "https://files.pythonhosted.org/packages/29/59/5fd2400352c3093bed4c09017fe671d26bc5bb7e6ef2d4bf85f2a2488104/mypy-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:936ccfdd749af4766be824268bfe22d1db9eb2f34a3ea1d00ffbe5b5265f5491", size = 11875192, upload-time = "2025-05-29T13:34:54.281Z" },
759
- { url = "https://files.pythonhosted.org/packages/ad/3e/4bfec74663a64c2012f3e278dbc29ffe82b121bc551758590d1b6449ec0c/mypy-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4086883a73166631307fdd330c4a9080ce24913d4f4c5ec596c601b3a4bdd777", size = 12612939, upload-time = "2025-05-29T13:33:14.766Z" },
760
- { url = "https://files.pythonhosted.org/packages/88/1f/fecbe3dcba4bf2ca34c26ca016383a9676711907f8db4da8354925cbb08f/mypy-1.16.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:feec38097f71797da0231997e0de3a58108c51845399669ebc532c815f93866b", size = 12874719, upload-time = "2025-05-29T13:21:52.09Z" },
761
- { url = "https://files.pythonhosted.org/packages/f3/51/c2d280601cd816c43dfa512a759270d5a5ef638d7ac9bea9134c8305a12f/mypy-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:09a8da6a0ee9a9770b8ff61b39c0bb07971cda90e7297f4213741b48a0cc8d93", size = 9487053, upload-time = "2025-05-29T13:33:29.797Z" },
762
- { url = "https://files.pythonhosted.org/packages/24/c4/ff2f79db7075c274fe85b5fff8797d29c6b61b8854c39e3b7feb556aa377/mypy-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9f826aaa7ff8443bac6a494cf743f591488ea940dd360e7dd330e30dd772a5ab", size = 10884498, upload-time = "2025-05-29T13:18:54.066Z" },
763
- { url = "https://files.pythonhosted.org/packages/02/07/12198e83006235f10f6a7808917376b5d6240a2fd5dce740fe5d2ebf3247/mypy-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:82d056e6faa508501af333a6af192c700b33e15865bda49611e3d7d8358ebea2", size = 10011755, upload-time = "2025-05-29T13:34:00.851Z" },
764
- { url = "https://files.pythonhosted.org/packages/f1/9b/5fd5801a72b5d6fb6ec0105ea1d0e01ab2d4971893076e558d4b6d6b5f80/mypy-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:089bedc02307c2548eb51f426e085546db1fa7dd87fbb7c9fa561575cf6eb1ff", size = 11800138, upload-time = "2025-05-29T13:32:55.082Z" },
765
- { url = "https://files.pythonhosted.org/packages/2e/81/a117441ea5dfc3746431e51d78a4aca569c677aa225bca2cc05a7c239b61/mypy-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6a2322896003ba66bbd1318c10d3afdfe24e78ef12ea10e2acd985e9d684a666", size = 12533156, upload-time = "2025-05-29T13:19:12.963Z" },
766
- { url = "https://files.pythonhosted.org/packages/3f/38/88ec57c6c86014d3f06251e00f397b5a7daa6888884d0abf187e4f5f587f/mypy-1.16.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:021a68568082c5b36e977d54e8f1de978baf401a33884ffcea09bd8e88a98f4c", size = 12742426, upload-time = "2025-05-29T13:20:22.72Z" },
767
- { url = "https://files.pythonhosted.org/packages/bd/53/7e9d528433d56e6f6f77ccf24af6ce570986c2d98a5839e4c2009ef47283/mypy-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:54066fed302d83bf5128632d05b4ec68412e1f03ef2c300434057d66866cea4b", size = 9478319, upload-time = "2025-05-29T13:21:17.582Z" },
768
- { url = "https://files.pythonhosted.org/packages/70/cf/158e5055e60ca2be23aec54a3010f89dcffd788732634b344fc9cb1e85a0/mypy-1.16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c5436d11e89a3ad16ce8afe752f0f373ae9620841c50883dc96f8b8805620b13", size = 11062927, upload-time = "2025-05-29T13:35:52.328Z" },
769
- { url = "https://files.pythonhosted.org/packages/94/34/cfff7a56be1609f5d10ef386342ce3494158e4d506516890142007e6472c/mypy-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f2622af30bf01d8fc36466231bdd203d120d7a599a6d88fb22bdcb9dbff84090", size = 10083082, upload-time = "2025-05-29T13:35:33.378Z" },
770
- { url = "https://files.pythonhosted.org/packages/b3/7f/7242062ec6288c33d8ad89574df87c3903d394870e5e6ba1699317a65075/mypy-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d045d33c284e10a038f5e29faca055b90eee87da3fc63b8889085744ebabb5a1", size = 11828306, upload-time = "2025-05-29T13:21:02.164Z" },
771
- { url = "https://files.pythonhosted.org/packages/6f/5f/b392f7b4f659f5b619ce5994c5c43caab3d80df2296ae54fa888b3d17f5a/mypy-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b4968f14f44c62e2ec4a038c8797a87315be8df7740dc3ee8d3bfe1c6bf5dba8", size = 12702764, upload-time = "2025-05-29T13:20:42.826Z" },
772
- { url = "https://files.pythonhosted.org/packages/9b/c0/7646ef3a00fa39ac9bc0938626d9ff29d19d733011be929cfea59d82d136/mypy-1.16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eb14a4a871bb8efb1e4a50360d4e3c8d6c601e7a31028a2c79f9bb659b63d730", size = 12896233, upload-time = "2025-05-29T13:18:37.446Z" },
773
- { url = "https://files.pythonhosted.org/packages/6d/38/52f4b808b3fef7f0ef840ee8ff6ce5b5d77381e65425758d515cdd4f5bb5/mypy-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:bd4e1ebe126152a7bbaa4daedd781c90c8f9643c79b9748caa270ad542f12bec", size = 9565547, upload-time = "2025-05-29T13:20:02.836Z" },
774
- { url = "https://files.pythonhosted.org/packages/97/9c/ca03bdbefbaa03b264b9318a98950a9c683e06472226b55472f96ebbc53d/mypy-1.16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a9e056237c89f1587a3be1a3a70a06a698d25e2479b9a2f57325ddaaffc3567b", size = 11059753, upload-time = "2025-05-29T13:18:18.167Z" },
775
- { url = "https://files.pythonhosted.org/packages/36/92/79a969b8302cfe316027c88f7dc6fee70129490a370b3f6eb11d777749d0/mypy-1.16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b07e107affb9ee6ce1f342c07f51552d126c32cd62955f59a7db94a51ad12c0", size = 10073338, upload-time = "2025-05-29T13:19:48.079Z" },
776
- { url = "https://files.pythonhosted.org/packages/14/9b/a943f09319167da0552d5cd722104096a9c99270719b1afeea60d11610aa/mypy-1.16.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c6fb60cbd85dc65d4d63d37cb5c86f4e3a301ec605f606ae3a9173e5cf34997b", size = 11827764, upload-time = "2025-05-29T13:46:04.47Z" },
777
- { url = "https://files.pythonhosted.org/packages/ec/64/ff75e71c65a0cb6ee737287c7913ea155845a556c64144c65b811afdb9c7/mypy-1.16.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a7e32297a437cc915599e0578fa6bc68ae6a8dc059c9e009c628e1c47f91495d", size = 12701356, upload-time = "2025-05-29T13:35:13.553Z" },
778
- { url = "https://files.pythonhosted.org/packages/0a/ad/0e93c18987a1182c350f7a5fab70550852f9fabe30ecb63bfbe51b602074/mypy-1.16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:afe420c9380ccec31e744e8baff0d406c846683681025db3531b32db56962d52", size = 12900745, upload-time = "2025-05-29T13:17:24.409Z" },
779
- { url = "https://files.pythonhosted.org/packages/28/5d/036c278d7a013e97e33f08c047fe5583ab4f1fc47c9a49f985f1cdd2a2d7/mypy-1.16.0-cp313-cp313-win_amd64.whl", hash = "sha256:55f9076c6ce55dd3f8cd0c6fff26a008ca8e5131b89d5ba6d86bd3f47e736eeb", size = 9572200, upload-time = "2025-05-29T13:33:44.92Z" },
780
- { url = "https://files.pythonhosted.org/packages/bd/eb/c0759617fe2159aee7a653f13cceafbf7f0b6323b4197403f2e587ca947d/mypy-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f56236114c425620875c7cf71700e3d60004858da856c6fc78998ffe767b73d3", size = 10956081, upload-time = "2025-05-29T13:19:32.264Z" },
781
- { url = "https://files.pythonhosted.org/packages/70/35/df3c74a2967bdf86edea58b265feeec181d693432faed1c3b688b7c231e3/mypy-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:15486beea80be24ff067d7d0ede673b001d0d684d0095803b3e6e17a886a2a92", size = 10084422, upload-time = "2025-05-29T13:18:01.437Z" },
782
- { url = "https://files.pythonhosted.org/packages/b3/07/145ffe29f4b577219943b7b1dc0a71df7ead3c5bed4898686bd87c5b5cc2/mypy-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f2ed0e0847a80655afa2c121835b848ed101cc7b8d8d6ecc5205aedc732b1436", size = 11879670, upload-time = "2025-05-29T13:17:45.971Z" },
783
- { url = "https://files.pythonhosted.org/packages/c6/94/0421562d6b046e22986758c9ae31865d10ea0ba607ae99b32c9d18b16f66/mypy-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eb5fbc8063cb4fde7787e4c0406aa63094a34a2daf4673f359a1fb64050e9cb2", size = 12610528, upload-time = "2025-05-29T13:34:36.983Z" },
784
- { url = "https://files.pythonhosted.org/packages/1a/f1/39a22985b78c766a594ae1e0bbb6f8bdf5f31ea8d0c52291a3c211fd3cd5/mypy-1.16.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a5fcfdb7318c6a8dd127b14b1052743b83e97a970f0edb6c913211507a255e20", size = 12871923, upload-time = "2025-05-29T13:32:21.823Z" },
785
- { url = "https://files.pythonhosted.org/packages/f3/8e/84db4fb0d01f43d2c82fa9072ca72a42c49e52d58f44307bbd747c977bc2/mypy-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:2e7e0ad35275e02797323a5aa1be0b14a4d03ffdb2e5f2b0489fa07b89c67b21", size = 9482931, upload-time = "2025-05-29T13:21:32.326Z" },
786
- { url = "https://files.pythonhosted.org/packages/99/a3/6ed10530dec8e0fdc890d81361260c9ef1f5e5c217ad8c9b21ecb2b8366b/mypy-1.16.0-py3-none-any.whl", hash = "sha256:29e1499864a3888bca5c1542f2d7232c6e586295183320caa95758fc84034031", size = 2265773, upload-time = "2025-05-29T13:35:18.762Z" },
745
+ sdist = { url = "https://files.pythonhosted.org/packages/81/69/92c7fa98112e4d9eb075a239caa4ef4649ad7d441545ccffbd5e34607cbb/mypy-1.16.1.tar.gz", hash = "sha256:6bd00a0a2094841c5e47e7374bb42b83d64c527a502e3334e1173a0c24437bab", size = 3324747, upload-time = "2025-06-16T16:51:35.145Z" }
746
+ wheels = [
747
+ { url = "https://files.pythonhosted.org/packages/8e/12/2bf23a80fcef5edb75de9a1e295d778e0f46ea89eb8b115818b663eff42b/mypy-1.16.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b4f0fed1022a63c6fec38f28b7fc77fca47fd490445c69d0a66266c59dd0b88a", size = 10958644, upload-time = "2025-06-16T16:51:11.649Z" },
748
+ { url = "https://files.pythonhosted.org/packages/08/50/bfe47b3b278eacf348291742fd5e6613bbc4b3434b72ce9361896417cfe5/mypy-1.16.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:86042bbf9f5a05ea000d3203cf87aa9d0ccf9a01f73f71c58979eb9249f46d72", size = 10087033, upload-time = "2025-06-16T16:35:30.089Z" },
749
+ { url = "https://files.pythonhosted.org/packages/21/de/40307c12fe25675a0776aaa2cdd2879cf30d99eec91b898de00228dc3ab5/mypy-1.16.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ea7469ee5902c95542bea7ee545f7006508c65c8c54b06dc2c92676ce526f3ea", size = 11875645, upload-time = "2025-06-16T16:35:48.49Z" },
750
+ { url = "https://files.pythonhosted.org/packages/a6/d8/85bdb59e4a98b7a31495bd8f1a4445d8ffc86cde4ab1f8c11d247c11aedc/mypy-1.16.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:352025753ef6a83cb9e7f2427319bb7875d1fdda8439d1e23de12ab164179574", size = 12616986, upload-time = "2025-06-16T16:48:39.526Z" },
751
+ { url = "https://files.pythonhosted.org/packages/0e/d0/bb25731158fa8f8ee9e068d3e94fcceb4971fedf1424248496292512afe9/mypy-1.16.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ff9fa5b16e4c1364eb89a4d16bcda9987f05d39604e1e6c35378a2987c1aac2d", size = 12878632, upload-time = "2025-06-16T16:36:08.195Z" },
752
+ { url = "https://files.pythonhosted.org/packages/2d/11/822a9beb7a2b825c0cb06132ca0a5183f8327a5e23ef89717c9474ba0bc6/mypy-1.16.1-cp310-cp310-win_amd64.whl", hash = "sha256:1256688e284632382f8f3b9e2123df7d279f603c561f099758e66dd6ed4e8bd6", size = 9484391, upload-time = "2025-06-16T16:37:56.151Z" },
753
+ { url = "https://files.pythonhosted.org/packages/9a/61/ec1245aa1c325cb7a6c0f8570a2eee3bfc40fa90d19b1267f8e50b5c8645/mypy-1.16.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:472e4e4c100062488ec643f6162dd0d5208e33e2f34544e1fc931372e806c0cc", size = 10890557, upload-time = "2025-06-16T16:37:21.421Z" },
754
+ { url = "https://files.pythonhosted.org/packages/6b/bb/6eccc0ba0aa0c7a87df24e73f0ad34170514abd8162eb0c75fd7128171fb/mypy-1.16.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ea16e2a7d2714277e349e24d19a782a663a34ed60864006e8585db08f8ad1782", size = 10012921, upload-time = "2025-06-16T16:51:28.659Z" },
755
+ { url = "https://files.pythonhosted.org/packages/5f/80/b337a12e2006715f99f529e732c5f6a8c143bb58c92bb142d5ab380963a5/mypy-1.16.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:08e850ea22adc4d8a4014651575567b0318ede51e8e9fe7a68f25391af699507", size = 11802887, upload-time = "2025-06-16T16:50:53.627Z" },
756
+ { url = "https://files.pythonhosted.org/packages/d9/59/f7af072d09793d581a745a25737c7c0a945760036b16aeb620f658a017af/mypy-1.16.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22d76a63a42619bfb90122889b903519149879ddbf2ba4251834727944c8baca", size = 12531658, upload-time = "2025-06-16T16:33:55.002Z" },
757
+ { url = "https://files.pythonhosted.org/packages/82/c4/607672f2d6c0254b94a646cfc45ad589dd71b04aa1f3d642b840f7cce06c/mypy-1.16.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2c7ce0662b6b9dc8f4ed86eb7a5d505ee3298c04b40ec13b30e572c0e5ae17c4", size = 12732486, upload-time = "2025-06-16T16:37:03.301Z" },
758
+ { url = "https://files.pythonhosted.org/packages/b6/5e/136555ec1d80df877a707cebf9081bd3a9f397dedc1ab9750518d87489ec/mypy-1.16.1-cp311-cp311-win_amd64.whl", hash = "sha256:211287e98e05352a2e1d4e8759c5490925a7c784ddc84207f4714822f8cf99b6", size = 9479482, upload-time = "2025-06-16T16:47:37.48Z" },
759
+ { url = "https://files.pythonhosted.org/packages/b4/d6/39482e5fcc724c15bf6280ff5806548c7185e0c090712a3736ed4d07e8b7/mypy-1.16.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:af4792433f09575d9eeca5c63d7d90ca4aeceda9d8355e136f80f8967639183d", size = 11066493, upload-time = "2025-06-16T16:47:01.683Z" },
760
+ { url = "https://files.pythonhosted.org/packages/e6/e5/26c347890efc6b757f4d5bb83f4a0cf5958b8cf49c938ac99b8b72b420a6/mypy-1.16.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:66df38405fd8466ce3517eda1f6640611a0b8e70895e2a9462d1d4323c5eb4b9", size = 10081687, upload-time = "2025-06-16T16:48:19.367Z" },
761
+ { url = "https://files.pythonhosted.org/packages/44/c7/b5cb264c97b86914487d6a24bd8688c0172e37ec0f43e93b9691cae9468b/mypy-1.16.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:44e7acddb3c48bd2713994d098729494117803616e116032af192871aed80b79", size = 11839723, upload-time = "2025-06-16T16:49:20.912Z" },
762
+ { url = "https://files.pythonhosted.org/packages/15/f8/491997a9b8a554204f834ed4816bda813aefda31cf873bb099deee3c9a99/mypy-1.16.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0ab5eca37b50188163fa7c1b73c685ac66c4e9bdee4a85c9adac0e91d8895e15", size = 12722980, upload-time = "2025-06-16T16:37:40.929Z" },
763
+ { url = "https://files.pythonhosted.org/packages/df/f0/2bd41e174b5fd93bc9de9a28e4fb673113633b8a7f3a607fa4a73595e468/mypy-1.16.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb6229b2c9086247e21a83c309754b9058b438704ad2f6807f0d8227f6ebdd", size = 12903328, upload-time = "2025-06-16T16:34:35.099Z" },
764
+ { url = "https://files.pythonhosted.org/packages/61/81/5572108a7bec2c46b8aff7e9b524f371fe6ab5efb534d38d6b37b5490da8/mypy-1.16.1-cp312-cp312-win_amd64.whl", hash = "sha256:1f0435cf920e287ff68af3d10a118a73f212deb2ce087619eb4e648116d1fe9b", size = 9562321, upload-time = "2025-06-16T16:48:58.823Z" },
765
+ { url = "https://files.pythonhosted.org/packages/28/e3/96964af4a75a949e67df4b95318fe2b7427ac8189bbc3ef28f92a1c5bc56/mypy-1.16.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ddc91eb318c8751c69ddb200a5937f1232ee8efb4e64e9f4bc475a33719de438", size = 11063480, upload-time = "2025-06-16T16:47:56.205Z" },
766
+ { url = "https://files.pythonhosted.org/packages/f5/4d/cd1a42b8e5be278fab7010fb289d9307a63e07153f0ae1510a3d7b703193/mypy-1.16.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:87ff2c13d58bdc4bbe7dc0dedfe622c0f04e2cb2a492269f3b418df2de05c536", size = 10090538, upload-time = "2025-06-16T16:46:43.92Z" },
767
+ { url = "https://files.pythonhosted.org/packages/c9/4f/c3c6b4b66374b5f68bab07c8cabd63a049ff69796b844bc759a0ca99bb2a/mypy-1.16.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a7cfb0fe29fe5a9841b7c8ee6dffb52382c45acdf68f032145b75620acfbd6f", size = 11836839, upload-time = "2025-06-16T16:36:28.039Z" },
768
+ { url = "https://files.pythonhosted.org/packages/b4/7e/81ca3b074021ad9775e5cb97ebe0089c0f13684b066a750b7dc208438403/mypy-1.16.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:051e1677689c9d9578b9c7f4d206d763f9bbd95723cd1416fad50db49d52f359", size = 12715634, upload-time = "2025-06-16T16:50:34.441Z" },
769
+ { url = "https://files.pythonhosted.org/packages/e9/95/bdd40c8be346fa4c70edb4081d727a54d0a05382d84966869738cfa8a497/mypy-1.16.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d5d2309511cc56c021b4b4e462907c2b12f669b2dbeb68300110ec27723971be", size = 12895584, upload-time = "2025-06-16T16:34:54.857Z" },
770
+ { url = "https://files.pythonhosted.org/packages/5a/fd/d486a0827a1c597b3b48b1bdef47228a6e9ee8102ab8c28f944cb83b65dc/mypy-1.16.1-cp313-cp313-win_amd64.whl", hash = "sha256:4f58ac32771341e38a853c5d0ec0dfe27e18e27da9cdb8bbc882d2249c71a3ee", size = 9573886, upload-time = "2025-06-16T16:36:43.589Z" },
771
+ { url = "https://files.pythonhosted.org/packages/49/5e/ed1e6a7344005df11dfd58b0fdd59ce939a0ba9f7ed37754bf20670b74db/mypy-1.16.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7fc688329af6a287567f45cc1cefb9db662defeb14625213a5b7da6e692e2069", size = 10959511, upload-time = "2025-06-16T16:47:21.945Z" },
772
+ { url = "https://files.pythonhosted.org/packages/30/88/a7cbc2541e91fe04f43d9e4577264b260fecedb9bccb64ffb1a34b7e6c22/mypy-1.16.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e198ab3f55924c03ead626ff424cad1732d0d391478dfbf7bb97b34602395da", size = 10075555, upload-time = "2025-06-16T16:50:14.084Z" },
773
+ { url = "https://files.pythonhosted.org/packages/93/f7/c62b1e31a32fbd1546cca5e0a2e5f181be5761265ad1f2e94f2a306fa906/mypy-1.16.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09aa4f91ada245f0a45dbc47e548fd94e0dd5a8433e0114917dc3b526912a30c", size = 11874169, upload-time = "2025-06-16T16:49:42.276Z" },
774
+ { url = "https://files.pythonhosted.org/packages/c8/15/db580a28034657fb6cb87af2f8996435a5b19d429ea4dcd6e1c73d418e60/mypy-1.16.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13c7cd5b1cb2909aa318a90fd1b7e31f17c50b242953e7dd58345b2a814f6383", size = 12610060, upload-time = "2025-06-16T16:34:15.215Z" },
775
+ { url = "https://files.pythonhosted.org/packages/ec/78/c17f48f6843048fa92d1489d3095e99324f2a8c420f831a04ccc454e2e51/mypy-1.16.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:58e07fb958bc5d752a280da0e890c538f1515b79a65757bbdc54252ba82e0b40", size = 12875199, upload-time = "2025-06-16T16:35:14.448Z" },
776
+ { url = "https://files.pythonhosted.org/packages/bc/d6/ed42167d0a42680381653fd251d877382351e1bd2c6dd8a818764be3beb1/mypy-1.16.1-cp39-cp39-win_amd64.whl", hash = "sha256:f895078594d918f93337a505f8add9bd654d1a24962b4c6ed9390e12531eb31b", size = 9487033, upload-time = "2025-06-16T16:49:57.907Z" },
777
+ { url = "https://files.pythonhosted.org/packages/cf/d3/53e684e78e07c1a2bf7105715e5edd09ce951fc3f47cf9ed095ec1b7a037/mypy-1.16.1-py3-none-any.whl", hash = "sha256:5fc2ac4027d0ef28d6ba69a0343737a23c4d1b83672bf38d1fe237bdc0643b37", size = 2265923, upload-time = "2025-06-16T16:48:02.366Z" },
787
778
  ]
788
779
 
789
780
  [[package]]
@@ -1040,29 +1031,29 @@ wheels = [
1040
1031
 
1041
1032
  [[package]]
1042
1033
  name = "pycodestyle"
1043
- version = "2.13.0"
1034
+ version = "2.14.0"
1044
1035
  source = { registry = "https://pypi.org/simple" }
1045
- sdist = { url = "https://files.pythonhosted.org/packages/04/6e/1f4a62078e4d95d82367f24e685aef3a672abfd27d1a868068fed4ed2254/pycodestyle-2.13.0.tar.gz", hash = "sha256:c8415bf09abe81d9c7f872502a6eee881fbe85d8763dd5b9924bb0a01d67efae", size = 39312, upload-time = "2025-03-29T17:33:30.669Z" }
1036
+ sdist = { url = "https://files.pythonhosted.org/packages/11/e0/abfd2a0d2efe47670df87f3e3a0e2edda42f055053c85361f19c0e2c1ca8/pycodestyle-2.14.0.tar.gz", hash = "sha256:c4b5b517d278089ff9d0abdec919cd97262a3367449ea1c8b49b91529167b783", size = 39472, upload-time = "2025-06-20T18:49:48.75Z" }
1046
1037
  wheels = [
1047
- { url = "https://files.pythonhosted.org/packages/07/be/b00116df1bfb3e0bb5b45e29d604799f7b91dd861637e4d448b4e09e6a3e/pycodestyle-2.13.0-py2.py3-none-any.whl", hash = "sha256:35863c5974a271c7a726ed228a14a4f6daf49df369d8c50cd9a6f58a5e143ba9", size = 31424, upload-time = "2025-03-29T17:33:29.405Z" },
1038
+ { url = "https://files.pythonhosted.org/packages/d7/27/a58ddaf8c588a3ef080db9d0b7e0b97215cee3a45df74f3a94dbbf5c893a/pycodestyle-2.14.0-py2.py3-none-any.whl", hash = "sha256:dd6bf7cb4ee77f8e016f9c8e74a35ddd9f67e1d5fd4184d86c3b98e07099f42d", size = 31594, upload-time = "2025-06-20T18:49:47.491Z" },
1048
1039
  ]
1049
1040
 
1050
1041
  [[package]]
1051
1042
  name = "pyflakes"
1052
- version = "3.3.2"
1043
+ version = "3.4.0"
1053
1044
  source = { registry = "https://pypi.org/simple" }
1054
- sdist = { url = "https://files.pythonhosted.org/packages/af/cc/1df338bd7ed1fa7c317081dcf29bf2f01266603b301e6858856d346a12b3/pyflakes-3.3.2.tar.gz", hash = "sha256:6dfd61d87b97fba5dcfaaf781171ac16be16453be6d816147989e7f6e6a9576b", size = 64175, upload-time = "2025-03-31T13:21:20.34Z" }
1045
+ sdist = { url = "https://files.pythonhosted.org/packages/45/dc/fd034dc20b4b264b3d015808458391acbf9df40b1e54750ef175d39180b1/pyflakes-3.4.0.tar.gz", hash = "sha256:b24f96fafb7d2ab0ec5075b7350b3d2d2218eab42003821c06344973d3ea2f58", size = 64669, upload-time = "2025-06-20T18:45:27.834Z" }
1055
1046
  wheels = [
1056
- { url = "https://files.pythonhosted.org/packages/15/40/b293a4fa769f3b02ab9e387c707c4cbdc34f073f945de0386107d4e669e6/pyflakes-3.3.2-py2.py3-none-any.whl", hash = "sha256:5039c8339cbb1944045f4ee5466908906180f13cc99cc9949348d10f82a5c32a", size = 63164, upload-time = "2025-03-31T13:21:18.503Z" },
1047
+ { url = "https://files.pythonhosted.org/packages/c2/2f/81d580a0fb83baeb066698975cb14a618bdbed7720678566f1b046a95fe8/pyflakes-3.4.0-py2.py3-none-any.whl", hash = "sha256:f742a7dbd0d9cb9ea41e9a24a918996e8170c799fa528688d40dd582c8265f4f", size = 63551, upload-time = "2025-06-20T18:45:26.937Z" },
1057
1048
  ]
1058
1049
 
1059
1050
  [[package]]
1060
1051
  name = "pygments"
1061
- version = "2.19.1"
1052
+ version = "2.19.2"
1062
1053
  source = { registry = "https://pypi.org/simple" }
1063
- sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581, upload-time = "2025-01-06T17:26:30.443Z" }
1054
+ sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" }
1064
1055
  wheels = [
1065
- { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload-time = "2025-01-06T17:26:25.553Z" },
1056
+ { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" },
1066
1057
  ]
1067
1058
 
1068
1059
  [[package]]
@@ -1105,7 +1096,7 @@ wheels = [
1105
1096
 
1106
1097
  [[package]]
1107
1098
  name = "pytest"
1108
- version = "8.4.0"
1099
+ version = "8.4.1"
1109
1100
  source = { registry = "https://pypi.org/simple" }
1110
1101
  dependencies = [
1111
1102
  { name = "colorama", marker = "sys_platform == 'win32'" },
@@ -1116,9 +1107,9 @@ dependencies = [
1116
1107
  { name = "pygments" },
1117
1108
  { name = "tomli", marker = "python_full_version < '3.11'" },
1118
1109
  ]
1119
- sdist = { url = "https://files.pythonhosted.org/packages/fb/aa/405082ce2749be5398045152251ac69c0f3578c7077efc53431303af97ce/pytest-8.4.0.tar.gz", hash = "sha256:14d920b48472ea0dbf68e45b96cd1ffda4705f33307dcc86c676c1b5104838a6", size = 1515232, upload-time = "2025-06-02T17:36:30.03Z" }
1110
+ sdist = { url = "https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c", size = 1517714, upload-time = "2025-06-18T05:48:06.109Z" }
1120
1111
  wheels = [
1121
- { url = "https://files.pythonhosted.org/packages/2f/de/afa024cbe022b1b318a3d224125aa24939e99b4ff6f22e0ba639a2eaee47/pytest-8.4.0-py3-none-any.whl", hash = "sha256:f40f825768ad76c0977cbacdf1fd37c6f7a468e460ea6a0636078f8972d4517e", size = 363797, upload-time = "2025-06-02T17:36:27.859Z" },
1112
+ { url = "https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7", size = 365474, upload-time = "2025-06-18T05:48:03.955Z" },
1122
1113
  ]
1123
1114
 
1124
1115
  [[package]]
@@ -1254,15 +1245,15 @@ wheels = [
1254
1245
 
1255
1246
  [[package]]
1256
1247
  name = "reportlab"
1257
- version = "4.4.1"
1248
+ version = "4.4.2"
1258
1249
  source = { registry = "https://pypi.org/simple" }
1259
1250
  dependencies = [
1260
- { name = "chardet" },
1251
+ { name = "charset-normalizer" },
1261
1252
  { name = "pillow" },
1262
1253
  ]
1263
- sdist = { url = "https://files.pythonhosted.org/packages/7b/d8/c3366bf10a5a5fcc3467eefa9504f6aa24fcda5817b5b147eabd37a385e1/reportlab-4.4.1.tar.gz", hash = "sha256:5f9b9fc0b7a48e8912c25ccf69d26b82980ab0da718e4f583fa720e8f8f5073f", size = 3509107, upload-time = "2025-05-15T08:07:02.539Z" }
1254
+ sdist = { url = "https://files.pythonhosted.org/packages/ec/9b/3483c7e4ad33d15f22d528872439e5bc92485814d7e7d10dbc3130368a83/reportlab-4.4.2.tar.gz", hash = "sha256:fc6283048ddd0781a9db1d671715990e6aa059c8d40ec9baf34294c4bd583a36", size = 3509063, upload-time = "2025-06-18T12:20:19.526Z" }
1264
1255
  wheels = [
1265
- { url = "https://files.pythonhosted.org/packages/a1/2e/7994a139150abf11c8dd258feb091ad654823a83cfd9720bfdded27185c3/reportlab-4.4.1-py3-none-any.whl", hash = "sha256:9217a1c8c1917217f819718b24972a96ad0c485a1c494749562d097b58d974b7", size = 1953615, upload-time = "2025-05-15T08:06:59.248Z" },
1256
+ { url = "https://files.pythonhosted.org/packages/9f/74/ed990bc9586605d4e46f6b0e0b978a5b8e757aa599e39664bee26d6dc666/reportlab-4.4.2-py3-none-any.whl", hash = "sha256:58e11be387457928707c12153b7e41e52533a5da3f587b15ba8f8fd0805c6ee2", size = 1953624, upload-time = "2025-06-18T12:20:16.152Z" },
1266
1257
  ]
1267
1258
 
1268
1259
  [[package]]
@@ -1305,27 +1296,27 @@ wheels = [
1305
1296
 
1306
1297
  [[package]]
1307
1298
  name = "ruff"
1308
- version = "0.11.13"
1309
- source = { registry = "https://pypi.org/simple" }
1310
- sdist = { url = "https://files.pythonhosted.org/packages/ed/da/9c6f995903b4d9474b39da91d2d626659af3ff1eeb43e9ae7c119349dba6/ruff-0.11.13.tar.gz", hash = "sha256:26fa247dc68d1d4e72c179e08889a25ac0c7ba4d78aecfc835d49cbfd60bf514", size = 4282054, upload-time = "2025-06-05T21:00:15.721Z" }
1311
- wheels = [
1312
- { url = "https://files.pythonhosted.org/packages/7d/ce/a11d381192966e0b4290842cc8d4fac7dc9214ddf627c11c1afff87da29b/ruff-0.11.13-py3-none-linux_armv6l.whl", hash = "sha256:4bdfbf1240533f40042ec00c9e09a3aade6f8c10b6414cf11b519488d2635d46", size = 10292516, upload-time = "2025-06-05T20:59:32.944Z" },
1313
- { url = "https://files.pythonhosted.org/packages/78/db/87c3b59b0d4e753e40b6a3b4a2642dfd1dcaefbff121ddc64d6c8b47ba00/ruff-0.11.13-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:aef9c9ed1b5ca28bb15c7eac83b8670cf3b20b478195bd49c8d756ba0a36cf48", size = 11106083, upload-time = "2025-06-05T20:59:37.03Z" },
1314
- { url = "https://files.pythonhosted.org/packages/77/79/d8cec175856ff810a19825d09ce700265f905c643c69f45d2b737e4a470a/ruff-0.11.13-py3-none-macosx_11_0_arm64.whl", hash = "sha256:53b15a9dfdce029c842e9a5aebc3855e9ab7771395979ff85b7c1dedb53ddc2b", size = 10436024, upload-time = "2025-06-05T20:59:39.741Z" },
1315
- { url = "https://files.pythonhosted.org/packages/8b/5b/f6d94f2980fa1ee854b41568368a2e1252681b9238ab2895e133d303538f/ruff-0.11.13-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab153241400789138d13f362c43f7edecc0edfffce2afa6a68434000ecd8f69a", size = 10646324, upload-time = "2025-06-05T20:59:42.185Z" },
1316
- { url = "https://files.pythonhosted.org/packages/6c/9c/b4c2acf24ea4426016d511dfdc787f4ce1ceb835f3c5fbdbcb32b1c63bda/ruff-0.11.13-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6c51f93029d54a910d3d24f7dd0bb909e31b6cd989a5e4ac513f4eb41629f0dc", size = 10174416, upload-time = "2025-06-05T20:59:44.319Z" },
1317
- { url = "https://files.pythonhosted.org/packages/f3/10/e2e62f77c65ede8cd032c2ca39c41f48feabedb6e282bfd6073d81bb671d/ruff-0.11.13-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1808b3ed53e1a777c2ef733aca9051dc9bf7c99b26ece15cb59a0320fbdbd629", size = 11724197, upload-time = "2025-06-05T20:59:46.935Z" },
1318
- { url = "https://files.pythonhosted.org/packages/bb/f0/466fe8469b85c561e081d798c45f8a1d21e0b4a5ef795a1d7f1a9a9ec182/ruff-0.11.13-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:d28ce58b5ecf0f43c1b71edffabe6ed7f245d5336b17805803312ec9bc665933", size = 12511615, upload-time = "2025-06-05T20:59:49.534Z" },
1319
- { url = "https://files.pythonhosted.org/packages/17/0e/cefe778b46dbd0cbcb03a839946c8f80a06f7968eb298aa4d1a4293f3448/ruff-0.11.13-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55e4bc3a77842da33c16d55b32c6cac1ec5fb0fbec9c8c513bdce76c4f922165", size = 12117080, upload-time = "2025-06-05T20:59:51.654Z" },
1320
- { url = "https://files.pythonhosted.org/packages/5d/2c/caaeda564cbe103bed145ea557cb86795b18651b0f6b3ff6a10e84e5a33f/ruff-0.11.13-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:633bf2c6f35678c56ec73189ba6fa19ff1c5e4807a78bf60ef487b9dd272cc71", size = 11326315, upload-time = "2025-06-05T20:59:54.469Z" },
1321
- { url = "https://files.pythonhosted.org/packages/75/f0/782e7d681d660eda8c536962920c41309e6dd4ebcea9a2714ed5127d44bd/ruff-0.11.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ffbc82d70424b275b089166310448051afdc6e914fdab90e08df66c43bb5ca9", size = 11555640, upload-time = "2025-06-05T20:59:56.986Z" },
1322
- { url = "https://files.pythonhosted.org/packages/5d/d4/3d580c616316c7f07fb3c99dbecfe01fbaea7b6fd9a82b801e72e5de742a/ruff-0.11.13-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:4a9ddd3ec62a9a89578c85842b836e4ac832d4a2e0bfaad3b02243f930ceafcc", size = 10507364, upload-time = "2025-06-05T20:59:59.154Z" },
1323
- { url = "https://files.pythonhosted.org/packages/5a/dc/195e6f17d7b3ea6b12dc4f3e9de575db7983db187c378d44606e5d503319/ruff-0.11.13-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d237a496e0778d719efb05058c64d28b757c77824e04ffe8796c7436e26712b7", size = 10141462, upload-time = "2025-06-05T21:00:01.481Z" },
1324
- { url = "https://files.pythonhosted.org/packages/f4/8e/39a094af6967faa57ecdeacb91bedfb232474ff8c3d20f16a5514e6b3534/ruff-0.11.13-py3-none-musllinux_1_2_i686.whl", hash = "sha256:26816a218ca6ef02142343fd24c70f7cd8c5aa6c203bca284407adf675984432", size = 11121028, upload-time = "2025-06-05T21:00:04.06Z" },
1325
- { url = "https://files.pythonhosted.org/packages/5a/c0/b0b508193b0e8a1654ec683ebab18d309861f8bd64e3a2f9648b80d392cb/ruff-0.11.13-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:51c3f95abd9331dc5b87c47ac7f376db5616041173826dfd556cfe3d4977f492", size = 11602992, upload-time = "2025-06-05T21:00:06.249Z" },
1326
- { url = "https://files.pythonhosted.org/packages/7c/91/263e33ab93ab09ca06ce4f8f8547a858cc198072f873ebc9be7466790bae/ruff-0.11.13-py3-none-win32.whl", hash = "sha256:96c27935418e4e8e77a26bb05962817f28b8ef3843a6c6cc49d8783b5507f250", size = 10474944, upload-time = "2025-06-05T21:00:08.459Z" },
1327
- { url = "https://files.pythonhosted.org/packages/46/f4/7c27734ac2073aae8efb0119cae6931b6fb48017adf048fdf85c19337afc/ruff-0.11.13-py3-none-win_amd64.whl", hash = "sha256:29c3189895a8a6a657b7af4e97d330c8a3afd2c9c8f46c81e2fc5a31866517e3", size = 11548669, upload-time = "2025-06-05T21:00:11.147Z" },
1328
- { url = "https://files.pythonhosted.org/packages/ec/bf/b273dd11673fed8a6bd46032c0ea2a04b2ac9bfa9c628756a5856ba113b0/ruff-0.11.13-py3-none-win_arm64.whl", hash = "sha256:b4385285e9179d608ff1d2fb9922062663c658605819a6876d8beef0c30b7f3b", size = 10683928, upload-time = "2025-06-05T21:00:13.758Z" },
1299
+ version = "0.12.0"
1300
+ source = { registry = "https://pypi.org/simple" }
1301
+ sdist = { url = "https://files.pythonhosted.org/packages/24/90/5255432602c0b196a0da6720f6f76b93eb50baef46d3c9b0025e2f9acbf3/ruff-0.12.0.tar.gz", hash = "sha256:4d047db3662418d4a848a3fdbfaf17488b34b62f527ed6f10cb8afd78135bc5c", size = 4376101, upload-time = "2025-06-17T15:19:26.217Z" }
1302
+ wheels = [
1303
+ { url = "https://files.pythonhosted.org/packages/e6/fd/b46bb20e14b11ff49dbc74c61de352e0dc07fb650189513631f6fb5fc69f/ruff-0.12.0-py3-none-linux_armv6l.whl", hash = "sha256:5652a9ecdb308a1754d96a68827755f28d5dfb416b06f60fd9e13f26191a8848", size = 10311554, upload-time = "2025-06-17T15:18:45.792Z" },
1304
+ { url = "https://files.pythonhosted.org/packages/e7/d3/021dde5a988fa3e25d2468d1dadeea0ae89dc4bc67d0140c6e68818a12a1/ruff-0.12.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:05ed0c914fabc602fc1f3b42c53aa219e5736cb030cdd85640c32dbc73da74a6", size = 11118435, upload-time = "2025-06-17T15:18:49.064Z" },
1305
+ { url = "https://files.pythonhosted.org/packages/07/a2/01a5acf495265c667686ec418f19fd5c32bcc326d4c79ac28824aecd6a32/ruff-0.12.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:07a7aa9b69ac3fcfda3c507916d5d1bca10821fe3797d46bad10f2c6de1edda0", size = 10466010, upload-time = "2025-06-17T15:18:51.341Z" },
1306
+ { url = "https://files.pythonhosted.org/packages/4c/57/7caf31dd947d72e7aa06c60ecb19c135cad871a0a8a251723088132ce801/ruff-0.12.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7731c3eec50af71597243bace7ec6104616ca56dda2b99c89935fe926bdcd48", size = 10661366, upload-time = "2025-06-17T15:18:53.29Z" },
1307
+ { url = "https://files.pythonhosted.org/packages/e9/ba/aa393b972a782b4bc9ea121e0e358a18981980856190d7d2b6187f63e03a/ruff-0.12.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:952d0630eae628250ab1c70a7fffb641b03e6b4a2d3f3ec6c1d19b4ab6c6c807", size = 10173492, upload-time = "2025-06-17T15:18:55.262Z" },
1308
+ { url = "https://files.pythonhosted.org/packages/d7/50/9349ee777614bc3062fc6b038503a59b2034d09dd259daf8192f56c06720/ruff-0.12.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c021f04ea06966b02614d442e94071781c424ab8e02ec7af2f037b4c1e01cc82", size = 11761739, upload-time = "2025-06-17T15:18:58.906Z" },
1309
+ { url = "https://files.pythonhosted.org/packages/04/8f/ad459de67c70ec112e2ba7206841c8f4eb340a03ee6a5cabc159fe558b8e/ruff-0.12.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:7d235618283718ee2fe14db07f954f9b2423700919dc688eacf3f8797a11315c", size = 12537098, upload-time = "2025-06-17T15:19:01.316Z" },
1310
+ { url = "https://files.pythonhosted.org/packages/ed/50/15ad9c80ebd3c4819f5bd8883e57329f538704ed57bac680d95cb6627527/ruff-0.12.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c0758038f81beec8cc52ca22de9685b8ae7f7cc18c013ec2050012862cc9165", size = 12154122, upload-time = "2025-06-17T15:19:03.727Z" },
1311
+ { url = "https://files.pythonhosted.org/packages/76/e6/79b91e41bc8cc3e78ee95c87093c6cacfa275c786e53c9b11b9358026b3d/ruff-0.12.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:139b3d28027987b78fc8d6cfb61165447bdf3740e650b7c480744873688808c2", size = 11363374, upload-time = "2025-06-17T15:19:05.875Z" },
1312
+ { url = "https://files.pythonhosted.org/packages/db/c3/82b292ff8a561850934549aa9dc39e2c4e783ab3c21debe55a495ddf7827/ruff-0.12.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68853e8517b17bba004152aebd9dd77d5213e503a5f2789395b25f26acac0da4", size = 11587647, upload-time = "2025-06-17T15:19:08.246Z" },
1313
+ { url = "https://files.pythonhosted.org/packages/2b/42/d5760d742669f285909de1bbf50289baccb647b53e99b8a3b4f7ce1b2001/ruff-0.12.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:3a9512af224b9ac4757f7010843771da6b2b0935a9e5e76bb407caa901a1a514", size = 10527284, upload-time = "2025-06-17T15:19:10.37Z" },
1314
+ { url = "https://files.pythonhosted.org/packages/19/f6/fcee9935f25a8a8bba4adbae62495c39ef281256693962c2159e8b284c5f/ruff-0.12.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:b08df3d96db798e5beb488d4df03011874aff919a97dcc2dd8539bb2be5d6a88", size = 10158609, upload-time = "2025-06-17T15:19:12.286Z" },
1315
+ { url = "https://files.pythonhosted.org/packages/37/fb/057febf0eea07b9384787bfe197e8b3384aa05faa0d6bd844b94ceb29945/ruff-0.12.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:6a315992297a7435a66259073681bb0d8647a826b7a6de45c6934b2ca3a9ed51", size = 11141462, upload-time = "2025-06-17T15:19:15.195Z" },
1316
+ { url = "https://files.pythonhosted.org/packages/10/7c/1be8571011585914b9d23c95b15d07eec2d2303e94a03df58294bc9274d4/ruff-0.12.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:1e55e44e770e061f55a7dbc6e9aed47feea07731d809a3710feda2262d2d4d8a", size = 11641616, upload-time = "2025-06-17T15:19:17.6Z" },
1317
+ { url = "https://files.pythonhosted.org/packages/6a/ef/b960ab4818f90ff59e571d03c3f992828d4683561095e80f9ef31f3d58b7/ruff-0.12.0-py3-none-win32.whl", hash = "sha256:7162a4c816f8d1555eb195c46ae0bd819834d2a3f18f98cc63819a7b46f474fb", size = 10525289, upload-time = "2025-06-17T15:19:19.688Z" },
1318
+ { url = "https://files.pythonhosted.org/packages/34/93/8b16034d493ef958a500f17cda3496c63a537ce9d5a6479feec9558f1695/ruff-0.12.0-py3-none-win_amd64.whl", hash = "sha256:d00b7a157b8fb6d3827b49d3324da34a1e3f93492c1f97b08e222ad7e9b291e0", size = 11598311, upload-time = "2025-06-17T15:19:21.785Z" },
1319
+ { url = "https://files.pythonhosted.org/packages/d0/33/4d3e79e4a84533d6cd526bfb42c020a23256ae5e4265d858bd1287831f7d/ruff-0.12.0-py3-none-win_arm64.whl", hash = "sha256:8cd24580405ad8c1cc64d61725bca091d6b6da7eb3d36f72cc605467069d7e8b", size = 10724946, upload-time = "2025-06-17T15:19:23.952Z" },
1329
1320
  ]
1330
1321
 
1331
1322
  [[package]]
@@ -1644,7 +1635,7 @@ wheels = [
1644
1635
 
1645
1636
  [[package]]
1646
1637
  name = "txt2ebook"
1647
- version = "0.1.144"
1638
+ version = "0.1.145"
1648
1639
  source = { editable = "." }
1649
1640
  dependencies = [
1650
1641
  { name = "bs4" },
@@ -1765,11 +1756,11 @@ wheels = [
1765
1756
 
1766
1757
  [[package]]
1767
1758
  name = "urllib3"
1768
- version = "2.4.0"
1759
+ version = "2.5.0"
1769
1760
  source = { registry = "https://pypi.org/simple" }
1770
- sdist = { url = "https://files.pythonhosted.org/packages/8a/78/16493d9c386d8e60e442a35feac5e00f0913c0f4b7c217c11e8ec2ff53e0/urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466", size = 390672, upload-time = "2025-04-10T15:23:39.232Z" }
1761
+ sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185, upload-time = "2025-06-18T14:07:41.644Z" }
1771
1762
  wheels = [
1772
- { url = "https://files.pythonhosted.org/packages/6b/11/cc635220681e93a0183390e26485430ca2c7b5f9d33b15c74c2861cb8091/urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813", size = 128680, upload-time = "2025-04-10T15:23:37.377Z" },
1763
+ { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" },
1773
1764
  ]
1774
1765
 
1775
1766
  [[package]]
@@ -1,117 +0,0 @@
1
- # See https://pre-commit.com for more information
2
- # See https://pre-commit.com/hooks.html for more hooks
3
- repos:
4
- - repo: https://github.com/pre-commit/pre-commit-hooks
5
- rev: v5.0.0
6
- hooks:
7
- - id: check-case-conflict
8
- - id: check-merge-conflict
9
- - id: check-toml
10
- - id: check-yaml
11
- - id: debug-statements
12
- - id: detect-private-key
13
- - id: end-of-file-fixer
14
- exclude: "locales/.*$"
15
- - id: mixed-line-ending
16
- - id: trailing-whitespace
17
-
18
- - repo: https://github.com/abravalheri/validate-pyproject
19
- rev: v0.24.1
20
- hooks:
21
- - id: validate-pyproject
22
- name: validate pyproject
23
-
24
- - repo: https://github.com/codespell-project/codespell
25
- rev: v2.4.1
26
- hooks:
27
- - id: codespell
28
- args:
29
- - --skip=uv.lock
30
-
31
- - repo: https://github.com/pre-commit/mirrors-prettier
32
- rev: v4.0.0-alpha.8
33
- hooks:
34
- - id: prettier
35
- exclude: (poetry.lock)
36
-
37
- - repo: https://github.com/pycqa/isort
38
- rev: 6.0.1
39
- hooks:
40
- - id: isort
41
- additional_dependencies:
42
- - isort[pyproject]
43
- args:
44
- - --profile=black
45
- - --line-length=79
46
- - --py=312
47
-
48
- - repo: https://github.com/astral-sh/ruff-pre-commit
49
- rev: v0.11.13
50
- hooks:
51
- - id: ruff-check
52
- args: [--fix]
53
- - id: ruff-format
54
-
55
- # - repo: https://github.com/psf/black-pre-commit-mirror
56
- # rev: 25.1.0
57
- # hooks:
58
- # - id: black
59
- # args:
60
- # - --line-length=79
61
- # - --target-version=py38
62
- # - --target-version=py39
63
- # - --target-version=py310
64
- # - --target-version=py311
65
- # - --target-version=py312
66
-
67
- # - repo: https://github.com/asottile/blacken-docs
68
- # rev: 1.19.1
69
- # hooks:
70
- # - id: blacken-docs
71
- # additional_dependencies:
72
- # - black==22.8.0
73
-
74
- # - repo: https://github.com/PyCQA/autoflake
75
- # rev: v2.3.1
76
- # hooks:
77
- # - id: autoflake
78
- # args:
79
- # - --in-place
80
- # - --remove-unused-variables
81
- # - --remove-all-unused-imports
82
- # language: python
83
- # files: \.py$
84
-
85
- # - repo: https://github.com/PyCQA/flake8
86
- # rev: 7.2.0
87
- # hooks:
88
- # - id: flake8
89
- # exclude: docs/
90
- # additional_dependencies:
91
- # - flake8-docstrings
92
- # - flake8-print
93
- # - flake8-pytest-style
94
- # - flake8-simplify
95
- # args:
96
- # - --show-source
97
- # - --max-line-length=79
98
- # - --docstring-convention=google
99
- # - --per-file-ignores=src/*:D212,D208,T201 tests/*:ANN101,ANN201,D100,D103,D104,E501
100
-
101
- # - repo: local
102
- # hooks:
103
- # - id: pylint
104
- # name: pylint
105
- # entry: pylint
106
- # language: system
107
- # types:
108
- # - python
109
- # exclude: docs/
110
- # args:
111
- # - --disable=C0114,R0801,R0902,R0903,R0912,R0914,R0915
112
-
113
- - repo: https://github.com/pre-commit/mirrors-mypy
114
- rev: v1.16.0
115
- hooks:
116
- - id: mypy
117
- exclude: docs/
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes