Skip to content

Commit

Permalink
#30 - linting
Browse files Browse the repository at this point in the history
  • Loading branch information
crnbaker committed Jul 20, 2023
1 parent 024b89c commit bc81904
Show file tree
Hide file tree
Showing 9 changed files with 53 additions and 41 deletions.
2 changes: 1 addition & 1 deletion src/example_scripts/continuous_averaging_fifo_mode.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion src/example_scripts/continuous_multi_fifo_mode.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion src/example_scripts/finite_multi_fifo_mode.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
7 changes: 5 additions & 2 deletions src/example_scripts/standard_single_mode.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
5 changes: 3 additions & 2 deletions src/spectrumdevice/devices/digitiser/digitiser_card.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
]
)
Expand Down
20 changes: 6 additions & 14 deletions src/spectrumdevice/devices/mocks/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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
Expand Down Expand Up @@ -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]
Expand Down
9 changes: 2 additions & 7 deletions src/spectrumdevice/devices/mocks/mock_abstract_devices.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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


Expand Down Expand Up @@ -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(
Expand Down
36 changes: 28 additions & 8 deletions src/spectrumdevice/devices/mocks/mock_waveform_source.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.
Expand All @@ -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
Expand All @@ -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.
Expand Down Expand Up @@ -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:
Expand Down
11 changes: 6 additions & 5 deletions src/tests/test_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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,)])
Expand All @@ -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)
Expand All @@ -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)

Expand All @@ -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)

Expand Down

0 comments on commit bc81904

Please sign in to comment.