Start adding ANN ruff rules
This commit is contained in:
parent
154f063ab3
commit
24233412af
19 changed files with 123 additions and 46 deletions
|
|
@ -8,6 +8,7 @@ See repository root for licensing information.
|
|||
|
||||
from __future__ import annotations
|
||||
from typing import Literal, Optional, Tuple, Any
|
||||
from types import TracebackType
|
||||
import json
|
||||
import io
|
||||
import time
|
||||
|
|
@ -185,7 +186,12 @@ class BaseCamera(lt.Thing):
|
|||
"""Open hardware connection when the Thing context manager is opened."""
|
||||
raise NotImplementedError("CameraThings must define their own __enter__ method")
|
||||
|
||||
def __exit__(self, _exc_type, _exc_value, _traceback) -> None:
|
||||
def __exit__(
|
||||
self,
|
||||
_exc_type: type[BaseException],
|
||||
_exc_value: Optional[BaseException],
|
||||
_traceback: Optional[TracebackType],
|
||||
) -> None:
|
||||
"""Close hardware connection when the Thing context manager is closed."""
|
||||
raise NotImplementedError("CameraThings must define their own __exit__ method")
|
||||
|
||||
|
|
@ -575,7 +581,7 @@ class BaseCamera(lt.Thing):
|
|||
return self.active_detector.status
|
||||
|
||||
@lt.thing_action
|
||||
def update_detector_settings(self, data) -> None:
|
||||
def update_detector_settings(self, data: dict[str, Any]) -> None:
|
||||
"""Update the settings of the current detector.
|
||||
|
||||
This is an action not a setting/property as the data model depends on the
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ from __future__ import annotations
|
|||
|
||||
import logging
|
||||
from typing import Literal, Optional
|
||||
from types import TracebackType
|
||||
from threading import Thread
|
||||
|
||||
import cv2
|
||||
|
|
@ -42,7 +43,12 @@ class OpenCVCamera(BaseCamera):
|
|||
self._capture_thread.start()
|
||||
return self
|
||||
|
||||
def __exit__(self, _exc_type, _exc_value, _traceback):
|
||||
def __exit__(
|
||||
self,
|
||||
_exc_type: type[BaseException],
|
||||
_exc_value: Optional[BaseException],
|
||||
_traceback: Optional[TracebackType],
|
||||
):
|
||||
"""Release the camera when the Thing context manager is closed.
|
||||
|
||||
Before releasing the camera the capture thread is closed.
|
||||
|
|
|
|||
|
|
@ -15,7 +15,8 @@ https://datasheets.raspberrypi.com/camera/raspberry-pi-camera-guide.pdf
|
|||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
from typing import Annotated, Iterator, Literal, Mapping, Optional, overload
|
||||
from typing import Annotated, Iterator, Literal, Mapping, Optional, overload, Any
|
||||
from types import TracebackType
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
|
|
@ -65,7 +66,12 @@ class PicameraStreamOutput(Output):
|
|||
self.portal = portal
|
||||
|
||||
def outputframe(
|
||||
self, frame, _keyframe=True, _timestamp=None, _packet=None, _audio=False
|
||||
self,
|
||||
frame: bytes,
|
||||
_keyframe: Optional[bool] = True,
|
||||
_timestamp: Optional[int] = None,
|
||||
_packet: Any = None,
|
||||
_audio: bool = False,
|
||||
):
|
||||
"""Add a frame to the stream's ringbuffer."""
|
||||
self.stream.add_frame(frame, self.portal)
|
||||
|
|
@ -396,7 +402,7 @@ class StreamingPiCamera2(BaseCamera):
|
|||
return self._picamera is not None and self._picamera.started
|
||||
|
||||
@contextmanager
|
||||
def _streaming_picamera(self, pause_stream=False) -> Iterator[Picamera2]:
|
||||
def _streaming_picamera(self, pause_stream: bool = False) -> Iterator[Picamera2]:
|
||||
"""Lock access to picamera and return the underlying ``Picamera2`` instance.
|
||||
|
||||
Optionally the stream can be paused to allow updating the camera settings.
|
||||
|
|
@ -419,7 +425,12 @@ class StreamingPiCamera2(BaseCamera):
|
|||
if pause_stream and already_streaming:
|
||||
self.start_streaming()
|
||||
|
||||
def __exit__(self, exc_type, exc_value, traceback):
|
||||
def __exit__(
|
||||
self,
|
||||
_exc_type: type[BaseException],
|
||||
_exc_value: Optional[BaseException],
|
||||
_traceback: Optional[TracebackType],
|
||||
):
|
||||
"""Close the picamera connection when the Thing context manager is closed."""
|
||||
self.stop_streaming()
|
||||
with self._streaming_picamera() as cam:
|
||||
|
|
@ -725,7 +736,10 @@ class StreamingPiCamera2(BaseCamera):
|
|||
return tuple(recalibrate_utils.get_static_ccm(self.tuning)[0]["ccm"])
|
||||
|
||||
@colour_correction_matrix.setter # type: ignore
|
||||
def colour_correction_matrix(self, value) -> None:
|
||||
def colour_correction_matrix(
|
||||
self,
|
||||
value: tuple[float, float, float, float, float, float, float, float, float],
|
||||
) -> None:
|
||||
recalibrate_utils.set_static_ccm(self.tuning, value)
|
||||
|
||||
if self._picamera is not None:
|
||||
|
|
|
|||
|
|
@ -353,7 +353,9 @@ def upsample_channels(grids: np.ndarray, shape: tuple[int]) -> np.ndarray:
|
|||
return zoom(grids, zoom_factors, order=1)[:, : shape[0], : shape[1]]
|
||||
|
||||
|
||||
def downsampled_channels(channels: np.ndarray, blacklevel=64) -> list[np.ndarray]:
|
||||
def downsampled_channels(
|
||||
channels: np.ndarray, blacklevel: int = 64
|
||||
) -> list[np.ndarray]:
|
||||
"""Generate a downsampled, un-normalised image from which to calculate the LST.
|
||||
|
||||
TODO: blacklevel probably ought to be determined from the camera...
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ See repository root for licensing information.
|
|||
from __future__ import annotations
|
||||
import logging
|
||||
from typing import Literal, Optional
|
||||
from types import TracebackType
|
||||
from threading import Thread
|
||||
import time
|
||||
|
||||
|
|
@ -212,7 +213,12 @@ class SimulatedCamera(BaseCamera):
|
|||
self.start_streaming()
|
||||
return self
|
||||
|
||||
def __exit__(self, _exc_type, _exc_value, _traceback):
|
||||
def __exit__(
|
||||
self,
|
||||
_exc_type: type[BaseException],
|
||||
_exc_value: Optional[BaseException],
|
||||
_traceback: Optional[TracebackType],
|
||||
):
|
||||
"""Close the capture thread when the Thing context manager is closed."""
|
||||
if self.stream_active:
|
||||
self._capture_enabled = False
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue