-
-
Save anonymous/4305d59ecf94fedbf44b0d4bb8c9eb54 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/canmatrix/canmatrix.py b/canmatrix/canmatrix.py | |
index 12b0eed..82eed9e 100644 | |
--- a/canmatrix/canmatrix.py | |
+++ b/canmatrix/canmatrix.py | |
@@ -116,69 +116,47 @@ class Signal(object): | |
# def __init__(self, name, startbit, signalsize, is_little_endian, is_signed=False, factor=1, offset=0, min=0, max=0, unit="", receiver=[], multiplex=None): | |
def __init__(self, name, **kwargs): | |
- if 'startBit' in kwargs: | |
- self._startbit = int(kwargs["startBit"]) | |
- else: | |
- self._startbit = 0 | |
- | |
- if 'signalSize' in kwargs: | |
- self._signalsize = int(kwargs["signalSize"]) | |
- else: | |
- self._signalsize = 0 | |
- | |
- if 'is_little_endian' in kwargs: | |
- self._is_little_endian = kwargs["is_little_endian"] | |
- else: | |
- self._is_little_endian = True | |
- | |
- if 'is_signed' in kwargs: | |
- self._is_signed = kwargs["is_signed"] | |
- else: | |
- self._is_signed = True | |
- | |
- if 'factor' in kwargs: | |
- self._factor = float(kwargs["factor"]) | |
- else: | |
- self._factor = float(1) | |
- | |
- if 'offset' in kwargs: | |
- self._offset = float(kwargs["offset"]) | |
- else: | |
- self._offset = float(0) | |
- | |
- if 'min' in kwargs: | |
- self._min = float(kwargs["min"]) | |
- else: | |
- self._min = float(0) | |
- | |
- if 'max' in kwargs: | |
- self._max = float(kwargs["max"]) | |
- else: | |
- self._max = float(0) | |
- | |
- if 'unit' in kwargs: | |
- self._unit = kwargs["unit"] | |
- else: | |
- self._unit = "" | |
+ def multiplex(value): | |
+ if value is not None and value != 'Multiplexor': | |
+ multiplex = int(value) | |
+ else: | |
+ multiplex = value | |
+ return multiplex | |
+ | |
+ args = [ | |
+ ('startBit', '_startbit', int, 0), | |
+ ('signalSize', '_signalsize', int, 0), | |
+ ('is_little_endian', '_is_little_endian', bool, True), | |
+ ('is_signed', '_is_signed', bool, True), | |
+ ('factor', '_factor', float, 1), | |
+ ('offset', '_offset', float, 0), | |
+ ('min', '_min', float, 0), | |
+ ('max', '_max', float, 0), | |
+ ('unit', '_unit', str, ""), | |
+ ('receiver', '_receiver', None, []), | |
+ ('comment', '_comment', str, None), | |
+ ('multiplex', '_multiplex', multiplex, 0) | |
+ ] | |
+ | |
+ for arg_name, destination, function, default in args: | |
+ try: | |
+ value = kwargs[arg_name] | |
+ except KeyError: | |
+ value = default | |
+ else: | |
+ kwargs.pop(arg_name) | |
- if 'receiver' in kwargs: | |
- self._receiver = kwargs["receiver"] | |
- else: | |
- self._receiver = [] | |
+ if function is not None: | |
+ value = function(value) | |
- if 'comment' in kwargs: | |
- self._comment = kwargs["comment"] | |
- else: | |
- self._comment = None | |
+ setattr(self, destination, value) | |
- if 'multiplex' in kwargs: | |
- if kwargs["multiplex"] is not None and kwargs["multiplex"] != 'Multiplexor': | |
- multiplex = int(kwargs["multiplex"]) | |
- else: | |
- multiplex = kwargs["multiplex"] | |
- self._multiplex = multiplex | |
- else: | |
- self._multiplex = None | |
+ if len(kwargs) > 0: | |
+ raise TypeError('{}() got unexpected argument{} {}'.format( | |
+ self.__class__.__name__, | |
+ 's' if len(kwargs) > 1 else '', | |
+ ', '.join(kwargs.keys()) | |
+ )) | |
self._name = name | |
self._attributes = {} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment