odxtools 9.2.0__py3-none-any.whl → 9.4.0__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 (63) hide show
  1. odxtools/companyrevisioninfo.py +1 -1
  2. odxtools/comparaminstance.py +1 -6
  3. odxtools/comparamspec.py +3 -2
  4. odxtools/comparamsubset.py +3 -5
  5. odxtools/dataobjectproperty.py +12 -6
  6. odxtools/decodestate.py +120 -26
  7. odxtools/description.py +19 -2
  8. odxtools/diagcodedtype.py +9 -2
  9. odxtools/diagcomm.py +4 -4
  10. odxtools/diaglayercontainer.py +2 -2
  11. odxtools/diaglayers/diaglayerraw.py +2 -2
  12. odxtools/diaglayers/hierarchyelement.py +2 -0
  13. odxtools/diagnostictroublecode.py +4 -8
  14. odxtools/diagservice.py +70 -4
  15. odxtools/diagvariable.py +45 -7
  16. odxtools/encodestate.py +147 -51
  17. odxtools/encoding.py +56 -0
  18. odxtools/environmentdatadescription.py +77 -47
  19. odxtools/functionalclass.py +7 -2
  20. odxtools/inputparam.py +9 -3
  21. odxtools/leadinglengthinfotype.py +4 -0
  22. odxtools/minmaxlengthtype.py +57 -36
  23. odxtools/modification.py +3 -2
  24. odxtools/odxcategory.py +2 -2
  25. odxtools/odxlink.py +31 -7
  26. odxtools/odxtypes.py +1 -1
  27. odxtools/outputparam.py +8 -3
  28. odxtools/parameters/matchingrequestparameter.py +1 -0
  29. odxtools/parameters/physicalconstantparameter.py +1 -0
  30. odxtools/parameters/reservedparameter.py +1 -0
  31. odxtools/parameters/tableentryparameter.py +15 -4
  32. odxtools/parameters/tablekeyparameter.py +20 -17
  33. odxtools/paramlengthinfotype.py +5 -3
  34. odxtools/physicaltype.py +2 -1
  35. odxtools/scaleconstr.py +4 -4
  36. odxtools/standardlengthtype.py +98 -22
  37. odxtools/statetransition.py +24 -3
  38. odxtools/structure.py +10 -2
  39. odxtools/swvariable.py +3 -1
  40. odxtools/table.py +55 -3
  41. odxtools/tablerow.py +91 -8
  42. odxtools/templates/macros/printDOP.xml.jinja2 +2 -2
  43. odxtools/templates/macros/printDescription.xml.jinja2 +5 -1
  44. odxtools/templates/macros/printDiagLayer.xml.jinja2 +1 -1
  45. odxtools/templates/macros/printDiagVariable.xml.jinja2 +12 -3
  46. odxtools/templates/macros/printFunctionalClass.xml.jinja2 +4 -0
  47. odxtools/templates/macros/printParentRef.xml.jinja2 +27 -0
  48. odxtools/templates/macros/printProtocol.xml.jinja2 +1 -1
  49. odxtools/templates/macros/printService.xml.jinja2 +30 -0
  50. odxtools/templates/macros/printStructure.xml.jinja2 +2 -1
  51. odxtools/templates/macros/printTable.xml.jinja2 +43 -0
  52. odxtools/templates/macros/printUnitSpec.xml.jinja2 +4 -0
  53. odxtools/uds.py +2 -2
  54. odxtools/unit.py +8 -12
  55. odxtools/unitspec.py +5 -2
  56. odxtools/utils.py +44 -1
  57. odxtools/version.py +2 -2
  58. {odxtools-9.2.0.dist-info → odxtools-9.4.0.dist-info}/METADATA +2 -2
  59. {odxtools-9.2.0.dist-info → odxtools-9.4.0.dist-info}/RECORD +63 -62
  60. {odxtools-9.2.0.dist-info → odxtools-9.4.0.dist-info}/WHEEL +1 -1
  61. {odxtools-9.2.0.dist-info → odxtools-9.4.0.dist-info}/LICENSE +0 -0
  62. {odxtools-9.2.0.dist-info → odxtools-9.4.0.dist-info}/entry_points.txt +0 -0
  63. {odxtools-9.2.0.dist-info → odxtools-9.4.0.dist-info}/top_level.txt +0 -0
@@ -6,6 +6,36 @@
6
6
  {%- import('macros/printDiagComm.xml.jinja2') as pdc %}
7
7
  {%- import('macros/printComparamRef.xml.jinja2') as pcom %}
8
8
 
9
+ {%- macro printPosResponseSuppressible(prs) -%}
10
+ <POS-RESPONSE-SUPPRESSABLE>
11
+ <BIT-MASK>{{ hex(prs.bit_mask).lower() }}</BIT-MASK>
12
+ {%- if prs.coded_const_snref is not none %}
13
+ <CODED-CONST-SNREF SHORT-NAME="{{ prs.coded_const_snref }}" />
14
+ {%- endif %}
15
+ {%- if prs.coded_const_snpathref is not none %}
16
+ <CODED-CONST-SNPATHREF SHORT-PATH-NAME="{{ prs.coded_const_snpathref }}" />
17
+ {%- endif %}
18
+ {%- if prs.value_snref is not none %}
19
+ <VALUE-SNREF SHORT-NAME="{{ prs.value_snref }}" />
20
+ {%- endif %}
21
+ {%- if prs.value_snpathref is not none %}
22
+ <VALUE-SNPATHREF SHORT-PATH-NAME="{{ prs.value_snpathref }}" />
23
+ {%- endif %}
24
+ {%- if prs.phys_const_snref is not none %}
25
+ <PHYS-CONST-SNREF SHORT-NAME="{{ prs.phys_const_snref }}" />
26
+ {%- endif %}
27
+ {%- if prs.phys_const_snpathref is not none %}
28
+ <PHYS-CONST-SNPATHREF SHORT-PATH-NAME="{{ prs.phys_const_snpathref }}" />
29
+ {%- endif %}
30
+ {%- if prs.table_key_snref is not none %}
31
+ <TABLE-KEY-SNREF SHORT-NAME="{{ prs.table_key_snref }}" />
32
+ {%- endif %}
33
+ {%- if prs.table_key_snpathref is not none %}
34
+ <TABLE-KEY-SNPATHREF SHORT-PATH-NAME="{{ prs.table_key_snpathref }}" />
35
+ {%- endif %}
36
+ </POS-RESPONSE-SUPPRESSABLE>
37
+ {%- endmacro -%}
38
+
9
39
  {%- macro printService(service) -%}
10
40
  <DIAG-SERVICE {{pdc.printDiagCommAttribs(service) | indent(1) }}
11
41
  {{-make_bool_xml_attrib("IS-CYCLIC", service.is_cyclic_raw)}}
@@ -7,7 +7,8 @@
7
7
  {%- import('macros/printParam.xml.jinja2') as pp %}
8
8
 
9
9
  {%- macro printStructure(st) -%}
10
- <STRUCTURE {{-peid.printElementIdAttribs(st)}}>
10
+ <STRUCTURE {{-peid.printElementIdAttribs(st)}}
11
+ {{- make_bool_xml_attrib("IS-VISIBLE", st.is_visible_raw) }}{#- #}>
11
12
  {{ peid.printElementIdSubtags(st)|indent(1) }}
12
13
  {%- if st.byte_size is not none %}
13
14
  <BYTE-SIZE>{{st.byte_size}}</BYTE-SIZE>
@@ -6,6 +6,8 @@
6
6
  {%- import('macros/printElementId.xml.jinja2') as peid %}
7
7
  {%- import('macros/printSpecialData.xml.jinja2') as psd %}
8
8
  {%- import('macros/printDescription.xml.jinja2') as pd %}
9
+ {%- import('macros/printAdminData.xml.jinja2') as pad %}
10
+ {%- import('macros/printAudience.xml.jinja2') as paud %}
9
11
 
10
12
  {%- macro printTable(table) %}
11
13
  <TABLE {{-peid.printElementIdAttribs(table)}}
@@ -31,11 +33,52 @@
31
33
  <STRUCTURE-REF ID-REF="{{ table_row.structure_ref.ref_id }}" />
32
34
  {%- endif %}
33
35
  {{- psd.printSpecialDataGroups(table_row.sdgs)|indent(2, first=True) }}
36
+ {%- if table_row.audience is not none %}
37
+ {{ paud.printAudience(table_row.audience) | indent(2) }}
38
+ {%- endif %}
39
+ {%- if table_row.functional_class_refs %}
40
+ <FUNCT-CLASS-REFS>
41
+ {%- for fc_ref in table_row.functional_class_refs %}
42
+ <FUNCT-CLASS-REF ID-REF="{{ fc_ref.ref_id }}" />
43
+ {%- endfor %}
44
+ </FUNCT-CLASS-REFS>
45
+ {%- endif %}
46
+ {%- if table_row.state_transition_refs %}
47
+ <STATE-TRANSITION-REFS>
48
+ {%- for st_ref in table_row.state_transition_refs %}
49
+ <STATE-TRANSITION-REF ID-REF="{{ st_ref.ref_id }}" />
50
+ {%- endfor %}
51
+ </STATE-TRANSITION-REFS>
52
+ {%- endif %}
53
+ {%- if table_row.pre_condition_state_refs %}
54
+ <PRE-CONDITION-STATE-REFS>
55
+ {%- for pcs_ref in table_row.pre_condition_state_refs %}
56
+ <PRE-CONDITION-STATE-REF ID-REF="{{ pcs_ref.ref_id }}" />
57
+ {%- endfor %}
58
+ </PRE-CONDITION-STATE-REFS>
59
+ {%- endif %}
60
+ {%- if table_row.admin_data is not none %}
61
+ {{ pad.printAdminData(table_row.admin_data)|indent(2) }}
62
+ {%- endif %}
34
63
  </TABLE-ROW>
35
64
  {%- else %}
36
65
  <TABLE-ROW-REF ID-REF="{{ table_row.ref_id }}" />
37
66
  {%- endif %}
38
67
  {%- endfor %}
68
+ {%- if table_diag_comm_connectors %}
69
+ <TABLE-DIAG-COMM-CONNECTORS>
70
+ {%- for tdcc in table_diag_comm_connectors %}
71
+ <TABLE-DIAG-COMM-CONNECTOR>
72
+ <SEMANTIC>{{tdcc.semantic}}</SEMANTIC>
73
+ {%- if tdcc.diag_comm_ref %}
74
+ <DIAG-COMM-REF ID-REF="{{ tdcc.diag_comm_ref.ref_id }}" />
75
+ {%- elif tdcc.diag_comm_snref %}
76
+ <DIAG-COMM-SNREF SHORT-NAME="{{ tdcc.diag_comm_snref }}" />
77
+ {%- endif %}
78
+ </TABLE-DIAG-COMM-CONNECTOR>
79
+ {%- endfor %}
80
+ </TABLE-DIAG-COMM-CONNECTORS>
81
+ {%- endif %}
39
82
  {{- psd.printSpecialDataGroups(table.sdgs)|indent(1, first=True) }}
40
83
  </TABLE>
41
84
  {%- endmacro -%}
@@ -4,10 +4,14 @@
4
4
  -#}
5
5
 
6
6
  {%- import('macros/printElementId.xml.jinja2') as peid %}
7
+ {%- import('macros/printAdminData.xml.jinja2') as pad %}
7
8
  {%- import('macros/printSpecialData.xml.jinja2') as psd %}
8
9
 
9
10
  {%- macro printUnitSpec(spec) -%}
10
11
  <UNIT-SPEC>
12
+ {%- if spec.admin_data is not none %}
13
+ {{ pad.printAdminData(spec.admin_data)|indent(1) }}
14
+ {%- endif %}
11
15
  {%- if spec.unit_groups %}
12
16
  <UNIT-GROUPS>
13
17
  {%- for group in spec.unit_groups %}
odxtools/uds.py CHANGED
@@ -60,13 +60,13 @@ _sid_to_name = {
60
60
  0x85: "Control DTC Settings",
61
61
  0x86: "Response on Event",
62
62
  0x87: "Link Control",
63
- 0x22: "Read Data by Identifier ",
63
+ 0x22: "Read Data by Identifier",
64
64
  0x23: "Read Memory by Address",
65
65
  0x24: "Read Scaling Data by Identifier",
66
66
  0x2a: "Read Data by Periodic Identifier",
67
67
  0x2c: "Dynamically Define Data Identifier",
68
68
  0x2e: "Write Data by Identifier",
69
- 0x3d: "Write Memory by Address ",
69
+ 0x3d: "Write Memory by Address",
70
70
  0x14: "Clear Diagnostic Information",
71
71
  0x19: "Read DTC Information",
72
72
  0x2f: "Input Output Control by Identifier",
odxtools/unit.py CHANGED
@@ -4,7 +4,7 @@ from typing import Any, Dict, List, Optional
4
4
  from xml.etree import ElementTree
5
5
 
6
6
  from .element import IdentifiableElement
7
- from .exceptions import odxassert, odxrequire
7
+ from .exceptions import odxrequire
8
8
  from .odxlink import OdxDocFragment, OdxLinkDatabase, OdxLinkId, OdxLinkRef
9
9
  from .physicaldimension import PhysicalDimension
10
10
  from .snrefcontext import SnRefContext
@@ -57,8 +57,12 @@ class Unit(IdentifiableElement):
57
57
  offset_si_to_unit: Optional[float]
58
58
  physical_dimension_ref: Optional[OdxLinkRef]
59
59
 
60
+ @property
61
+ def physical_dimension(self) -> Optional[PhysicalDimension]:
62
+ return self._physical_dimension
63
+
60
64
  def __post_init__(self) -> None:
61
- self._physical_dimension = None
65
+ self._physical_dimension: Optional[PhysicalDimension] = None
62
66
 
63
67
  @staticmethod
64
68
  def from_et(et_element: ElementTree.Element, doc_frags: List[OdxDocFragment]) -> "Unit":
@@ -84,21 +88,13 @@ class Unit(IdentifiableElement):
84
88
  physical_dimension_ref=physical_dimension_ref,
85
89
  **kwargs)
86
90
 
87
- @property
88
- def physical_dimension(self) -> Optional[PhysicalDimension]:
89
- return self._physical_dimension
90
-
91
91
  def _build_odxlinks(self) -> Dict[OdxLinkId, Any]:
92
92
  return {self.odx_id: self}
93
93
 
94
94
  def _resolve_odxlinks(self, odxlinks: OdxLinkDatabase) -> None:
95
95
  if self.physical_dimension_ref:
96
- self._physical_dimension = odxlinks.resolve(self.physical_dimension_ref)
97
-
98
- odxassert(
99
- isinstance(self._physical_dimension, PhysicalDimension),
100
- f"The physical_dimension_ref must be resolved to a PhysicalDimension."
101
- f" {self.physical_dimension_ref} referenced {self._physical_dimension}")
96
+ self._physical_dimension = odxlinks.resolve(self.physical_dimension_ref,
97
+ PhysicalDimension)
102
98
 
103
99
  def _resolve_snrefs(self, context: SnRefContext) -> None:
104
100
  pass
odxtools/unitspec.py CHANGED
@@ -1,8 +1,9 @@
1
1
  # SPDX-License-Identifier: MIT
2
2
  from dataclasses import dataclass
3
- from typing import Any, Dict, List
3
+ from typing import Any, Dict, List, Optional
4
4
  from xml.etree import ElementTree
5
5
 
6
+ from .admindata import AdminData
6
7
  from .nameditemlist import NamedItemList
7
8
  from .odxlink import OdxDocFragment, OdxLinkDatabase, OdxLinkId
8
9
  from .physicaldimension import PhysicalDimension
@@ -24,7 +25,7 @@ class UnitSpec:
24
25
  The following odx elements are not internalized: ADMIN-DATA, SDGS
25
26
  """
26
27
 
27
- # TODO (?): Why are there type errors...
28
+ admin_data: Optional[AdminData]
28
29
  unit_groups: NamedItemList[UnitGroup]
29
30
  units: NamedItemList[Unit]
30
31
  physical_dimensions: NamedItemList[PhysicalDimension]
@@ -38,6 +39,7 @@ class UnitSpec:
38
39
  @staticmethod
39
40
  def from_et(et_element: ElementTree.Element, doc_frags: List[OdxDocFragment]) -> "UnitSpec":
40
41
 
42
+ admin_data = AdminData.from_et(et_element.find("ADMIN-DATA"), doc_frags)
41
43
  unit_groups = NamedItemList([
42
44
  UnitGroup.from_et(el, doc_frags) for el in et_element.iterfind("UNIT-GROUPS/UNIT-GROUP")
43
45
  ])
@@ -52,6 +54,7 @@ class UnitSpec:
52
54
  ]
53
55
 
54
56
  return UnitSpec(
57
+ admin_data=admin_data,
55
58
  unit_groups=unit_groups,
56
59
  units=units,
57
60
  physical_dimensions=physical_dimensions,
odxtools/utils.py CHANGED
@@ -1,7 +1,50 @@
1
1
  # SPDX-License-Identifier: MIT
2
2
  import dataclasses
3
3
  import re
4
- from typing import Any, Dict
4
+ from typing import TYPE_CHECKING, Any, Dict, Optional
5
+
6
+ if TYPE_CHECKING:
7
+ from .database import Database
8
+ from .diaglayers.diaglayer import DiagLayer
9
+ from .snrefcontext import SnRefContext
10
+
11
+
12
+ def retarget_snrefs(database: "Database",
13
+ diag_layer: "DiagLayer",
14
+ context: Optional["SnRefContext"] = None) -> None:
15
+ """Re-resolve the short name references reachable by a
16
+ DiagLayer to this DiagLayer
17
+
18
+ This implies that after the SNREFs have been retargeted, accessing
19
+ the resolved objects via a different diagnostic layer might not be
20
+ correct. E.g.: If the ECU variants "V1" and "V2" are derived from
21
+ the base variant "BV", BV defines a short name reference to a data
22
+ object property called "Foo" and V1 and V2 both define a "Foo"
23
+ DOP, the reference in the base variant to Foo ought to be resolved
24
+ differently depending on whether it is accessed via V1 or
25
+ V2. Since odxtools resolves all references ahead of time, a fixed
26
+ variant has to be chosen. This method allows to switch the variant
27
+ to another one.
28
+
29
+ """
30
+ from .snrefcontext import SnRefContext
31
+
32
+ if context is None:
33
+ context = SnRefContext()
34
+
35
+ if context.database is None:
36
+ context.database = database
37
+
38
+ if context.diag_layer is None:
39
+ context.diag_layer = diag_layer
40
+
41
+ # retarget the objects "owned" by the layer itself
42
+ diag_layer._resolve_snrefs(context)
43
+
44
+ # retarget all parents of the current layer (if any)
45
+ if (parent_refs := getattr(diag_layer, "parent_refs", None)) is not None:
46
+ for pr in parent_refs:
47
+ retarget_snrefs(database, pr.layer, context)
5
48
 
6
49
 
7
50
  def dataclass_fields_asdict(obj: Any) -> Dict[str, Any]:
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 = '9.2.0'
16
- __version_tuple__ = version_tuple = (9, 2, 0)
15
+ __version__ = version = '9.4.0'
16
+ __version_tuple__ = version_tuple = (9, 4, 0)
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: odxtools
3
- Version: 9.2.0
3
+ Version: 9.4.0
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>
@@ -9,29 +9,29 @@ odxtools/codec.py,sha256=2aTfrQc0-cNuPAfXeDDyjxXAHjBJ1xy3ELCVeA9UQP0,8108
9
9
  odxtools/commrelation.py,sha256=Gh3CqMuF9rS0X107oxUkISNT2VWDZVPCpOSu54q7hcs,4793
10
10
  odxtools/companydata.py,sha256=o8vRONHfzmon3Ws0LLKX3-9Och34Uu91aAmBnNg2N34,2539
11
11
  odxtools/companydocinfo.py,sha256=fcceuYX8eTKhVhtmji6yiMRi6gtqPAJdi5kpo-wyL_8,2267
12
- odxtools/companyrevisioninfo.py,sha256=rim57tX4jFoJq4Xvdet7UUHMA7MpcIjMQQrL-YTWAh0,1356
12
+ odxtools/companyrevisioninfo.py,sha256=a_aAAeF_8AW-AREOpDgm_eji1i38gttT7Zg3lSo7l88,1356
13
13
  odxtools/companyspecificinfo.py,sha256=Fww7CqQmU-4HUtyaJatcgg9VV8iZzj4YQ5M0UqJVs2c,1537
14
14
  odxtools/comparam.py,sha256=uVThBbKO8_aoTWYFH5OhyKdAnq1Psq2gifEmvfL0-I0,1592
15
- odxtools/comparaminstance.py,sha256=NZImeN3HSfjUx_xyRghH8yDPD8wd5_RadNGWeQD16KI,4949
16
- odxtools/comparamspec.py,sha256=RvkFc9rcxDL_S8bGnTRVJOW1DzHXLXIr_VoHs4feijQ,1822
17
- odxtools/comparamsubset.py,sha256=uy7ZxtTjAtTK-9Uh7AD-J0-LcgECJCsyAboWbQMo1rQ,3796
15
+ odxtools/comparaminstance.py,sha256=RzXBrxCPhKTKq7JAGbHPXvXoA-E0JPQearTmyYpV2UU,4717
16
+ odxtools/comparamspec.py,sha256=ktOYZORh1mdabACvdqTOUTb6Arb7pc3jbXEECt5ClzY,1838
17
+ odxtools/comparamsubset.py,sha256=8nszK50JqVS81FLD5_IxLsFTGt6GUs-tlFuwtTU5AWA,3807
18
18
  odxtools/complexcomparam.py,sha256=4EJQXVmi_i3Eas5LAF-sEC5XnAUMZKr2sS6LoDNskk0,3729
19
19
  odxtools/complexdop.py,sha256=AHkHMf_IEWfy-_zSiCuZXmdTNCXiCOpg5GRZ5uMVV5A,280
20
20
  odxtools/createanycomparam.py,sha256=RP0XA2Ut4GL2NWy05RvKBrTnpbvvCG2XuNL8OO-9rbI,617
21
21
  odxtools/createanydiagcodedtype.py,sha256=0DVmMj4UCDYIg0zu9pgTplyhHmRedz1KJcchq1uKMjg,1216
22
22
  odxtools/createecuvariantpatterns.py,sha256=FXHLGR4M791MRkpU2_keck88hoMYkuyPiCUxuGbUasQ,559
23
23
  odxtools/database.py,sha256=VJk-EOzHHtxjkhP7o0h470B0oyg73ZafK3w1UjnwRNM,9945
24
- odxtools/dataobjectproperty.py,sha256=otbbtGadW_W9nr5sL9Fug5_bU91eYeOYyfBWa7sb3B0,6052
25
- odxtools/decodestate.py,sha256=jJxLUzUYZ0C4t18FhJzo2iRTP8DF7BzrWLtRTTlLsJI,4885
26
- odxtools/description.py,sha256=UoACftC_n7fQ1n9WDwCzizStMH0HCO2Qv0YLRaSjEgs,1484
24
+ odxtools/dataobjectproperty.py,sha256=N-8YJUXdvvlmM3IZYu5SokSnST1hbgPRr3sI-VP4Epk,6238
25
+ odxtools/decodestate.py,sha256=VdYB4Q3yuFqCNV0IK2QfS_120n9dIgyLnPOwc3Hy33U,8292
26
+ odxtools/description.py,sha256=xaSfOjRCWn7_9BhdTgI0ESPtaU-iUE815Z6WobYYL-A,1952
27
27
  odxtools/determinenumberofitems.py,sha256=DxM9udr1MQfEojiLdc35bbjniQl1fkeHcTMpoo9AfPI,1558
28
- odxtools/diagcodedtype.py,sha256=LeL4UzaDM70XN2ec-4c7pdE6Z671TQTS7ivC8XNbd8M,4620
29
- odxtools/diagcomm.py,sha256=j8esUkogoxHBwIEUBkAoXe28jX3vaRnnrgCR_gdP6VY,8110
28
+ odxtools/diagcodedtype.py,sha256=tDzJCxK-9qF0qhiDHNxwg3uXcHz4AwNWEcI12dd84RE,4927
29
+ odxtools/diagcomm.py,sha256=f41tLKpWB-tu6QfpPzIXtma4kmJkuEwtXU8iSsq1zng,8093
30
30
  odxtools/diagdatadictionaryspec.py,sha256=2zy5f-xnfGI0bnjPOEwG_IJxfsHhXZoOfdIS_fOr3L0,10552
31
- odxtools/diaglayercontainer.py,sha256=giiRUB_wlirogJLpJ3qrbUXgM_5JhHD6VXPPhDGTiDk,5318
32
- odxtools/diagnostictroublecode.py,sha256=jKtO8JqU0HRpeSyrcHn4s21N4Jj-p19WVP-qw2H98gY,2459
33
- odxtools/diagservice.py,sha256=y1_qKI7kJXDWpjpw91loIdf-K7Ozo45BsYiOhVYGuXg,10291
34
- odxtools/diagvariable.py,sha256=KUyRCV-H5xKITWYk9wxDnaS_N2nwDFGQzHaQRfNndKA,3829
31
+ odxtools/diaglayercontainer.py,sha256=IkO0mwI-mvoyu15z-u0cMOVrx34DyhdOuk4Cd9BTFRM,5333
32
+ odxtools/diagnostictroublecode.py,sha256=6W1aEjCNSsN_hF9HAgO78MWy0t6nkD6HnzF8owHVzhQ,2321
33
+ odxtools/diagservice.py,sha256=kqcz9QRBCibz2TMMglWdaqd0r_rVcbEpA-d5a-VfxSk,13050
34
+ odxtools/diagvariable.py,sha256=SjhHcY1CWx6ADIlKNZVhS-pUXHlocsVho-aRZC0FBkA,5282
35
35
  odxtools/docrevision.py,sha256=m57a4lCWeR6QvNNxtwUNpLXAMgSq29ks1HorxoipFVk,2698
36
36
  odxtools/dopbase.py,sha256=NCTTq2NF4DJI9nUAwBoa79IBgBjQtWo4V0WvkxuTx5g,2616
37
37
  odxtools/dtcdop.py,sha256=3H0jSH6EHOA0-UJ9GcJwJuBCCciPhxZsz_dfRnNYF7A,11560
@@ -42,24 +42,25 @@ odxtools/dynenddopref.py,sha256=SYXrmRUQoLWD4UI3WV92oA5rNhxbDuRv6H1MeXeuWhM,1199
42
42
  odxtools/ecuvariantmatcher.py,sha256=muZfBcHVUQFXn3mBRwLtQ2asGV1oDYkDrBwZ9WYuLKU,6848
43
43
  odxtools/ecuvariantpattern.py,sha256=Xp2NpS13sVvyOjy2PgxLvXPptAfmYSH_KDIjqYByZHs,863
44
44
  odxtools/element.py,sha256=nCJkQMIPC26XfD4w1VrTH3l7Cd_BemMM_5lALh5gC7E,1259
45
- odxtools/encodestate.py,sha256=yxeql949uvlB2WnsF0jVcMJ6PvaoYcGB7M0OuB4Afj0,10008
45
+ odxtools/encodestate.py,sha256=V3AEH3g6TYQIfP-TP2yinBgfCtEbdlbJ1xWgY_zhAVs,13566
46
+ odxtools/encoding.py,sha256=5gn6PDqwU9K2RzEfEO9kcBj1v55TSKI1nCXNcTiZE9s,1994
46
47
  odxtools/endofpdufield.py,sha256=mGkhTj-YGdJ4EHMsK3AlWV6G_KLWI4ymiFKbY8U2W50,3359
47
48
  odxtools/environmentdata.py,sha256=_wSKhV_NuMG6UPMnpOxz6mVjvrXsd2mtqqT7VKSSxHU,1414
48
- odxtools/environmentdatadescription.py,sha256=2aAvretxH0_8KKMwk2-J-ou2Abd2kwUEwsSAEn7F5WM,9899
49
+ odxtools/environmentdatadescription.py,sha256=p1NThRs6WcoP62JTlqOvwKLqq967kBN7a86N89NeESA,11760
49
50
  odxtools/exceptions.py,sha256=ZApQkhOJ9gn4jk0uO1wmULn5PhNEl1aMYMSHDoXihh0,2714
50
51
  odxtools/field.py,sha256=pdQpWxybPsiQ4oFKtvnjIEcQXV2WD0qH-NnBV54KMcI,3860
51
- odxtools/functionalclass.py,sha256=IfhxKd02WNGftjSMyBJ8RsxVZgTBxzUM0h6EKHVrrxY,951
52
+ odxtools/functionalclass.py,sha256=DmJhtihbM64Vw-EYkzD1V5hRC-3Gt1XHdGqGUmaishk,1136
52
53
  odxtools/globals.py,sha256=P6YbgyTSWHMw3sk5cEzsCvVaLrTiakLvewTgySb1jLo,139
53
- odxtools/inputparam.py,sha256=-9BTmw8BjCM-zM7VOy30O220XKs7-GKRX032wjWGe3U,1667
54
+ odxtools/inputparam.py,sha256=SumMU1-zxgtGmGBAyB9mb6S1HuTrriE-8ggTY9UV5lY,1807
54
55
  odxtools/internalconstr.py,sha256=QKEkaOcrFoL9xID-oHWWkeg-vtcPV6RFOW1fX2K3pwg,1363
55
56
  odxtools/isotp_state_machine.py,sha256=O6v29IK7p_4gFqrr-fahnbp9Qmo78EEQfEwRsA_Vfjw,13339
56
- odxtools/leadinglengthinfotype.py,sha256=RnxA6On49hy1-SZ8GFOx1wwfNDjXo4zG1GXKJp_gcBM,3865
57
+ odxtools/leadinglengthinfotype.py,sha256=oD0uwLECssJZDKicKYlOZRbrcCeTfz-CiWa-SROfrIU,4013
57
58
  odxtools/library.py,sha256=E_A6K6jcEoUdXh4h4sQILj7_JM-6X5OUUWSM47G69CU,2067
58
59
  odxtools/loadfile.py,sha256=hi8jVE7B1G9gklsb7MrGrp4aOAI65j0kNwvDeEEEN2k,1744
59
60
  odxtools/matchingparameter.py,sha256=2cqaxFCZ28GvvUKCIM-jas3ae4eYGbULbkBlb3aH5RY,2232
60
61
  odxtools/message.py,sha256=PDY-CDgTmJA6dyNacCV57M-p_ETtR8MdU7WZGEew4zM,855
61
- odxtools/minmaxlengthtype.py,sha256=GQUici8NS9_znw8qiTKWHO2Ky-5tr3SJmdrVKtDd__M,8917
62
- odxtools/modification.py,sha256=oyyFsYHixy6XHOdqqTCx3IIkTAKlSN9wxBpNpvhUaJA,838
62
+ odxtools/minmaxlengthtype.py,sha256=tL_PSvDrZ1JZAnqup5RJWTyj9nuueQ_OjlowG-ZWciU,9710
63
+ odxtools/modification.py,sha256=9EJJUCNTzM05HGT6UZ7r2yLDm7voBFPO-hldBC9D4aw,875
63
64
  odxtools/multiplexer.py,sha256=flHlorv9grEMj8pNAWQJNrxhptnDxSsFERO7gpKYRME,10235
64
65
  odxtools/multiplexercase.py,sha256=qfxWJzfJLYAsnhFGheUWDsUaIte2dSRJ0nadiN9SXDw,3176
65
66
  odxtools/multiplexerdefaultcase.py,sha256=u3YxZZawhXTOdrC5ltt1YNNaDMGrbL9qsz6PTKrPdSM,2104
@@ -67,46 +68,46 @@ odxtools/multiplexerswitchkey.py,sha256=fnCpPcg47JQZQsrqS2RAa_O-JrfUb0pvhKv8hhs1
67
68
  odxtools/nameditemlist.py,sha256=KqKILKq8lqo3qQKmR5HBAkePqfggFhI7yAoenYprjNs,6960
68
69
  odxtools/negoutputparam.py,sha256=u2IhJvy6n19t3nyADGG0H0XTm7JNdQ0-95FawGAdtiE,1373
69
70
  odxtools/obd.py,sha256=WsUbhdonqQJtxf972CUdYL78AMMTVjMQhoCJbaZhRIo,1860
70
- odxtools/odxcategory.py,sha256=85geAwJqInPSLjSBx-rtuRdx_m1ACuzZtRl_BcAkyss,3208
71
- odxtools/odxlink.py,sha256=7_O8pZB9prgjN-2rJHPMkce1RwV7PT988EmOONgxfng,9414
72
- odxtools/odxtypes.py,sha256=MKfusVSYma_OZYmxCVm-kx7WBK8OHjeU3DnJhet4zeg,8055
73
- odxtools/outputparam.py,sha256=reBgrSE7fORxfSVSTuim0FyxHrE6OsQOGIFUjhn5FlE,1394
71
+ odxtools/odxcategory.py,sha256=5R5vUTcYnsgfzGD3c0TM6qFYXpbW-d-t1VpUmgZYHWU,3221
72
+ odxtools/odxlink.py,sha256=WVPOXNIldLdz0YnwVpRVe42ugC6G1WX4Ic2Khhz-ito,10194
73
+ odxtools/odxtypes.py,sha256=XJ6OR2_fsILR_cA3lDK47XAtYQ5U6KsH7r4Qn5nSNH8,8094
74
+ odxtools/outputparam.py,sha256=VqD7jJ5yDvIq9KAatGWD17CWfuSqySQl142FXZYeQHE,1468
74
75
  odxtools/parameterinfo.py,sha256=PzhIZyYINNxykecPQWnRH1Ywrfgxx31DVax2VNN__CY,11183
75
- odxtools/paramlengthinfotype.py,sha256=QMXGN5fd834abUvwql6j04ZiIbqixVHkQACaOx4xyH0,4699
76
+ odxtools/paramlengthinfotype.py,sha256=zJ3gRweIEngl2C4wJoT2uuTf05NRNSJ4RlDmC2L3UBE,4859
76
77
  odxtools/parentref.py,sha256=kcY3VMyVaIUWD0iVNX8sD9qeI4peU8gijboquu0zD7E,3751
77
78
  odxtools/physicaldimension.py,sha256=CEH7Ura4gqsqlBUxBW08ea9Pxh_Od8JruYQ8o9qOGME,3269
78
- odxtools/physicaltype.py,sha256=oYjOhdrTVCJcLLBYgy6pxKsZHpuwm1vZ8svwSjsUB6E,2699
79
+ odxtools/physicaltype.py,sha256=mCyoESSNhHYYoj7bLidZYazi0N2HhoEbyw2iFjRPqII,2727
79
80
  odxtools/progcode.py,sha256=Cx8ziCmQm2OfhinAuRrFrMuoThU7hgA6zNQKAT-AT0A,2276
80
81
  odxtools/protstack.py,sha256=nb2RR4OEaGX6lJ6drHejJU-tkB1p0Ok0KLZhNMTdsEc,2012
81
82
  odxtools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
83
  odxtools/relateddoc.py,sha256=zb5Ea9vkd31kxTP4s5_PLF3LuCoUcG8rgLckStHVRDc,1301
83
84
  odxtools/request.py,sha256=iX3D4VX-ctUEk0WpvQHr7UQHalhHkSeR9DLFbVoEQws,4902
84
85
  odxtools/response.py,sha256=aJDoe-ZAKI4Zui4VbwnWLLb9g8Y_SgVZ0XFH7jYZRVI,5505
85
- odxtools/scaleconstr.py,sha256=xSH8kmld5Gg1lVgjLWTZINEtDn2a3HemVqlXiHsl4Fs,1783
86
+ odxtools/scaleconstr.py,sha256=oZtpxNh0mn_9oa-J6xxdPz09tMiQ9Y2DE1Ae-1ovMqI,1787
86
87
  odxtools/servicebinner.py,sha256=TId3D3XHa98zbyC1sGWacQUlIZ5e2Egklelv6_Ra2II,3861
87
88
  odxtools/singleecujob.py,sha256=rlpReb9816abYX0oihYXMkIQo8hnzbUkZqkTvX-IRZ4,3920
88
89
  odxtools/snrefcontext.py,sha256=5ZbrZiX1gw6LC6o62RPuxzSo4tDR2LqRQ9w9Vi57FA8,953
89
90
  odxtools/specialdata.py,sha256=5-1D_6dcEmi-TodCzCoBZK7gqeDY-cuRe1ybkTh4rBY,1033
90
91
  odxtools/specialdatagroup.py,sha256=9pNCA89kGwhBiVN9nC_03ASHZT6q3FL8l2CxRf9jwU0,3070
91
92
  odxtools/specialdatagroupcaption.py,sha256=pIa1l6EXVDXBisUtRkn6hTzAcUXFnXJoWstesayLfME,987
92
- odxtools/standardlengthtype.py,sha256=SQBgdHIc9msFCBuS9GYyDeKE8bK1PgSvIkVEZSVoBcU,5225
93
+ odxtools/standardlengthtype.py,sha256=-Zi4yNXSiEPj0wk3mOQLaWhw15JkxCaZjBDcxqf9NzA,8190
93
94
  odxtools/state.py,sha256=d--nCbV1qBmOmiTmUrQjDC_naispOM0a-H1AvCe5_xI,898
94
95
  odxtools/statechart.py,sha256=ZT8amPjec25pexwnOAPiifGEmKa68rliOILLnB6tNJc,2956
95
- odxtools/statetransition.py,sha256=axZ1ePyyWAsxslTI5KDjZxC42uNyoPc6N7cNIhP5pxE,1860
96
+ odxtools/statetransition.py,sha256=Q7UaDksJmiKVGnO4GsxPH9pFIKt12ZOkDeJn4KICiGk,2599
96
97
  odxtools/staticfield.py,sha256=NBZa5UZD4BD4UekpqF5bq_IzFjxUafmvpCHIEptOl-s,4434
97
- odxtools/structure.py,sha256=W8uX1YQuJUApKfeLxYqlnU3EZ3AjTqcYpCUStR43ORI,582
98
+ odxtools/structure.py,sha256=kRBP00MDN1w9w3Vc2XnhZDC_SBBVCZwayGGJoKJ6U_c,866
98
99
  odxtools/subcomponent.py,sha256=OPnpbliL7OTfYy9dR0hpQclyqQiTUEa2e2n7GmIoZVE,10401
99
- odxtools/swvariable.py,sha256=tp8XJUokYOcAUkrQLM92IYDf7evIefwZR_DgMm33iYQ,622
100
- odxtools/table.py,sha256=zgpVveH8neSNhdcsPp0jG4f6H00M0NKCuAME8MSrf-Q,4024
101
- odxtools/tablerow.py,sha256=X6598ntJZyyMW5COoHWKUNXZXjqxnO6o8oIzLdmKxh0,6589
100
+ odxtools/swvariable.py,sha256=7vmVTAqtKIn81UpAZrboIZpbbD4jqwW0MEiK0m5bZNo,697
101
+ odxtools/table.py,sha256=UTNQMVuQOj3uOYos_V1eH3QgWXncv6MPRXUhTYUxiMA,6030
102
+ odxtools/tablerow.py,sha256=QWOQxd83EN6jnOXDAc3ogaFxCz9R416vZSXpmZKjjnQ,9759
102
103
  odxtools/teammember.py,sha256=xn1y6k42zQoyM2SlEkZ8UFyiqBvVI5FNZAm_xt2Vt_Y,1772
103
- odxtools/uds.py,sha256=JN_PPne3XNtanGx69-lR4oxOGqDtM05EFcX2F6DjxYU,5569
104
- odxtools/unit.py,sha256=PLMErZ6N9oA4z3fuwYsmqMajeVHFNtKhC-w7IzaTfvw,3588
104
+ odxtools/uds.py,sha256=ttjCaqwfAU-DlM5peFpZCcwzq60QjBMxVpaOyUyY48k,5567
105
+ odxtools/unit.py,sha256=n2aJdXWvtZbqvoGUXDRA6nXc5QwM25suZZg8dQG6y1A,3408
105
106
  odxtools/unitgroup.py,sha256=_WNpnYFmkiHQnOY8XhIviiQLXziY3kplH--7ufAWXyI,2067
106
- odxtools/unitspec.py,sha256=RMdEQoLrPhGt9vo32fkwbTqymicHFkFQnydFoi3uBog,2924
107
- odxtools/utils.py,sha256=PJFXkG74BzoheurrDYOwHZ6EuIcr1sdxf1tQGk6zSgs,1122
107
+ odxtools/unitspec.py,sha256=IAmDSLscVb4QUGgbQT-xXhtywW3qs0o9FfelnVYvimk,3074
108
+ odxtools/utils.py,sha256=FaNlouR0FvO4W4nk3Wr7Ogx1wC4tYfuMOo07KF2QxbE,2764
108
109
  odxtools/variablegroup.py,sha256=--5sMDOMUg4I3hFyoVOFcGCTOrctrrMADdmH3Mn4wHk,848
109
- odxtools/version.py,sha256=6l6pXdCg22nSFN8t5sIgk6c6ZS2anTQw_B4csJ-sz6w,411
110
+ odxtools/version.py,sha256=xr2y8VFsSvPtmpnHwOTsy_3LawdIzGE8O1oG8tbLYtw,411
110
111
  odxtools/writepdxfile.py,sha256=ZEoNkSxheqnXm836-HOpd04O6ipMXYKFzXZy6PM0YLc,7813
111
112
  odxtools/xdoc.py,sha256=gDq-8l8x-Tj1ZJOttPxZchcO5_jEPwcXxMgT29VgTS0,1433
112
113
  odxtools/cli/__init__.py,sha256=T7ano_FIyzBASxYpmcA5VJXU5bQLIy_Qk0HE_SDKelY,106
@@ -143,7 +144,7 @@ odxtools/compumethods/texttablecompumethod.py,sha256=vDYafbM0YaipjfN0NSlCFMiIPvp
143
144
  odxtools/diaglayers/basevariant.py,sha256=mXS-SF-tcwtdV-rxZZCH6_yqdA-yhtMX1SGo1MS8w7k,4452
144
145
  odxtools/diaglayers/basevariantraw.py,sha256=A9h6p2Ri0sPPTW217rtEdNpAt5g6t0MwP9sgXqZ8pFo,4673
145
146
  odxtools/diaglayers/diaglayer.py,sha256=xs529IVG_18Fi8kbEZkD2vHjHRr57jeE4A_2lDLRKCQ,16254
146
- odxtools/diaglayers/diaglayerraw.py,sha256=rQEH3Jzg6bzTmu0EyYhAoBlsL6qVm7Z46o2xlbL0nEo,12970
147
+ odxtools/diaglayers/diaglayerraw.py,sha256=ihOq51PWZUi4L7k0R5k06aLxZ8ppUkRYFym4hK_gXq8,12985
147
148
  odxtools/diaglayers/diaglayertype.py,sha256=FXL-EVBdrAURuHSHo9OthFuEYEybQO66aMB1o2GxVdI,1340
148
149
  odxtools/diaglayers/ecushareddata.py,sha256=QoV50wQIrJ2-faLtU1P7RrjdacbhPY2BfUtVtIyWqCM,3347
149
150
  odxtools/diaglayers/ecushareddataraw.py,sha256=cvkBhqTLOAey7Pt1bjQ3Jkkenp-D3Zh5djpB4ZWWUvw,3375
@@ -151,7 +152,7 @@ odxtools/diaglayers/ecuvariant.py,sha256=OsLWg-dx6OJ_OPuYcgoTJuDXEReaJclDRbU5YKq
151
152
  odxtools/diaglayers/ecuvariantraw.py,sha256=bKlqFnBWkKdkM9EY5rFGOno3ClIVQNhgBoU5DseNnRc,4944
152
153
  odxtools/diaglayers/functionalgroup.py,sha256=o5bUGGDYisr7CjHZZh83fokA80f0s0zpHC_501cg-f0,4093
153
154
  odxtools/diaglayers/functionalgroupraw.py,sha256=H0-_XXlFTV8POGnh0S7CVBOKKQuyKHMB9lEyoAHuG_A,3963
154
- odxtools/diaglayers/hierarchyelement.py,sha256=kYGKyn6ZdThOeC58m31ESLjpZ1YZ532tLDxahWvXxxo,36708
155
+ odxtools/diaglayers/hierarchyelement.py,sha256=kQf2CRMVTalPJnskF1wsTTkgKOzZMBdZXfaaWAASoQc,36774
155
156
  odxtools/diaglayers/hierarchyelementraw.py,sha256=IdFbnZIw7QGAMh3MW5N9vq5QNGBBAs5foCnbvotfqhQ,2058
156
157
  odxtools/diaglayers/protocol.py,sha256=ypIhfySB6F16Y48XLZIPL36GfrKUznTCmiJ0ROIxYJo,2083
157
158
  odxtools/diaglayers/protocolraw.py,sha256=Wf1q2l11mxw61gnveVVEZqgR0yj2RCxoaB3QLzdZQWc,3251
@@ -159,15 +160,15 @@ odxtools/parameters/codedconstparameter.py,sha256=g34JJxQkyL5R27XiGCgkXyt7UzxFtB
159
160
  odxtools/parameters/createanyparameter.py,sha256=m26HHUQrxwDak3eBBciVBLic768Qlo4F2xn1z3r0boM,2566
160
161
  odxtools/parameters/dynamicparameter.py,sha256=mdZx12XbhTSYVVuXEsPYRll3zaHjbHIYIzA6yUy4zck,1569
161
162
  odxtools/parameters/lengthkeyparameter.py,sha256=r9beVso1DQRJ81CU6e8Dxqexbp8W4QksDcc_BtItSCQ,5269
162
- odxtools/parameters/matchingrequestparameter.py,sha256=VNYIpmP_Yt_pzMHPgGWZk1XYH5liIdyawNIwIR1Cbvw,2897
163
+ odxtools/parameters/matchingrequestparameter.py,sha256=lss2Fb5eW1plb9NjA8dalt-tTMiKFTki1vGKHqYLkJw,2934
163
164
  odxtools/parameters/nrcconstparameter.py,sha256=SjTHQlaBzvyUATyOzSFFWCcdkTeHcaoKO54kTomzb6Y,4823
164
165
  odxtools/parameters/parameter.py,sha256=0WhCvULPzvZ07g9Nz-0NyHt1Y8E8Q4YsW0VF-EUg2ow,6145
165
166
  odxtools/parameters/parameterwithdop.py,sha256=k7yJABRmHQTZNTEEPjyq3tBXJD4Aey365HpP7SGsEgk,3283
166
- odxtools/parameters/physicalconstantparameter.py,sha256=2iC6EKVJZVHwVVmd4h8KJ6OLc7B5QOUawivQMqWPCRA,3593
167
- odxtools/parameters/reservedparameter.py,sha256=8XQocU3_ExRZzXYEkITj535TTEUCNK87wIkrUTizgvI,1989
167
+ odxtools/parameters/physicalconstantparameter.py,sha256=yBQbPRFRr5oDIvOMH4kmyE-xLA7UCPFm6otFvMHi9yc,3612
168
+ odxtools/parameters/reservedparameter.py,sha256=4wCBmqoZDhALgW0HXk22VzOL6Ogrywa8CbWoo4dZnEQ,2026
168
169
  odxtools/parameters/systemparameter.py,sha256=CX5YeAcLs0ffDpksTOMXHSGvuPmRIF2Il_lnuCmbNI8,3593
169
- odxtools/parameters/tableentryparameter.py,sha256=SuNAFn1wN_hyO2MVd1lT3oQllZ6nLjAIBJHX0HYRyko,2414
170
- odxtools/parameters/tablekeyparameter.py,sha256=zT49Ci0lGZgMFlswdZR3CRKh7x6CtzQ2Rk-VmZkxQvk,10028
170
+ odxtools/parameters/tableentryparameter.py,sha256=aPV0u-3PbromnzKqRQ9uYC7iL-fJXSsuHnyuPnPkNqg,2726
171
+ odxtools/parameters/tablekeyparameter.py,sha256=tkBJrK1KD7lV5vvqt5UP8y5C4IAkRuWKcvlDLQrziQo,9943
171
172
  odxtools/parameters/tablestructparameter.py,sha256=Doym0Tybi_t8w7nqM9n_ZAFwRWm-yJOnsaSqi4u5KiU,7032
172
173
  odxtools/parameters/valueparameter.py,sha256=khsmiaLhpW2PjUKQaAkntwurxsml3TUzNwaZCaWNS50,3063
173
174
  odxtools/templates/comparam-spec.odx-c.xml.jinja2,sha256=A9q0SQCGhBaV2xUcXHFVkmZIBpbl9OP2x6JD0umzrdU,904
@@ -182,11 +183,11 @@ odxtools/templates/macros/printCompanyData.xml.jinja2,sha256=jcNmQBOGDw7wcKdam72
182
183
  odxtools/templates/macros/printComparam.xml.jinja2,sha256=e3hPCswAymJteQIUNoc7FOwsK_FrbJOvJooWdEx_vuQ,2408
183
184
  odxtools/templates/macros/printComparamRef.xml.jinja2,sha256=rBhrdUnp605fsUN9SaljpyaAojzaLBvTbkOuduKod18,1274
184
185
  odxtools/templates/macros/printCompuMethod.xml.jinja2,sha256=9DilxMWnqOsXu7bNNlDqls-lEqcr_GPzhZum8rzDJP0,4430
185
- odxtools/templates/macros/printDOP.xml.jinja2,sha256=SAmp1okfyecCmHf4XiF2rao78-TIzmPQW4azBtjbu9A,5709
186
- odxtools/templates/macros/printDescription.xml.jinja2,sha256=7jcYEIXr7hbbKqSvIUIgXaQSXV4dKAR9UhY352BZct8,452
186
+ odxtools/templates/macros/printDOP.xml.jinja2,sha256=d3ZrE1FZpJ8RZb0iMd9Fvpn6R4KVqnwm8hHvO0qUULg,5748
187
+ odxtools/templates/macros/printDescription.xml.jinja2,sha256=95Zamh5YtS5d-R3RVdOZV5xqb9syho_L0-CFq0PPJdI,589
187
188
  odxtools/templates/macros/printDiagComm.xml.jinja2,sha256=_SByYBYzPG9t7VNnAohFAXsgng9VrQcSacXH923wRzY,2239
188
- odxtools/templates/macros/printDiagLayer.xml.jinja2,sha256=gQQhNGpVQRfVichgJdwBS6gMvoLfi-nlGat9imlW62Y,6901
189
- odxtools/templates/macros/printDiagVariable.xml.jinja2,sha256=sQEU42Onf0WkRJZJyNUgeeGICc3MZaQJPQ0YKY6lRrU,2656
189
+ odxtools/templates/macros/printDiagLayer.xml.jinja2,sha256=jVsoXIThQxIYte0d8lzEc7R7mm54vzT-GKAxu5NKk-Q,6901
190
+ odxtools/templates/macros/printDiagVariable.xml.jinja2,sha256=sg81-vgZFOsBt-e-CJ9BxcfoWMAf6imhJXS9_ftq1YM,3172
190
191
  odxtools/templates/macros/printDynDefinedSpec.xml.jinja2,sha256=uX3C40VmlbH7sndlJNyTvq8upzaoq8vCk6S93gtpFIY,1742
191
192
  odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2,sha256=6BmxPKesQvfy46iTiPSFu_iJffC6umZ_YRsTEd-0y5Q,587
192
193
  odxtools/templates/macros/printDynamicLengthField.xml.jinja2,sha256=bNvNh_4xyp4L6v7cxJ5cO1yOHYPnSFiaK9oY4l63fDU,784
@@ -197,32 +198,32 @@ odxtools/templates/macros/printElementId.xml.jinja2,sha256=Oe4sgtBB_VhTz6uJzaiTC
197
198
  odxtools/templates/macros/printEndOfPdu.xml.jinja2,sha256=ptjwOxyNTABATOajiitcvlJRKVGP_osh2wSJTCbaa38,679
198
199
  odxtools/templates/macros/printEnvData.xml.jinja2,sha256=2Goatqb66d-pCf9wqJDXn1EZWNhkQ8FJANKQMOnxuJs,609
199
200
  odxtools/templates/macros/printEnvDataDesc.xml.jinja2,sha256=rBpPf51LFx5oNx_XjeTABast9hmru5hYbeJQ2axHntw,588
200
- odxtools/templates/macros/printFunctionalClass.xml.jinja2,sha256=TpOQTj-hlNLtIfcSTVzU-gRrfaWrgsTrIFMqm_1M6Qs,329
201
+ odxtools/templates/macros/printFunctionalClass.xml.jinja2,sha256=o6_YZhmULzsC2WJZEpV8Z8iEW6myztY9FwNli9t42LM,490
201
202
  odxtools/templates/macros/printFunctionalGroup.xml.jinja2,sha256=zIeZbhf8haXhgJJUPiOnMe3lvqvfye4-zmwWDQJxFtQ,1159
202
203
  odxtools/templates/macros/printHierarchyElement.xml.jinja2,sha256=GD6iNIE0Wu0QsJ8uLtwEV8N9t6mIhI00_KpCVzOVQBM,651
203
204
  odxtools/templates/macros/printLibrary.xml.jinja2,sha256=wp8vZzHPLZayWZh6BOQ56kGyHSeyrlNacdlxBw9d0N0,683
204
205
  odxtools/templates/macros/printMux.xml.jinja2,sha256=68IiPY_mIJQqQiqce3jUphqp3-xLfmEBL7CSb3Cz7eI,1869
205
206
  odxtools/templates/macros/printOdxCategory.xml.jinja2,sha256=SatvRj0yafePV_Xg6Un1d5KXq3yZyqV9f5YZU1wlzws,856
206
207
  odxtools/templates/macros/printParam.xml.jinja2,sha256=U96BZDgcG8O0ewTXY8DHY8z29I8BkD4ndX0r7JAk54w,3197
207
- odxtools/templates/macros/printParentRef.xml.jinja2,sha256=RllVKt2RgrMnWfsujGnBUiABwV2y4_ZfINYy7LXenPM,896
208
+ odxtools/templates/macros/printParentRef.xml.jinja2,sha256=QpC5d_zys3OgttshMUsWVUVxpYfSazyJqeANtA-k3FY,1768
208
209
  odxtools/templates/macros/printProtStack.xml.jinja2,sha256=0FHHvuduiMPhAE19vpTHu3cQeM9kSybWj5FbybcXnGk,773
209
- odxtools/templates/macros/printProtocol.xml.jinja2,sha256=1DXoRSq6z4dhpZnXWH3x9JPKCWmAmghjVgVFfizo41s,1028
210
+ odxtools/templates/macros/printProtocol.xml.jinja2,sha256=QYfA8-3HWPVmpKW8bA7shKhrZ3s8iKQd8BfOYSRnMiU,1034
210
211
  odxtools/templates/macros/printRequest.xml.jinja2,sha256=yq4xGSlQCioT7FRivyx40Cjs2CYr9EK6NLZf0W4wGW0,717
211
212
  odxtools/templates/macros/printResponse.xml.jinja2,sha256=GsOYmnoh4ewhWg3FUdcovHuJxvuIjsSrXNtbcnnAQcM,683
212
- odxtools/templates/macros/printService.xml.jinja2,sha256=zvjOCELEx4yim2FtdNKiExTsDPkAfQAP4Gf_QsondfQ,1546
213
+ odxtools/templates/macros/printService.xml.jinja2,sha256=hmNLEC6Iwv1xRd3U8vFgpbB22WXUT5EN_lf2U05h4KM,2746
213
214
  odxtools/templates/macros/printSingleEcuJob.xml.jinja2,sha256=6phi3VxGllusm6KGgrjWiOj7g80ojHyxvesqmHvuNhs,2174
214
215
  odxtools/templates/macros/printSpecialData.xml.jinja2,sha256=0eIFh9cWXfFrQN_f8G_lz3fUqmtysxY6tSN4DbuFY40,1386
215
216
  odxtools/templates/macros/printState.xml.jinja2,sha256=BNnTEyczp43iP9Bn_plMLRsJsasra4sRyvmgODuZQYg,315
216
217
  odxtools/templates/macros/printStateChart.xml.jinja2,sha256=XW1EhF1k8ogbEDt-QMjSOojKl4vjxXkq6BwJWR9GJsI,951
217
218
  odxtools/templates/macros/printStateTransition.xml.jinja2,sha256=J2t0yU82UBegUSH9sAbnkdgEYPTUU0A7I-CokuPQxDo,510
218
219
  odxtools/templates/macros/printStaticField.xml.jinja2,sha256=fkV07zrL2pTo6b5ZPD14V0uC1aEk2P4roXyDhp-ah38,521
219
- odxtools/templates/macros/printStructure.xml.jinja2,sha256=CJUPZv_9lko63C5fNpOn5LlQqLCuS--qyhtx4NyD5Rk,567
220
+ odxtools/templates/macros/printStructure.xml.jinja2,sha256=M8p82SlgKaDk6nJA-0wr6FhyfFCYw9UTrqvB8WnzdxU,645
220
221
  odxtools/templates/macros/printSubComponent.xml.jinja2,sha256=ETo-k0K7px5nu9kgVjgDnjPoy8rYRfzq5ojvsZhM3Rw,3416
221
- odxtools/templates/macros/printTable.xml.jinja2,sha256=5DQjjJ-UxQ75ntov0S0LGnm_V7YWtKadBpNbmV1aBb8,1501
222
- odxtools/templates/macros/printUnitSpec.xml.jinja2,sha256=opS6_Gr94WlAtREEyX4sLo-D-17Gni9Wvr3y1nfVgSA,2715
223
- odxtools-9.2.0.dist-info/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
224
- odxtools-9.2.0.dist-info/METADATA,sha256=JZW3a93nS8pO3SRYzuJuIGQjzt0Ru3d0VHJFZ1HZzwo,44055
225
- odxtools-9.2.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
226
- odxtools-9.2.0.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
227
- odxtools-9.2.0.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
228
- odxtools-9.2.0.dist-info/RECORD,,
222
+ odxtools/templates/macros/printTable.xml.jinja2,sha256=IMAaYNtpxs_6V7VxM_hfOeGkFfkyRjSmwvmr9_K8Ddc,3075
223
+ odxtools/templates/macros/printUnitSpec.xml.jinja2,sha256=KOjRVwtdIg7uGl4B9cLpvW68-TYeE33Tz9sWZdnwkBE,2878
224
+ odxtools-9.4.0.dist-info/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
225
+ odxtools-9.4.0.dist-info/METADATA,sha256=3lv_C2X4V7piBcnFtBtbIoryQPQOrxiIVyAkBUK1doc,44055
226
+ odxtools-9.4.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
227
+ odxtools-9.4.0.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
228
+ odxtools-9.4.0.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
229
+ odxtools-9.4.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5