txt2ebook 0.1.141__tar.gz → 0.1.142__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 (110) hide show
  1. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/.pre-commit-config.yaml +1 -1
  2. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/CHANGELOG.md +8 -0
  3. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/PKG-INFO +1 -1
  4. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/noxfile.py +1 -2
  5. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/pyproject.toml +1 -1
  6. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/parser.py +7 -4
  7. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/subcommands/parse.py +11 -13
  8. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_input_file_arg.py +3 -3
  9. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/uv.lock +54 -44
  10. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/.coveragerc +0 -0
  11. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/.gitignore +0 -0
  12. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/.python-version +0 -0
  13. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/CONTRIBUTING.md +0 -0
  14. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/LICENSE.md +0 -0
  15. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/README.md +0 -0
  16. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/docs/Makefile +0 -0
  17. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/docs/make.bat +0 -0
  18. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/docs/source/CHANGELOG.md +0 -0
  19. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/docs/source/CONTRIBUTING.md +0 -0
  20. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/docs/source/LICENSE.md +0 -0
  21. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/docs/source/README.md +0 -0
  22. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/docs/source/_static/logo.png +0 -0
  23. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/docs/source/conf.py +0 -0
  24. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/docs/source/index.rst +0 -0
  25. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/docs/source/txt2ebook.formats.rst +0 -0
  26. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/docs/source/txt2ebook.helpers.rst +0 -0
  27. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/docs/source/txt2ebook.models.rst +0 -0
  28. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/docs/source/txt2ebook.parsers.rst +0 -0
  29. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/docs/source/txt2ebook.rst +0 -0
  30. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/__init__.py +0 -0
  31. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/__main__.py +0 -0
  32. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/cli.py +0 -0
  33. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/exceptions.py +0 -0
  34. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/formats/__init__.py +0 -0
  35. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/formats/base.py +0 -0
  36. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/formats/epub.py +0 -0
  37. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/formats/gmi.py +0 -0
  38. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/formats/md.py +0 -0
  39. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/formats/pdf.py +0 -0
  40. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/formats/templates/__init__.py +0 -0
  41. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/formats/templates/epub/__init__.py +0 -0
  42. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/formats/templates/epub/clean.css +0 -0
  43. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/formats/templates/epub/condense.css +0 -0
  44. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/formats/templates/epub/noindent.css +0 -0
  45. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/formats/tex.py +0 -0
  46. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/formats/txt.py +0 -0
  47. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/formats/typ.py +0 -0
  48. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/helpers/__init__.py +0 -0
  49. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/languages/__init__.py +0 -0
  50. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/languages/en.py +0 -0
  51. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/languages/zh_cn.py +0 -0
  52. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/languages/zh_tw.py +0 -0
  53. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/locales/en/LC_MESSAGES/txt2ebook.mo +0 -0
  54. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/locales/en/LC_MESSAGES/txt2ebook.po +0 -0
  55. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/locales/txt2ebook.pot +0 -0
  56. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.mo +0 -0
  57. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.po +0 -0
  58. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.mo +0 -0
  59. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.po +0 -0
  60. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/models/__init__.py +0 -0
  61. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/models/book.py +0 -0
  62. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/models/chapter.py +0 -0
  63. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/models/volume.py +0 -0
  64. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/subcommands/__init__.py +0 -0
  65. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/subcommands/env.py +0 -0
  66. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/subcommands/epub.py +0 -0
  67. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/subcommands/gmi.py +0 -0
  68. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/subcommands/massage.py +0 -0
  69. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/subcommands/md.py +0 -0
  70. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/subcommands/pdf.py +0 -0
  71. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/subcommands/tex.py +0 -0
  72. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/subcommands/typ.py +0 -0
  73. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/tokenizer.py +0 -0
  74. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/src/txt2ebook/zh_utils.py +0 -0
  75. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/__init__.py +0 -0
  76. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/conftest.py +0 -0
  77. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/fixtures/empty_file.txt +0 -0
  78. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/fixtures/missing_chapters.txt +0 -0
  79. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/fixtures/sample.txt +0 -0
  80. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/fixtures/sample_all_headers.txt +0 -0
  81. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/fixtures/sample_long_headers.txt +0 -0
  82. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/fixtures/sample_remove_wrapping.txt +0 -0
  83. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/fixtures/sample_unsorted_headers.txt +0 -0
  84. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/fixtures/sample_with_issues.txt +0 -0
  85. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/fixtures/sample_with_metadata.txt +0 -0
  86. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_epub_writer.py +0 -0
  87. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_filename_format_flag.py +0 -0
  88. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_format_option.py +0 -0
  89. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_header_number_flag.py +0 -0
  90. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_language_option.py +0 -0
  91. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_output_file_arg.py +0 -0
  92. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_overwrite_flag.py +0 -0
  93. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_parser.py +0 -0
  94. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_purge_flag.py +0 -0
  95. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_quiet_flag.py +0 -0
  96. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_raise_warnings.py +0 -0
  97. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_sort_volume_and_chapter_flag.py +0 -0
  98. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_split_volume_and_chapter_flag.py +0 -0
  99. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_subcommand_env.py +0 -0
  100. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_subcommand_epub.py +0 -0
  101. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_subcommand_massage.py +0 -0
  102. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_test_parsing_flag.py +0 -0
  103. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_tokenizer.py +0 -0
  104. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_translator_option.py +0 -0
  105. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_txt2ebook.py +0 -0
  106. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_verbose_flag.py +0 -0
  107. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_volume_page_flag.py +0 -0
  108. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_zh_utils_zh_halfwidth_to_fullwidth.py +0 -0
  109. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_zh_utils_zh_numeric.py +0 -0
  110. {txt2ebook-0.1.141 → txt2ebook-0.1.142}/tests/test_zh_utils_zh_words_to_numbers.py +0 -0
@@ -104,7 +104,7 @@ repos:
104
104
  - --disable=C0114,R0801,R0902,R0903,R0912,R0914,R0915
105
105
 
106
106
  - repo: https://github.com/pre-commit/mirrors-mypy
107
- rev: v1.15.0
107
+ rev: v1.16.0
108
108
  hooks:
109
109
  - id: mypy
110
110
  exclude: docs/
@@ -7,6 +7,14 @@ and this project adheres to [0-based versioning](https://0ver.org/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## v0.1.142 (2025-06-01)
11
+
12
+ - Bump deps
13
+ - Bump `pre-commit` hook for `mypy`
14
+ - Handle empty content when parsing
15
+ - Update test to use `parse` subcommand
16
+ - Use pre-commit in `venv` in `deps` `nox` job
17
+
10
18
  ## v0.1.141 (2025-05-25)
11
19
 
12
20
  - Bump and sort deps
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: txt2ebook
3
- Version: 0.1.141
3
+ Version: 0.1.142
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
@@ -25,9 +25,8 @@ nox.options.default_venv_backend = "uv"
25
25
  @nox.session(python="3.9")
26
26
  def deps(session: nox.Session) -> None:
27
27
  """Update pre-commit hooks and deps."""
28
- session.install("pre-commit", "uv")
29
- session.run("pre-commit", "autoupdate", *session.posargs)
30
28
  session.run("uv", "sync", "-U", "--active")
29
+ session.run("pre-commit", "autoupdate", *session.posargs)
31
30
 
32
31
 
33
32
  @nox.session()
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "txt2ebook"
3
- version = "0.1.141"
3
+ version = "0.1.142"
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"
@@ -19,6 +19,8 @@ import argparse
19
19
  import logging
20
20
  from dataclasses import dataclass
21
21
  from importlib import import_module
22
+ from importlib import import_module
23
+ from types import ModuleType
22
24
  from typing import List, Tuple, Union
23
25
 
24
26
  import regex as re
@@ -36,14 +38,15 @@ class Parser:
36
38
 
37
39
  raw_content: str
38
40
  config: argparse.Namespace
41
+ langconf: ModuleType
39
42
 
40
- def __init__(self, raw_content: str, config: argparse.Namespace) -> None:
43
+ def __init__(
44
+ self, raw_content: str, config: argparse.Namespace, langconf: ModuleType
45
+ ) -> None:
41
46
  """Set the constructor for the Parser."""
42
47
  self.raw_content = raw_content
43
48
  self.config = config
44
-
45
- config_lang = config.language.replace("-", "_")
46
- self.langconf = import_module(f"txt2ebook.languages.{config_lang}")
49
+ self.langconf = langconf
47
50
 
48
51
  def parse(self) -> Book:
49
52
  """Parse the content into volumes (optional) and chapters.
@@ -19,10 +19,14 @@ import argparse
19
19
  import logging
20
20
  import sys
21
21
 
22
+ import logging
23
+ import sys
24
+ from importlib import import_module
25
+
22
26
  import jieba.analyse
23
27
  from bs4 import UnicodeDammit
24
- from langdetect import detect
25
28
 
29
+ from txt2ebook import detect_and_expect_language
26
30
  from txt2ebook.exceptions import EmptyFileError
27
31
  from txt2ebook.models import Book
28
32
  from txt2ebook.parser import Parser
@@ -73,26 +77,20 @@ def run(args: argparse.Namespace) -> Book:
73
77
  logger.info("Detect encoding : %s", unicode.original_encoding)
74
78
 
75
79
  content = unicode.unicode_markup
80
+
76
81
  if not content:
77
82
  raise EmptyFileError(f"Empty file content in {args.input_file.name}")
78
83
 
79
- args_language = args.language
80
- detect_language = detect(content)
81
- args.language = args_language or detect_language
82
- logger.info("args language: %s", args_language)
83
- logger.info("Detect language: %s", detect_language)
84
+ logger.info("Detect encoding : %s", unicode.original_encoding)
84
85
 
85
- if args_language and args_language != detect_language:
86
- logger.warning(
87
- "args (%s) and detect (%s) language mismatch",
88
- args_language,
89
- detect_language,
90
- )
86
+ args.language = detect_and_expect_language(content, args.language)
87
+ config_lang = args.language.replace("-", "_")
88
+ langconf = import_module(f"txt2ebook.languages.{config_lang}")
91
89
 
92
90
  tags = jieba.analyse.extract_tags(content, topK=100)
93
91
  logger.info("tags: %s", " ".join(tags))
94
92
 
95
- parser = Parser(content, args)
93
+ parser = Parser(content, args, langconf)
96
94
  book = parser.parse()
97
95
 
98
96
  if args.debug:
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
  def test_nonexistent_filename(cli_runner):
5
- output = cli_runner("nonexistent.txt")
5
+ output = cli_runner("parse", "nonexistent.txt")
6
6
  assert (
7
7
  "[Errno 2] No such file or directory: 'nonexistent.txt'"
8
8
  in output.stderr
@@ -11,5 +11,5 @@ def test_nonexistent_filename(cli_runner):
11
11
 
12
12
  def test_empty_file_content(cli_runner, infile):
13
13
  txt = infile("empty_file.txt")
14
- output = cli_runner(str(txt))
15
- assert f"Empty file content in {str(txt)}" in output.stdout
14
+ output = cli_runner("parse", str(txt))
15
+ assert f"error: Empty file content in {str(txt)}" in output.stdout
@@ -719,46 +719,47 @@ wheels = [
719
719
 
720
720
  [[package]]
721
721
  name = "mypy"
722
- version = "1.15.0"
722
+ version = "1.16.0"
723
723
  source = { registry = "https://pypi.org/simple" }
724
724
  dependencies = [
725
725
  { name = "mypy-extensions" },
726
+ { name = "pathspec" },
726
727
  { name = "tomli", marker = "python_full_version < '3.11'" },
727
728
  { name = "typing-extensions" },
728
729
  ]
729
- sdist = { url = "https://files.pythonhosted.org/packages/ce/43/d5e49a86afa64bd3839ea0d5b9c7103487007d728e1293f52525d6d5486a/mypy-1.15.0.tar.gz", hash = "sha256:404534629d51d3efea5c800ee7c42b72a6554d6c400e6a79eafe15d11341fd43", size = 3239717, upload-time = "2025-02-05T03:50:34.655Z" }
730
- wheels = [
731
- { url = "https://files.pythonhosted.org/packages/68/f8/65a7ce8d0e09b6329ad0c8d40330d100ea343bd4dd04c4f8ae26462d0a17/mypy-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:979e4e1a006511dacf628e36fadfecbcc0160a8af6ca7dad2f5025529e082c13", size = 10738433, upload-time = "2025-02-05T03:49:29.145Z" },
732
- { url = "https://files.pythonhosted.org/packages/b4/95/9c0ecb8eacfe048583706249439ff52105b3f552ea9c4024166c03224270/mypy-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c4bb0e1bd29f7d34efcccd71cf733580191e9a264a2202b0239da95984c5b559", size = 9861472, upload-time = "2025-02-05T03:49:16.986Z" },
733
- { url = "https://files.pythonhosted.org/packages/84/09/9ec95e982e282e20c0d5407bc65031dfd0f0f8ecc66b69538296e06fcbee/mypy-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be68172e9fd9ad8fb876c6389f16d1c1b5f100ffa779f77b1fb2176fcc9ab95b", size = 11611424, upload-time = "2025-02-05T03:49:46.908Z" },
734
- { url = "https://files.pythonhosted.org/packages/78/13/f7d14e55865036a1e6a0a69580c240f43bc1f37407fe9235c0d4ef25ffb0/mypy-1.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7be1e46525adfa0d97681432ee9fcd61a3964c2446795714699a998d193f1a3", size = 12365450, upload-time = "2025-02-05T03:50:05.89Z" },
735
- { url = "https://files.pythonhosted.org/packages/48/e1/301a73852d40c241e915ac6d7bcd7fedd47d519246db2d7b86b9d7e7a0cb/mypy-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2e2c2e6d3593f6451b18588848e66260ff62ccca522dd231cd4dd59b0160668b", size = 12551765, upload-time = "2025-02-05T03:49:33.56Z" },
736
- { url = "https://files.pythonhosted.org/packages/77/ba/c37bc323ae5fe7f3f15a28e06ab012cd0b7552886118943e90b15af31195/mypy-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:6983aae8b2f653e098edb77f893f7b6aca69f6cffb19b2cc7443f23cce5f4828", size = 9274701, upload-time = "2025-02-05T03:49:38.981Z" },
737
- { url = "https://files.pythonhosted.org/packages/03/bc/f6339726c627bd7ca1ce0fa56c9ae2d0144604a319e0e339bdadafbbb599/mypy-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2922d42e16d6de288022e5ca321cd0618b238cfc5570e0263e5ba0a77dbef56f", size = 10662338, upload-time = "2025-02-05T03:50:17.287Z" },
738
- { url = "https://files.pythonhosted.org/packages/e2/90/8dcf506ca1a09b0d17555cc00cd69aee402c203911410136cd716559efe7/mypy-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2ee2d57e01a7c35de00f4634ba1bbf015185b219e4dc5909e281016df43f5ee5", size = 9787540, upload-time = "2025-02-05T03:49:51.21Z" },
739
- { url = "https://files.pythonhosted.org/packages/05/05/a10f9479681e5da09ef2f9426f650d7b550d4bafbef683b69aad1ba87457/mypy-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:973500e0774b85d9689715feeffcc980193086551110fd678ebe1f4342fb7c5e", size = 11538051, upload-time = "2025-02-05T03:50:20.885Z" },
740
- { url = "https://files.pythonhosted.org/packages/e9/9a/1f7d18b30edd57441a6411fcbc0c6869448d1a4bacbaee60656ac0fc29c8/mypy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a95fb17c13e29d2d5195869262f8125dfdb5c134dc8d9a9d0aecf7525b10c2c", size = 12286751, upload-time = "2025-02-05T03:49:42.408Z" },
741
- { url = "https://files.pythonhosted.org/packages/72/af/19ff499b6f1dafcaf56f9881f7a965ac2f474f69f6f618b5175b044299f5/mypy-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1905f494bfd7d85a23a88c5d97840888a7bd516545fc5aaedff0267e0bb54e2f", size = 12421783, upload-time = "2025-02-05T03:49:07.707Z" },
742
- { url = "https://files.pythonhosted.org/packages/96/39/11b57431a1f686c1aed54bf794870efe0f6aeca11aca281a0bd87a5ad42c/mypy-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:c9817fa23833ff189db061e6d2eff49b2f3b6ed9856b4a0a73046e41932d744f", size = 9265618, upload-time = "2025-02-05T03:49:54.581Z" },
743
- { url = "https://files.pythonhosted.org/packages/98/3a/03c74331c5eb8bd025734e04c9840532226775c47a2c39b56a0c8d4f128d/mypy-1.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aea39e0583d05124836ea645f412e88a5c7d0fd77a6d694b60d9b6b2d9f184fd", size = 10793981, upload-time = "2025-02-05T03:50:28.25Z" },
744
- { url = "https://files.pythonhosted.org/packages/f0/1a/41759b18f2cfd568848a37c89030aeb03534411eef981df621d8fad08a1d/mypy-1.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f2147ab812b75e5b5499b01ade1f4a81489a147c01585cda36019102538615f", size = 9749175, upload-time = "2025-02-05T03:50:13.411Z" },
745
- { url = "https://files.pythonhosted.org/packages/12/7e/873481abf1ef112c582db832740f4c11b2bfa510e829d6da29b0ab8c3f9c/mypy-1.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce436f4c6d218a070048ed6a44c0bbb10cd2cc5e272b29e7845f6a2f57ee4464", size = 11455675, upload-time = "2025-02-05T03:50:31.421Z" },
746
- { url = "https://files.pythonhosted.org/packages/b3/d0/92ae4cde706923a2d3f2d6c39629134063ff64b9dedca9c1388363da072d/mypy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8023ff13985661b50a5928fc7a5ca15f3d1affb41e5f0a9952cb68ef090b31ee", size = 12410020, upload-time = "2025-02-05T03:48:48.705Z" },
747
- { url = "https://files.pythonhosted.org/packages/46/8b/df49974b337cce35f828ba6fda228152d6db45fed4c86ba56ffe442434fd/mypy-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1124a18bc11a6a62887e3e137f37f53fbae476dc36c185d549d4f837a2a6a14e", size = 12498582, upload-time = "2025-02-05T03:49:03.628Z" },
748
- { url = "https://files.pythonhosted.org/packages/13/50/da5203fcf6c53044a0b699939f31075c45ae8a4cadf538a9069b165c1050/mypy-1.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:171a9ca9a40cd1843abeca0e405bc1940cd9b305eaeea2dda769ba096932bb22", size = 9366614, upload-time = "2025-02-05T03:50:00.313Z" },
749
- { url = "https://files.pythonhosted.org/packages/6a/9b/fd2e05d6ffff24d912f150b87db9e364fa8282045c875654ce7e32fffa66/mypy-1.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:93faf3fdb04768d44bf28693293f3904bbb555d076b781ad2530214ee53e3445", size = 10788592, upload-time = "2025-02-05T03:48:55.789Z" },
750
- { url = "https://files.pythonhosted.org/packages/74/37/b246d711c28a03ead1fd906bbc7106659aed7c089d55fe40dd58db812628/mypy-1.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:811aeccadfb730024c5d3e326b2fbe9249bb7413553f15499a4050f7c30e801d", size = 9753611, upload-time = "2025-02-05T03:48:44.581Z" },
751
- { url = "https://files.pythonhosted.org/packages/a6/ac/395808a92e10cfdac8003c3de9a2ab6dc7cde6c0d2a4df3df1b815ffd067/mypy-1.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:98b7b9b9aedb65fe628c62a6dc57f6d5088ef2dfca37903a7d9ee374d03acca5", size = 11438443, upload-time = "2025-02-05T03:49:25.514Z" },
752
- { url = "https://files.pythonhosted.org/packages/d2/8b/801aa06445d2de3895f59e476f38f3f8d610ef5d6908245f07d002676cbf/mypy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c43a7682e24b4f576d93072216bf56eeff70d9140241f9edec0c104d0c515036", size = 12402541, upload-time = "2025-02-05T03:49:57.623Z" },
753
- { url = "https://files.pythonhosted.org/packages/c7/67/5a4268782eb77344cc613a4cf23540928e41f018a9a1ec4c6882baf20ab8/mypy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:baefc32840a9f00babd83251560e0ae1573e2f9d1b067719479bfb0e987c6357", size = 12494348, upload-time = "2025-02-05T03:48:52.361Z" },
754
- { url = "https://files.pythonhosted.org/packages/83/3e/57bb447f7bbbfaabf1712d96f9df142624a386d98fb026a761532526057e/mypy-1.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:b9378e2c00146c44793c98b8d5a61039a048e31f429fb0eb546d93f4b000bedf", size = 9373648, upload-time = "2025-02-05T03:49:11.395Z" },
755
- { url = "https://files.pythonhosted.org/packages/5a/fa/79cf41a55b682794abe71372151dbbf856e3008f6767057229e6649d294a/mypy-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e601a7fa172c2131bff456bb3ee08a88360760d0d2f8cbd7a75a65497e2df078", size = 10737129, upload-time = "2025-02-05T03:50:24.509Z" },
756
- { url = "https://files.pythonhosted.org/packages/d3/33/dd8feb2597d648de29e3da0a8bf4e1afbda472964d2a4a0052203a6f3594/mypy-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:712e962a6357634fef20412699a3655c610110e01cdaa6180acec7fc9f8513ba", size = 9856335, upload-time = "2025-02-05T03:49:36.398Z" },
757
- { url = "https://files.pythonhosted.org/packages/e4/b5/74508959c1b06b96674b364ffeb7ae5802646b32929b7701fc6b18447592/mypy-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95579473af29ab73a10bada2f9722856792a36ec5af5399b653aa28360290a5", size = 11611935, upload-time = "2025-02-05T03:49:14.154Z" },
758
- { url = "https://files.pythonhosted.org/packages/6c/53/da61b9d9973efcd6507183fdad96606996191657fe79701b2c818714d573/mypy-1.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f8722560a14cde92fdb1e31597760dc35f9f5524cce17836c0d22841830fd5b", size = 12365827, upload-time = "2025-02-05T03:48:59.458Z" },
759
- { url = "https://files.pythonhosted.org/packages/c1/72/965bd9ee89540c79a25778cc080c7e6ef40aa1eeac4d52cec7eae6eb5228/mypy-1.15.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1fbb8da62dc352133d7d7ca90ed2fb0e9d42bb1a32724c287d3c76c58cbaa9c2", size = 12541924, upload-time = "2025-02-05T03:50:03.12Z" },
760
- { url = "https://files.pythonhosted.org/packages/46/d0/f41645c2eb263e6c77ada7d76f894c580c9ddb20d77f0c24d34273a4dab2/mypy-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:d10d994b41fb3497719bbf866f227b3489048ea4bbbb5015357db306249f7980", size = 9271176, upload-time = "2025-02-05T03:50:10.86Z" },
761
- { url = "https://files.pythonhosted.org/packages/09/4e/a7d65c7322c510de2c409ff3828b03354a7c43f5a8ed458a7a131b41c7b9/mypy-1.15.0-py3-none-any.whl", hash = "sha256:5469affef548bd1895d86d3bf10ce2b44e33d86923c29e4d675b3e323437ea3e", size = 2221777, upload-time = "2025-02-05T03:50:08.348Z" },
730
+ 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" }
731
+ wheels = [
732
+ { 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" },
733
+ { 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" },
734
+ { 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" },
735
+ { 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" },
736
+ { 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" },
737
+ { 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" },
738
+ { 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" },
739
+ { 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" },
740
+ { 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" },
741
+ { 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" },
742
+ { 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" },
743
+ { 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" },
744
+ { 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" },
745
+ { 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" },
746
+ { 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" },
747
+ { 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" },
748
+ { 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" },
749
+ { 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" },
750
+ { 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" },
751
+ { 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" },
752
+ { 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" },
753
+ { 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" },
754
+ { 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" },
755
+ { 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" },
756
+ { 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" },
757
+ { 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" },
758
+ { 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" },
759
+ { 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" },
760
+ { 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" },
761
+ { 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" },
762
+ { 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" },
762
763
  ]
763
764
 
764
765
  [[package]]
@@ -845,6 +846,15 @@ wheels = [
845
846
  { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" },
846
847
  ]
847
848
 
849
+ [[package]]
850
+ name = "pathspec"
851
+ version = "0.12.1"
852
+ source = { registry = "https://pypi.org/simple" }
853
+ sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043, upload-time = "2023-12-10T22:30:45Z" }
854
+ wheels = [
855
+ { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" },
856
+ ]
857
+
848
858
  [[package]]
849
859
  name = "pbr"
850
860
  version = "6.1.1"
@@ -1111,15 +1121,15 @@ wheels = [
1111
1121
 
1112
1122
  [[package]]
1113
1123
  name = "pytest-xdist"
1114
- version = "3.6.1"
1124
+ version = "3.7.0"
1115
1125
  source = { registry = "https://pypi.org/simple" }
1116
1126
  dependencies = [
1117
1127
  { name = "execnet" },
1118
1128
  { name = "pytest" },
1119
1129
  ]
1120
- sdist = { url = "https://files.pythonhosted.org/packages/41/c4/3c310a19bc1f1e9ef50075582652673ef2bfc8cd62afef9585683821902f/pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d", size = 84060, upload-time = "2024-04-28T19:29:54.414Z" }
1130
+ sdist = { url = "https://files.pythonhosted.org/packages/49/dc/865845cfe987b21658e871d16e0a24e871e00884c545f246dd8f6f69edda/pytest_xdist-3.7.0.tar.gz", hash = "sha256:f9248c99a7c15b7d2f90715df93610353a485827bc06eefb6566d23f6400f126", size = 87550, upload-time = "2025-05-26T21:18:20.251Z" }
1121
1131
  wheels = [
1122
- { url = "https://files.pythonhosted.org/packages/6d/82/1d96bf03ee4c0fdc3c0cbe61470070e659ca78dc0086fb88b66c185e2449/pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7", size = 46108, upload-time = "2024-04-28T19:29:52.813Z" },
1132
+ { url = "https://files.pythonhosted.org/packages/0d/b2/0e802fde6f1c5b2f7ae7e9ad42b83fd4ecebac18a8a8c2f2f14e39dce6e1/pytest_xdist-3.7.0-py3-none-any.whl", hash = "sha256:7d3fbd255998265052435eb9daa4e99b62e6fb9cfb6efd1f858d4d8c0c7f0ca0", size = 46142, upload-time = "2025-05-26T21:18:18.759Z" },
1123
1133
  ]
1124
1134
 
1125
1135
  [[package]]
@@ -1263,11 +1273,11 @@ sdist = { url = "https://files.pythonhosted.org/packages/c8/48/609b5463da485943d
1263
1273
 
1264
1274
  [[package]]
1265
1275
  name = "setuptools"
1266
- version = "80.8.0"
1276
+ version = "80.9.0"
1267
1277
  source = { registry = "https://pypi.org/simple" }
1268
- sdist = { url = "https://files.pythonhosted.org/packages/8d/d2/ec1acaaff45caed5c2dedb33b67055ba9d4e96b091094df90762e60135fe/setuptools-80.8.0.tar.gz", hash = "sha256:49f7af965996f26d43c8ae34539c8d99c5042fbff34302ea151eaa9c207cd257", size = 1319720, upload-time = "2025-05-20T14:02:53.503Z" }
1278
+ sdist = { url = "https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size = 1319958, upload-time = "2025-05-27T00:56:51.443Z" }
1269
1279
  wheels = [
1270
- { url = "https://files.pythonhosted.org/packages/58/29/93c53c098d301132196c3238c312825324740851d77a8500a2462c0fd888/setuptools-80.8.0-py3-none-any.whl", hash = "sha256:95a60484590d24103af13b686121328cc2736bee85de8936383111e421b9edc0", size = 1201470, upload-time = "2025-05-20T14:02:51.348Z" },
1280
+ { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486, upload-time = "2025-05-27T00:56:49.664Z" },
1271
1281
  ]
1272
1282
 
1273
1283
  [[package]]
@@ -1475,7 +1485,7 @@ wheels = [
1475
1485
 
1476
1486
  [[package]]
1477
1487
  name = "txt2ebook"
1478
- version = "0.1.140"
1488
+ version = "0.1.141"
1479
1489
  source = { editable = "." }
1480
1490
  dependencies = [
1481
1491
  { name = "bs4" },
@@ -1626,9 +1636,9 @@ wheels = [
1626
1636
 
1627
1637
  [[package]]
1628
1638
  name = "zipp"
1629
- version = "3.21.0"
1639
+ version = "3.22.0"
1630
1640
  source = { registry = "https://pypi.org/simple" }
1631
- sdist = { url = "https://files.pythonhosted.org/packages/3f/50/bad581df71744867e9468ebd0bcd6505de3b275e06f202c2cb016e3ff56f/zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4", size = 24545, upload-time = "2024-11-10T15:05:20.202Z" }
1641
+ sdist = { url = "https://files.pythonhosted.org/packages/12/b6/7b3d16792fdf94f146bed92be90b4eb4563569eca91513c8609aebf0c167/zipp-3.22.0.tar.gz", hash = "sha256:dd2f28c3ce4bc67507bfd3781d21b7bb2be31103b51a4553ad7d90b84e57ace5", size = 25257, upload-time = "2025-05-26T14:46:32.217Z" }
1632
1642
  wheels = [
1633
- { url = "https://files.pythonhosted.org/packages/b7/1a/7e4798e9339adc931158c9d69ecc34f5e6791489d469f5e50ec15e35f458/zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931", size = 9630, upload-time = "2024-11-10T15:05:19.275Z" },
1643
+ { url = "https://files.pythonhosted.org/packages/ad/da/f64669af4cae46f17b90798a827519ce3737d31dbafad65d391e49643dc4/zipp-3.22.0-py3-none-any.whl", hash = "sha256:fe208f65f2aca48b81f9e6fd8cf7b8b32c26375266b009b413d45306b6148343", size = 9796, upload-time = "2025-05-26T14:46:30.775Z" },
1634
1644
  ]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes