odxtools 8.1.0__py3-none-any.whl → 8.2.1__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.
Files changed (43) hide show
  1. odxtools/audience.py +7 -8
  2. odxtools/compumethods/compucodecompumethod.py +63 -0
  3. odxtools/compumethods/compuinternaltophys.py +19 -2
  4. odxtools/compumethods/compumethod.py +28 -2
  5. odxtools/compumethods/compuphystointernal.py +19 -2
  6. odxtools/compumethods/createanycompumethod.py +12 -0
  7. odxtools/compumethods/linearcompumethod.py +2 -2
  8. odxtools/compumethods/ratfunccompumethod.py +106 -0
  9. odxtools/compumethods/ratfuncsegment.py +87 -0
  10. odxtools/compumethods/scaleratfunccompumethod.py +113 -0
  11. odxtools/dataobjectproperty.py +3 -0
  12. odxtools/diaglayers/basevariantraw.py +7 -1
  13. odxtools/diaglayers/diaglayer.py +5 -0
  14. odxtools/diaglayers/diaglayerraw.py +13 -1
  15. odxtools/diaglayers/ecushareddataraw.py +7 -1
  16. odxtools/diaglayers/ecuvariantraw.py +7 -1
  17. odxtools/diaglayers/functionalgroupraw.py +7 -1
  18. odxtools/diaglayers/hierarchyelementraw.py +7 -1
  19. odxtools/diaglayers/protocolraw.py +7 -1
  20. odxtools/diagservice.py +3 -1
  21. odxtools/dtcdop.py +6 -0
  22. odxtools/environmentdatadescription.py +11 -6
  23. odxtools/library.py +66 -0
  24. odxtools/minmaxlengthtype.py +1 -1
  25. odxtools/multiplexer.py +4 -4
  26. odxtools/multiplexercase.py +1 -1
  27. odxtools/odxtypes.py +14 -0
  28. odxtools/parameterinfo.py +132 -76
  29. odxtools/parameters/systemparameter.py +51 -8
  30. odxtools/progcode.py +8 -4
  31. odxtools/standardlengthtype.py +4 -1
  32. odxtools/templates/macros/printCompuMethod.xml.jinja2 +3 -2
  33. odxtools/templates/macros/printDiagLayer.xml.jinja2 +8 -0
  34. odxtools/templates/macros/printLibrary.xml.jinja2 +21 -0
  35. odxtools/templates/macros/printSingleEcuJob.xml.jinja2 +2 -23
  36. odxtools/unitspec.py +10 -9
  37. odxtools/version.py +2 -2
  38. {odxtools-8.1.0.dist-info → odxtools-8.2.1.dist-info}/METADATA +1 -1
  39. {odxtools-8.1.0.dist-info → odxtools-8.2.1.dist-info}/RECORD +43 -37
  40. {odxtools-8.1.0.dist-info → odxtools-8.2.1.dist-info}/WHEEL +1 -1
  41. {odxtools-8.1.0.dist-info → odxtools-8.2.1.dist-info}/LICENSE +0 -0
  42. {odxtools-8.1.0.dist-info → odxtools-8.2.1.dist-info}/entry_points.txt +0 -0
  43. {odxtools-8.1.0.dist-info → odxtools-8.2.1.dist-info}/top_level.txt +0 -0
@@ -1,19 +1,29 @@
1
1
  # SPDX-License-Identifier: MIT
2
+ import getpass
2
3
  from dataclasses import dataclass
4
+ from datetime import datetime
3
5
  from typing import List, Optional
4
6
  from xml.etree import ElementTree
5
7
 
6
8
  from typing_extensions import override
7
9
 
8
- from ..decodestate import DecodeState
9
10
  from ..encodestate import EncodeState
10
- from ..exceptions import odxrequire
11
+ from ..exceptions import odxraise, odxrequire
11
12
  from ..odxlink import OdxDocFragment
12
13
  from ..odxtypes import ParameterValue
13
14
  from ..utils import dataclass_fields_asdict
14
15
  from .parameter import ParameterType
15
16
  from .parameterwithdop import ParameterWithDOP
16
17
 
18
+ # The SYSTEM parameter types mandated by the ODX 2.2 standard. Users
19
+ # are free to specify additional types, but these must be handled
20
+ # (cf. table 5 in section 7.3.5.4 of the ASAM ODX 2.2 specification
21
+ # document.)
22
+ PREDEFINED_SYSPARAM_VALUES = [
23
+ "TIMESTAMP", "SECOND", "MINUTE", "HOUR", "TIMEZONE", "DAY", "WEEK", "MONTH", "YEAR", "CENTURY",
24
+ "TESTERID", "USERID"
25
+ ]
26
+
17
27
 
18
28
  @dataclass
19
29
  class SystemParameter(ParameterWithDOP):
@@ -38,18 +48,51 @@ class SystemParameter(ParameterWithDOP):
38
48
  @property
39
49
  @override
40
50
  def is_required(self) -> bool:
41
- raise NotImplementedError("SystemParameter.is_required is not implemented yet.")
51
+ # if a SYSTEM parameter is not specified explicitly, its value
52
+ # can be determined from the operating system if it is type is
53
+ # predefined
54
+ return self.sysparam not in PREDEFINED_SYSPARAM_VALUES
42
55
 
43
56
  @property
44
57
  @override
45
58
  def is_settable(self) -> bool:
46
- raise NotImplementedError("SystemParameter.is_settable is not implemented yet.")
59
+ return True
47
60
 
48
61
  @override
49
62
  def _encode_positioned_into_pdu(self, physical_value: Optional[ParameterValue],
50
63
  encode_state: EncodeState) -> None:
51
- raise NotImplementedError("Encoding a SystemParameter is not implemented yet.")
64
+ if physical_value is None:
65
+ # determine the value to be encoded automatically
66
+ now = datetime.now()
67
+ if self.sysparam == "TIMESTAMP":
68
+ physical_value = round(now.timestamp() * 1000).to_bytes(8, "big")
69
+ elif self.sysparam == "SECOND":
70
+ physical_value = now.second
71
+ elif self.sysparam == "MINUTE":
72
+ physical_value = now.minute
73
+ elif self.sysparam == "HOUR":
74
+ physical_value = now.hour
75
+ elif self.sysparam == "TIMEZONE":
76
+ if (utc_offset := now.astimezone().utcoffset()) is not None:
77
+ physical_value = utc_offset.seconds // 60
78
+ else:
79
+ physical_value = 0
80
+ elif self.sysparam == "DAY":
81
+ physical_value = now.day
82
+ elif self.sysparam == "WEEK":
83
+ physical_value = now.isocalendar()[1]
84
+ elif self.sysparam == "MONTH":
85
+ physical_value = now.month
86
+ elif self.sysparam == "YEAR":
87
+ physical_value = now.year
88
+ elif self.sysparam == "CENTURY":
89
+ physical_value = now.year // 100
90
+ elif self.sysparam == "TESTERID":
91
+ physical_value = "odxtools".encode("latin1")
92
+ elif self.sysparam == "USERID":
93
+ physical_value = getpass.getuser().encode("latin1")
94
+ else:
95
+ odxraise(f"Unknown system parameter type '{self.sysparam}'")
96
+ physical_value = 0
52
97
 
53
- @override
54
- def _decode_positioned_from_pdu(self, decode_state: DecodeState) -> ParameterValue:
55
- raise NotImplementedError("Decoding SystemParameter is not implemented yet.")
98
+ self.dop.encode_into_pdu(physical_value, encode_state=encode_state)
odxtools/progcode.py CHANGED
@@ -4,6 +4,8 @@ from typing import Any, Dict, List, Optional, cast
4
4
  from xml.etree import ElementTree
5
5
 
6
6
  from .exceptions import odxraise, odxrequire
7
+ from .library import Library
8
+ from .nameditemlist import NamedItemList
7
9
  from .odxlink import OdxDocFragment, OdxLinkDatabase, OdxLinkId, OdxLinkRef
8
10
  from .snrefcontext import SnRefContext
9
11
 
@@ -12,9 +14,9 @@ from .snrefcontext import SnRefContext
12
14
  class ProgCode:
13
15
  """A reference to code that is executed by a single ECU job"""
14
16
  code_file: str
17
+ encryption: Optional[str]
15
18
  syntax: str
16
19
  revision: str
17
- encryption: Optional[str]
18
20
  entrypoint: Optional[str]
19
21
  library_refs: List[OdxLinkRef]
20
22
 
@@ -22,6 +24,10 @@ class ProgCode:
22
24
  def code(self) -> bytes:
23
25
  return self._code
24
26
 
27
+ @property
28
+ def libraries(self) -> NamedItemList[Library]:
29
+ return self._libraries
30
+
25
31
  @staticmethod
26
32
  def from_et(et_element: ElementTree.Element, doc_frags: List[OdxDocFragment]) -> "ProgCode":
27
33
  code_file = odxrequire(et_element.findtext("CODE-FILE"))
@@ -49,9 +55,7 @@ class ProgCode:
49
55
  return {}
50
56
 
51
57
  def _resolve_odxlinks(self, odxlinks: OdxLinkDatabase) -> None:
52
- # TODO: Libraries are currently not internalized.
53
- # Once they are internalized, resolve the `library_refs` references here.
54
- pass
58
+ self._libraries = NamedItemList([odxlinks.resolve(x, Library) for x in self.library_refs])
55
59
 
56
60
  def _resolve_snrefs(self, context: SnRefContext) -> None:
57
61
  aux_file = odxrequire(context.database).auxiliary_files.get(self.code_file)
@@ -88,7 +88,10 @@ class StandardLengthType(DiagCodedType):
88
88
  else:
89
89
  sz = (odxrequire(self.get_static_bit_length()) + 7) // 8
90
90
 
91
- return self.bit_mask.to_bytes(sz, endianness)
91
+ max_value = (1 << (sz * 8)) - 1
92
+ bit_mask = self.bit_mask & max_value
93
+
94
+ return bit_mask.to_bytes(sz, endianness)
92
95
 
93
96
  def __apply_mask(self, internal_value: AtomicOdxType) -> AtomicOdxType:
94
97
  if self.bit_mask is None:
@@ -92,12 +92,13 @@
92
92
  {%- macro printProgCode(pc) -%}
93
93
  <PROG-CODE>
94
94
  <CODE-FILE>{{pc.code_file}}</CODE-FILE>
95
- <SYNTAX>{{pc.syntax}}</SYNTAX>
96
95
  {%- if pc.encryption is not none %}
97
96
  <ENCRYPTION>{{pc.encryption}}</ENCRYPTION>
98
97
  {%- endif %}
98
+ <SYNTAX>{{pc.syntax}}</SYNTAX>
99
+ <REVISION>{{pc.revision}}</REVISION>
99
100
  {%- if pc.entry_point is not none %}
100
- <ENTRY-POINT>{{pc.entry_point}}</ENTRY-POINT>
101
+ <ENTRYPOINT>{{pc.entrypoint}}</ENTRYPOINT>
101
102
  {%- endif %}
102
103
  {%- if pc.library_refs %}
103
104
  <LIBRARY-REFS>
@@ -22,6 +22,7 @@
22
22
  {%- import('macros/printResponse.xml.jinja2') as presp %}
23
23
  {%- import('macros/printStateChart.xml.jinja2') as psc %}
24
24
  {%- import('macros/printAudience.xml.jinja2') as paud %}
25
+ {%- import('macros/printLibrary.xml.jinja2') as plib %}
25
26
  {%- import('macros/printSpecialData.xml.jinja2') as psd %}
26
27
  {%- import('macros/printEcuVariantPattern.xml.jinja2') as pvpat %}
27
28
  {%- import('macros/printAdminData.xml.jinja2') as pad %}
@@ -202,5 +203,12 @@
202
203
  {%- endfor %}
203
204
  </ADDITIONAL-AUDIENCES>
204
205
  {%- endif %}
206
+ {%- if dlr.libraries %}
207
+ <LIBRARYS>
208
+ {%- for lib in dlr.libraries %}
209
+ {{ plib.printLibrary(lib)|indent(2) }}
210
+ {%- endfor %}
211
+ </LIBRARYS>
212
+ {%- endif %}
205
213
  {{- psd.printSpecialDataGroups(dlr.sdgs)|indent(0, first=True) }}
206
214
  {%- endmacro -%}
@@ -0,0 +1,21 @@
1
+ {#- -*- mode: sgml; tab-width: 1; indent-tabs-mode: nil -*-
2
+ #
3
+ # SPDX-License-Identifier: MIT
4
+ -#}
5
+
6
+ {%- import('macros/printElementId.xml.jinja2') as peid %}
7
+
8
+ {%- macro printLibrary(library) %}
9
+ <LIBRARY{#- #} {{-peid.printElementIdAttribs(library)}}{# -#}>
10
+ {{ peid.printElementIdSubtags(library)|indent(1) }}
11
+ <CODE-FILE>{{library.code_file}}</CODE-FILE>
12
+ {%- if library.encryption is not none %}
13
+ <ENCRYPTION>{{library.encryption}}</ENCRYPTION>
14
+ {%- endif %}
15
+ <SYNTAX>{{library.syntax}}</SYNTAX>
16
+ <REVISION>{{library.revision}}</REVISION>
17
+ {%- if library.entrypoint is not none %}
18
+ <ENTRYPOINT>{{library.entrypoint}}</ENTRYPOINT>
19
+ {%- endif %}
20
+ </LIBRARY>
21
+ {%- endmacro %}
@@ -5,13 +5,14 @@
5
5
 
6
6
  {%- import('macros/printElementId.xml.jinja2') as peid %}
7
7
  {%- import('macros/printDiagComm.xml.jinja2') as pdc %}
8
+ {%- import('macros/printCompuMethod.xml.jinja2') as pcm %}
8
9
 
9
10
  {%- macro printSingleEcuJob(job) -%}
10
11
  <SINGLE-ECU-JOB {{pdc.printDiagCommAttribs(job)|indent(1) }}>
11
12
  {{pdc.printDiagCommSubtags(job) | indent(2, first=True) }}
12
13
  <PROG-CODES>
13
14
  {%- for prog in job.prog_codes %}
14
- {{ printProgCode(prog)|indent(4) }}
15
+ {{ pcm.printProgCode(prog)|indent(4) }}
15
16
  {%- endfor %}
16
17
  </PROG-CODES>
17
18
  {%- if job.input_params %}
@@ -39,28 +40,6 @@
39
40
  {%- endmacro -%}
40
41
 
41
42
 
42
- {%- macro printProgCode(prog) -%}
43
- <PROG-CODE>
44
- <CODE-FILE>{{prog.code_file}}</CODE-FILE>
45
- {%- if prog.encryption %}
46
- <ENCRYPTION>{{prog.encryption}}</ENCRYPTION>
47
- {%- endif %}
48
- <SYNTAX>{{prog.syntax}}</SYNTAX>
49
- <REVISION>{{prog.revision}}</REVISION>
50
- {%- if prog.entrypoint %}
51
- <ENTRYPOINT>{{prog.entrypoint}}</ENTRYPOINT>
52
- {%- endif %}
53
- {%- if prog.library_refs %}
54
- <LIBRARY-REFS>
55
- {%- for ref in prog.library_refs %}
56
- <LIBRARY-REF ID-REF="{{ref.ref_id}}" />
57
- {%- endfor %}
58
- </LIBRARY-REFS>
59
- {%- endif %}
60
- </PROG-CODE>
61
- {%- endmacro -%}
62
-
63
-
64
43
  {%- macro printInputParam(param) -%}
65
44
  <INPUT-PARAM {{-make_xml_attrib("OID", param.oid)}}
66
45
  {{-make_xml_attrib("SEMANTIC", param.semantic)}}>
odxtools/unitspec.py CHANGED
@@ -1,6 +1,6 @@
1
1
  # SPDX-License-Identifier: MIT
2
2
  from dataclasses import dataclass
3
- from typing import Any, Dict, List, Union
3
+ from typing import Any, Dict, List
4
4
  from xml.etree import ElementTree
5
5
 
6
6
  from .nameditemlist import NamedItemList
@@ -25,9 +25,9 @@ class UnitSpec:
25
25
  """
26
26
 
27
27
  # TODO (?): Why are there type errors...
28
- unit_groups: Union[NamedItemList[UnitGroup], List[UnitGroup]]
29
- units: Union[NamedItemList[Unit], List[Unit]]
30
- physical_dimensions: Union[NamedItemList[PhysicalDimension], List[PhysicalDimension]]
28
+ unit_groups: NamedItemList[UnitGroup]
29
+ units: NamedItemList[Unit]
30
+ physical_dimensions: NamedItemList[PhysicalDimension]
31
31
  sdgs: List[SpecialDataGroup]
32
32
 
33
33
  def __post_init__(self) -> None:
@@ -38,14 +38,15 @@ class UnitSpec:
38
38
  @staticmethod
39
39
  def from_et(et_element: ElementTree.Element, doc_frags: List[OdxDocFragment]) -> "UnitSpec":
40
40
 
41
- unit_groups = [
41
+ unit_groups = NamedItemList([
42
42
  UnitGroup.from_et(el, doc_frags) for el in et_element.iterfind("UNIT-GROUPS/UNIT-GROUP")
43
- ]
44
- units = [Unit.from_et(el, doc_frags) for el in et_element.iterfind("UNITS/UNIT")]
45
- physical_dimensions = [
43
+ ])
44
+ units = NamedItemList(
45
+ [Unit.from_et(el, doc_frags) for el in et_element.iterfind("UNITS/UNIT")])
46
+ physical_dimensions = NamedItemList([
46
47
  PhysicalDimension.from_et(el, doc_frags)
47
48
  for el in et_element.iterfind("PHYSICAL-DIMENSIONS/PHYSICAL-DIMENSION")
48
- ]
49
+ ])
49
50
  sdgs = [
50
51
  SpecialDataGroup.from_et(sdge, doc_frags) for sdge in et_element.iterfind("SDGS/SDG")
51
52
  ]
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.1.0'
16
- __version_tuple__ = version_tuple = (8, 1, 0)
15
+ __version__ = version = '8.2.1'
16
+ __version_tuple__ = version_tuple = (8, 2, 1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odxtools
3
- Version: 8.1.0
3
+ Version: 8.2.1
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>
@@ -2,7 +2,7 @@ odxtools/__init__.py,sha256=kfejU9B_COPKCNfhbzkq_RuQ1VpH0S_EA4gstYaANtk,2458
2
2
  odxtools/__main__.py,sha256=MKzFqY8KAV0BGsBXs04QwPpW5OGuT-rZQ4QlM8Tar8Y,119
3
3
  odxtools/additionalaudience.py,sha256=Xjy_PhTfTV23oAMvml5XeZw3ex8xssIhgRseSsxKcxQ,956
4
4
  odxtools/admindata.py,sha256=ue5MnYJK_jxNq6Okxy4aGtH15uBAnWXIjMBFSh36Q3g,1879
5
- odxtools/audience.py,sha256=SW0BzJr6qyrNU9ESJr491RI4T7XgECTK9whDeMcp1Yw,3290
5
+ odxtools/audience.py,sha256=_O6UPKnrDbwMMKRnCJ5b8M3_I2jU5jMR6Ss5zLzk9yM,3361
6
6
  odxtools/basecomparam.py,sha256=VxpIsTr6-S4e8Vw72hJXSLUFU5TvHy5CM0sweVL-ZWE,2384
7
7
  odxtools/basicstructure.py,sha256=wkbTuS9VlfLhAQCS59kXUkDtlhz9dKvLEQpXpsHrN90,12854
8
8
  odxtools/commrelation.py,sha256=Gh3CqMuF9rS0X107oxUkISNT2VWDZVPCpOSu54q7hcs,4793
@@ -20,7 +20,7 @@ odxtools/createanycomparam.py,sha256=RP0XA2Ut4GL2NWy05RvKBrTnpbvvCG2XuNL8OO-9rbI
20
20
  odxtools/createanydiagcodedtype.py,sha256=0DVmMj4UCDYIg0zu9pgTplyhHmRedz1KJcchq1uKMjg,1216
21
21
  odxtools/createecuvariantpatterns.py,sha256=FXHLGR4M791MRkpU2_keck88hoMYkuyPiCUxuGbUasQ,559
22
22
  odxtools/database.py,sha256=ktsm_tJOXXWKlD-EW_Flp_fSXJvQYzZKIzwLAZEoLTE,9284
23
- odxtools/dataobjectproperty.py,sha256=R5sOMIejzcTB-CXTRrL2dWnFwR08eInF531s3l9BQcI,5888
23
+ odxtools/dataobjectproperty.py,sha256=otbbtGadW_W9nr5sL9Fug5_bU91eYeOYyfBWa7sb3B0,6052
24
24
  odxtools/decodestate.py,sha256=jJxLUzUYZ0C4t18FhJzo2iRTP8DF7BzrWLtRTTlLsJI,4885
25
25
  odxtools/description.py,sha256=UoACftC_n7fQ1n9WDwCzizStMH0HCO2Qv0YLRaSjEgs,1484
26
26
  odxtools/determinenumberofitems.py,sha256=DxM9udr1MQfEojiLdc35bbjniQl1fkeHcTMpoo9AfPI,1558
@@ -29,11 +29,11 @@ odxtools/diagcomm.py,sha256=j8esUkogoxHBwIEUBkAoXe28jX3vaRnnrgCR_gdP6VY,8110
29
29
  odxtools/diagdatadictionaryspec.py,sha256=2zy5f-xnfGI0bnjPOEwG_IJxfsHhXZoOfdIS_fOr3L0,10552
30
30
  odxtools/diaglayercontainer.py,sha256=0JC6ioUGe5c8FzXRotyGEGMMDz8fzKCsK204tGN3cAo,6524
31
31
  odxtools/diagnostictroublecode.py,sha256=jKtO8JqU0HRpeSyrcHn4s21N4Jj-p19WVP-qw2H98gY,2459
32
- odxtools/diagservice.py,sha256=ZNj7XbBPcNkrG0MLd8WoFcCneBmz9uU2Lpi8gtUF0mQ,10188
32
+ odxtools/diagservice.py,sha256=y1_qKI7kJXDWpjpw91loIdf-K7Ozo45BsYiOhVYGuXg,10291
33
33
  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
- odxtools/dtcdop.py,sha256=BXo2wnAQVw0zn9NAatUp-_MJjRmjMXy_H5iEAQ70B10,8168
36
+ odxtools/dtcdop.py,sha256=lmxmDKeuUyOGRZekCnzD7lGuKYc0BT3YIVTwklbMMCg,8337
37
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
@@ -44,7 +44,7 @@ odxtools/element.py,sha256=nCJkQMIPC26XfD4w1VrTH3l7Cd_BemMM_5lALh5gC7E,1259
44
44
  odxtools/encodestate.py,sha256=yxeql949uvlB2WnsF0jVcMJ6PvaoYcGB7M0OuB4Afj0,10008
45
45
  odxtools/endofpdufield.py,sha256=mGkhTj-YGdJ4EHMsK3AlWV6G_KLWI4ymiFKbY8U2W50,3359
46
46
  odxtools/environmentdata.py,sha256=_wSKhV_NuMG6UPMnpOxz6mVjvrXsd2mtqqT7VKSSxHU,1414
47
- odxtools/environmentdatadescription.py,sha256=4LzDitFyxAJF1v3vPTbkrZsADWabMj60WPPa7wb9c2U,9570
47
+ odxtools/environmentdatadescription.py,sha256=2aAvretxH0_8KKMwk2-J-ou2Abd2kwUEwsSAEn7F5WM,9899
48
48
  odxtools/exceptions.py,sha256=ZApQkhOJ9gn4jk0uO1wmULn5PhNEl1aMYMSHDoXihh0,2714
49
49
  odxtools/field.py,sha256=pdQpWxybPsiQ4oFKtvnjIEcQXV2WD0qH-NnBV54KMcI,3860
50
50
  odxtools/functionalclass.py,sha256=IfhxKd02WNGftjSMyBJ8RsxVZgTBxzUM0h6EKHVrrxY,951
@@ -53,27 +53,28 @@ odxtools/inputparam.py,sha256=lyffK4UBG2d_0JzIaf1QZCsPXFti6gejiIWRSdr-CYA,1841
53
53
  odxtools/internalconstr.py,sha256=QKEkaOcrFoL9xID-oHWWkeg-vtcPV6RFOW1fX2K3pwg,1363
54
54
  odxtools/isotp_state_machine.py,sha256=O6v29IK7p_4gFqrr-fahnbp9Qmo78EEQfEwRsA_Vfjw,13339
55
55
  odxtools/leadinglengthinfotype.py,sha256=mtq38k74hEh_CUY7NbVwdCc_aqKr7v5ABoS_SlKVXyI,4185
56
+ odxtools/library.py,sha256=E_A6K6jcEoUdXh4h4sQILj7_JM-6X5OUUWSM47G69CU,2067
56
57
  odxtools/loadfile.py,sha256=hi8jVE7B1G9gklsb7MrGrp4aOAI65j0kNwvDeEEEN2k,1744
57
58
  odxtools/matchingparameter.py,sha256=2cqaxFCZ28GvvUKCIM-jas3ae4eYGbULbkBlb3aH5RY,2232
58
59
  odxtools/message.py,sha256=07GekN1MbYXm7HaUITDKTj2lBmGK-LB9W8gtBmfAOew,1057
59
- odxtools/minmaxlengthtype.py,sha256=eF78Zb77f6Q6-JXdP3AjqmqNWo4KhGWb-_PVHT7Exmg,8906
60
+ odxtools/minmaxlengthtype.py,sha256=FxcfbuPEmXgYava3h0EPF43I5yTZW_lUcgTqOF5mnes,8917
60
61
  odxtools/modification.py,sha256=oyyFsYHixy6XHOdqqTCx3IIkTAKlSN9wxBpNpvhUaJA,838
61
- odxtools/multiplexer.py,sha256=0xUdNSPSJuOzwnh6vyZyp8ycYKfg570R9kpHHoACrEE,10239
62
- odxtools/multiplexercase.py,sha256=ObUQIf41UM3tQuECwPLks2Iff_FbN7A-W4Vh6zxSKNs,3177
62
+ odxtools/multiplexer.py,sha256=flHlorv9grEMj8pNAWQJNrxhptnDxSsFERO7gpKYRME,10235
63
+ odxtools/multiplexercase.py,sha256=qfxWJzfJLYAsnhFGheUWDsUaIte2dSRJ0nadiN9SXDw,3176
63
64
  odxtools/multiplexerdefaultcase.py,sha256=u3YxZZawhXTOdrC5ltt1YNNaDMGrbL9qsz6PTKrPdSM,2104
64
65
  odxtools/multiplexerswitchkey.py,sha256=fnCpPcg47JQZQsrqS2RAa_O-JrfUb0pvhKv8hhs1RXQ,1551
65
66
  odxtools/nameditemlist.py,sha256=IYN_OBVf_iIU6a5CQ-gCttiUMeJEe04uk9z6Ro6IGK8,6521
66
67
  odxtools/negoutputparam.py,sha256=u2IhJvy6n19t3nyADGG0H0XTm7JNdQ0-95FawGAdtiE,1373
67
68
  odxtools/obd.py,sha256=WsUbhdonqQJtxf972CUdYL78AMMTVjMQhoCJbaZhRIo,1860
68
69
  odxtools/odxlink.py,sha256=YoEovTx5T8c5YFJPa2CSxk_gwRfP8miGCwicHbpqQNg,9259
69
- odxtools/odxtypes.py,sha256=Cg1BxXAoOW-cqbbmePw3x-rZ2CW6qZGlFX2xdAanlKc,7541
70
+ odxtools/odxtypes.py,sha256=MKfusVSYma_OZYmxCVm-kx7WBK8OHjeU3DnJhet4zeg,8055
70
71
  odxtools/outputparam.py,sha256=_NVZj4YfU_RdPpGUnz659-70DaYwBxYxwktxZ5lSMsY,1568
71
- odxtools/parameterinfo.py,sha256=hsUqlTnMJ-s6QbA6-X7rN6b6NfdnagJ1u_1JLLuYRqo,8564
72
+ odxtools/parameterinfo.py,sha256=oIVtlQUZVYVWuXVnjyosyzazkNJANk1Qe9URKfho5Hk,11223
72
73
  odxtools/paramlengthinfotype.py,sha256=vhgvCPIRnyCF9t8yhkYf5MsHXQhWWeEgz_kS8AbiONQ,4700
73
74
  odxtools/parentref.py,sha256=kcY3VMyVaIUWD0iVNX8sD9qeI4peU8gijboquu0zD7E,3751
74
75
  odxtools/physicaldimension.py,sha256=CEH7Ura4gqsqlBUxBW08ea9Pxh_Od8JruYQ8o9qOGME,3269
75
76
  odxtools/physicaltype.py,sha256=oYjOhdrTVCJcLLBYgy6pxKsZHpuwm1vZ8svwSjsUB6E,2699
76
- odxtools/progcode.py,sha256=ZoGf6X7qH3TT8zSr3bQAYwPb0Il4V6vSLWgdTnlj88Y,2169
77
+ odxtools/progcode.py,sha256=Cx8ziCmQm2OfhinAuRrFrMuoThU7hgA6zNQKAT-AT0A,2276
77
78
  odxtools/protstack.py,sha256=nb2RR4OEaGX6lJ6drHejJU-tkB1p0Ok0KLZhNMTdsEc,2012
78
79
  odxtools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
80
  odxtools/relateddoc.py,sha256=zb5Ea9vkd31kxTP4s5_PLF3LuCoUcG8rgLckStHVRDc,1301
@@ -86,7 +87,7 @@ odxtools/snrefcontext.py,sha256=5ZbrZiX1gw6LC6o62RPuxzSo4tDR2LqRQ9w9Vi57FA8,953
86
87
  odxtools/specialdata.py,sha256=5-1D_6dcEmi-TodCzCoBZK7gqeDY-cuRe1ybkTh4rBY,1033
87
88
  odxtools/specialdatagroup.py,sha256=y2fMwWVX5h7W7-gBi6izlvdc26bkYRYXKNbinNel3RM,3070
88
89
  odxtools/specialdatagroupcaption.py,sha256=pIa1l6EXVDXBisUtRkn6hTzAcUXFnXJoWstesayLfME,987
89
- odxtools/standardlengthtype.py,sha256=zBR8SoYcMZI21UEWh6hhpngMpv3FswDnqJurGZa0NPI,5144
90
+ odxtools/standardlengthtype.py,sha256=SQBgdHIc9msFCBuS9GYyDeKE8bK1PgSvIkVEZSVoBcU,5225
90
91
  odxtools/state.py,sha256=d--nCbV1qBmOmiTmUrQjDC_naispOM0a-H1AvCe5_xI,898
91
92
  odxtools/statechart.py,sha256=ZT8amPjec25pexwnOAPiifGEmKa68rliOILLnB6tNJc,2956
92
93
  odxtools/statetransition.py,sha256=axZ1ePyyWAsxslTI5KDjZxC42uNyoPc6N7cNIhP5pxE,1860
@@ -99,10 +100,10 @@ odxtools/teammember.py,sha256=xn1y6k42zQoyM2SlEkZ8UFyiqBvVI5FNZAm_xt2Vt_Y,1772
99
100
  odxtools/uds.py,sha256=69SyVnQDcyspzSf6QVfm_Uk9iCxczD6UcrO1PxhNo7E,5894
100
101
  odxtools/unit.py,sha256=PLMErZ6N9oA4z3fuwYsmqMajeVHFNtKhC-w7IzaTfvw,3588
101
102
  odxtools/unitgroup.py,sha256=_WNpnYFmkiHQnOY8XhIviiQLXziY3kplH--7ufAWXyI,2067
102
- odxtools/unitspec.py,sha256=bc3B6ysTXSxpNWyQ6cQVJgIGyxmeqRTeshc3bdym1iA,2948
103
+ odxtools/unitspec.py,sha256=RMdEQoLrPhGt9vo32fkwbTqymicHFkFQnydFoi3uBog,2924
103
104
  odxtools/utils.py,sha256=PJFXkG74BzoheurrDYOwHZ6EuIcr1sdxf1tQGk6zSgs,1122
104
105
  odxtools/variablegroup.py,sha256=--5sMDOMUg4I3hFyoVOFcGCTOrctrrMADdmH3Mn4wHk,848
105
- odxtools/version.py,sha256=eiWyn2_6w1-A0TRBYVKm6NOjpOjm1AVjrofuhC156co,411
106
+ odxtools/version.py,sha256=ry4mLPoauQf45skJo220Mc_ipdigukiUFwiTCQkO_wU,411
106
107
  odxtools/writepdxfile.py,sha256=ZEoNkSxheqnXm836-HOpd04O6ipMXYKFzXZy6PM0YLc,7813
107
108
  odxtools/xdoc.py,sha256=gDq-8l8x-Tj1ZJOttPxZchcO5_jEPwcXxMgT29VgTS0,1433
108
109
  odxtools/cli/__init__.py,sha256=T7ano_FIyzBASxYpmcA5VJXU5bQLIy_Qk0HE_SDKelY,106
@@ -116,37 +117,41 @@ odxtools/cli/find.py,sha256=GZKzvsOus1Zv8n3nAG-ZsPgWJpB7z3wNxeqKtAL5mAo,4394
116
117
  odxtools/cli/list.py,sha256=4cJS7JbODR2aLwM_1QNutei4MIlZ4nvIMdLfR9mP1gw,9050
117
118
  odxtools/cli/main.py,sha256=_zPCU6N2ofpj_jQuQ_BU5EafBpMW0srhahZI8BgAM-0,2335
118
119
  odxtools/cli/snoop.py,sha256=z8USSpmz18VAvkGpzepeaOlVJhi-8aeW10XRylsvZLU,10610
120
+ odxtools/compumethods/compucodecompumethod.py,sha256=cCgCCuFcu2K9QuW0ZNbfp6AQdgPy9QE7UnmRa6Iet28,2459
119
121
  odxtools/compumethods/compuconst.py,sha256=14JIJXVKSe4bPWb5JyKXB6tAASMcWznExE1w6z1SMoc,806
120
122
  odxtools/compumethods/compudefaultvalue.py,sha256=Lw8Fnm854dpNCvO8waKWg_hSRyW-NwvoQFFjyW3RHwY,980
121
- odxtools/compumethods/compuinternaltophys.py,sha256=x2dEeedf8DSJXM62JKQomGVMNTrsK5hFNnkt8gGyn1Q,1507
123
+ odxtools/compumethods/compuinternaltophys.py,sha256=7BHDeUpe8XUlvdUrLh0p416NREsGiZq5Rx6fQSzbosA,2102
122
124
  odxtools/compumethods/compuinversevalue.py,sha256=oG5tWSJkvoDmJPmb9EAGGutslbTrwZok5nfG20iZ8vk,220
123
- odxtools/compumethods/compumethod.py,sha256=fKWFzoJXb1klB4W7FpKTw6gbhACb1v97tjAyGgCU3DY,3534
124
- odxtools/compumethods/compuphystointernal.py,sha256=scFQZCHk8B6t3OUrSYxG1Bf1Df-WB1Y2CezhQ0RzmpI,1507
125
+ odxtools/compumethods/compumethod.py,sha256=yHPGIp3BHPs-aPHT3b15lTLicvhdXZJXHgA5LvGjgBs,4572
126
+ odxtools/compumethods/compuphystointernal.py,sha256=AeAqO2Vm5DwWuSnY2C1GGJU5IssaK9wSDDVzgv3mCoQ,2102
125
127
  odxtools/compumethods/compurationalcoeffs.py,sha256=N95JWi06Wkgk3zAK57ONy7mQ9prpLxecsbVD0gyGloE,1246
126
128
  odxtools/compumethods/compuscale.py,sha256=xkwIfkoRF4faICy2jlfB6rx4xYRQb0jL5fq6NMNPX8k,4487
127
- odxtools/compumethods/createanycompumethod.py,sha256=_y5OwNXZiKeFUcueFCn_jgrQxML_rmOymA_CygWId_k,2085
129
+ odxtools/compumethods/createanycompumethod.py,sha256=w68p6ME_WSnV44X3zah4FJ1IROEU6mAglcKivMw7om8,2830
128
130
  odxtools/compumethods/identicalcompumethod.py,sha256=VVQ0tAkmowXZMBFQd9-n0VnsodDFRHXWdWgpNxdHAkQ,2077
129
131
  odxtools/compumethods/limit.py,sha256=QjrY6dd0Kc7n4CcweMBrkwlX4hsmx0bkQEaQKmTxQ18,4164
130
- odxtools/compumethods/linearcompumethod.py,sha256=mKCHUOWgJgooegGrVIkK9J9xX0n01x-CYO2UyUaRvtM,3667
132
+ odxtools/compumethods/linearcompumethod.py,sha256=Q1wELL2Y_nMomy-_7OUHLo-hDkepXLHveWorje5eDEE,3671
131
133
  odxtools/compumethods/linearsegment.py,sha256=_P96JyY5hatNlFvj-yXbWVBrx3rIj83_nu8SPpLezGk,7131
134
+ odxtools/compumethods/ratfunccompumethod.py,sha256=FgG1_jX3WvjbCFz989SqDC5WkwaZ0xR-CN-M5lkTH5I,4393
135
+ odxtools/compumethods/ratfuncsegment.py,sha256=_gWFz8FowgQ4X3YIdeYJaeX-QG23U25k4yLh02cn7j0,2834
132
136
  odxtools/compumethods/scalelinearcompumethod.py,sha256=o_Re17G4XlCn-XbStnvlTs9XVN4h71mkkYyIOii-7w4,5895
137
+ odxtools/compumethods/scaleratfunccompumethod.py,sha256=3imvLJgN3gkc7pILPIwAILHw0Ie5Ih_vysVGA8wYRgk,4457
133
138
  odxtools/compumethods/tabintpcompumethod.py,sha256=Gyf2qV5y53SHIcum5d5HQVGszoZCdu47jxMCQ6yKdQk,8065
134
139
  odxtools/compumethods/texttablecompumethod.py,sha256=vDYafbM0YaipjfN0NSlCFMiIPvp8waMNj3thNcwuYgk,5929
135
140
  odxtools/diaglayers/basevariant.py,sha256=mXS-SF-tcwtdV-rxZZCH6_yqdA-yhtMX1SGo1MS8w7k,4452
136
- odxtools/diaglayers/basevariantraw.py,sha256=sEjOjY6O3q44_WrcWlVRso5SUD-Lv1VLgtCikU_bWLU,4377
137
- odxtools/diaglayers/diaglayer.py,sha256=QGRS2jeqAsR8GbNRzX5u-rzQy-pNG9l5HRMyArX3-I0,15930
138
- odxtools/diaglayers/diaglayerraw.py,sha256=dC8PvvdRCvvp-J_74sFecqBoTYaMj1E5A8b6grtlvvs,11936
141
+ odxtools/diaglayers/basevariantraw.py,sha256=A9h6p2Ri0sPPTW217rtEdNpAt5g6t0MwP9sgXqZ8pFo,4673
142
+ odxtools/diaglayers/diaglayer.py,sha256=kiziALQ4wUAz8aLSHSQzMAJ65c39rkww2zf3eAI6h4Q,16062
143
+ odxtools/diaglayers/diaglayerraw.py,sha256=kE5hoz6Yv5zGRoAD4Z2dD44Mrvn6EUitBm3K8aChV5o,12403
139
144
  odxtools/diaglayers/diaglayertype.py,sha256=FXL-EVBdrAURuHSHo9OthFuEYEybQO66aMB1o2GxVdI,1340
140
145
  odxtools/diaglayers/ecushareddata.py,sha256=QoV50wQIrJ2-faLtU1P7RrjdacbhPY2BfUtVtIyWqCM,3347
141
- odxtools/diaglayers/ecushareddataraw.py,sha256=VBVaCSec4ZHfTqc3l_BszGULYmv9wI6aFLgvugJY3Xk,3079
146
+ odxtools/diaglayers/ecushareddataraw.py,sha256=cvkBhqTLOAey7Pt1bjQ3Jkkenp-D3Zh5djpB4ZWWUvw,3375
142
147
  odxtools/diaglayers/ecuvariant.py,sha256=OsLWg-dx6OJ_OPuYcgoTJuDXEReaJclDRbU5YKqrtBA,4368
143
- odxtools/diaglayers/ecuvariantraw.py,sha256=PpvvAoegaejpoOdto-0CxUiCU0KM_Wm7NzjNlBm9vP8,4648
148
+ odxtools/diaglayers/ecuvariantraw.py,sha256=bKlqFnBWkKdkM9EY5rFGOno3ClIVQNhgBoU5DseNnRc,4944
144
149
  odxtools/diaglayers/functionalgroup.py,sha256=o5bUGGDYisr7CjHZZh83fokA80f0s0zpHC_501cg-f0,4093
145
- odxtools/diaglayers/functionalgroupraw.py,sha256=CHzSwHzG27sCD2pvG9EoPZynDs1bFA5pIX1GyglUmwM,3667
150
+ odxtools/diaglayers/functionalgroupraw.py,sha256=H0-_XXlFTV8POGnh0S7CVBOKKQuyKHMB9lEyoAHuG_A,3963
146
151
  odxtools/diaglayers/hierarchyelement.py,sha256=GWM7Gc4nLQlWMe8wjSY-fvyKlI7uAvqcmit3B1Zvcy0,37061
147
- odxtools/diaglayers/hierarchyelementraw.py,sha256=ivhSrmRrEkCmU9NENFwzxqAC4k2XOa88SQ7azU8q94g,1762
152
+ odxtools/diaglayers/hierarchyelementraw.py,sha256=IdFbnZIw7QGAMh3MW5N9vq5QNGBBAs5foCnbvotfqhQ,2058
148
153
  odxtools/diaglayers/protocol.py,sha256=ypIhfySB6F16Y48XLZIPL36GfrKUznTCmiJ0ROIxYJo,2083
149
- odxtools/diaglayers/protocolraw.py,sha256=fmk5LYB-mrfUYxjJf1REkdY_jSqQgNQ3L5SleBvDwGo,2955
154
+ odxtools/diaglayers/protocolraw.py,sha256=Wf1q2l11mxw61gnveVVEZqgR0yj2RCxoaB3QLzdZQWc,3251
150
155
  odxtools/parameters/codedconstparameter.py,sha256=g34JJxQkyL5R27XiGCgkXyt7UzxFtBhZgv_FbTe2aiQ,3893
151
156
  odxtools/parameters/createanyparameter.py,sha256=m26HHUQrxwDak3eBBciVBLic768Qlo4F2xn1z3r0boM,2566
152
157
  odxtools/parameters/dynamicparameter.py,sha256=mdZx12XbhTSYVVuXEsPYRll3zaHjbHIYIzA6yUy4zck,1569
@@ -157,7 +162,7 @@ odxtools/parameters/parameter.py,sha256=vb74YXUKEffF6ISshYtlIACf8TV-AOlIzlSthBIk
157
162
  odxtools/parameters/parameterwithdop.py,sha256=k7yJABRmHQTZNTEEPjyq3tBXJD4Aey365HpP7SGsEgk,3283
158
163
  odxtools/parameters/physicalconstantparameter.py,sha256=2iC6EKVJZVHwVVmd4h8KJ6OLc7B5QOUawivQMqWPCRA,3593
159
164
  odxtools/parameters/reservedparameter.py,sha256=8XQocU3_ExRZzXYEkITj535TTEUCNK87wIkrUTizgvI,1989
160
- odxtools/parameters/systemparameter.py,sha256=bDz0zV_FNiUDyqI3DUKRAa9F3Pm1yjp_su5ib4JemlA,1779
165
+ odxtools/parameters/systemparameter.py,sha256=CX5YeAcLs0ffDpksTOMXHSGvuPmRIF2Il_lnuCmbNI8,3593
161
166
  odxtools/parameters/tableentryparameter.py,sha256=SuNAFn1wN_hyO2MVd1lT3oQllZ6nLjAIBJHX0HYRyko,2414
162
167
  odxtools/parameters/tablekeyparameter.py,sha256=6Icnr2EMwRoKWRiHct8nrUb56jJ4giVmWApharQDLCc,9955
163
168
  odxtools/parameters/tablestructparameter.py,sha256=Doym0Tybi_t8w7nqM9n_ZAFwRWm-yJOnsaSqi4u5KiU,7032
@@ -173,11 +178,11 @@ odxtools/templates/macros/printBasicStructure.xml.jinja2,sha256=V5oWGZesU_U5pvPO
173
178
  odxtools/templates/macros/printCompanyData.xml.jinja2,sha256=jcNmQBOGDw7wcKdam72NIJSOTxthfkPJvrmw24MBiYQ,2981
174
179
  odxtools/templates/macros/printComparam.xml.jinja2,sha256=e3hPCswAymJteQIUNoc7FOwsK_FrbJOvJooWdEx_vuQ,2408
175
180
  odxtools/templates/macros/printComparamRef.xml.jinja2,sha256=rBhrdUnp605fsUN9SaljpyaAojzaLBvTbkOuduKod18,1274
176
- odxtools/templates/macros/printCompuMethod.xml.jinja2,sha256=6eW1IgjPDwtW9qvA24Tx1wFtGFfJ0k10Gne5HoQpy4U,4394
181
+ odxtools/templates/macros/printCompuMethod.xml.jinja2,sha256=9DilxMWnqOsXu7bNNlDqls-lEqcr_GPzhZum8rzDJP0,4430
177
182
  odxtools/templates/macros/printDOP.xml.jinja2,sha256=t-6U0gZLdV2n6-YW5pkVFnHNVTAOnfqMch-mk_fGyjo,5146
178
183
  odxtools/templates/macros/printDescription.xml.jinja2,sha256=7jcYEIXr7hbbKqSvIUIgXaQSXV4dKAR9UhY352BZct8,452
179
184
  odxtools/templates/macros/printDiagComm.xml.jinja2,sha256=_SByYBYzPG9t7VNnAohFAXsgng9VrQcSacXH923wRzY,2239
180
- odxtools/templates/macros/printDiagLayer.xml.jinja2,sha256=NKrQ9JTxxhdHTHYFo_ZzyoClJJkZC3ISObhWCJOXUq4,6449
185
+ odxtools/templates/macros/printDiagLayer.xml.jinja2,sha256=psPPZK6yj8e4QURnA1leySY9YDOV8Wj_UiMj2-f2Vw4,6656
181
186
  odxtools/templates/macros/printDiagVariable.xml.jinja2,sha256=sQEU42Onf0WkRJZJyNUgeeGICc3MZaQJPQ0YKY6lRrU,2656
182
187
  odxtools/templates/macros/printDynDefinedSpec.xml.jinja2,sha256=uX3C40VmlbH7sndlJNyTvq8upzaoq8vCk6S93gtpFIY,1742
183
188
  odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2,sha256=6BmxPKesQvfy46iTiPSFu_iJffC6umZ_YRsTEd-0y5Q,587
@@ -192,6 +197,7 @@ odxtools/templates/macros/printEnvDataDesc.xml.jinja2,sha256=rBpPf51LFx5oNx_XjeT
192
197
  odxtools/templates/macros/printFunctionalClass.xml.jinja2,sha256=TpOQTj-hlNLtIfcSTVzU-gRrfaWrgsTrIFMqm_1M6Qs,329
193
198
  odxtools/templates/macros/printFunctionalGroup.xml.jinja2,sha256=zIeZbhf8haXhgJJUPiOnMe3lvqvfye4-zmwWDQJxFtQ,1159
194
199
  odxtools/templates/macros/printHierarchyElement.xml.jinja2,sha256=GD6iNIE0Wu0QsJ8uLtwEV8N9t6mIhI00_KpCVzOVQBM,651
200
+ odxtools/templates/macros/printLibrary.xml.jinja2,sha256=wp8vZzHPLZayWZh6BOQ56kGyHSeyrlNacdlxBw9d0N0,683
195
201
  odxtools/templates/macros/printMux.xml.jinja2,sha256=68IiPY_mIJQqQiqce3jUphqp3-xLfmEBL7CSb3Cz7eI,1869
196
202
  odxtools/templates/macros/printParam.xml.jinja2,sha256=bdp-r1arWod-vV9ODUZn_QThtAAqkm31SqdJeGItJ1M,3183
197
203
  odxtools/templates/macros/printParentRef.xml.jinja2,sha256=RllVKt2RgrMnWfsujGnBUiABwV2y4_ZfINYy7LXenPM,896
@@ -200,7 +206,7 @@ odxtools/templates/macros/printProtocol.xml.jinja2,sha256=1DXoRSq6z4dhpZnXWH3x9J
200
206
  odxtools/templates/macros/printRequest.xml.jinja2,sha256=yq4xGSlQCioT7FRivyx40Cjs2CYr9EK6NLZf0W4wGW0,717
201
207
  odxtools/templates/macros/printResponse.xml.jinja2,sha256=GsOYmnoh4ewhWg3FUdcovHuJxvuIjsSrXNtbcnnAQcM,683
202
208
  odxtools/templates/macros/printService.xml.jinja2,sha256=zvjOCELEx4yim2FtdNKiExTsDPkAfQAP4Gf_QsondfQ,1546
203
- odxtools/templates/macros/printSingleEcuJob.xml.jinja2,sha256=SXUgO57KQFahI3fv9tRWlEyWeSr0sYXwQ8vq8lqo0eI,2645
209
+ odxtools/templates/macros/printSingleEcuJob.xml.jinja2,sha256=6phi3VxGllusm6KGgrjWiOj7g80ojHyxvesqmHvuNhs,2174
204
210
  odxtools/templates/macros/printSpecialData.xml.jinja2,sha256=0eIFh9cWXfFrQN_f8G_lz3fUqmtysxY6tSN4DbuFY40,1386
205
211
  odxtools/templates/macros/printState.xml.jinja2,sha256=BNnTEyczp43iP9Bn_plMLRsJsasra4sRyvmgODuZQYg,315
206
212
  odxtools/templates/macros/printStateChart.xml.jinja2,sha256=XW1EhF1k8ogbEDt-QMjSOojKl4vjxXkq6BwJWR9GJsI,951
@@ -209,9 +215,9 @@ odxtools/templates/macros/printStaticField.xml.jinja2,sha256=fkV07zrL2pTo6b5ZPD1
209
215
  odxtools/templates/macros/printStructure.xml.jinja2,sha256=CJUPZv_9lko63C5fNpOn5LlQqLCuS--qyhtx4NyD5Rk,567
210
216
  odxtools/templates/macros/printTable.xml.jinja2,sha256=5DQjjJ-UxQ75ntov0S0LGnm_V7YWtKadBpNbmV1aBb8,1501
211
217
  odxtools/templates/macros/printUnitSpec.xml.jinja2,sha256=opS6_Gr94WlAtREEyX4sLo-D-17Gni9Wvr3y1nfVgSA,2715
212
- odxtools-8.1.0.dist-info/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
213
- odxtools-8.1.0.dist-info/METADATA,sha256=dkjShZNAIkPd9u579phjMKQr1gGFWNyuMpng0dcqLrI,44084
214
- odxtools-8.1.0.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
215
- odxtools-8.1.0.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
216
- odxtools-8.1.0.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
217
- odxtools-8.1.0.dist-info/RECORD,,
218
+ odxtools-8.2.1.dist-info/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
219
+ odxtools-8.2.1.dist-info/METADATA,sha256=XJFo9HuR5ut_oT-x6eOcoV_R2a5PQr9umexDRlXQPZg,44084
220
+ odxtools-8.2.1.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
221
+ odxtools-8.2.1.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
222
+ odxtools-8.2.1.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
223
+ odxtools-8.2.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (74.1.2)
2
+ Generator: setuptools (75.2.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5