python-bsblan 5.1.1__tar.gz → 5.1.2__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 (104) hide show
  1. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/workflows/codeql.yaml +2 -2
  2. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/workflows/linting.yaml +1 -1
  3. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/PKG-INFO +1 -1
  4. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/pyproject.toml +3 -3
  5. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/src/bsblan/models.py +1 -1
  6. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_entity_info.py +11 -3
  7. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/uv.lock +43 -43
  8. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.editorconfig +0 -0
  9. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.gitattributes +0 -0
  10. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/CODE_OF_CONDUCT.md +0 -0
  11. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/CONTRIBUTING.md +0 -0
  12. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md +0 -0
  13. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  14. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  15. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/copilot-instructions.md +0 -0
  16. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/labels.yml +0 -0
  17. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/prompts/add-parameter.prompt.md +0 -0
  18. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/prompts/code-review.prompt.md +0 -0
  19. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/release-drafter.yml +0 -0
  20. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/renovate.json +0 -0
  21. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/skills/bsblan-parameters/SKILL.md +0 -0
  22. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/skills/bsblan-testing/SKILL.md +0 -0
  23. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/workflows/auto-approve-renovate.yml +0 -0
  24. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/workflows/labels.yaml +0 -0
  25. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/workflows/lock.yaml +0 -0
  26. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/workflows/pr-labels.yaml +0 -0
  27. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/workflows/release-drafter.yaml +0 -0
  28. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/workflows/release.yaml +0 -0
  29. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/workflows/stale.yaml +0 -0
  30. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.github/workflows/tests.yaml +0 -0
  31. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.gitignore +0 -0
  32. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.nvmrc +0 -0
  33. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.pre-commit-config.yaml +0 -0
  34. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.prettierignore +0 -0
  35. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/.yamllint +0 -0
  36. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/AGENTS.md +0 -0
  37. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/CLAUDE.md +0 -0
  38. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/LICENSE.md +0 -0
  39. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/README.md +0 -0
  40. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/examples/control.py +0 -0
  41. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/examples/discovery.py +0 -0
  42. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/examples/fetch_param.py +0 -0
  43. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/examples/profile_init.py +0 -0
  44. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/examples/ruff.toml +0 -0
  45. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/examples/speed_test.py +0 -0
  46. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/package-lock.json +0 -0
  47. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/package.json +0 -0
  48. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/sonar-project.properties +0 -0
  49. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/src/bsblan/__init__.py +0 -0
  50. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/src/bsblan/bsblan.py +0 -0
  51. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/src/bsblan/constants.py +0 -0
  52. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/src/bsblan/exceptions.py +0 -0
  53. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/src/bsblan/py.typed +0 -0
  54. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/src/bsblan/utility.py +0 -0
  55. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/__init__.py +0 -0
  56. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/conftest.py +0 -0
  57. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/fixtures/device.json +0 -0
  58. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/fixtures/dict_version.json +0 -0
  59. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/fixtures/hot_water_state.json +0 -0
  60. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/fixtures/info.json +0 -0
  61. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/fixtures/password.txt +0 -0
  62. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/fixtures/sensor.json +0 -0
  63. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/fixtures/state.json +0 -0
  64. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/fixtures/state_circuit2.json +0 -0
  65. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/fixtures/static_state.json +0 -0
  66. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/fixtures/static_state_circuit2.json +0 -0
  67. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/fixtures/thermostat_hvac.json +0 -0
  68. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/fixtures/thermostat_temp.json +0 -0
  69. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/fixtures/time.json +0 -0
  70. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/ruff.toml +0 -0
  71. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_api_initialization.py +0 -0
  72. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_api_validation.py +0 -0
  73. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_auth.py +0 -0
  74. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_backoff_retry.py +0 -0
  75. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_bsblan.py +0 -0
  76. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_bsblan_edge_cases.py +0 -0
  77. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_circuit.py +0 -0
  78. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_configuration.py +0 -0
  79. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_constants.py +0 -0
  80. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_context_manager.py +0 -0
  81. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_device.py +0 -0
  82. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_dhw_time_switch.py +0 -0
  83. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_entity_info_ha.py +0 -0
  84. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_hot_water_additional.py +0 -0
  85. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_hotwater_state.py +0 -0
  86. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_include_parameter.py +0 -0
  87. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_info.py +0 -0
  88. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_initialization.py +0 -0
  89. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_read_parameters.py +0 -0
  90. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_reset_validation.py +0 -0
  91. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_schedule_models.py +0 -0
  92. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_sensor.py +0 -0
  93. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_set_hot_water_schedule.py +0 -0
  94. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_set_hotwater.py +0 -0
  95. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_state.py +0 -0
  96. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_static_state.py +0 -0
  97. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_temperature_unit.py +0 -0
  98. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_temperature_validation.py +0 -0
  99. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_thermostat.py +0 -0
  100. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_time.py +0 -0
  101. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_utility.py +0 -0
  102. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_utility_additional.py +0 -0
  103. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_utility_edge_cases.py +0 -0
  104. {python_bsblan-5.1.1 → python_bsblan-5.1.2}/tests/test_version_errors.py +0 -0
@@ -24,6 +24,6 @@ jobs:
24
24
  - name: ⤵️ Check out code from GitHub
25
25
  uses: actions/checkout@v6.0.2
26
26
  - name: 🏗 Initialize CodeQL
27
- uses: github/codeql-action/init@v4.32.4
27
+ uses: github/codeql-action/init@v4.32.5
28
28
  - name: 🚀 Perform CodeQL Analysis
29
- uses: github/codeql-action/analyze@v4.32.4
29
+ uses: github/codeql-action/analyze@v4.32.5
@@ -56,7 +56,7 @@ jobs:
56
56
  - name: 🏗 Install Python dependencies
57
57
  run: uv sync --dev
58
58
  - name: 🏗 Set up Node.js
59
- uses: actions/setup-node@v6.2.0
59
+ uses: actions/setup-node@v6.3.0
60
60
  with:
61
61
  node-version-file: ".nvmrc"
62
62
  cache: "npm"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-bsblan
3
- Version: 5.1.1
3
+ Version: 5.1.2
4
4
  Summary: Asynchronous Python client for BSBLAN API
5
5
  Project-URL: Homepage, https://github.com/liudger/python-bsblan
6
6
  Project-URL: Repository, https://github.com/liudger/python-bsblan
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "python-bsblan"
3
- version = "5.1.1"
3
+ version = "5.1.2"
4
4
  description = "Asynchronous Python client for BSBLAN API"
5
5
  authors = [
6
6
  {name = "Willem-Jan van Rootselaar", email = "liudgervr@gmail.com"}
@@ -188,7 +188,7 @@ dev = [
188
188
  # hatch is required to support type hinting and proper packaging of the py.typed file.
189
189
  "hatch>=1.14.1",
190
190
  "isort==8.0.1",
191
- "ty==0.0.19",
191
+ "ty==0.0.20",
192
192
  "prek>=0.3.3",
193
193
  "pre-commit-hooks==6.0.0",
194
194
  "pylint==4.0.5",
@@ -197,7 +197,7 @@ dev = [
197
197
  "pytest-cov==7.0.0",
198
198
  "pytest-xdist>=3.8.0",
199
199
  "pyupgrade==3.21.2",
200
- "ruff==0.15.4",
200
+ "ruff==0.15.5",
201
201
  "safety==3.7.0",
202
202
  "vulture==2.14",
203
203
  "yamllint==1.38.0",
@@ -235,7 +235,7 @@ def _convert_bsblan_value(
235
235
  The converted value, or None if the value is inactive.
236
236
 
237
237
  """
238
- if raw_value is None or raw_value == "---":
238
+ if raw_value is None or raw_value in {"---", ""}:
239
239
  return None
240
240
 
241
241
  raw = str(raw_value)
@@ -26,11 +26,19 @@ def test_entity_info_invalid_time_conversion(
26
26
  assert "Failed to convert value" in caplog.text
27
27
 
28
28
 
29
- def test_entity_info_undefined_value_becomes_none() -> None:
30
- """Test that '---' (sensor/parameter not in use) is converted to None."""
29
+ @pytest.mark.parametrize(
30
+ "raw_value",
31
+ [
32
+ pytest.param("---", id="dash_inactive"),
33
+ pytest.param("", id="empty_string"),
34
+ pytest.param(None, id="none_value"),
35
+ ],
36
+ )
37
+ def test_entity_info_undefined_value_becomes_none(raw_value: str | None) -> None:
38
+ """Test that inactive values ('---', '', None) are converted to None."""
31
39
  entity = EntityInfo(
32
40
  name="Inactive Sensor",
33
- value="---",
41
+ value=raw_value,
34
42
  unit="°C",
35
43
  desc="",
36
44
  data_type=DataType.PLAIN_NUMBER,
@@ -1682,9 +1682,9 @@ dev = [
1682
1682
  { name = "pytest-cov", specifier = "==7.0.0" },
1683
1683
  { name = "pytest-xdist", specifier = ">=3.8.0" },
1684
1684
  { name = "pyupgrade", specifier = "==3.21.2" },
1685
- { name = "ruff", specifier = "==0.15.4" },
1685
+ { name = "ruff", specifier = "==0.15.5" },
1686
1686
  { name = "safety", specifier = "==3.7.0" },
1687
- { name = "ty", specifier = "==0.0.19" },
1687
+ { name = "ty", specifier = "==0.0.20" },
1688
1688
  { name = "vulture", specifier = "==2.14" },
1689
1689
  { name = "yamllint", specifier = "==1.38.0" },
1690
1690
  { name = "zeroconf", specifier = ">=0.148.0" },
@@ -1926,27 +1926,27 @@ wheels = [
1926
1926
 
1927
1927
  [[package]]
1928
1928
  name = "ruff"
1929
- version = "0.15.4"
1930
- source = { registry = "https://pypi.org/simple" }
1931
- sdist = { url = "https://files.pythonhosted.org/packages/da/31/d6e536cdebb6568ae75a7f00e4b4819ae0ad2640c3604c305a0428680b0c/ruff-0.15.4.tar.gz", hash = "sha256:3412195319e42d634470cc97aa9803d07e9d5c9223b99bcb1518f0c725f26ae1", size = 4569550, upload-time = "2026-02-26T20:04:14.959Z" }
1932
- wheels = [
1933
- { url = "https://files.pythonhosted.org/packages/f2/82/c11a03cfec3a4d26a0ea1e571f0f44be5993b923f905eeddfc397c13d360/ruff-0.15.4-py3-none-linux_armv6l.whl", hash = "sha256:a1810931c41606c686bae8b5b9a8072adac2f611bb433c0ba476acba17a332e0", size = 10453333, upload-time = "2026-02-26T20:04:20.093Z" },
1934
- { url = "https://files.pythonhosted.org/packages/ce/5d/6a1f271f6e31dffb31855996493641edc3eef8077b883eaf007a2f1c2976/ruff-0.15.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:5a1632c66672b8b4d3e1d1782859e98d6e0b4e70829530666644286600a33992", size = 10853356, upload-time = "2026-02-26T20:04:05.808Z" },
1935
- { url = "https://files.pythonhosted.org/packages/b1/d8/0fab9f8842b83b1a9c2bf81b85063f65e93fb512e60effa95b0be49bfc54/ruff-0.15.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:a4386ba2cd6c0f4ff75252845906acc7c7c8e1ac567b7bc3d373686ac8c222ba", size = 10187434, upload-time = "2026-02-26T20:03:54.656Z" },
1936
- { url = "https://files.pythonhosted.org/packages/85/cc/cc220fd9394eff5db8d94dec199eec56dd6c9f3651d8869d024867a91030/ruff-0.15.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2496488bdfd3732747558b6f95ae427ff066d1fcd054daf75f5a50674411e75", size = 10535456, upload-time = "2026-02-26T20:03:52.738Z" },
1937
- { url = "https://files.pythonhosted.org/packages/fa/0f/bced38fa5cf24373ec767713c8e4cadc90247f3863605fb030e597878661/ruff-0.15.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3f1c4893841ff2d54cbda1b2860fa3260173df5ddd7b95d370186f8a5e66a4ac", size = 10287772, upload-time = "2026-02-26T20:04:08.138Z" },
1938
- { url = "https://files.pythonhosted.org/packages/2b/90/58a1802d84fed15f8f281925b21ab3cecd813bde52a8ca033a4de8ab0e7a/ruff-0.15.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:820b8766bd65503b6c30aaa6331e8ef3a6e564f7999c844e9a547c40179e440a", size = 11049051, upload-time = "2026-02-26T20:04:03.53Z" },
1939
- { url = "https://files.pythonhosted.org/packages/d2/ac/b7ad36703c35f3866584564dc15f12f91cb1a26a897dc2fd13d7cb3ae1af/ruff-0.15.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9fb74bab47139c1751f900f857fa503987253c3ef89129b24ed375e72873e85", size = 11890494, upload-time = "2026-02-26T20:04:10.497Z" },
1940
- { url = "https://files.pythonhosted.org/packages/93/3d/3eb2f47a39a8b0da99faf9c54d3eb24720add1e886a5309d4d1be73a6380/ruff-0.15.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f80c98765949c518142b3a50a5db89343aa90f2c2bf7799de9986498ae6176db", size = 11326221, upload-time = "2026-02-26T20:04:12.84Z" },
1941
- { url = "https://files.pythonhosted.org/packages/ff/90/bf134f4c1e5243e62690e09d63c55df948a74084c8ac3e48a88468314da6/ruff-0.15.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:451a2e224151729b3b6c9ffb36aed9091b2996fe4bdbd11f47e27d8f2e8888ec", size = 11168459, upload-time = "2026-02-26T20:04:00.969Z" },
1942
- { url = "https://files.pythonhosted.org/packages/b5/e5/a64d27688789b06b5d55162aafc32059bb8c989c61a5139a36e1368285eb/ruff-0.15.4-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:a8f157f2e583c513c4f5f896163a93198297371f34c04220daf40d133fdd4f7f", size = 11104366, upload-time = "2026-02-26T20:03:48.099Z" },
1943
- { url = "https://files.pythonhosted.org/packages/f1/f6/32d1dcb66a2559763fc3027bdd65836cad9eb09d90f2ed6a63d8e9252b02/ruff-0.15.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:917cc68503357021f541e69b35361c99387cdbbf99bd0ea4aa6f28ca99ff5338", size = 10510887, upload-time = "2026-02-26T20:03:45.771Z" },
1944
- { url = "https://files.pythonhosted.org/packages/ff/92/22d1ced50971c5b6433aed166fcef8c9343f567a94cf2b9d9089f6aa80fe/ruff-0.15.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e9737c8161da79fd7cfec19f1e35620375bd8b2a50c3e77fa3d2c16f574105cc", size = 10285939, upload-time = "2026-02-26T20:04:22.42Z" },
1945
- { url = "https://files.pythonhosted.org/packages/e6/f4/7c20aec3143837641a02509a4668fb146a642fd1211846634edc17eb5563/ruff-0.15.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:291258c917539e18f6ba40482fe31d6f5ac023994ee11d7bdafd716f2aab8a68", size = 10765471, upload-time = "2026-02-26T20:03:58.924Z" },
1946
- { url = "https://files.pythonhosted.org/packages/d0/09/6d2f7586f09a16120aebdff8f64d962d7c4348313c77ebb29c566cefc357/ruff-0.15.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3f83c45911da6f2cd5936c436cf86b9f09f09165f033a99dcf7477e34041cbc3", size = 11263382, upload-time = "2026-02-26T20:04:24.424Z" },
1947
- { url = "https://files.pythonhosted.org/packages/1b/fa/2ef715a1cd329ef47c1a050e10dee91a9054b7ce2fcfdd6a06d139afb7ec/ruff-0.15.4-py3-none-win32.whl", hash = "sha256:65594a2d557d4ee9f02834fcdf0a28daa8b3b9f6cb2cb93846025a36db47ef22", size = 10506664, upload-time = "2026-02-26T20:03:50.56Z" },
1948
- { url = "https://files.pythonhosted.org/packages/d0/a8/c688ef7e29983976820d18710f955751d9f4d4eb69df658af3d006e2ba3e/ruff-0.15.4-py3-none-win_amd64.whl", hash = "sha256:04196ad44f0df220c2ece5b0e959c2f37c777375ec744397d21d15b50a75264f", size = 11651048, upload-time = "2026-02-26T20:04:17.191Z" },
1949
- { url = "https://files.pythonhosted.org/packages/3e/0a/9e1be9035b37448ce2e68c978f0591da94389ade5a5abafa4cf99985d1b2/ruff-0.15.4-py3-none-win_arm64.whl", hash = "sha256:60d5177e8cfc70e51b9c5fad936c634872a74209f934c1e79107d11787ad5453", size = 10966776, upload-time = "2026-02-26T20:03:56.908Z" },
1929
+ version = "0.15.5"
1930
+ source = { registry = "https://pypi.org/simple" }
1931
+ sdist = { url = "https://files.pythonhosted.org/packages/77/9b/840e0039e65fcf12758adf684d2289024d6140cde9268cc59887dc55189c/ruff-0.15.5.tar.gz", hash = "sha256:7c3601d3b6d76dce18c5c824fc8d06f4eef33d6df0c21ec7799510cde0f159a2", size = 4574214, upload-time = "2026-03-05T20:06:34.946Z" }
1932
+ wheels = [
1933
+ { url = "https://files.pythonhosted.org/packages/47/20/5369c3ce21588c708bcbe517a8fbe1a8dfdb5dfd5137e14790b1da71612c/ruff-0.15.5-py3-none-linux_armv6l.whl", hash = "sha256:4ae44c42281f42e3b06b988e442d344a5b9b72450ff3c892e30d11b29a96a57c", size = 10478185, upload-time = "2026-03-05T20:06:29.093Z" },
1934
+ { url = "https://files.pythonhosted.org/packages/44/ed/e81dd668547da281e5dce710cf0bc60193f8d3d43833e8241d006720e42b/ruff-0.15.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6edd3792d408ebcf61adabc01822da687579a1a023f297618ac27a5b51ef0080", size = 10859201, upload-time = "2026-03-05T20:06:32.632Z" },
1935
+ { url = "https://files.pythonhosted.org/packages/c4/8f/533075f00aaf19b07c5cd6aa6e5d89424b06b3b3f4583bfa9c640a079059/ruff-0.15.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:89f463f7c8205a9f8dea9d658d59eff49db05f88f89cc3047fb1a02d9f344010", size = 10184752, upload-time = "2026-03-05T20:06:40.312Z" },
1936
+ { url = "https://files.pythonhosted.org/packages/66/0e/ba49e2c3fa0395b3152bad634c7432f7edfc509c133b8f4529053ff024fb/ruff-0.15.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba786a8295c6574c1116704cf0b9e6563de3432ac888d8f83685654fe528fd65", size = 10534857, upload-time = "2026-03-05T20:06:19.581Z" },
1937
+ { url = "https://files.pythonhosted.org/packages/59/71/39234440f27a226475a0659561adb0d784b4d247dfe7f43ffc12dd02e288/ruff-0.15.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd4b801e57955fe9f02b31d20375ab3a5c4415f2e5105b79fb94cf2642c91440", size = 10309120, upload-time = "2026-03-05T20:06:00.435Z" },
1938
+ { url = "https://files.pythonhosted.org/packages/f5/87/4140aa86a93df032156982b726f4952aaec4a883bb98cb6ef73c347da253/ruff-0.15.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:391f7c73388f3d8c11b794dbbc2959a5b5afe66642c142a6effa90b45f6f5204", size = 11047428, upload-time = "2026-03-05T20:05:51.867Z" },
1939
+ { url = "https://files.pythonhosted.org/packages/5a/f7/4953e7e3287676f78fbe85e3a0ca414c5ca81237b7575bdadc00229ac240/ruff-0.15.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dc18f30302e379fe1e998548b0f5e9f4dff907f52f73ad6da419ea9c19d66c8", size = 11914251, upload-time = "2026-03-05T20:06:22.887Z" },
1940
+ { url = "https://files.pythonhosted.org/packages/77/46/0f7c865c10cf896ccf5a939c3e84e1cfaeed608ff5249584799a74d33835/ruff-0.15.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1cc6e7f90087e2d27f98dc34ed1b3ab7c8f0d273cc5431415454e22c0bd2a681", size = 11333801, upload-time = "2026-03-05T20:05:57.168Z" },
1941
+ { url = "https://files.pythonhosted.org/packages/d3/01/a10fe54b653061585e655f5286c2662ebddb68831ed3eaebfb0eb08c0a16/ruff-0.15.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1cb7169f53c1ddb06e71a9aebd7e98fc0fea936b39afb36d8e86d36ecc2636a", size = 11206821, upload-time = "2026-03-05T20:06:03.441Z" },
1942
+ { url = "https://files.pythonhosted.org/packages/7a/0d/2132ceaf20c5e8699aa83da2706ecb5c5dcdf78b453f77edca7fb70f8a93/ruff-0.15.5-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:9b037924500a31ee17389b5c8c4d88874cc6ea8e42f12e9c61a3d754ff72f1ca", size = 11133326, upload-time = "2026-03-05T20:06:25.655Z" },
1943
+ { url = "https://files.pythonhosted.org/packages/72/cb/2e5259a7eb2a0f87c08c0fe5bf5825a1e4b90883a52685524596bfc93072/ruff-0.15.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:65bb414e5b4eadd95a8c1e4804f6772bbe8995889f203a01f77ddf2d790929dd", size = 10510820, upload-time = "2026-03-05T20:06:37.79Z" },
1944
+ { url = "https://files.pythonhosted.org/packages/ff/20/b67ce78f9e6c59ffbdb5b4503d0090e749b5f2d31b599b554698a80d861c/ruff-0.15.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d20aa469ae3b57033519c559e9bc9cd9e782842e39be05b50e852c7c981fa01d", size = 10302395, upload-time = "2026-03-05T20:05:54.504Z" },
1945
+ { url = "https://files.pythonhosted.org/packages/5f/e5/719f1acccd31b720d477751558ed74e9c88134adcc377e5e886af89d3072/ruff-0.15.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:15388dd28c9161cdb8eda68993533acc870aa4e646a0a277aa166de9ad5a8752", size = 10754069, upload-time = "2026-03-05T20:06:06.422Z" },
1946
+ { url = "https://files.pythonhosted.org/packages/c3/9c/d1db14469e32d98f3ca27079dbd30b7b44dbb5317d06ab36718dee3baf03/ruff-0.15.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b30da330cbd03bed0c21420b6b953158f60c74c54c5f4c1dabbdf3a57bf355d2", size = 11304315, upload-time = "2026-03-05T20:06:10.867Z" },
1947
+ { url = "https://files.pythonhosted.org/packages/28/3a/950367aee7c69027f4f422059227b290ed780366b6aecee5de5039d50fa8/ruff-0.15.5-py3-none-win32.whl", hash = "sha256:732e5ee1f98ba5b3679029989a06ca39a950cced52143a0ea82a2102cb592b74", size = 10551676, upload-time = "2026-03-05T20:06:13.705Z" },
1948
+ { url = "https://files.pythonhosted.org/packages/b8/00/bf077a505b4e649bdd3c47ff8ec967735ce2544c8e4a43aba42ee9bf935d/ruff-0.15.5-py3-none-win_amd64.whl", hash = "sha256:821d41c5fa9e19117616c35eaa3f4b75046ec76c65e7ae20a333e9a8696bc7fe", size = 11678972, upload-time = "2026-03-05T20:06:45.379Z" },
1949
+ { url = "https://files.pythonhosted.org/packages/fe/4e/cd76eca6db6115604b7626668e891c9dd03330384082e33662fb0f113614/ruff-0.15.5-py3-none-win_arm64.whl", hash = "sha256:b498d1c60d2fe5c10c45ec3f698901065772730b411f164ae270bb6bfcc4740b", size = 10965572, upload-time = "2026-03-05T20:06:16.984Z" },
1950
1950
  ]
1951
1951
 
1952
1952
  [[package]]
@@ -2083,26 +2083,26 @@ wheels = [
2083
2083
 
2084
2084
  [[package]]
2085
2085
  name = "ty"
2086
- version = "0.0.19"
2087
- source = { registry = "https://pypi.org/simple" }
2088
- sdist = { url = "https://files.pythonhosted.org/packages/84/5e/da108b9eeb392e02ff0478a34e9651490b36af295881cb56575b83f0cc3a/ty-0.0.19.tar.gz", hash = "sha256:ee3d9ed4cb586e77f6efe3d0fe5a855673ca438a3d533a27598e1d3502a2948a", size = 5220026, upload-time = "2026-02-26T12:13:15.215Z" }
2089
- wheels = [
2090
- { url = "https://files.pythonhosted.org/packages/5a/31/fd8c6067abb275bea11523d21ecf64e1d870b1ce80cac529cf6636df1471/ty-0.0.19-py3-none-linux_armv6l.whl", hash = "sha256:29bed05d34c8a7597567b8e327c53c1aed4a07dcfbe6c81e6d60c7444936ad77", size = 10268470, upload-time = "2026-02-26T12:13:42.881Z" },
2091
- { url = "https://files.pythonhosted.org/packages/15/de/16a11bbf7d98c75849fc41f5d008b89bb5d080a4b10dc8ea851ee2bd371b/ty-0.0.19-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:79140870c688c97ec68e723c28935ddef9d91a76d48c68e665fe7c851e628b8a", size = 10098562, upload-time = "2026-02-26T12:13:31.618Z" },
2092
- { url = "https://files.pythonhosted.org/packages/e7/4f/086d6ff6686eadf903913c45b53ab96694b62bbfee1d8cf3e55a9b5aa4b2/ty-0.0.19-py3-none-macosx_11_0_arm64.whl", hash = "sha256:6e9c1f9cfa6a26f7881d14d75cf963af743f6c4189e6aa3e3b4056a65f22e730", size = 9604073, upload-time = "2026-02-26T12:13:24.645Z" },
2093
- { url = "https://files.pythonhosted.org/packages/95/13/888a6b6c7ed4a880fee91bec997f775153ce86215ee4c56b868516314734/ty-0.0.19-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbca43b050edf1db2e64ae7b79add233c2aea2855b8a876081bbd032edcd0610", size = 10106295, upload-time = "2026-02-26T12:13:40.584Z" },
2094
- { url = "https://files.pythonhosted.org/packages/cb/e8/05a372cae8da482de73b8246fb43236bf11e24ac28c879804568108759db/ty-0.0.19-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8acaa88ab1955ca6b15a0ccc274011c4961377fe65c3948e5d2b212f2517b87c", size = 10098234, upload-time = "2026-02-26T12:13:33.725Z" },
2095
- { url = "https://files.pythonhosted.org/packages/c5/f1/5b0958e9e9576e7662192fe689bbb3dc88e631a4e073db3047793a547d58/ty-0.0.19-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a901b6a6dd9d17d5b3b2e7bafc3057294e88da3f5de507347316687d7f191a1", size = 10607218, upload-time = "2026-02-26T12:13:17.576Z" },
2096
- { url = "https://files.pythonhosted.org/packages/fb/ab/358c78b77844f58ff5aca368550ab16c719f1ab0ec892ceb1114d7500f4e/ty-0.0.19-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8deafdaaaee65fd121c66064da74a922d8501be4a2d50049c71eab521a23eff7", size = 11160593, upload-time = "2026-02-26T12:13:36.008Z" },
2097
- { url = "https://files.pythonhosted.org/packages/95/59/827fc346d66a59fe48e9689a5ceb67dbbd5b4de2e8d4625371af39a2e8b7/ty-0.0.19-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:035e56071af280897441018f74f921b97d53aec0856f8af85f4f949df8eda07d", size = 10822392, upload-time = "2026-02-26T12:13:29.415Z" },
2098
- { url = "https://files.pythonhosted.org/packages/81/f9/3bbfbbe35478de9bcd63848f4bc9bffda72278dd9732dbad3efc3978432e/ty-0.0.19-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abdf5885130393ce74501dba792f48ce0a515756ec81c33a4b324bdf3509df6e", size = 10707139, upload-time = "2026-02-26T12:13:20.148Z" },
2099
- { url = "https://files.pythonhosted.org/packages/12/9e/597023b183ec4ade83a36a0cea5c103f3bffa34f70813d46386c61447fb8/ty-0.0.19-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:877e89005c8f9d1dbff5ad14cbac9f35c528406fde38926f9b44f24830de8d6a", size = 10096933, upload-time = "2026-02-26T12:13:45.266Z" },
2100
- { url = "https://files.pythonhosted.org/packages/1e/76/d0d2f6e674db2a17c8efa5e26682b9dfa8d34774705f35902a7b45ebd3bd/ty-0.0.19-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:39bd1da051c1e4d316efaf79dbed313255633f7c6ad6e24d29f4d9c6ffaf4de6", size = 10109547, upload-time = "2026-02-26T12:13:22.17Z" },
2101
- { url = "https://files.pythonhosted.org/packages/a4/b0/76026c06b852a3aa4fdb5bd329fdc2175aaf3c64a3fafece9cc4df167cee/ty-0.0.19-py3-none-musllinux_1_2_i686.whl", hash = "sha256:87df8415a6c9cb27b8f1382fcdc6052e59f5b9f50f78bc14663197eb5c8d3699", size = 10289110, upload-time = "2026-02-26T12:13:38.29Z" },
2102
- { url = "https://files.pythonhosted.org/packages/14/6c/f3b3a189816b4f079b20fe5d0d7ee38e38a472f53cc6770bb6571147e3de/ty-0.0.19-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:89b6bb23c332ed5c38dd859eb5793f887abcc936f681a40d4ea68e35eac1af33", size = 10796479, upload-time = "2026-02-26T12:13:10.992Z" },
2103
- { url = "https://files.pythonhosted.org/packages/3d/18/caee33d1ce9dd50bd94c26cde7cda4f6971e22e474e7d72a5c86d745ad58/ty-0.0.19-py3-none-win32.whl", hash = "sha256:19b33df3aa7af7b1a9eaa4e1175c3b4dec0f5f2e140243e3492c8355c37418f3", size = 9677215, upload-time = "2026-02-26T12:13:08.519Z" },
2104
- { url = "https://files.pythonhosted.org/packages/81/41/18fc0771d0b1da7d7cc2fc9af278d3122b754fe8b521a748734f4e16ecfd/ty-0.0.19-py3-none-win_amd64.whl", hash = "sha256:b9052c61464cdd76bc8e6796f2588c08700f25d0dcbc225bb165e390ea9d96a4", size = 10651252, upload-time = "2026-02-26T12:13:13.035Z" },
2105
- { url = "https://files.pythonhosted.org/packages/8b/8c/26f7ce8863eb54510082747b3dfb1046ba24f16fc11de18c0e5feb36ff18/ty-0.0.19-py3-none-win_arm64.whl", hash = "sha256:9329804b66dcbae8e7af916ef4963221ed53b8ec7d09b0793591c5ae8a0f3270", size = 10093195, upload-time = "2026-02-26T12:13:26.816Z" },
2086
+ version = "0.0.20"
2087
+ source = { registry = "https://pypi.org/simple" }
2088
+ sdist = { url = "https://files.pythonhosted.org/packages/56/95/8de69bb98417227b01f1b1d743c819d6456c9fd140255b6124b05b17dfd6/ty-0.0.20.tar.gz", hash = "sha256:ebba6be7974c14efbb2a9adda6ac59848f880d7259f089dfa72a093039f1dcc6", size = 5262529, upload-time = "2026-03-02T15:51:36.587Z" }
2089
+ wheels = [
2090
+ { url = "https://files.pythonhosted.org/packages/0b/2c/718abe48393e521bf852cd6b0f984766869b09c258d6e38a118768a91731/ty-0.0.20-py3-none-linux_armv6l.whl", hash = "sha256:7cc12769c169c9709a829c2248ee2826b7aae82e92caeac813d856f07c021eae", size = 10333656, upload-time = "2026-03-02T15:51:56.461Z" },
2091
+ { url = "https://files.pythonhosted.org/packages/41/0e/eb1c4cc4a12862e2327b72657bcebb10b7d9f17046f1bdcd6457a0211615/ty-0.0.20-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:3b777c1bf13bc0a95985ebb8a324b8668a4a9b2e514dde5ccf09e4d55d2ff232", size = 10168505, upload-time = "2026-03-02T15:51:51.895Z" },
2092
+ { url = "https://files.pythonhosted.org/packages/89/7f/10230798e673f0dd3094dfd16e43bfd90e9494e7af6e8e7db516fb431ddf/ty-0.0.20-py3-none-macosx_11_0_arm64.whl", hash = "sha256:b2a4a7db48bf8cba30365001bc2cad7fd13c1a5aacdd704cc4b7925de8ca5eb3", size = 9678510, upload-time = "2026-03-02T15:51:48.451Z" },
2093
+ { url = "https://files.pythonhosted.org/packages/7a/3d/59d9159577494edd1728f7db77b51bb07884bd21384f517963114e3ab5f6/ty-0.0.20-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6846427b8b353a43483e9c19936dc6a25612573b44c8f7d983dfa317e7f00d4c", size = 10162926, upload-time = "2026-03-02T15:51:40.558Z" },
2094
+ { url = "https://files.pythonhosted.org/packages/9c/a8/b7273eec3e802f78eb913fbe0ce0c16ef263723173e06a5776a8359b2c66/ty-0.0.20-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:245ceef5bd88df366869385cf96411cb14696334f8daa75597cf7e41c3012eb8", size = 10171702, upload-time = "2026-03-02T15:51:44.069Z" },
2095
+ { url = "https://files.pythonhosted.org/packages/9f/32/5f1144f2f04a275109db06e3498450c4721554215b80ae73652ef412eeab/ty-0.0.20-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c4d21d1cdf67a444d3c37583c17291ddba9382a9871021f3f5d5735e09e85efe", size = 10682552, upload-time = "2026-03-02T15:51:33.102Z" },
2096
+ { url = "https://files.pythonhosted.org/packages/6a/db/9f1f637310792f12bd6ed37d5fc8ab39ba1a9b0c6c55a33865e9f1cad840/ty-0.0.20-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bd4ffd907d1bd70e46af9e9a2f88622f215e1bf44658ea43b32c2c0b357299e4", size = 11242605, upload-time = "2026-03-02T15:51:34.895Z" },
2097
+ { url = "https://files.pythonhosted.org/packages/1a/68/cc9cae2e732fcfd20ccdffc508407905a023fc8493b8771c392d915528dc/ty-0.0.20-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b6594b58d8b0e9d16a22b3045fc1305db4b132c8d70c17784ab8c7a7cc986807", size = 10974655, upload-time = "2026-03-02T15:51:46.011Z" },
2098
+ { url = "https://files.pythonhosted.org/packages/1c/c1/b9e3e3f28fe63486331e653f6aeb4184af8b1fe80542fcf74d2dda40a93d/ty-0.0.20-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3662f890518ce6cf4d7568f57d03906912d2afbf948a01089a28e325b1ef198c", size = 10761325, upload-time = "2026-03-02T15:51:26.818Z" },
2099
+ { url = "https://files.pythonhosted.org/packages/39/9e/67db935bdedf219a00fb69ec5437ba24dab66e0f2e706dd54a4eca234b84/ty-0.0.20-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:0e3ffbae58f9f0d17cdc4ac6d175ceae560b7ed7d54f9ddfb1c9f31054bcdc2c", size = 10145793, upload-time = "2026-03-02T15:51:38.562Z" },
2100
+ { url = "https://files.pythonhosted.org/packages/c7/de/b0eb815d4dc5a819c7e4faddc2a79058611169f7eef07ccc006531ce228c/ty-0.0.20-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:176e52bc8bb00b0e84efd34583962878a447a3a0e34ecc45fd7097a37554261b", size = 10189640, upload-time = "2026-03-02T15:51:50.202Z" },
2101
+ { url = "https://files.pythonhosted.org/packages/b8/71/63734923965cbb70df1da3e93e4b8875434e326b89e9f850611122f279bf/ty-0.0.20-py3-none-musllinux_1_2_i686.whl", hash = "sha256:b2bc73025418e976ca4143dde71fb9025a90754a08ac03e6aa9b80d4bed1294b", size = 10370568, upload-time = "2026-03-02T15:51:42.295Z" },
2102
+ { url = "https://files.pythonhosted.org/packages/32/a0/a532c2048533347dff48e9ca98bd86d2c224356e101688a8edaf8d6973fb/ty-0.0.20-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d52f7c9ec6e363e094b3c389c344d5a140401f14a77f0625e3f28c21918552f5", size = 10853999, upload-time = "2026-03-02T15:51:58.963Z" },
2103
+ { url = "https://files.pythonhosted.org/packages/48/88/36c652c658fe96658043e4abc8ea97801de6fb6e63ab50aaa82807bff1d8/ty-0.0.20-py3-none-win32.whl", hash = "sha256:c7d32bfe93f8fcaa52b6eef3f1b930fd7da410c2c94e96f7412c30cfbabf1d17", size = 9744206, upload-time = "2026-03-02T15:51:54.183Z" },
2104
+ { url = "https://files.pythonhosted.org/packages/ff/a7/a4a13bed1d7fd9d97aaa3c5bb5e6d3e9a689e6984806cbca2ab4c9233cac/ty-0.0.20-py3-none-win_amd64.whl", hash = "sha256:a5e10f40fc4a0a1cbcb740a4aad5c7ce35d79f030836ea3183b7a28f43170248", size = 10711999, upload-time = "2026-03-02T15:51:29.212Z" },
2105
+ { url = "https://files.pythonhosted.org/packages/8d/7e/6bfd748a9f4ff9267ed3329b86a0f02cdf6ab49f87bc36c8a164852f99fc/ty-0.0.20-py3-none-win_arm64.whl", hash = "sha256:53f7a5c12c960e71f160b734f328eff9a35d578af4b67a36b0bb5990ac5cdc27", size = 10150143, upload-time = "2026-03-02T15:51:31.283Z" },
2106
2106
  ]
2107
2107
 
2108
2108
  [[package]]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes