odxtools 8.0.2__py3-none-any.whl → 8.0.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28,8 +28,10 @@ class DynamicEndmarkerField(Field):
28
28
  doc_frags: List[OdxDocFragment]) -> "DynamicEndmarkerField":
29
29
  kwargs = dataclass_fields_asdict(Field.from_et(et_element, doc_frags))
30
30
 
31
- dyn_end_dop_ref = DynEndDopRef.from_et(
32
- odxrequire(et_element.find("DYN-END-DOP-REF")), doc_frags)
31
+ # ODX 2.0 uses DATA-OBJECT-PROP-REF
32
+ # ODX 2.2 uses DYN-END-DOP-REF
33
+ dop_ref = et_element.find("DYN-END-DOP-REF") or et_element.find("DATA-OBJECT-PROP-REF")
34
+ dyn_end_dop_ref = DynEndDopRef.from_et(odxrequire(dop_ref), doc_frags)
33
35
 
34
36
  return DynamicEndmarkerField(dyn_end_dop_ref=dyn_end_dop_ref, **kwargs)
35
37
 
odxtools/multiplexer.py CHANGED
@@ -96,15 +96,22 @@ class Multiplexer(ComplexDop):
96
96
  f"(case_name, content_value) tuple instead of as '{physical_value!r}'")
97
97
 
98
98
  mux_case: Union[MultiplexerCase, MultiplexerDefaultCase]
99
+ applicable_cases: List[Union[MultiplexerCase, MultiplexerDefaultCase]]
100
+
99
101
  if isinstance(case_spec, str):
100
102
  applicable_cases = [x for x in self.cases if x.short_name == case_spec]
103
+ if not applicable_cases and self.default_case:
104
+ applicable_cases.append(self.default_case)
101
105
  if len(applicable_cases) == 0:
102
106
  raise EncodeError(
103
107
  f"Multiplexer {self.short_name} does not know any case called {case_spec}")
104
108
 
105
109
  odxassert(len(applicable_cases) == 1)
106
110
  mux_case = applicable_cases[0]
107
- key_value, _ = self._get_case_limits(mux_case)
111
+ if isinstance(mux_case, MultiplexerCase):
112
+ key_value, _ = self._get_case_limits(mux_case)
113
+ else:
114
+ key_value = 0
108
115
  elif isinstance(case_spec, int):
109
116
  applicable_cases = []
110
117
  for x in self.cases:
odxtools/odxtypes.py CHANGED
@@ -64,8 +64,8 @@ def bool_to_odxstr(bool_val: bool) -> str:
64
64
 
65
65
  def parse_int(value: str) -> int:
66
66
  try:
67
- return int(value)
68
- except ValueError:
67
+ return int(value, 0)
68
+ except (ValueError, TypeError):
69
69
  try:
70
70
  v = float(value)
71
71
  except Exception as e:
odxtools/version.py CHANGED
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '8.0.2'
16
- __version_tuple__ = version_tuple = (8, 0, 2)
15
+ __version__ = version = '8.0.4'
16
+ __version_tuple__ = version_tuple = (8, 0, 4)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odxtools
3
- Version: 8.0.2
3
+ Version: 8.0.4
4
4
  Summary: Utilities to work with the ODX standard for automotive diagnostics
5
5
  Author-email: Katrin Bauer <katrin.bauer@mbition.io>, Andreas Lauser <andreas.lauser@mbition.io>, Ayoub Kaanich <kayoub5@live.com>
6
6
  Maintainer-email: Andreas Lauser <andreas.lauser@mbition.io>, Ayoub Kaanich <kayoub5@live.com>
@@ -34,7 +34,7 @@ odxtools/diagvariable.py,sha256=KUyRCV-H5xKITWYk9wxDnaS_N2nwDFGQzHaQRfNndKA,3829
34
34
  odxtools/docrevision.py,sha256=m57a4lCWeR6QvNNxtwUNpLXAMgSq29ks1HorxoipFVk,2698
35
35
  odxtools/dopbase.py,sha256=JMqlMNKyZJlXwcBFROetCIy1RsK-V_mSCR0MDuA-G5Y,2493
36
36
  odxtools/dtcdop.py,sha256=BXo2wnAQVw0zn9NAatUp-_MJjRmjMXy_H5iEAQ70B10,8168
37
- odxtools/dynamicendmarkerfield.py,sha256=SdG1WfQi0e3IWL-Yza27umMo3VtflCGlyjOxGVvg3sM,5420
37
+ odxtools/dynamicendmarkerfield.py,sha256=Q7KKOBNSrAg5cehEP3i4YTPiqz5UetEIJDGah608DDk,5559
38
38
  odxtools/dynamiclengthfield.py,sha256=Us0qRvkRPId7xSNKrYdsr1AhVFdTBezRMCBhXl98E00,5273
39
39
  odxtools/dyndefinedspec.py,sha256=ErtMIFVAB-E-ujTUwLXxsheGOOFkhNy6zCXs4cp7biE,7657
40
40
  odxtools/dynenddopref.py,sha256=SYXrmRUQoLWD4UI3WV92oA5rNhxbDuRv6H1MeXeuWhM,1199
@@ -58,7 +58,7 @@ odxtools/matchingparameter.py,sha256=2cqaxFCZ28GvvUKCIM-jas3ae4eYGbULbkBlb3aH5RY
58
58
  odxtools/message.py,sha256=07GekN1MbYXm7HaUITDKTj2lBmGK-LB9W8gtBmfAOew,1057
59
59
  odxtools/minmaxlengthtype.py,sha256=eF78Zb77f6Q6-JXdP3AjqmqNWo4KhGWb-_PVHT7Exmg,8906
60
60
  odxtools/modification.py,sha256=oyyFsYHixy6XHOdqqTCx3IIkTAKlSN9wxBpNpvhUaJA,838
61
- odxtools/multiplexer.py,sha256=NW3vjajt5LleDY_rYWCzOkPLF1xSIxutyUR4uanSwLg,9935
61
+ odxtools/multiplexer.py,sha256=0xUdNSPSJuOzwnh6vyZyp8ycYKfg570R9kpHHoACrEE,10239
62
62
  odxtools/multiplexercase.py,sha256=ObUQIf41UM3tQuECwPLks2Iff_FbN7A-W4Vh6zxSKNs,3177
63
63
  odxtools/multiplexerdefaultcase.py,sha256=u3YxZZawhXTOdrC5ltt1YNNaDMGrbL9qsz6PTKrPdSM,2104
64
64
  odxtools/multiplexerswitchkey.py,sha256=fnCpPcg47JQZQsrqS2RAa_O-JrfUb0pvhKv8hhs1RXQ,1551
@@ -66,7 +66,7 @@ odxtools/nameditemlist.py,sha256=kPNab44E3cSHXjih7MDgjLBARb98PGB2qcPnM_445O4,655
66
66
  odxtools/negoutputparam.py,sha256=u2IhJvy6n19t3nyADGG0H0XTm7JNdQ0-95FawGAdtiE,1373
67
67
  odxtools/obd.py,sha256=WsUbhdonqQJtxf972CUdYL78AMMTVjMQhoCJbaZhRIo,1860
68
68
  odxtools/odxlink.py,sha256=YoEovTx5T8c5YFJPa2CSxk_gwRfP8miGCwicHbpqQNg,9259
69
- odxtools/odxtypes.py,sha256=BUOoYMHEV7SiWH3zeFURtpWeOuv89Ojg1hhzPl3lvdk,7525
69
+ odxtools/odxtypes.py,sha256=Cg1BxXAoOW-cqbbmePw3x-rZ2CW6qZGlFX2xdAanlKc,7541
70
70
  odxtools/outputparam.py,sha256=e9YvdJvKlX-GOdmu2vCPO6BZEyOLuOsYEdvtC5ISLHM,1636
71
71
  odxtools/parameterinfo.py,sha256=hsUqlTnMJ-s6QbA6-X7rN6b6NfdnagJ1u_1JLLuYRqo,8564
72
72
  odxtools/paramlengthinfotype.py,sha256=vhgvCPIRnyCF9t8yhkYf5MsHXQhWWeEgz_kS8AbiONQ,4700
@@ -102,7 +102,7 @@ odxtools/unitgroup.py,sha256=_WNpnYFmkiHQnOY8XhIviiQLXziY3kplH--7ufAWXyI,2067
102
102
  odxtools/unitspec.py,sha256=bc3B6ysTXSxpNWyQ6cQVJgIGyxmeqRTeshc3bdym1iA,2948
103
103
  odxtools/utils.py,sha256=PJFXkG74BzoheurrDYOwHZ6EuIcr1sdxf1tQGk6zSgs,1122
104
104
  odxtools/variablegroup.py,sha256=--5sMDOMUg4I3hFyoVOFcGCTOrctrrMADdmH3Mn4wHk,848
105
- odxtools/version.py,sha256=WtJpU7OkrL_CTqaarYSrBdVecDoYlCmO-IGZgCiZAdQ,411
105
+ odxtools/version.py,sha256=rKRFWPCzOWco8E_y7IYGymVQklA8jyRKIs4hQcCz_vI,411
106
106
  odxtools/writepdxfile.py,sha256=x3W2xiPVjzNZjfpJssY6ngkx74sZtb95OFmBHql1VY4,7766
107
107
  odxtools/xdoc.py,sha256=gDq-8l8x-Tj1ZJOttPxZchcO5_jEPwcXxMgT29VgTS0,1433
108
108
  odxtools/cli/__init__.py,sha256=T7ano_FIyzBASxYpmcA5VJXU5bQLIy_Qk0HE_SDKelY,106
@@ -209,9 +209,9 @@ odxtools/templates/macros/printStaticField.xml.jinja2,sha256=JIXFhyNrnQ-2_vWy6Rx
209
209
  odxtools/templates/macros/printStructure.xml.jinja2,sha256=uswYs2xse0B9hZut_FN1GvvR0xsZa_3pZRnlF0ElEEc,559
210
210
  odxtools/templates/macros/printTable.xml.jinja2,sha256=VsP01jqyQllLP-brQ6J1E8ubVntiToEb8Uk7HQEYqtY,1485
211
211
  odxtools/templates/macros/printUnitSpec.xml.jinja2,sha256=AJ5jWYKRmoIZkrd25R1KmjjgU6pfOqRiOQHtUAuS6GI,2813
212
- odxtools-8.0.2.dist-info/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
213
- odxtools-8.0.2.dist-info/METADATA,sha256=bxgqxZ_XsncEdlTne_42VgE6MbKEqvg1C12rdtomaLQ,44084
214
- odxtools-8.0.2.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
215
- odxtools-8.0.2.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
216
- odxtools-8.0.2.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
217
- odxtools-8.0.2.dist-info/RECORD,,
212
+ odxtools-8.0.4.dist-info/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
213
+ odxtools-8.0.4.dist-info/METADATA,sha256=FmuQOkIhcsg1YsqcvMpBa-ciZwNtoZ7lZJbl0DUf3zU,44084
214
+ odxtools-8.0.4.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
215
+ odxtools-8.0.4.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
216
+ odxtools-8.0.4.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
217
+ odxtools-8.0.4.dist-info/RECORD,,