rekordbox-edit 0.5.0.dev9__tar.gz → 0.5.1.dev3__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 (64) hide show
  1. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/.github/actions/install/action.yml +1 -1
  2. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/.github/workflows/cd.yml +1 -1
  3. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/CHANGELOG.md +11 -1
  4. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/PKG-INFO +1 -1
  5. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/pyproject.toml +1 -1
  6. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/cli/_utils.py +13 -6
  7. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/cli/test_utils.py +21 -3
  8. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/uv.lock +20 -20
  9. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/.agent-style/RULES.md +0 -0
  10. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/.agent-style/claude-code.md +0 -0
  11. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/.github/actions/build-release-notes/action.yml +0 -0
  12. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/.github/actions/commitizen-bump/action.yml +0 -0
  13. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/.github/actions/commitizen-bump/commitizen-bump.sh +0 -0
  14. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/.github/actions/lint/action.yml +0 -0
  15. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/.github/actions/test/action.yml +0 -0
  16. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/.github/workflows/ci.yml +0 -0
  17. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/.github/workflows/publish.yml +0 -0
  18. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/.github/workflows/release.yml +0 -0
  19. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/.gitignore +0 -0
  20. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/.pre-commit-config.yaml +0 -0
  21. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/.python-version +0 -0
  22. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/AGENTS.md +0 -0
  23. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/CLAUDE.md +0 -0
  24. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/CONTRIBUTING.md +0 -0
  25. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/LICENSE +0 -0
  26. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/Makefile +0 -0
  27. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/README.md +0 -0
  28. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/codecov.yml +0 -0
  29. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/__init__.py +0 -0
  30. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/_click.py +0 -0
  31. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/api/__init__.py +0 -0
  32. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/api/_utils.py +0 -0
  33. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/api/convert.py +0 -0
  34. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/api/edit.py +0 -0
  35. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/api/search.py +0 -0
  36. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/cli/__init__.py +0 -0
  37. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/cli/convert.py +0 -0
  38. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/cli/edit.py +0 -0
  39. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/cli/main.py +0 -0
  40. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/cli/search.py +0 -0
  41. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/display.py +0 -0
  42. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/logger.py +0 -0
  43. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/models.py +0 -0
  44. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/query.py +0 -0
  45. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/rekordbox_edit/utils.py +0 -0
  46. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/renovate.json5 +0 -0
  47. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/ruff.toml +0 -0
  48. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/__init__.py +0 -0
  49. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/api/__init__.py +0 -0
  50. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/api/test_convert.py +0 -0
  51. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/api/test_edit.py +0 -0
  52. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/api/test_search.py +0 -0
  53. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/api/test_utils.py +0 -0
  54. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/cli/__init__.py +0 -0
  55. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/cli/test_convert.py +0 -0
  56. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/cli/test_edit.py +0 -0
  57. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/cli/test_main.py +0 -0
  58. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/cli/test_search.py +0 -0
  59. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/conftest.py +0 -0
  60. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/test_display.py +0 -0
  61. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/test_logger.py +0 -0
  62. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/test_models.py +0 -0
  63. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/test_query.py +0 -0
  64. {rekordbox_edit-0.5.0.dev9 → rekordbox_edit-0.5.1.dev3}/tests/test_utils.py +0 -0
@@ -5,7 +5,7 @@ runs:
5
5
  using: "composite"
6
6
  steps:
7
7
  - name: Install UV
8
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
8
+ uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
9
9
  with:
10
10
  enable-cache: true
11
11
 
@@ -106,7 +106,7 @@ jobs:
106
106
  - name: Create GitHub Pre-Release
107
107
  uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3
108
108
  with:
109
- token: ${{ secrets.GITHUB_TOKEN }}
109
+ token: ${{ secrets.WORKFLOW_TOKEN }}
110
110
  tag_name: canary-v${{ steps.version.outputs.version }}
111
111
  name: v${{ steps.version.outputs.version }}
112
112
  prerelease: true
@@ -1,6 +1,16 @@
1
- ## v0.5.0.dev9 (2026-06-06)
1
+ ## v0.5.1.dev3 (2026-06-07)
2
2
 
3
3
 
4
+ - fix: handle stdin BOM character on windows
5
+ - chore(deps): update linters to v0.0.43 (#73)
6
+ - Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
7
+ - chore(deps): update github actions to v8.2.0 (#74)
8
+ - Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
9
+
10
+ ## v0.5.0 (2026-06-06)
11
+
12
+
13
+ - ci: use workflow token
4
14
  - chore(deps): update github actions (#71)
5
15
  - Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
6
16
  - ci: fix canary release increment
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rekordbox-edit
3
- Version: 0.5.0.dev9
3
+ Version: 0.5.1.dev3
4
4
  Summary: Tools for managing and modifying a RekordBox library en-masse
5
5
  Project-URL: Homepage, https://github.com/jviall/rekordbox-edit
6
6
  Project-URL: Repository, https://github.com/jviall/rekordbox-edit
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "rekordbox-edit"
7
- version = "0.5.0.dev9"
7
+ version = "0.5.1.dev3"
8
8
  description = "Tools for managing and modifying a RekordBox library en-masse"
9
9
  authors = [{ name = "James Viall", email= "jamesviall@pm.me"}]
10
10
  license = "MIT"
@@ -15,12 +15,16 @@ logger = logging.getLogger(__name__)
15
15
 
16
16
 
17
17
  def _handle_stdin(args) -> bool:
18
- """Append track IDs from piped stdin to args.track_ids. Returns True if stdin was piped."""
18
+ """Append track IDs from piped stdin to args.track_ids. Returns True if IDs were piped."""
19
19
  if sys.stdin.isatty():
20
20
  return False
21
- stdin_data = sys.stdin.read().strip()
22
- if stdin_data:
23
- args.track_ids = list(args.track_ids) + stdin_data.split()
21
+ # PowerShell pipes data as UTF-8-with-BOM, but Python decodes stdin with the
22
+ # locale codepage (e.g. cp1252 on Windows), which would leave BOM bytes glued to
23
+ # the first track ID. Read raw bytes and decode as UTF-8, dropping any BOM.
24
+ tokens = sys.stdin.buffer.read().decode("utf-8-sig", errors="replace").split()
25
+ if not tokens:
26
+ return False
27
+ args.track_ids = list(args.track_ids) + tokens
24
28
  return True
25
29
 
26
30
 
@@ -68,7 +72,9 @@ def _interactive_filter_edits(plan: EditPlan) -> EditPlan:
68
72
  return EditPlan(field=plan.field, edits=confirmed)
69
73
 
70
74
 
71
- def _confirm_converts(plan: ConvertPlan, args: ConvertCommandArgs) -> ConvertPlan | None:
75
+ def _confirm_converts(
76
+ plan: ConvertPlan, args: ConvertCommandArgs
77
+ ) -> ConvertPlan | None:
72
78
  """Gate the convert plan through user confirmation. Returns None if cancelled."""
73
79
  if args.yes:
74
80
  return plan
@@ -76,7 +82,8 @@ def _confirm_converts(plan: ConvertPlan, args: ConvertCommandArgs) -> ConvertPla
76
82
  return _interactive_filter_converts(plan)
77
83
  try:
78
84
  if not confirm(
79
- f"Convert {len(plan.files)} files to {plan.format_out.upper()}?", default=True
85
+ f"Convert {len(plan.files)} files to {plan.format_out.upper()}?",
86
+ default=True,
80
87
  ):
81
88
  logger.info("Cancelled.")
82
89
  return None
@@ -44,18 +44,36 @@ class TestHandleStdin:
44
44
  args = Mock(track_ids=["existing"])
45
45
  with patch("sys.stdin") as mock_stdin:
46
46
  mock_stdin.isatty.return_value = False
47
- mock_stdin.read.return_value = "AAA BBB"
47
+ mock_stdin.buffer.read.return_value = b"AAA BBB"
48
48
  result = _handle_stdin(args)
49
49
  assert result is True
50
50
  assert args.track_ids == ["existing", "AAA", "BBB"]
51
51
 
52
- def test_empty_piped_stdin_returns_true_without_modifying(self):
52
+ def test_strips_bom_from_piped_stdin(self):
53
53
  args = Mock(track_ids=[])
54
54
  with patch("sys.stdin") as mock_stdin:
55
55
  mock_stdin.isatty.return_value = False
56
- mock_stdin.read.return_value = " "
56
+ mock_stdin.buffer.read.return_value = bytes([0xEF, 0xBB, 0xBF]) + b"AAA BBB"
57
57
  result = _handle_stdin(args)
58
58
  assert result is True
59
+ assert args.track_ids == ["AAA", "BBB"]
60
+
61
+ def test_empty_piped_stdin_returns_false(self):
62
+ args = Mock(track_ids=[])
63
+ with patch("sys.stdin") as mock_stdin:
64
+ mock_stdin.isatty.return_value = False
65
+ mock_stdin.buffer.read.return_value = b" "
66
+ result = _handle_stdin(args)
67
+ assert result is False
68
+ assert args.track_ids == []
69
+
70
+ def test_bom_only_piped_stdin_returns_false(self):
71
+ args = Mock(track_ids=[])
72
+ with patch("sys.stdin") as mock_stdin:
73
+ mock_stdin.isatty.return_value = False
74
+ mock_stdin.buffer.read.return_value = bytes([0xEF, 0xBB, 0xBF])
75
+ result = _handle_stdin(args)
76
+ assert result is False
59
77
  assert args.track_ids == []
60
78
 
61
79
 
@@ -990,7 +990,7 @@ wheels = [
990
990
 
991
991
  [[package]]
992
992
  name = "rekordbox-edit"
993
- version = "0.5.0.dev9"
993
+ version = "0.5.1.dev3"
994
994
  source = { editable = "." }
995
995
  dependencies = [
996
996
  { name = "click" },
@@ -1299,27 +1299,27 @@ wheels = [
1299
1299
 
1300
1300
  [[package]]
1301
1301
  name = "ty"
1302
- version = "0.0.42"
1302
+ version = "0.0.43"
1303
1303
  source = { registry = "https://pypi.org/simple" }
1304
- sdist = { url = "https://files.pythonhosted.org/packages/d8/91/5b5ec4ed8721c18be8d9611778d7c07723cd755676f03b41bf0ea0caa5d3/ty-0.0.42.tar.gz", hash = "sha256:70f5553ac678fc63558d4d77b08a18a68a228f44be2a2fe1afc3f5988db662e7", size = 5769116, upload-time = "2026-06-01T19:40:32.869Z" }
1304
+ sdist = { url = "https://files.pythonhosted.org/packages/0d/37/4ec04de0659b93be37d956dfceca13b1ecab9c959f28d8a1d5e514603f36/ty-0.0.43.tar.gz", hash = "sha256:ea4cff50548f2a1877e848d3abe9e293cde8ab94757a7eb93fc0d4013f98be8e", size = 5798429, upload-time = "2026-06-04T00:52:10.013Z" }
1305
1305
  wheels = [
1306
- { url = "https://files.pythonhosted.org/packages/d4/7c/2df5136ad7c0db69a3973b0b19da8f52bfacdc453c7dffc832d1bf7d23ff/ty-0.0.42-py3-none-linux_armv6l.whl", hash = "sha256:c08a0066610c13627b7d7ad758adb96ca99685791e641eb26837e20803851c53", size = 11544141, upload-time = "2026-06-01T19:40:41.065Z" },
1307
- { url = "https://files.pythonhosted.org/packages/0a/82/96cf406d39d8976e825361a27e332224445812793060ac9506d8a5d32b39/ty-0.0.42-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:3e944ee4e3d5cdaf70e4ea87f9dd474cc3db612837b50a3ce57afa8da400ecc2", size = 11283538, upload-time = "2026-06-01T19:40:26.758Z" },
1308
- { url = "https://files.pythonhosted.org/packages/dc/fe/813b60b9332df835c16c05859ff5aac1896593d01b638ba0e461ede415ac/ty-0.0.42-py3-none-macosx_11_0_arm64.whl", hash = "sha256:603085306e4aac2ce592b39119a4b49ebf8b780cd394e2cfc7dbf3fd8228f954", size = 10711874, upload-time = "2026-06-01T19:40:28.77Z" },
1309
- { url = "https://files.pythonhosted.org/packages/07/64/1f609265be0302ce0f51aa03a27636d018947a76100ff1405258d8445e6c/ty-0.0.42-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a58f17834d7f078c49326a01111a5aac16c979a774b98cdfd8e2350068316676", size = 11213021, upload-time = "2026-06-01T19:40:45.01Z" },
1310
- { url = "https://files.pythonhosted.org/packages/88/c0/f147b2fde7cd01b5f77682937e85a5cdfe35f48b3f1d0f41021024cbd927/ty-0.0.42-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e6ed1027f313202c5c74e376007d1eb5d214494299beb0ea047078b8ad307d40", size = 11321604, upload-time = "2026-06-01T19:40:55.164Z" },
1311
- { url = "https://files.pythonhosted.org/packages/a9/72/74a5e68a9bd194681f15c4aac7a0dfab378e76e7a107e8ecd93971a22377/ty-0.0.42-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:063838d2360c1d2c065b45ca76a56ecd6df07fff6570813e74183236559e16d9", size = 11802178, upload-time = "2026-06-01T19:40:19.558Z" },
1312
- { url = "https://files.pythonhosted.org/packages/3c/9f/06a31dc9cc91faa2cb8a4bf2f0ba5f7a9a96a4828fb8434338682954ca86/ty-0.0.42-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3f9ed508dfae4cbc943d7766324dd9c57ac8302c8543505fc29cae8ed425fe9", size = 12358436, upload-time = "2026-06-01T19:40:48.968Z" },
1313
- { url = "https://files.pythonhosted.org/packages/06/33/a5bb1afcb671e0b9197f007264682b22f1063bf0e83c151eeaf9958f9047/ty-0.0.42-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fe1eb7d98472ac56ac19fec51c6ed8fe56d86ea0d232a11a127e8c62c882a66", size = 11997849, upload-time = "2026-06-01T19:40:42.951Z" },
1314
- { url = "https://files.pythonhosted.org/packages/ee/8d/560e4ec4c2f69e68fa094bb93cd19b5eb92c9732d2e0f5e7cc3accde84c4/ty-0.0.42-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de75f9e78bfa81209f2f297528758977cfd4518ba35ef45a0acb516c892a27a5", size = 11869087, upload-time = "2026-06-01T19:40:24.38Z" },
1315
- { url = "https://files.pythonhosted.org/packages/b2/dd/3794db15199c03eda60961690046a56c4fbf5d8ef073c82fe2402c851b8c/ty-0.0.42-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:c63281f2f1d4df339117fcd4a6dfe17cb999f84eafe707b30e9ebbe26f0bb54a", size = 12059000, upload-time = "2026-06-01T19:40:34.982Z" },
1316
- { url = "https://files.pythonhosted.org/packages/98/9a/02b61cc65ecbd90f18bd02178845c5b756c78fb92643571e77df52c6eed8/ty-0.0.42-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:19e3856477f25255f772851fa7f16f5356c4e1927324d074d49c7bc9a9b211e1", size = 11195698, upload-time = "2026-06-01T19:40:37.109Z" },
1317
- { url = "https://files.pythonhosted.org/packages/7b/d6/3927335c956b06a806269dcd2e5b46bc4284b0a95ecc6b0246094a1de28c/ty-0.0.42-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:2f0f4acac9028264cee5ea0b88229df0b9b2586fc917dbadb6ee35a0e99e8b06", size = 11353487, upload-time = "2026-06-01T19:40:47.035Z" },
1318
- { url = "https://files.pythonhosted.org/packages/d6/87/79e7ae4f5f9fb3bea5f3cfac2b4f8c60e905f13962e3c0d97f8b51a5bff6/ty-0.0.42-py3-none-musllinux_1_2_i686.whl", hash = "sha256:ae244c84e30fdf2bb1a3cbf2b973da8aa535e57c701f12db44b2939604586c04", size = 11463474, upload-time = "2026-06-01T19:40:30.812Z" },
1319
- { url = "https://files.pythonhosted.org/packages/49/f9/73305ead1b3ccc3d79c04258877db2cd7908c6a6c2060d4e598deca384d2/ty-0.0.42-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:2430434f4a52bec0da552ff6a061dcc1c5d11973259248679a1146d776c12f37", size = 11961710, upload-time = "2026-06-01T19:40:39.056Z" },
1320
- { url = "https://files.pythonhosted.org/packages/e1/04/52b7325dad8d1a86653f90240208f3e3657bed5e3c8144eed367a0f736b0/ty-0.0.42-py3-none-win32.whl", hash = "sha256:984a55c2fe63b40dac03f5a144b99033c7ed720eb7611787e3f0bd49af8dcf12", size = 10783897, upload-time = "2026-06-01T19:40:22.189Z" },
1321
- { url = "https://files.pythonhosted.org/packages/94/d2/3d2d61255c76c0843766f00b39290115c23cc1cd4fcb0471d84a48f482f1/ty-0.0.42-py3-none-win_amd64.whl", hash = "sha256:f7afd81b10b377d9d4ce6aad355a4f47fd37d47f443118c01ca6e79d46fe6608", size = 11878640, upload-time = "2026-06-01T19:40:50.903Z" },
1322
- { url = "https://files.pythonhosted.org/packages/b4/91/1eb0c1e3d558707ead7424f8bfd89b58f42e576714cbed7ad46dcceef34a/ty-0.0.42-py3-none-win_arm64.whl", hash = "sha256:4068c24b0b264fc9f1901e06b97988a041fcaa36c90f18d7747f05124701c7b3", size = 11202335, upload-time = "2026-06-01T19:40:53.155Z" },
1306
+ { url = "https://files.pythonhosted.org/packages/db/74/1916026a78f20019a2f03adbd6fb4430ddb7ce1e52c2e17a90856a6d192e/ty-0.0.43-py3-none-linux_armv6l.whl", hash = "sha256:3bf70f5446480562bf6c9f639df4b5cb60716b8f8d1a6b8e5811d5c7eccd8bf2", size = 11598153, upload-time = "2026-06-04T00:52:20.646Z" },
1307
+ { url = "https://files.pythonhosted.org/packages/b9/af/58bb0089d2635216c8fa6612dd486a3f986d0ab1c46a41527ab95e57f0e3/ty-0.0.43-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:7184741f8b15425a1bc64b950ad005cb353573288ac0e8a04f5481ceb3832596", size = 11357811, upload-time = "2026-06-04T00:52:24.683Z" },
1308
+ { url = "https://files.pythonhosted.org/packages/d6/9c/32c6b14f3feddf87b59c7a50709e2b3da408258f2f583f05575f77bc8f7b/ty-0.0.43-py3-none-macosx_11_0_arm64.whl", hash = "sha256:8c306379ca9a35f6ae5270fe9bda7af4b46d91822725a2586d78c8b9b5493b62", size = 10772024, upload-time = "2026-06-04T00:52:14.312Z" },
1309
+ { url = "https://files.pythonhosted.org/packages/09/fa/98aa4a74bd00cd5efc424923cd1daffbf1e40a0338041cafb203379d746f/ty-0.0.43-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d624b884c9c1fd244ad2a5f026364e7162a22b3f537025941ada2e363e676414", size = 11291034, upload-time = "2026-06-04T00:52:37.249Z" },
1310
+ { url = "https://files.pythonhosted.org/packages/b5/db/4de086c38ce96dcada2bd451f43171d2c237f96d8ed19a1ea8fe51bb8ef4/ty-0.0.43-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:281fc4c00fbc196045141faa085055bddc58846b04a2800204701415a1b9c6aa", size = 11364724, upload-time = "2026-06-04T00:52:33.138Z" },
1311
+ { url = "https://files.pythonhosted.org/packages/b0/d3/e3cd8e3233a6fd8362a49aa025b79e9f40151a2a86d811ace154c6eb7445/ty-0.0.43-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f57d6cc28de89024b48d1788e4758c05299d5749d4a51c02e71ac655ec23d9a5", size = 11890555, upload-time = "2026-06-04T00:52:22.711Z" },
1312
+ { url = "https://files.pythonhosted.org/packages/80/7b/6f46d444e8241606bbde098df3dca93f2ec0b834a42055db85ee7d33646f/ty-0.0.43-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0a1d6ad6c5e7792c7eac0a01e550f2c2004462e01a64a91ea1636aba6fef6e71", size = 12450968, upload-time = "2026-06-04T00:52:28.94Z" },
1313
+ { url = "https://files.pythonhosted.org/packages/4a/e1/79fbe51f2e4b9d8347f2013cd7ed0b63f3b499038c02dc0357e9b28a3a47/ty-0.0.43-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:66d474395d7635fb618bdbb58b4e3360259a2056d0a5621b82754b9da2cd8a04", size = 12064187, upload-time = "2026-06-04T00:52:12.039Z" },
1314
+ { url = "https://files.pythonhosted.org/packages/9b/3f/c758a3a8df5b90d331f2b60c8f16021ee64d75e78f99d67cc4efc9bf5f4b/ty-0.0.43-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2663a0003a8b60fb98db7f6f6e673df80b21d0fe3a9868a26fb06b4e049b6fc4", size = 11943208, upload-time = "2026-06-04T00:52:31.14Z" },
1315
+ { url = "https://files.pythonhosted.org/packages/54/5f/f516442749cf1b45ca6720a5d41df2738a486ed9ace774c03d515db89084/ty-0.0.43-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:d5a6c352d374d889189d5ec82b54b26a5885f769f7b7787f7f875500dcb8673e", size = 12143572, upload-time = "2026-06-04T00:52:18.457Z" },
1316
+ { url = "https://files.pythonhosted.org/packages/b7/bf/0d83c7f43bf4c10f3678bfe7d938e51c445298c7b923f155c5204730c2df/ty-0.0.43-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:e7dbbeedfad3ca250d74fcc355fa9ab6b38d2a17f22d6304f615716939dbbb27", size = 11279355, upload-time = "2026-06-04T00:52:26.726Z" },
1317
+ { url = "https://files.pythonhosted.org/packages/3e/de/a6c978bef6d9e949f79f4782d9e4ee4df0893713e73b055d84c1a5116b9a/ty-0.0.43-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:24b18a0273ee46154996cfcfa27438f851f440c925587ec200df6f98dffe67d3", size = 11408412, upload-time = "2026-06-04T00:52:35.282Z" },
1318
+ { url = "https://files.pythonhosted.org/packages/ec/b1/d13857c23867f0f76b92e38e5841c64ca5e76dc5d4bf27f52cb81d8ab685/ty-0.0.43-py3-none-musllinux_1_2_i686.whl", hash = "sha256:2ef681951520d692b7e9c0b5e56aacf4f98ccae47cf6ffccaf2c7b6b33dc226e", size = 11541709, upload-time = "2026-06-04T00:52:16.451Z" },
1319
+ { url = "https://files.pythonhosted.org/packages/7c/f1/cd6afc6f6a687e238bf5e12189f7920e81a0bdef6c3dba4c784ef140f7d9/ty-0.0.43-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:2af105de7437143aa4676b28016b5bee661aaaa4eff52be5867fb25119641ceb", size = 12041266, upload-time = "2026-06-04T00:52:43.541Z" },
1320
+ { url = "https://files.pythonhosted.org/packages/bd/ba/51ca7c3335da2b8d0a3e477fa4986be9f4a53b05bfab862967d8d2e6ca60/ty-0.0.43-py3-none-win32.whl", hash = "sha256:e4773115b0d6486ee30f1657fc8bdffe7e3a3f5300ab77ef2495da6e83e4694f", size = 10858724, upload-time = "2026-06-04T00:52:07.843Z" },
1321
+ { url = "https://files.pythonhosted.org/packages/9f/29/5d80453e5f7c520145fa058851da87230dbd7ca761a7675447a9fe504e0b/ty-0.0.43-py3-none-win_amd64.whl", hash = "sha256:48d3545094a4ae6395492c7e6ac90550fce969e0ed2815fbf8c5da9756676b7d", size = 11976157, upload-time = "2026-06-04T00:52:41.438Z" },
1322
+ { url = "https://files.pythonhosted.org/packages/dc/ed/befe5a543e5b95e754ed38ee95239e44efda9bc5f578db4ac1bc8dd758d6/ty-0.0.43-py3-none-win_arm64.whl", hash = "sha256:740ca33d7f75f655a4e7d475bc42dfb825c13219bb073fad30fcc04d35790c74", size = 11308680, upload-time = "2026-06-04T00:52:39.233Z" },
1323
1323
  ]
1324
1324
 
1325
1325
  [[package]]