pyobs-brot 2.0.0.dev10__tar.gz → 2.0.0.dev11__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 (21) hide show
  1. pyobs_brot-2.0.0.dev11/.github/dependabot.yml +10 -0
  2. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/PKG-INFO +1 -1
  3. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/pyobs_brot/brottelescope.py +15 -0
  4. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/pyproject.toml +2 -2
  5. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/uv.lock +29 -29
  6. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/.github/workflows/pypi.yml +0 -0
  7. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/.github/workflows/ruff.yml +0 -0
  8. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/.gitignore +0 -0
  9. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/.pre-commit-config.yaml +0 -0
  10. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/.readthedocs.yml +0 -0
  11. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/LICENSE +0 -0
  12. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/README.md +0 -0
  13. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/docs/Makefile +0 -0
  14. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/docs/make.bat +0 -0
  15. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/docs/requirements.txt +0 -0
  16. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/docs/source/_static/pyobs.gif +0 -0
  17. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/docs/source/conf.py +0 -0
  18. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/docs/source/index.rst +0 -0
  19. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/pyobs_brot/__init__.py +0 -0
  20. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/pyobs_brot/brotdome.py +0 -0
  21. {pyobs_brot-2.0.0.dev10 → pyobs_brot-2.0.0.dev11}/pyobs_brot/brotroof.py +0 -0
@@ -0,0 +1,10 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "uv"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
7
+ day: "tuesday"
8
+ target-branch: "develop"
9
+ labels:
10
+ - "dependencies"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobs-brot
3
- Version: 2.0.0.dev10
3
+ Version: 2.0.0.dev11
4
4
  Summary: pyobs module for BROTlib telescopes
5
5
  Author-email: Tim-Oliver Husser <thusser@uni-goettingen.de>, Lukas Melzig <lukas.melzig@stud.uni-goettingen.de>
6
6
  License-Expression: MIT
@@ -66,6 +66,7 @@ class BrotBaseTelescope(
66
66
  self.mqtt = MQTTTransport(host, port)
67
67
  self.brot = BROT(self.mqtt, name)
68
68
  self.temperatures: dict[str, str] = {} if temperatures is None else temperatures
69
+ self._missing_temperature_sensors: set[str] = set()
69
70
  self.focus_offset = 0.0
70
71
  self._roof = roof
71
72
 
@@ -146,10 +147,24 @@ class BrotBaseTelescope(
146
147
 
147
148
  # publish temperatures
148
149
  readings = []
150
+ missing = []
149
151
  for name, loc in self.temperatures.items():
152
+ found = False
150
153
  for sensor in self.mqtt.telemetry.AUXILIARY.SENSOR.values():
151
154
  if sensor.NAME == loc:
152
155
  readings.append(SensorReading(name=name, value=sensor.VALUE))
156
+ found = True
157
+ if not found:
158
+ missing.append(f"{name} ({loc})")
159
+
160
+ missing_set = set(missing)
161
+ if missing_set != self._missing_temperature_sensors:
162
+ if missing_set:
163
+ log.warning("Temperature sensor(s) not found in telemetry: %s", ", ".join(missing))
164
+ else:
165
+ log.info("All configured temperature sensors found in telemetry again.")
166
+ self._missing_temperature_sensors = missing_set
167
+
153
168
  if readings:
154
169
  await self.comm.set_state(ITemperatures, TemperaturesState(readings=readings))
155
170
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pyobs-brot"
3
- version = "2.0.0.dev10"
3
+ version = "2.0.0.dev11"
4
4
  description = "pyobs module for BROTlib telescopes"
5
5
  authors = [{ name = "Tim-Oliver Husser", email = "thusser@uni-goettingen.de" }, { name = "Lukas Melzig", email = "lukas.melzig@stud.uni-goettingen.de" }]
6
6
  requires-python = ">=3.11"
@@ -17,7 +17,7 @@ dev = [
17
17
  "black>=23.7.0,<24",
18
18
  "ruff>=0.9.0",
19
19
  "pyrefly>=1.1.1",
20
- "pre-commit>=3.3.3,<4",
20
+ "pre-commit>=3.3.3,<5",
21
21
  ]
22
22
 
23
23
  [build-system]
@@ -1336,7 +1336,7 @@ wheels = [
1336
1336
 
1337
1337
  [[package]]
1338
1338
  name = "pre-commit"
1339
- version = "3.8.0"
1339
+ version = "4.6.1"
1340
1340
  source = { registry = "https://pypi.org/simple" }
1341
1341
  dependencies = [
1342
1342
  { name = "cfgv" },
@@ -1345,9 +1345,9 @@ dependencies = [
1345
1345
  { name = "pyyaml" },
1346
1346
  { name = "virtualenv" },
1347
1347
  ]
1348
- sdist = { url = "https://files.pythonhosted.org/packages/64/10/97ee2fa54dff1e9da9badbc5e35d0bbaef0776271ea5907eccf64140f72f/pre_commit-3.8.0.tar.gz", hash = "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af", size = 177815, upload-time = "2024-07-28T19:59:01.538Z" }
1348
+ sdist = { url = "https://files.pythonhosted.org/packages/25/3a/ddb78f32a0814e66b18a099377a106a2dcdce92d86a034d69d65df9b256e/pre_commit-4.6.1.tar.gz", hash = "sha256:03e809865c7d178b9979d06c761fcbfe6808fdaded8581a745bb110e52050421", size = 198646, upload-time = "2026-07-21T20:56:58.225Z" }
1349
1349
  wheels = [
1350
- { url = "https://files.pythonhosted.org/packages/07/92/caae8c86e94681b42c246f0bca35c059a2f0529e5b92619f6aba4cf7e7b6/pre_commit-3.8.0-py2.py3-none-any.whl", hash = "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f", size = 204643, upload-time = "2024-07-28T19:58:59.335Z" },
1350
+ { url = "https://files.pythonhosted.org/packages/fb/49/bc925106abcdac498074f2cbe6137e94e09f418dd2b7775df5b577dc0313/pre_commit-4.6.1-py2.py3-none-any.whl", hash = "sha256:0e3b2942510d1fb34eec167a3ec57331bf8442122f1153a9fb8b58f5c49b2717", size = 226186, upload-time = "2026-07-21T20:56:57.064Z" },
1351
1351
  ]
1352
1352
 
1353
1353
  [[package]]
@@ -1783,7 +1783,7 @@ wheels = [
1783
1783
 
1784
1784
  [[package]]
1785
1785
  name = "pyobs-brot"
1786
- version = "2.0.0.dev10"
1786
+ version = "2.0.0.dev11"
1787
1787
  source = { editable = "." }
1788
1788
  dependencies = [
1789
1789
  { name = "astropy" },
@@ -1811,14 +1811,14 @@ requires-dist = [
1811
1811
  [package.metadata.requires-dev]
1812
1812
  dev = [
1813
1813
  { name = "black", specifier = ">=23.7.0,<24" },
1814
- { name = "pre-commit", specifier = ">=3.3.3,<4" },
1814
+ { name = "pre-commit", specifier = ">=3.3.3,<5" },
1815
1815
  { name = "pyrefly", specifier = ">=1.1.1" },
1816
1816
  { name = "ruff", specifier = ">=0.9.0" },
1817
1817
  ]
1818
1818
 
1819
1819
  [[package]]
1820
1820
  name = "pyobs-core"
1821
- version = "2.0.0.dev29"
1821
+ version = "2.0.0.dev38"
1822
1822
  source = { registry = "https://pypi.org/simple" }
1823
1823
  dependencies = [
1824
1824
  { name = "aiohttp" },
@@ -1848,9 +1848,9 @@ dependencies = [
1848
1848
  { name = "tenacity" },
1849
1849
  { name = "typing-extensions" },
1850
1850
  ]
1851
- sdist = { url = "https://files.pythonhosted.org/packages/3f/78/fa510d74ef173abe05c1d65a6305c68510f323b376f5b6b31b3d6ad6ee25/pyobs_core-2.0.0.dev29.tar.gz", hash = "sha256:af6b3b10429c399ae9b22eddeb17f345823ee7c7b924f13bed900a9782502350", size = 336990, upload-time = "2026-07-18T15:48:44.422Z" }
1851
+ sdist = { url = "https://files.pythonhosted.org/packages/32/a8/457eb37297e2809de734b963f466cf8ea83d9377f6ec8860d8fc2b5f8e62/pyobs_core-2.0.0.dev38.tar.gz", hash = "sha256:a4567ce8e3365376694182a12b50341c8d675a4136439036e6338bfd8e78db19", size = 339419, upload-time = "2026-07-21T17:56:50.886Z" }
1852
1852
  wheels = [
1853
- { url = "https://files.pythonhosted.org/packages/e4/6d/c9627252e91d8c9b71b8f0535acc46e55f6eca380d01fa0e6da7a76e05a5/pyobs_core-2.0.0.dev29-py3-none-any.whl", hash = "sha256:fa085f0241708fa5efea5f1ab211680ece1bf1597ae4d0f4f6516a63d7e31937", size = 557071, upload-time = "2026-07-18T15:48:43.026Z" },
1853
+ { url = "https://files.pythonhosted.org/packages/99/93/45e3da02f721ec4a4485b962e7bfd1fe3b5656551b71db88869e4407542d/pyobs_core-2.0.0.dev38-py3-none-any.whl", hash = "sha256:2cfcf3c1ade9b2c1426d22403dbeee58348bc795d09bc279138fc42fe7a27073", size = 559636, upload-time = "2026-07-21T17:56:48.942Z" },
1854
1854
  ]
1855
1855
 
1856
1856
  [[package]]
@@ -2012,27 +2012,27 @@ wheels = [
2012
2012
 
2013
2013
  [[package]]
2014
2014
  name = "ruff"
2015
- version = "0.15.20"
2016
- source = { registry = "https://pypi.org/simple" }
2017
- sdist = { url = "https://files.pythonhosted.org/packages/43/dc/35b341fc554ba02f217fc10da57d1a75168cfbcf75b0ef2202176d4c4f2d/ruff-0.15.20.tar.gz", hash = "sha256:1416eb04349192646b54de98f146c4f59afe37d0decfc02c3cbbf396f3a28566", size = 4755489, upload-time = "2026-06-25T17:20:37.578Z" }
2018
- wheels = [
2019
- { url = "https://files.pythonhosted.org/packages/94/d9/2d5014f0253ba541d2061d9fa7193f48e941c8b21bb88a7ff9bbe0bd0596/ruff-0.15.20-py3-none-linux_armv6l.whl", hash = "sha256:00e188c53e499c3c1637f73c91dcf2fb56d576cab76ce1be50a27c4e80e37078", size = 10839665, upload-time = "2026-06-25T17:19:44.702Z" },
2020
- { url = "https://files.pythonhosted.org/packages/c6/d3/ac1798ba64f670698867fcfc591d50e7e421bef137db564858f619a30fcf/ruff-0.15.20-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9ebd1fd9b9c95fc0bd7b2761aebec1f030013d2e193a2901b224af68fe47251b", size = 11208649, upload-time = "2026-06-25T17:19:48.787Z" },
2021
- { url = "https://files.pythonhosted.org/packages/47/47/d3ac899991202095dfcf3d5176be4272642be3cf981a2f1a30f72a2afb95/ruff-0.15.20-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c5b16cdd67ca108185cd36dce98c576350c03b1660a751de725fb049193a0632", size = 10622638, upload-time = "2026-06-25T17:19:51.354Z" },
2022
- { url = "https://files.pythonhosted.org/packages/33/13/4e043fe30aa94d4ff5213a9881fc296d12960f5971b234a5263fdc225312/ruff-0.15.20-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3413bb3c3d2ca6a8208f1f4809cd2dca3c6de6d0b491c0e70847672bde6e6efd", size = 10984227, upload-time = "2026-06-25T17:19:54.044Z" },
2023
- { url = "https://files.pythonhosted.org/packages/76/e6/92e7bf40388bc5800073b96564f56264f7e48bfd1a498f5ced6ae6d5a769/ruff-0.15.20-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd7ec42b3bb3da066488db093308a69c4ac5ee6d2af333a86ba6e2eb2e7dd44b", size = 10622882, upload-time = "2026-06-25T17:19:57.037Z" },
2024
- { url = "https://files.pythonhosted.org/packages/13/7a/43460be3f24495a3aa46d4b16873e2c4941b3b5f0b00cf88c03b7b94b339/ruff-0.15.20-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1a36ad0eb77fba9aabfb69ede54de6f376d04ac18ebea022847046d340a8267", size = 11474808, upload-time = "2026-06-25T17:20:00.357Z" },
2025
- { url = "https://files.pythonhosted.org/packages/27/a0/f37077884873221c6b33b4ab49eb18f9f88e54a16a25a5bca59bef46dd66/ruff-0.15.20-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b6df3b1e4610432f0386dba04d853b5f08cbbc903410c6fcc02f620f05aff53c", size = 12293094, upload-time = "2026-06-25T17:20:03.446Z" },
2026
- { url = "https://files.pythonhosted.org/packages/a6/74/165545b60256a9704c21ac0ec4a0d07933b320812f9584836c9f4aca4292/ruff-0.15.20-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e89f198a1ea6ef0d727c1cf16088bc91a6cb0ab947dedc966715691647186eae", size = 11526176, upload-time = "2026-06-25T17:20:06.301Z" },
2027
- { url = "https://files.pythonhosted.org/packages/86/b1/a976a136d40ade83ce743578399865f57001003a409acadc0ecbb3051082/ruff-0.15.20-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309809086c2acb67624950a3c8133e80f32d0d3e27106c0cd60ff26657c9f24b", size = 11520767, upload-time = "2026-06-25T17:20:09.191Z" },
2028
- { url = "https://files.pythonhosted.org/packages/19/0f/f032696cb01c9b54c0263fa393474d7758f1cdc021a01b04e3cbc2500999/ruff-0.15.20-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:2d2374caa2f2c2f9e2b7da0a50802cfb8b79f55a9b5e49379f564544fbf56487", size = 11500132, upload-time = "2026-06-25T17:20:13.602Z" },
2029
- { url = "https://files.pythonhosted.org/packages/4b/f4/51b1a14bc69e8c224b15dab9cce8e99b425e0455d462caa2b3c9be2b6a8e/ruff-0.15.20-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:a1ed17b65293e0c2f22fc387bc13198a5de94bf4429589b0ff6946b0feaf21a3", size = 10943828, upload-time = "2026-06-25T17:20:16.635Z" },
2030
- { url = "https://files.pythonhosted.org/packages/71/4b/fe267640783cd02bf6c5cc290b1df1051be2ec294c678b5c15fe19e52343/ruff-0.15.20-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f701305e66b38ea6c91882490eb73459796808e4c6362a1b765255e0cdcd4053", size = 10645418, upload-time = "2026-06-25T17:20:19.4Z" },
2031
- { url = "https://files.pythonhosted.org/packages/b0/c0/a65aa4ec2f5e87a1df32dc3ec1fede434fe3dfd5cbcf3b503cafc676ab54/ruff-0.15.20-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5b9c0c367ad8e5d0d5b5b8537864c469a0a0e55417aadfbeca41fa61333be9f4", size = 11211770, upload-time = "2026-06-25T17:20:22.033Z" },
2032
- { url = "https://files.pythonhosted.org/packages/5a/a4/0caa331d954ae2723d729d351c989cb4ca8b6077d5c6c2cb6de75e98c041/ruff-0.15.20-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:01cc00dd58f0df339d0e902219dd53990ea99996a0344e5d9cc8d45d5307e460", size = 11618698, upload-time = "2026-06-25T17:20:25.259Z" },
2033
- { url = "https://files.pythonhosted.org/packages/10/9b/5f14927848d2fd4aa891fd88d883788c5a7baba561c7874732364045708c/ruff-0.15.20-py3-none-win32.whl", hash = "sha256:ed65ef510e43a137207e0f01cfcf998aeddb1aeeda5c9d35023e910284d7cf21", size = 10857322, upload-time = "2026-06-25T17:20:28.612Z" },
2034
- { url = "https://files.pythonhosted.org/packages/fa/f0/fe47c501f9dea92a26d788ff98bb5d92ed4cb4c88792c5c88af6b697dc8e/ruff-0.15.20-py3-none-win_amd64.whl", hash = "sha256:a525c81c70fb0380344dd1d8745d8cc1c890b7fc94a58d5a07bd8eb9557b8415", size = 11993274, upload-time = "2026-06-25T17:20:31.871Z" },
2035
- { url = "https://files.pythonhosted.org/packages/d7/2b/9555445e1201d92b3195f45cdb153a0b68f24e0a4273f6e3d5ab46e212bb/ruff-0.15.20-py3-none-win_arm64.whl", hash = "sha256:2f5b2a6d614e8700388806a14996c40fab2c47b819ef57d790a34878858ed9ca", size = 11343498, upload-time = "2026-06-25T17:20:35.03Z" },
2015
+ version = "0.15.22"
2016
+ source = { registry = "https://pypi.org/simple" }
2017
+ sdist = { url = "https://files.pythonhosted.org/packages/3a/06/ae069393fc66e8ff33036d4b368003833bf6e88ccf182e17e7a2f1c754fd/ruff-0.15.22.tar.gz", hash = "sha256:3f15175b1fb580126f58285a5dae6b2ea89000136d980c64499211f116b54809", size = 4785063, upload-time = "2026-07-16T15:14:13.244Z" }
2018
+ wheels = [
2019
+ { url = "https://files.pythonhosted.org/packages/23/18/ee54b7ae1e121be7a28ea6da4b67564ebb0530e183a54415ab7e3bcd2c4e/ruff-0.15.22-py3-none-linux_armv6l.whl", hash = "sha256:44423e73493737f5e7c5b41d475483898ff37afcdae38bc3da5085e29af1c2d8", size = 10781258, upload-time = "2026-07-16T15:13:19.452Z" },
2020
+ { url = "https://files.pythonhosted.org/packages/2f/d2/2520cb14761ddbeaf57642a76942fc36adcbdbe53b4532241995f6fc485c/ruff-0.15.22-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b82c6482946e9eda7ff2e091d25b8bad3f718684e1916d41bd56873cee05b697", size = 10999477, upload-time = "2026-07-16T15:13:23.318Z" },
2021
+ { url = "https://files.pythonhosted.org/packages/c9/10/74e53572aa758dfaa678c2a2646b5c5515d884b7ca56be4d2ce03ca4b560/ruff-0.15.22-py3-none-macosx_11_0_arm64.whl", hash = "sha256:11c1c715af53a09f714e011106bffc419751ec8232fcb5da42173284ea3fec6f", size = 10466716, upload-time = "2026-07-16T15:13:26.162Z" },
2022
+ { url = "https://files.pythonhosted.org/packages/1e/cc/44eaaf0844e028182f2d0a8f2190d0f359159aed0a9e5ab861d892f1ae2a/ruff-0.15.22-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:742a29cf29bddb7c8327895d6a10e0e6c5b38a96dd407af9b5d0857f809c0576", size = 10892644, upload-time = "2026-07-16T15:13:29.229Z" },
2023
+ { url = "https://files.pythonhosted.org/packages/9f/21/8edf559014d2b0f82beea19cfb713993ad802ccda16868769979c6090a84/ruff-0.15.22-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72af58b951b0ae395935ae79763dc349bc0eb706319d28f7a33ad2cfb3cfc178", size = 10576719, upload-time = "2026-07-16T15:13:32.35Z" },
2024
+ { url = "https://files.pythonhosted.org/packages/bf/1e/3a13abd392a3b50b62e5938a831f9ab6e588358cacad5c18545b716d2182/ruff-0.15.22-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62d425005c1835eb24e2ee4161cb90e8db263415f4a71c8c72c33abaa6c0c224", size = 11376494, upload-time = "2026-07-16T15:13:35.958Z" },
2025
+ { url = "https://files.pythonhosted.org/packages/bf/3e/422d3d95bcf04dd78e1aeac22184d4f9a8fb2c01865d39d44618484a0317/ruff-0.15.22-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e8b9b3f8779a4f08c969defc3c8c35abffaa757e601ed5ae66d6d1db6519969a", size = 12208370, upload-time = "2026-07-16T15:13:39.185Z" },
2026
+ { url = "https://files.pythonhosted.org/packages/1e/91/5d065a0e0a02bf4813f5119ad278462eed081d2b832eb7c021ade0ec9e65/ruff-0.15.22-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e0dd1b2e4d3d585f897a0d137cbf4eaf6223bef4e8ce34d6bb12556c5f9249e", size = 11581098, upload-time = "2026-07-16T15:13:42.132Z" },
2027
+ { url = "https://files.pythonhosted.org/packages/f6/f9/a0d4871d12fae702eb1f41b686caf05f1f8b124dc6db6f784f53d74918fa/ruff-0.15.22-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:365523eb91d9224e1bcb03b022fbf0facb8f9e23792a2c53d9d4b3924bdbdebb", size = 11399422, upload-time = "2026-07-16T15:13:45.2Z" },
2028
+ { url = "https://files.pythonhosted.org/packages/18/80/c843a5176cddbceb0b7e8dd41cf9993490796c1c469348d384f5a5c13c56/ruff-0.15.22-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:fabfd168afdf29fee5be98b831efa9683c94d7c5a3b58b9ce5a2e38444589a74", size = 11381683, upload-time = "2026-07-16T15:13:48.46Z" },
2029
+ { url = "https://files.pythonhosted.org/packages/d4/00/8485de0ae92239438a36cfc51350db9b9e85c9ebdfaea91b18e422706662/ruff-0.15.22-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:225dbf095a87f1d9f90f5fd7924d2613ee452a75a4308c63a8f50f761787aa7c", size = 10850295, upload-time = "2026-07-16T15:13:51.655Z" },
2030
+ { url = "https://files.pythonhosted.org/packages/fa/91/24977ec2ec72eaf15e4394ace2959fdff2dd1e14f03e005e838023407169/ruff-0.15.22-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:1877d63b9d24ed278744f1523fd11b85540566d54641f97c566d7d9dc5ca5296", size = 10579640, upload-time = "2026-07-16T15:13:54.79Z" },
2031
+ { url = "https://files.pythonhosted.org/packages/9c/47/9b51216951974df1f263ac19da550d34252e0ed7218c25f10c5ef9ed7517/ruff-0.15.22-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a1606c510bd7215680d32efab38965f7cdec3ef69f5170a3f4791404ffdd5262", size = 11105077, upload-time = "2026-07-16T15:13:57.915Z" },
2032
+ { url = "https://files.pythonhosted.org/packages/c2/47/20e9d4a3b8016778acea5fc32bb50d35d207500a17ddb529ffa6996feef8/ruff-0.15.22-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:630479b18625f5ffc373f77603a22a9f8ac0acd7ff0501178b5db28ec71e9c64", size = 11490980, upload-time = "2026-07-16T15:14:01.032Z" },
2033
+ { url = "https://files.pythonhosted.org/packages/4d/76/3f72d8fc38c1cb77b38c56a70da9d0c17700cc1cc50f9649c9d3c8f5ba71/ruff-0.15.22-py3-none-win32.whl", hash = "sha256:e5ba0e4a13fd14abbed2a77b517a3911290c6c6c59ef67784328d1668fab76cf", size = 10789165, upload-time = "2026-07-16T15:14:04.16Z" },
2034
+ { url = "https://files.pythonhosted.org/packages/cb/46/4965251734c2b6fcdca1b1b187d20bcac3af0ee5b083b89c910bb961ce3a/ruff-0.15.22-py3-none-win_amd64.whl", hash = "sha256:9be63ba1eb936acd2d1342fb8337c356353706fce233b2a15a09a97037e6acde", size = 11938297, upload-time = "2026-07-16T15:14:07.316Z" },
2035
+ { url = "https://files.pythonhosted.org/packages/57/c9/e69b1ff4c8b69093ef08b8919ab767af0569666865b39c30a8795d88d3c6/ruff-0.15.22-py3-none-win_arm64.whl", hash = "sha256:e1168075b72158510839f250027659cdd78476f40507dd517892304c41318661", size = 11298172, upload-time = "2026-07-16T15:14:10.51Z" },
2036
2036
  ]
2037
2037
 
2038
2038
  [[package]]