From bc81904327d908d4505cacc65784fe0ab4f5df31 Mon Sep 17 00:00:00 2001 From: crnbaker Date: Thu, 20 Jul 2023 17:26:41 +0100 Subject: [PATCH] #30 - linting --- .../continuous_averaging_fifo_mode.py | 2 +- .../continuous_multi_fifo_mode.py | 2 +- src/example_scripts/finite_multi_fifo_mode.py | 2 +- src/example_scripts/standard_single_mode.py | 7 ++-- .../devices/digitiser/digitiser_card.py | 5 +-- src/spectrumdevice/devices/mocks/__init__.py | 20 ++++------- .../devices/mocks/mock_abstract_devices.py | 9 ++--- .../devices/mocks/mock_waveform_source.py | 36 ++++++++++++++----- src/tests/test_integration.py | 11 +++--- 9 files changed, 53 insertions(+), 41 deletions(-) diff --git a/src/example_scripts/continuous_averaging_fifo_mode.py b/src/example_scripts/continuous_averaging_fifo_mode.py index 5b66d4b..ab5ea5e 100644 --- a/src/example_scripts/continuous_averaging_fifo_mode.py +++ b/src/example_scripts/continuous_averaging_fifo_mode.py @@ -23,7 +23,7 @@ def continuous_averaging_multi_fifo_example( trigger_source: TriggerSource, device_number: int, ip_address: Optional[str] = None, - acquisition_length=400, + acquisition_length: int = 400, ) -> List[Measurement]: if not mock_mode: diff --git a/src/example_scripts/continuous_multi_fifo_mode.py b/src/example_scripts/continuous_multi_fifo_mode.py index 4b977da..aa7a530 100644 --- a/src/example_scripts/continuous_multi_fifo_mode.py +++ b/src/example_scripts/continuous_multi_fifo_mode.py @@ -22,7 +22,7 @@ def continuous_multi_fifo_example( trigger_source: TriggerSource, device_number: int, ip_address: Optional[str] = None, - acquisition_length=400 + acquisition_length: int = 400, ) -> List[Measurement]: if not mock_mode: diff --git a/src/example_scripts/finite_multi_fifo_mode.py b/src/example_scripts/finite_multi_fifo_mode.py index f25750e..df96f9a 100644 --- a/src/example_scripts/finite_multi_fifo_mode.py +++ b/src/example_scripts/finite_multi_fifo_mode.py @@ -20,7 +20,7 @@ def finite_multi_fifo_example( trigger_source: TriggerSource, device_number: int, ip_address: Optional[str] = None, - acquisition_length=400, + acquisition_length: int = 400, ) -> List[Measurement]: if not mock_mode: diff --git a/src/example_scripts/standard_single_mode.py b/src/example_scripts/standard_single_mode.py index 6bad7fa..74c5d0a 100644 --- a/src/example_scripts/standard_single_mode.py +++ b/src/example_scripts/standard_single_mode.py @@ -17,8 +17,11 @@ def standard_single_mode_example( - mock_mode: bool, trigger_source: TriggerSource, device_number: int, ip_address: Optional[str] = None, - acquisition_length: int = 400 + mock_mode: bool, + trigger_source: TriggerSource, + device_number: int, + ip_address: Optional[str] = None, + acquisition_length: int = 400, ) -> Measurement: if not mock_mode: diff --git a/src/spectrumdevice/devices/digitiser/digitiser_card.py b/src/spectrumdevice/devices/digitiser/digitiser_card.py index b4e7a67..b9a6be4 100644 --- a/src/spectrumdevice/devices/digitiser/digitiser_card.py +++ b/src/spectrumdevice/devices/digitiser/digitiser_card.py @@ -158,8 +158,9 @@ def get_waveforms(self, num_acquisitions: int) -> List[List[NDArray[float_]]]: for n in range(num_acquisitions): repeat_acquisitions.append( [ - cast(SpectrumDigitiserChannel, - self.channels[ch_num]).convert_raw_waveform_to_voltage_waveform(squeeze(waveform)) + cast(SpectrumDigitiserChannel, self.channels[ch_num]).convert_raw_waveform_to_voltage_waveform( + squeeze(waveform) + ) for ch_num, waveform in zip(self.enabled_channels, waveforms_in_columns[n, :, :].T) ] ) diff --git a/src/spectrumdevice/devices/mocks/__init__.py b/src/spectrumdevice/devices/mocks/__init__.py index aee1fb5..f8df70c 100644 --- a/src/spectrumdevice/devices/mocks/__init__.py +++ b/src/spectrumdevice/devices/mocks/__init__.py @@ -6,12 +6,10 @@ import logging from time import perf_counter, sleep -from typing import List, Optional, Sequence - -from numpy import zeros +from typing import List, Sequence from spectrum_gmbh.regs import ( - SPC_DATA_AVAIL_USER_LEN, SPC_DATA_AVAIL_USER_POS, SPC_FNCTYPE, + SPC_FNCTYPE, SPC_MIINST_CHPERMODULE, SPC_MIINST_MODULES, SPC_PCITYP, @@ -25,14 +23,8 @@ SpectrumNoTransferBufferDefined, SpectrumSettingsMismatchError, ) -from spectrumdevice.settings import TransferBuffer from spectrumdevice.settings.card_dependent_properties import CardType, ModelNumber from spectrumdevice.settings.device_modes import AcquisitionMode -from spectrumdevice.settings.transfer_buffer import ( - BufferDirection, - BufferType, - NOTIFY_SIZE_PAGE_SIZE_IN_BYTES, transfer_buffer_factory, -) logger = logging.getLogger(__name__) MOCK_TRANSFER_TIMEOUT_IN_S = 10 @@ -130,10 +122,10 @@ def wait_for_transfer_chunk_to_complete(self) -> None: new mock transfer has been completed by waiting for a change to TRANSFER_CHUNK_COUNTER.""" if self._transfer_buffer: t0 = perf_counter() - t_elapsed = 0 - while (self._previous_transfer_chunk_count == - self._param_dict[TRANSFER_CHUNK_COUNTER])\ - and t_elapsed < MOCK_TRANSFER_TIMEOUT_IN_S: + t_elapsed = 0.0 + while ( + self._previous_transfer_chunk_count == self._param_dict[TRANSFER_CHUNK_COUNTER] + ) and t_elapsed < MOCK_TRANSFER_TIMEOUT_IN_S: sleep(0.1) t_elapsed = perf_counter() - t0 self._previous_transfer_chunk_count = self._param_dict[TRANSFER_CHUNK_COUNTER] diff --git a/src/spectrumdevice/devices/mocks/mock_abstract_devices.py b/src/spectrumdevice/devices/mocks/mock_abstract_devices.py index fda6126..322914f 100644 --- a/src/spectrumdevice/devices/mocks/mock_abstract_devices.py +++ b/src/spectrumdevice/devices/mocks/mock_abstract_devices.py @@ -8,9 +8,6 @@ from threading import Event, Lock, Thread from typing import Dict, Optional -from numpy import float_, ndarray, zeros -from numpy.typing import NDArray - from spectrum_gmbh.regs import ( SPCM_FEAT_EXTFW_SEGSTAT, SPCM_FEAT_MULTI, @@ -30,7 +27,7 @@ from spectrumdevice.devices.abstract_device import AbstractSpectrumDevice from spectrumdevice.devices.digitiser.abstract_spectrum_digitiser import AbstractSpectrumDigitiser from spectrumdevice.devices.mocks.mock_waveform_source import mock_waveform_source_factory -from spectrumdevice.exceptions import SpectrumDeviceNotConnected, SpectrumNoTransferBufferDefined +from spectrumdevice.exceptions import SpectrumDeviceNotConnected from spectrumdevice.settings import AcquisitionMode, SpectrumRegisterLength @@ -135,9 +132,7 @@ def start(self) -> None: """ self.define_transfer_buffer() notify_size = self.transfer_buffers[0].notify_size_in_pages # this will be 0 in STD_SINGLE_MODE - waveform_source = mock_waveform_source_factory(self.acquisition_mode, - self._param_dict, - notify_size) + waveform_source = mock_waveform_source_factory(self.acquisition_mode, self._param_dict, notify_size) amplitude = self.read_spectrum_device_register(SPC_MIINST_MAXADCVALUE) self._acquisition_stop_event.clear() self._acquisition_thread = Thread( diff --git a/src/spectrumdevice/devices/mocks/mock_waveform_source.py b/src/spectrumdevice/devices/mocks/mock_waveform_source.py index 5e16a8c..91238bb 100644 --- a/src/spectrumdevice/devices/mocks/mock_waveform_source.py +++ b/src/spectrumdevice/devices/mocks/mock_waveform_source.py @@ -7,7 +7,6 @@ from abc import ABC, abstractmethod from threading import Event, Lock from time import monotonic, sleep -from typing import Optional from numpy import ndarray from numpy.random import uniform @@ -29,15 +28,26 @@ def __init__(self, param_dict: dict[int, int]): @abstractmethod def __call__( - self, stop_flag: Event, frame_rate: float, amplitude: float, transfer_buffer_data_array: ndarray, samples_per_frame: int, buffer_lock: Lock + self, + stop_flag: Event, + frame_rate: float, + amplitude: float, + transfer_buffer_data_array: ndarray, + samples_per_frame: int, + buffer_lock: Lock, ) -> None: raise NotImplementedError() class SingleModeMockWaveformSource(MockWaveformSource): - def __call__( - self, stop_flag: Event, frame_rate: float, amplitude: float, transfer_buffer_data_array: ndarray, samples_per_frame: int, buffer_lock: Lock + self, + stop_flag: Event, + frame_rate: float, + amplitude: float, + transfer_buffer_data_array: ndarray, + samples_per_frame: int, + buffer_lock: Lock, ) -> None: """When called, this MockWaveformSource simulates SPC_REC_STD_SINGLE Mode, placing a single frames worth of samples into a provided mock on_device_buffer. @@ -58,7 +68,8 @@ def __call__( if not stop_flag.is_set(): with buffer_lock: transfer_buffer_data_array[:samples_per_frame] = uniform( - low=-1 * amplitude, high=amplitude, size=samples_per_frame) + low=-1 * amplitude, high=amplitude, size=samples_per_frame + ) self._param_dict[SPC_DATA_AVAIL_USER_POS] = 0 self._param_dict[SPC_DATA_AVAIL_USER_LEN] = samples_per_frame * bytes_per_sample self._param_dict[TRANSFER_CHUNK_COUNTER] += 1 @@ -70,7 +81,13 @@ def __init__(self, param_dict: dict[int, int], notify_size_in_pages: int): self._notify_size_in_pages = notify_size_in_pages def __call__( - self, stop_flag: Event, frame_rate: float, amplitude: float, transfer_buffer_data_array: ndarray, samples_per_frame: int, buffer_lock: Lock + self, + stop_flag: Event, + frame_rate: float, + amplitude: float, + transfer_buffer_data_array: ndarray, + samples_per_frame: int, + buffer_lock: Lock, ) -> None: """When called, this `MockWaveformSource` simulates SPC_REC_FIFO_MULTI Mode, continuously replacing the contents of on_device_buffer with new frames of noise samples. @@ -108,8 +125,11 @@ def __call__( sleep(1 / notify_sizes_per_second) -def mock_waveform_source_factory(acquisition_mode: AcquisitionMode, param_dict: dict[int, int], notify_size_in_pages: int = 0, - ) -> MockWaveformSource: +def mock_waveform_source_factory( + acquisition_mode: AcquisitionMode, + param_dict: dict[int, int], + notify_size_in_pages: int = 0, +) -> MockWaveformSource: if acquisition_mode == AcquisitionMode.SPC_REC_FIFO_MULTI: return MultiFIFOModeMockWaveformSource(param_dict, notify_size_in_pages) elif AcquisitionMode.SPC_REC_STD_SINGLE: diff --git a/src/tests/test_integration.py b/src/tests/test_integration.py index 1361573..8f70dff 100644 --- a/src/tests/test_integration.py +++ b/src/tests/test_integration.py @@ -13,7 +13,8 @@ from spectrumdevice.measurement import Measurement from spectrumdevice.exceptions import SpectrumDriversNotFound from tests.configuration import ( - ACQUISITION_LENGTH, INTEGRATION_TEST_TRIGGER_SOURCE, + ACQUISITION_LENGTH, + INTEGRATION_TEST_TRIGGER_SOURCE, NUM_CARDS_IN_STAR_HUB, NUM_CHANNELS_PER_MODULE, NUM_MODULES_PER_CARD, @@ -37,7 +38,7 @@ def test_standard_single_mode(self) -> None: trigger_source=INTEGRATION_TEST_TRIGGER_SOURCE, device_number=TEST_DEVICE_NUMBER, ip_address=TEST_DEVICE_IP, - acquisition_length=ACQUISITION_LENGTH + acquisition_length=ACQUISITION_LENGTH, ) self.assertEqual(len(measurement.waveforms), 1) self.assertEqual([wfm.shape for wfm in measurement.waveforms], [(ACQUISITION_LENGTH,)]) @@ -59,7 +60,7 @@ def test_finite_multi_fifo_mode(self) -> None: trigger_source=INTEGRATION_TEST_TRIGGER_SOURCE, device_number=TEST_DEVICE_NUMBER, ip_address=TEST_DEVICE_IP, - acquisition_length=ACQUISITION_LENGTH + acquisition_length=ACQUISITION_LENGTH, ) self.assertEqual(len(measurements), 5) self._asserts_for_fifo_mode(measurements) @@ -71,7 +72,7 @@ def test_continuous_multi_fifo_mode(self) -> None: trigger_source=INTEGRATION_TEST_TRIGGER_SOURCE, device_number=TEST_DEVICE_NUMBER, ip_address=TEST_DEVICE_IP, - acquisition_length=ACQUISITION_LENGTH + acquisition_length=ACQUISITION_LENGTH, ) self._asserts_for_fifo_mode(measurements) @@ -83,7 +84,7 @@ def test_averaging_continuous_multi_fifo_example(self) -> None: trigger_source=INTEGRATION_TEST_TRIGGER_SOURCE, device_number=TEST_DEVICE_NUMBER, ip_address=TEST_DEVICE_IP, - acquisition_length=ACQUISITION_LENGTH + acquisition_length=ACQUISITION_LENGTH, ) self._asserts_for_fifo_mode(measurements)