Source code for radloggerpy.cli.v1.device.device_helper

# Copyright (C) 2020 Dantali0n
# SPDX-License-Identifier: Apache-2.0

import abc

from radloggerpy._i18n import _
from radloggerpy.cli.argument_helper import ArgumentHelper
from radloggerpy.device.device_manager import DeviceManager


[docs] class DeviceHelper(ArgumentHelper, metaclass=abc.ABCMeta): """Abstract helper for shared device interface""" # Should be overridden by child classes _implementation_key = ""
[docs] def _add_implementations(self, device_interface=None): if not self._implementation_key: raise NotImplementedError( _( "_implementation_key variable is not overridden in " "%s child class" % self.__class__.__name__ ) ) if device_interface is None: choices = [dev.NAME for dev in DeviceManager.get_device_implementations()] else: choices = [ dev.NAME for dev in DeviceManager.get_device_implementations() if dev.INTERFACE == device_interface ] self.arguments[self._implementation_key].add_kwarg("choices", choices)