pyobs-fli 2.0.0.dev13__tar.gz → 2.0.1__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.
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/.readthedocs.yml +0 -2
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/PKG-INFO +3 -3
- pyobs_fli-2.0.1/docs/requirements.txt +4 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/docs/source/conf.py +4 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/pyobs_fli/flicamera.py +7 -2
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/pyobs_fli/flifilterwheel.py +3 -9
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/pyproject.toml +3 -3
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/uv.lock +27 -27
- pyobs_fli-2.0.0.dev13/docs/requirements.txt +0 -1
- pyobs_fli-2.0.0.dev13/poetry.lock +0 -2257
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/.github/dependabot.yml +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/.github/workflows/dependabot-automerge.yml +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/.github/workflows/pypi.yml +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/.github/workflows/pyrefly.yml +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/.github/workflows/pytest.yml +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/.github/workflows/ruff.yml +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/.pre-commit-config.yaml +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/CHANGELOG.rst +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/CMakeLists.txt +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/LICENSE +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/README.md +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/docs/Makefile +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/docs/make.bat +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/docs/source/_static/pyobs.gif +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/docs/source/index.rst +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/Makefile +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/docxx.sty +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/libfli-camera-parport.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/libfli-camera-parport.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/libfli-camera-usb.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/libfli-camera-usb.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/libfli-camera.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/libfli-camera.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/libfli-debug.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/libfli-filter-focuser.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/libfli-filter-focuser.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/libfli-libfli.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/libfli-mem.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/libfli-mem.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/libfli-raw.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/libfli-raw.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/libfli.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/libfli.dxx +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/libfli.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/unix/bsd/libfli-usb-sys.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/unix/libfli-debug.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/unix/libfli-parport.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/unix/libfli-serial.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/unix/libfli-serial.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/unix/libfli-sys.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/unix/libfli-sys.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/unix/libfli-usb.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/unix/libfli-usb.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/unix/linux/fli_ioctl.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/unix/linux/fliusb_ioctl.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/unix/linux/libfli-parport.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/unix/linux/libfli-usb-sys.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/unix/osx/libfli-usb-sys.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/unix/osx/libfli-usb-sys.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/windows/libfli-debug.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/windows/libfli-parport.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/windows/libfli-serial.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/windows/libfli-serial.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/windows/libfli-sys.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/windows/libfli-usb.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/windows/libfli-usb.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/windows/libfli-windows-parport.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/windows/libfli-windows.c +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/windows/libfli.def +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/windows/libfli.rc +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/windows/libfli.sln +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/windows/libfli.vcproj +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/windows/libfli64.def +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/lib/windows/resource.h +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/pyobs_fli/__init__.py +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/pyobs_fli/flibase.py +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/pyobs_fli/flidriver.pyx +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/pyobs_fli/gui.py +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/pyobs_fli/libfli.pxd +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/specs/plans/2026-08-16-nogil-fli-driver-calls.md +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/tests/test_flicamera.py +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/tests/test_flifilterwheel.py +0 -0
- {pyobs_fli-2.0.0.dev13 → pyobs_fli-2.0.1}/tests/test_import.py +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyobs-fli
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: pyobs module for FLI cameras
|
|
5
5
|
Author-Email: Tim-Oliver Husser <thusser@uni-goettingen.de>
|
|
6
6
|
License-Expression: MIT
|
|
7
7
|
Requires-Python: >=3.11
|
|
8
8
|
Requires-Dist: astropy<9,>=7.0.1
|
|
9
9
|
Requires-Dist: numpy<3,>=2.2.5
|
|
10
|
-
Requires-Dist: pyobs-core<3,>=2.
|
|
10
|
+
Requires-Dist: pyobs-core<3,>=2.6.1
|
|
11
11
|
Provides-Extra: gui
|
|
12
|
-
Requires-Dist: pyobs-core[gui]<3,>=2.
|
|
12
|
+
Requires-Dist: pyobs-core[gui]<3,>=2.6.1; extra == "gui"
|
|
13
13
|
Requires-Dist: qasync>=0.27; extra == "gui"
|
|
14
14
|
|
|
@@ -53,6 +53,10 @@ extensions = [
|
|
|
53
53
|
|
|
54
54
|
intersphinx_mapping = {"http://docs.python.org/3": None}
|
|
55
55
|
|
|
56
|
+
# flidriver.pyx wraps the vendor FLI SDK as a compiled extension - not buildable on RTD,
|
|
57
|
+
# and not needed for the FliCamera/FliFilterWheel autoclass docs.
|
|
58
|
+
autodoc_mock_imports = ["pyobs_fli.flidriver"]
|
|
59
|
+
|
|
56
60
|
# napoleon settings
|
|
57
61
|
napoleon_google_docstring = True
|
|
58
62
|
napoleon_numpy_docstring = False
|
|
@@ -42,6 +42,7 @@ class FliCamera(BaseCamera, FliBaseMixin, ICamera, IWindow, IBinning, ICooling,
|
|
|
42
42
|
self._full_frame = (0, 0, 0, 0)
|
|
43
43
|
self._window = (0, 0, 0, 0)
|
|
44
44
|
self._binning = (1, 1)
|
|
45
|
+
self._serial: str | None = None
|
|
45
46
|
|
|
46
47
|
self.add_background_task(self._poll_cooling)
|
|
47
48
|
|
|
@@ -62,6 +63,7 @@ class FliCamera(BaseCamera, FliBaseMixin, ICamera, IWindow, IBinning, ICooling,
|
|
|
62
63
|
return serial, window, binning, full_frame
|
|
63
64
|
|
|
64
65
|
serial, self._window, self._binning, self._full_frame = await self._run_blocking_or_raise(_get_info)
|
|
66
|
+
self._serial = serial
|
|
65
67
|
log.info("Connected to camera with serial number: %s", serial)
|
|
66
68
|
|
|
67
69
|
if self._temp_setpoint is not None:
|
|
@@ -165,22 +167,25 @@ class FliCamera(BaseCamera, FliBaseMixin, ICamera, IWindow, IBinning, ICooling,
|
|
|
165
167
|
await self._abort_exposure()
|
|
166
168
|
raise
|
|
167
169
|
|
|
168
|
-
def _get_headers() -> tuple[float, float, tuple[int, int, int, int]]:
|
|
170
|
+
def _get_headers() -> tuple[float, float, float, tuple[int, int, int, int]]:
|
|
169
171
|
return (
|
|
170
172
|
driver.get_temp(FliTemperature.CCD),
|
|
173
|
+
driver.get_temp(FliTemperature.BASE),
|
|
171
174
|
driver.get_cooler_power(),
|
|
172
175
|
driver.get_visible_frame(),
|
|
173
176
|
)
|
|
174
177
|
|
|
175
|
-
ccd_temp, cooler_power, visible_frame = await self._run_blocking_or_raise(_get_headers)
|
|
178
|
+
ccd_temp, base_temp, cooler_power, visible_frame = await self._run_blocking_or_raise(_get_headers)
|
|
176
179
|
|
|
177
180
|
image = Image(img) # type: ignore[arg-type]
|
|
178
181
|
image.header["DATE-OBS"] = (date_obs, "Date and time of start of exposure")
|
|
179
182
|
image.header["EXPTIME"] = (exposure_time, "Exposure time [s]")
|
|
180
183
|
image.header["DET-TEMP"] = (ccd_temp, "CCD temperature [C]")
|
|
184
|
+
image.header["DET-TBAS"] = (base_temp, "Base plate temperature [C]")
|
|
181
185
|
image.header["DET-COOL"] = (cooler_power, "Cooler power [percent]")
|
|
182
186
|
image.header["DET-TSET"] = (self._temp_setpoint, "Cooler setpoint [C]")
|
|
183
187
|
image.header["INSTRUME"] = (self._driver.name, "Name of instrument")
|
|
188
|
+
image.header["DET-ID"] = (self._serial, "Camera serial number")
|
|
184
189
|
image.header["XBINNING"] = image.header["DET-BIN1"] = (self._binning[0], "Binning factor used on X axis")
|
|
185
190
|
image.header["YBINNING"] = image.header["DET-BIN2"] = (self._binning[1], "Binning factor used on Y axis")
|
|
186
191
|
image.header["XORGSUBF"] = (self._window[0], "Subframe origin on X axis")
|
|
@@ -4,10 +4,10 @@ from typing import Any
|
|
|
4
4
|
|
|
5
5
|
import pyobs.utils.exceptions as exc
|
|
6
6
|
from pyobs.events import FilterChangedEvent
|
|
7
|
-
from pyobs.interfaces import
|
|
7
|
+
from pyobs.interfaces import IFilters, IFitsHeaderBefore, IReady
|
|
8
8
|
from pyobs.interfaces.IFilters import FiltersCapabilities, FilterState
|
|
9
9
|
from pyobs.interfaces.IReady import ReadyState
|
|
10
|
-
from pyobs.mixins import MotionStatusMixin
|
|
10
|
+
from pyobs.mixins import FilterHeaderMixin, MotionStatusMixin
|
|
11
11
|
from pyobs.modules import Module
|
|
12
12
|
from pyobs.utils.enums import MotionStatus
|
|
13
13
|
|
|
@@ -22,7 +22,7 @@ log = logging.getLogger(__name__)
|
|
|
22
22
|
_FILTER_MOVE_TIMEOUT = 120.0
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
class FliFilterWheel(Module, FliBaseMixin, MotionStatusMixin, IFilters, IFitsHeaderBefore):
|
|
25
|
+
class FliFilterWheel(FilterHeaderMixin, Module, FliBaseMixin, MotionStatusMixin, IFilters, IFitsHeaderBefore):
|
|
26
26
|
"""A pyobs module for FLI filter wheels."""
|
|
27
27
|
|
|
28
28
|
__module__ = "pyobs_fli"
|
|
@@ -138,11 +138,5 @@ class FliFilterWheel(Module, FliBaseMixin, MotionStatusMixin, IFilters, IFitsHea
|
|
|
138
138
|
async def stop_motion(self, device: str | None = None, **kwargs: Any) -> None:
|
|
139
139
|
pass
|
|
140
140
|
|
|
141
|
-
async def get_fits_header_before(
|
|
142
|
-
self, namespaces: list[str] | None = None, **kwargs: Any
|
|
143
|
-
) -> dict[str, FitsHeaderEntry]:
|
|
144
|
-
"""Returns FITS header for the current status of this module."""
|
|
145
|
-
return {"FILTER": FitsHeaderEntry(self._current_filter, "Current filter")}
|
|
146
|
-
|
|
147
141
|
|
|
148
142
|
__all__ = ["FliFilterWheel"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "pyobs-fli"
|
|
3
|
-
version = "2.0.
|
|
3
|
+
version = "2.0.1"
|
|
4
4
|
description = "pyobs module for FLI cameras"
|
|
5
5
|
authors = [{ name = "Tim-Oliver Husser", email = "thusser@uni-goettingen.de" }]
|
|
6
6
|
requires-python = ">=3.11"
|
|
@@ -8,12 +8,12 @@ license = "MIT"
|
|
|
8
8
|
dependencies = [
|
|
9
9
|
"astropy>=7.0.1,<9",
|
|
10
10
|
"numpy>=2.2.5,<3",
|
|
11
|
-
"pyobs-core>=2.
|
|
11
|
+
"pyobs-core>=2.6.1,<3",
|
|
12
12
|
]
|
|
13
13
|
|
|
14
14
|
[project.optional-dependencies]
|
|
15
15
|
gui = [
|
|
16
|
-
"pyobs-core[gui]>=2.
|
|
16
|
+
"pyobs-core[gui]>=2.6.1,<3",
|
|
17
17
|
"qasync>=0.27",
|
|
18
18
|
]
|
|
19
19
|
|
|
@@ -2320,7 +2320,7 @@ wheels = [
|
|
|
2320
2320
|
|
|
2321
2321
|
[[package]]
|
|
2322
2322
|
name = "pyobs-core"
|
|
2323
|
-
version = "2.
|
|
2323
|
+
version = "2.6.1"
|
|
2324
2324
|
source = { registry = "https://pypi.org/simple" }
|
|
2325
2325
|
dependencies = [
|
|
2326
2326
|
{ name = "aiohttp" },
|
|
@@ -2352,9 +2352,9 @@ dependencies = [
|
|
|
2352
2352
|
{ name = "tenacity" },
|
|
2353
2353
|
{ name = "typing-extensions" },
|
|
2354
2354
|
]
|
|
2355
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
2355
|
+
sdist = { url = "https://files.pythonhosted.org/packages/af/c6/cfaf041ee13cdec9475e8081043091de72f1f9e22e2c0788c2f048f93687/pyobs_core-2.6.1.tar.gz", hash = "sha256:c0c0314088f6d87304be65f296a855b5410efbd00881b3e56cc7ad3dc0613aa4", size = 407925, upload-time = "2026-09-03T17:17:55.708Z" }
|
|
2356
2356
|
wheels = [
|
|
2357
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2357
|
+
{ url = "https://files.pythonhosted.org/packages/cf/60/936d5620525ab3c0b169dfd50a61b78cad03d2e13f3bd72c96aacb29a183/pyobs_core-2.6.1-py3-none-any.whl", hash = "sha256:629ddfd6e080f7fd9b71f84286c08b0c5a66a711be23a1d8f6c31233fbfdf006", size = 637177, upload-time = "2026-09-03T17:17:54.184Z" },
|
|
2358
2358
|
]
|
|
2359
2359
|
|
|
2360
2360
|
[package.optional-dependencies]
|
|
@@ -2366,7 +2366,7 @@ gui = [
|
|
|
2366
2366
|
|
|
2367
2367
|
[[package]]
|
|
2368
2368
|
name = "pyobs-fli"
|
|
2369
|
-
version = "2.0.
|
|
2369
|
+
version = "2.0.1"
|
|
2370
2370
|
source = { editable = "." }
|
|
2371
2371
|
dependencies = [
|
|
2372
2372
|
{ name = "astropy" },
|
|
@@ -2395,8 +2395,8 @@ dev = [
|
|
|
2395
2395
|
requires-dist = [
|
|
2396
2396
|
{ name = "astropy", specifier = ">=7.0.1,<9" },
|
|
2397
2397
|
{ name = "numpy", specifier = ">=2.2.5,<3" },
|
|
2398
|
-
{ name = "pyobs-core", specifier = ">=2.
|
|
2399
|
-
{ name = "pyobs-core", extras = ["gui"], marker = "extra == 'gui'", specifier = ">=2.
|
|
2398
|
+
{ name = "pyobs-core", specifier = ">=2.6.1,<3" },
|
|
2399
|
+
{ name = "pyobs-core", extras = ["gui"], marker = "extra == 'gui'", specifier = ">=2.6.1,<3" },
|
|
2400
2400
|
{ name = "qasync", marker = "extra == 'gui'", specifier = ">=0.27" },
|
|
2401
2401
|
]
|
|
2402
2402
|
provides-extras = ["gui"]
|
|
@@ -2728,27 +2728,27 @@ wheels = [
|
|
|
2728
2728
|
|
|
2729
2729
|
[[package]]
|
|
2730
2730
|
name = "ruff"
|
|
2731
|
-
version = "0.16.
|
|
2732
|
-
source = { registry = "https://pypi.org/simple" }
|
|
2733
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
2734
|
-
wheels = [
|
|
2735
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2736
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2737
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2738
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2739
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2740
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2741
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2742
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2743
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2744
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2745
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2746
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2747
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2748
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2749
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2750
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2751
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2731
|
+
version = "0.16.5"
|
|
2732
|
+
source = { registry = "https://pypi.org/simple" }
|
|
2733
|
+
sdist = { url = "https://files.pythonhosted.org/packages/f3/85/c8e12473c93018f92d19dd988a294202e1c27426c47ec4de53ffb847b8d8/ruff-0.16.5.tar.gz", hash = "sha256:1b88500f9ffbcab3dedb0082c9f9492e91ec3d618aac1236a3e0189938f7040b", size = 4912003, upload-time = "2026-08-27T16:34:18.258Z" }
|
|
2734
|
+
wheels = [
|
|
2735
|
+
{ url = "https://files.pythonhosted.org/packages/c6/b6/77c90a970fe2dae17a723acbd011043ea97c98d7deacccefdc4ba74ec512/ruff-0.16.5-py3-none-linux_armv6l.whl", hash = "sha256:12e5f673e774c35fbb62f288809c7653b73445f8ecec6b6063fd6ea3521aa14b", size = 10011941, upload-time = "2026-08-27T16:33:41.287Z" },
|
|
2736
|
+
{ url = "https://files.pythonhosted.org/packages/4b/46/6cf67cf6411885a1d6f7f6d801682f155536a85176d10b605e2ceffed8bd/ruff-0.16.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:eda58a5802de40e7ed5b32b64e0b32539338cc6fcd2c78f61e3ad6a0d79f51c3", size = 10204049, upload-time = "2026-08-27T16:33:44.056Z" },
|
|
2737
|
+
{ url = "https://files.pythonhosted.org/packages/46/fd/c8720ca7a090abf0c2fef4abe8a5ef6e5127ed15196d8886ff75a2b370e2/ruff-0.16.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c5ae9a7b9a8875131f40f8fe967cc86abf899779efd663cb7ce3d572d01da7eb", size = 9809037, upload-time = "2026-08-27T16:33:46.257Z" },
|
|
2738
|
+
{ url = "https://files.pythonhosted.org/packages/43/45/a684caacdedaca180f52bacccc40bf0789d2c5a7c75f25324853e9eaedb5/ruff-0.16.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b719b0a1f4d59710d283ab2965f621684a108a9e41da622e3b23f0326cd0025", size = 9964129, upload-time = "2026-08-27T16:33:48.352Z" },
|
|
2739
|
+
{ url = "https://files.pythonhosted.org/packages/9e/f2/5d2bcdaca6b5b93d1b4dfc166cd2aebf7680143a1b38a28759df13a94d31/ruff-0.16.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2298f2780ed1be0c5cb1361e32ab7b1467f3cce7dabe101d2210a314f2fe42e9", size = 9821518, upload-time = "2026-08-27T16:33:50.57Z" },
|
|
2740
|
+
{ url = "https://files.pythonhosted.org/packages/aa/ff/011cce29accf9257d5974145b733fc653a37985ed6825413a3987cefbfe0/ruff-0.16.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:258f29035a2dd021e7861e631b227a5b3f14e50c1184c9a6a122c5f4576154d7", size = 10534835, upload-time = "2026-08-27T16:33:52.522Z" },
|
|
2741
|
+
{ url = "https://files.pythonhosted.org/packages/d7/5a/f0cf109bada9bba0e96c90c21c9f9251803f57225c32d293327a03c710d6/ruff-0.16.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b9a4f0432966834019c74d1b7e5c51224305d7713f3d7faf3e7451f1a3be3cde", size = 11252550, upload-time = "2026-08-27T16:33:54.521Z" },
|
|
2742
|
+
{ url = "https://files.pythonhosted.org/packages/63/4d/1d481aaea2046c6a7ed7c291f9004c669cce3c087b6b376ed5b08271e3fe/ruff-0.16.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5eb3a8c3d0ade9cea42b591fd530368e8798380e30e0a308b85a5cf718f09ea", size = 10777949, upload-time = "2026-08-27T16:33:56.88Z" },
|
|
2743
|
+
{ url = "https://files.pythonhosted.org/packages/ee/34/ee245ca55f64443233034b3d02b03236b19242004281247c079390b7facd/ruff-0.16.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef0f69e191a13a3c9816f63163c88790cb12cd157bbbb384e9c44745702ab105", size = 10311656, upload-time = "2026-08-27T16:33:59.12Z" },
|
|
2744
|
+
{ url = "https://files.pythonhosted.org/packages/a7/4d/c33a333e341c0a2b96c715b52d89a606f5a34cd4ac493cd9b8d0187186b8/ruff-0.16.5-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:0eeab41fbea2c42f98dfb9822cdccda9d24ba38d49f6dc945b5c236d48f0ef29", size = 10532125, upload-time = "2026-08-27T16:34:01.166Z" },
|
|
2745
|
+
{ url = "https://files.pythonhosted.org/packages/30/e1/a64cef78b40192497bb98a27a8aa8f2c98ee9ee15bc97f7712d94ef32937/ruff-0.16.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:f0768e9df4300713fff30733c87575f68b6f1d8de41184e505b7fdd9c0c95eaf", size = 10097648, upload-time = "2026-08-27T16:34:03.16Z" },
|
|
2746
|
+
{ url = "https://files.pythonhosted.org/packages/cc/4e/4cdc9ed3c3e109d2f71e62572a37457298d7bc7501ec3138babb7ed32bbd/ruff-0.16.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:95cc70cdc7aa80c338de356279d2adbeb2de0f520b9ecd8aba75b94e95e02f91", size = 9829344, upload-time = "2026-08-27T16:34:05.134Z" },
|
|
2747
|
+
{ url = "https://files.pythonhosted.org/packages/39/4a/31ed35ce31729955fc583ee0d176d6e784c1290cb0b0a75cb2134c1ab72a/ruff-0.16.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d185c8398ded1bfd91c0c2cb258346307571eccc473a8490af8c3977399c384a", size = 10277117, upload-time = "2026-08-27T16:34:07.425Z" },
|
|
2748
|
+
{ url = "https://files.pythonhosted.org/packages/a8/a0/60356d86687b4b666d593df213f4dc3041750d024cb7bf2cfa81cfd65c2e/ruff-0.16.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:fb8e3a3c4c6a784150a7ced53b015f4b253fc2bf97a610886419ead64b4756ef", size = 10711653, upload-time = "2026-08-27T16:34:09.712Z" },
|
|
2749
|
+
{ url = "https://files.pythonhosted.org/packages/ed/20/656d67f5b25ca9bda4e02b1de25867b2954e1d19e03648060f167ad0f4cc/ruff-0.16.5-py3-none-win32.whl", hash = "sha256:288b0a5f080492fe5635db849f9e2e84aa3cce7b7f0e955997d416c507c76a26", size = 10034250, upload-time = "2026-08-27T16:34:11.8Z" },
|
|
2750
|
+
{ url = "https://files.pythonhosted.org/packages/5b/42/ee8e68a207b9127fcde6c3d7e197def432f346cb1af159e1fa14ca0d1cdc/ruff-0.16.5-py3-none-win_amd64.whl", hash = "sha256:ddc6385fb2137f616357ca03d6c74f4be987f80fed4008566b754f6032b8546f", size = 10516714, upload-time = "2026-08-27T16:34:13.963Z" },
|
|
2751
|
+
{ url = "https://files.pythonhosted.org/packages/73/e3/7df5a396e445b9ba49ce9a9437439a4d80042c61c0ade199abf8d16de1ac/ruff-0.16.5-py3-none-win_arm64.whl", hash = "sha256:a64abe90968719b851bb7cedffaa8753fbdbdadab483089682db623f3edc587e", size = 10391564, upload-time = "2026-08-27T16:34:16.064Z" },
|
|
2752
2752
|
]
|
|
2753
2753
|
|
|
2754
2754
|
[[package]]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
sphinx-rtd-theme
|