odxtools 8.0.6__py3-none-any.whl → 8.1.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 (40) hide show
  1. odxtools/element.py +9 -12
  2. odxtools/outputparam.py +1 -3
  3. odxtools/parameters/parameter.py +3 -0
  4. odxtools/physicaldimension.py +1 -4
  5. odxtools/templates/macros/printAudience.xml.jinja2 +1 -1
  6. odxtools/templates/macros/printCompanyData.xml.jinja2 +2 -2
  7. odxtools/templates/macros/printComparam.xml.jinja2 +2 -2
  8. odxtools/templates/macros/printDOP.xml.jinja2 +1 -1
  9. odxtools/templates/macros/printDiagComm.xml.jinja2 +1 -1
  10. odxtools/templates/macros/printDiagLayer.xml.jinja2 +1 -1
  11. odxtools/templates/macros/printDiagVariable.xml.jinja2 +3 -3
  12. odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2 +1 -1
  13. odxtools/templates/macros/printDynamicLengthField.xml.jinja2 +1 -1
  14. odxtools/templates/macros/printElementId.xml.jinja2 +5 -0
  15. odxtools/templates/macros/printEndOfPdu.xml.jinja2 +1 -1
  16. odxtools/templates/macros/printEnvDataDesc.xml.jinja2 +1 -1
  17. odxtools/templates/macros/printFunctionalClass.xml.jinja2 +1 -1
  18. odxtools/templates/macros/printMux.xml.jinja2 +1 -1
  19. odxtools/templates/macros/printParam.xml.jinja2 +2 -2
  20. odxtools/templates/macros/printProtStack.xml.jinja2 +1 -1
  21. odxtools/templates/macros/printRequest.xml.jinja2 +1 -1
  22. odxtools/templates/macros/printResponse.xml.jinja2 +1 -1
  23. odxtools/templates/macros/printSingleEcuJob.xml.jinja2 +1 -1
  24. odxtools/templates/macros/printSpecialData.xml.jinja2 +1 -1
  25. odxtools/templates/macros/printState.xml.jinja2 +1 -1
  26. odxtools/templates/macros/printStateChart.xml.jinja2 +1 -1
  27. odxtools/templates/macros/printStateTransition.xml.jinja2 +1 -1
  28. odxtools/templates/macros/printStaticField.xml.jinja2 +1 -1
  29. odxtools/templates/macros/printStructure.xml.jinja2 +1 -1
  30. odxtools/templates/macros/printTable.xml.jinja2 +2 -2
  31. odxtools/templates/macros/printUnitSpec.xml.jinja2 +3 -5
  32. odxtools/unit.py +1 -3
  33. odxtools/version.py +2 -2
  34. odxtools/writepdxfile.py +1 -0
  35. {odxtools-8.0.6.dist-info → odxtools-8.1.0.dist-info}/METADATA +1 -1
  36. {odxtools-8.0.6.dist-info → odxtools-8.1.0.dist-info}/RECORD +40 -40
  37. {odxtools-8.0.6.dist-info → odxtools-8.1.0.dist-info}/LICENSE +0 -0
  38. {odxtools-8.0.6.dist-info → odxtools-8.1.0.dist-info}/WHEEL +0 -0
  39. {odxtools-8.0.6.dist-info → odxtools-8.1.0.dist-info}/entry_points.txt +0 -0
  40. {odxtools-8.0.6.dist-info → odxtools-8.1.0.dist-info}/top_level.txt +0 -0
odxtools/element.py CHANGED
@@ -15,10 +15,7 @@ class NamedElement:
15
15
  description: Optional[Description]
16
16
 
17
17
  @staticmethod
18
- def from_et(
19
- et_element: ElementTree.Element,
20
- doc_frags: List[OdxDocFragment],
21
- ) -> "NamedElement":
18
+ def from_et(et_element: ElementTree.Element, doc_frags: List[OdxDocFragment]) -> "NamedElement":
22
19
 
23
20
  return NamedElement(
24
21
  short_name=odxrequire(et_element.findtext("SHORT-NAME")),
@@ -30,15 +27,15 @@ class NamedElement:
30
27
  @dataclass
31
28
  class IdentifiableElement(NamedElement):
32
29
  odx_id: OdxLinkId
30
+ oid: Optional[str]
33
31
 
34
32
  @staticmethod
35
- def from_et(
36
- et_element: ElementTree.Element,
37
- doc_frags: List[OdxDocFragment],
38
- ) -> "IdentifiableElement":
33
+ def from_et(et_element: ElementTree.Element,
34
+ doc_frags: List[OdxDocFragment]) -> "IdentifiableElement":
39
35
 
40
36
  kwargs = dataclass_fields_asdict(NamedElement.from_et(et_element, doc_frags))
41
- return IdentifiableElement(
42
- **kwargs,
43
- odx_id=odxrequire(OdxLinkId.from_et(et_element, doc_frags)),
44
- )
37
+
38
+ odx_id = odxrequire(OdxLinkId.from_et(et_element, doc_frags))
39
+ oid = et_element.get("OID")
40
+
41
+ return IdentifiableElement(**kwargs, odx_id=odx_id, oid=oid)
odxtools/outputparam.py CHANGED
@@ -16,7 +16,6 @@ from .utils import dataclass_fields_asdict
16
16
  @dataclass
17
17
  class OutputParam(IdentifiableElement):
18
18
  dop_base_ref: OdxLinkRef
19
- oid: Optional[str]
20
19
  semantic: Optional[str]
21
20
 
22
21
  @staticmethod
@@ -25,9 +24,8 @@ class OutputParam(IdentifiableElement):
25
24
  kwargs = dataclass_fields_asdict(IdentifiableElement.from_et(et_element, doc_frags))
26
25
  dop_base_ref = odxrequire(OdxLinkRef.from_et(et_element.find("DOP-BASE-REF"), doc_frags))
27
26
  semantic = et_element.get("SEMANTIC")
28
- oid = et_element.get("OID")
29
27
 
30
- return OutputParam(dop_base_ref=dop_base_ref, semantic=semantic, oid=oid, **kwargs)
28
+ return OutputParam(dop_base_ref=dop_base_ref, semantic=semantic, **kwargs)
31
29
 
32
30
  def _build_odxlinks(self) -> Dict[OdxLinkId, Any]:
33
31
  return {}
@@ -40,6 +40,7 @@ class Parameter(NamedElement):
40
40
  define any non-positionable parameter types.
41
41
 
42
42
  """
43
+ oid: Optional[str]
43
44
  byte_position: Optional[int]
44
45
  bit_position: Optional[int]
45
46
  semantic: Optional[str]
@@ -51,6 +52,7 @@ class Parameter(NamedElement):
51
52
 
52
53
  kwargs = dataclass_fields_asdict(NamedElement.from_et(et_element, doc_frags))
53
54
 
55
+ oid = et_element.get("OID")
54
56
  semantic = et_element.get("SEMANTIC")
55
57
  sdgs = [
56
58
  SpecialDataGroup.from_et(sdge, doc_frags) for sdge in et_element.iterfind("SDGS/SDG")
@@ -63,6 +65,7 @@ class Parameter(NamedElement):
63
65
  bit_position = int(bit_position_str) if bit_position_str is not None else None
64
66
 
65
67
  return Parameter(
68
+ oid=oid,
66
69
  byte_position=byte_position,
67
70
  bit_position=bit_position,
68
71
  semantic=semantic,
@@ -1,6 +1,6 @@
1
1
  # SPDX-License-Identifier: MIT
2
2
  from dataclasses import dataclass
3
- from typing import Any, Dict, List, Optional
3
+ from typing import Any, Dict, List
4
4
  from xml.etree import ElementTree
5
5
 
6
6
  from .element import IdentifiableElement
@@ -41,7 +41,6 @@ class PhysicalDimension(IdentifiableElement):
41
41
  )
42
42
  ```
43
43
  """
44
- oid: Optional[str]
45
44
  length_exp: int
46
45
  mass_exp: int
47
46
  time_exp: int
@@ -54,7 +53,6 @@ class PhysicalDimension(IdentifiableElement):
54
53
  def from_et(et_element: ElementTree.Element,
55
54
  doc_frags: List[OdxDocFragment]) -> "PhysicalDimension":
56
55
  kwargs = dataclass_fields_asdict(IdentifiableElement.from_et(et_element, doc_frags))
57
- oid = et_element.get("OID")
58
56
 
59
57
  def read_optional_int(element: ElementTree.Element, name: str) -> int:
60
58
  if val_str := element.findtext(name):
@@ -71,7 +69,6 @@ class PhysicalDimension(IdentifiableElement):
71
69
  luminous_intensity_exp = read_optional_int(et_element, "LUMINOUS-INTENSITY-EXP")
72
70
 
73
71
  return PhysicalDimension(
74
- oid=oid,
75
72
  length_exp=length_exp,
76
73
  mass_exp=mass_exp,
77
74
  time_exp=time_exp,
@@ -6,7 +6,7 @@
6
6
  {%- import('macros/printElementId.xml.jinja2') as peid %}
7
7
 
8
8
  {%- macro printAdditionalAudience(audience) -%}
9
- <ADDITIONAL-AUDIENCE ID="{{audience.odx_id.local_id}}">
9
+ <ADDITIONAL-AUDIENCE {{-peid.printElementIdAttribs(audience)}}>
10
10
  {{ peid.printElementIdSubtags(audience)|indent(1) }}
11
11
  </ADDITIONAL-AUDIENCE>
12
12
  {%- endmacro -%}
@@ -8,7 +8,7 @@
8
8
  {%- import('macros/printDescription.xml.jinja2') as pd %}
9
9
 
10
10
  {%- macro printCompanyData(company_data) %}
11
- <COMPANY-DATA ID="{{company_data.odx_id.local_id}}">
11
+ <COMPANY-DATA {{-peid.printElementIdAttribs(company_data)}}>
12
12
  {{ peid.printElementIdSubtags(company_data)|indent(1) }}
13
13
  {%- if company_data.roles is not none %}
14
14
  <ROLES>
@@ -20,7 +20,7 @@
20
20
  {%- if company_data.team_members is not none %}
21
21
  <TEAM-MEMBERS>
22
22
  {%- for team_member in company_data.team_members %}
23
- <TEAM-MEMBER ID="{{team_member.odx_id.local_id}}">
23
+ <TEAM-MEMBER {{-peid.printElementIdAttribs(team_member)}}>
24
24
  {{ peid.printElementIdSubtags(team_member)|indent(3) }}
25
25
  {%- if team_member.roles is not none %}
26
26
  <ROLES>
@@ -38,7 +38,7 @@
38
38
  {%- endmacro %}
39
39
 
40
40
  {%- macro printSimpleComparam(cp) %}
41
- <COMPARAM ID="{{cp.odx_id.local_id}}"
41
+ <COMPARAM {{-peid.printElementIdAttribs(cp)}}
42
42
  PARAM-CLASS="{{cp.param_class}}"
43
43
  CPTYPE="{{cp.cptype.value}}"
44
44
  {{make_xml_attrib("DISPLAY-LEVEL", cp.display_level)}}{#- #}
@@ -52,7 +52,7 @@
52
52
  {%- endmacro %}
53
53
 
54
54
  {%- macro printComplexComparam(cp) %}
55
- <COMPLEX-COMPARAM ID="{{cp.odx_id.local_id}}"
55
+ <COMPLEX-COMPARAM {{-peid.printElementIdAttribs(cp)}}
56
56
  PARAM-CLASS="{{cp.param_class}}"
57
57
  CPTYPE="{{cp.cptype.value}}"
58
58
  {{make_xml_attrib("DISPLAY-LEVEL", cp.display_level)}}{#- #}
@@ -130,7 +130,7 @@
130
130
  {%- if hasattr(dtc, "ref_id") %}
131
131
  <DTC-REF ID-REF="{{dtc.ref_id}}" />
132
132
  {%- else %}
133
- <DTC ID="{{dtc.odx_id.local_id}}">
133
+ <DTC {{-peid.printElementIdAttribs(dtc)}}>
134
134
  <SHORT-NAME>{{dtc.short_name}}</SHORT-NAME>
135
135
  <TROUBLE-CODE>{{dtc.trouble_code}}</TROUBLE-CODE>
136
136
  {%- if dtc.display_trouble_code is not none %}
@@ -9,7 +9,7 @@
9
9
  {%- import('macros/printSpecialData.xml.jinja2') as psd %}
10
10
 
11
11
  {%- macro printDiagCommAttribs(dc) -%}
12
- ID="{{dc.odx_id.local_id}}"
12
+ {{-peid.printElementIdAttribs(dc)}}
13
13
  {{-make_xml_attrib("SEMANTIC", dc.semantic)}}
14
14
  {{-make_xml_attrib("DIAGNOSTIC-CLASS", dc.diagnostic_class and dc.diagnostic_class.value)}}
15
15
  {{-make_bool_xml_attrib("IS-MANDATORY", dc.is_mandatory_raw)}}
@@ -27,7 +27,7 @@
27
27
  {%- import('macros/printAdminData.xml.jinja2') as pad %}
28
28
 
29
29
  {%- macro printDiagLayerAttribs(dl) -%}
30
- {#- #} ID="{{dl.diag_layer_raw.odx_id.local_id}}"{# -#}
30
+ {#- #} {{-peid.printElementIdAttribs(dl)}}{# -#}
31
31
  {%- endmacro -%}
32
32
 
33
33
  {%- macro printDiagLayerSubtags(dl) -%}
@@ -7,7 +7,7 @@
7
7
  {%- import('macros/printDescription.xml.jinja2') as pd %}
8
8
 
9
9
  {%- macro printDiagVariable(diag_var) -%}
10
- <DIAG-VARIABLE>
10
+ <DIAG-VARIABLE {{-peid.printElementIdAttribs(diag_var)}}>
11
11
  {{ peid.printElementIdSubtags(diag_variable)|indent(2) }}
12
12
  {%- if diag_variable.admin_data is not none %}
13
13
  {{ pad.printAdminData(diag_variable.admin_data)|indent(2) }}
@@ -16,7 +16,7 @@
16
16
  {%- if diag_variable.sw_variables %}
17
17
  <SW-VARIABLES>
18
18
  {%- for sw_var in diag_variable.sw_variables %}
19
- <SW-VARIABLE>
19
+ <SW-VARIABLE {{-peid.printElementIdAttribs(sw_var)}}>
20
20
  {{ peid.printElementIdSubtags(sw_var)|indent(6) }}
21
21
  {%- if sw_var.origin is not none %}
22
22
  <ORIGIN>{{ sw_var.origin }}</ORIGIN>
@@ -60,7 +60,7 @@
60
60
  {%- endmacro -%}
61
61
 
62
62
  {%- macro printVariableGroup(var_group) -%}
63
- <VARIABLE-GROUP>
63
+ <VARIABLE-GROUP {{-peid.printElementIdAttribs(var_group)}}>
64
64
  {{ peid.printElementIdSubtags(diag_variable)|indent(2) }}
65
65
  </VARIABLE-GROUP>
66
66
  {%- endmacro -%}
@@ -6,7 +6,7 @@
6
6
  {%- import('macros/printElementId.xml.jinja2') as peid %}
7
7
 
8
8
  {%- macro printStaticField(demf) -%}
9
- <DYNAMIC-ENDMARKER-FIELD ID="{{demf.odx_id.local_id}}">
9
+ <DYNAMIC-ENDMARKER-FIELD {{-peid.printElementIdAttribs(demf)}}>
10
10
  {{ peid.printElementIdSubtags(demf)|indent(1) }}
11
11
  <BASIC-STRUCTURE-REF ID-REF="{{demf.structure_ref.ref_id}}" />
12
12
  <DYN-END-DOP-REF ID-REF="{{demf.dyn_end_dop_ref.ref_id}}">
@@ -6,7 +6,7 @@
6
6
  {%- import('macros/printElementId.xml.jinja2') as peid %}
7
7
 
8
8
  {%- macro printDynamicLengthField(dlf) -%}
9
- <DYNAMIC-LENGTH-FIELD ID="{{dlf.odx_id.local_id}}">
9
+ <DYNAMIC-LENGTH-FIELD {{-peid.printElementIdAttribs(dlf)}}>
10
10
  {{ peid.printElementIdSubtags(dlf)|indent(1) }}
11
11
  <BASIC-STRUCTURE-REF ID-REF="{{dlf.structure_ref.ref_id}}" />
12
12
  <OFFSET>{{dlf.offset}}</OFFSET>
@@ -5,6 +5,11 @@
5
5
 
6
6
  {%- import('macros/printDescription.xml.jinja2') as pd %}
7
7
 
8
+ {%- macro printElementIdAttribs(obj) -%}
9
+ {#- #} {{- make_xml_attrib("ID", obj.odx_id.local_id) }}
10
+ {#- #} {{- make_xml_attrib("OID", getattr(obj, "oid", none)) -}}
11
+ {%- endmacro -%}
12
+
8
13
  {%- macro printElementIdSubtags(obj) -%}
9
14
  <SHORT-NAME>{{ obj.short_name }}</SHORT-NAME>
10
15
  {%- if obj.long_name %}
@@ -6,7 +6,7 @@
6
6
  {%- import('macros/printElementId.xml.jinja2') as peid %}
7
7
 
8
8
  {%- macro printEndOfPdu(eopdu) -%}
9
- <END-OF-PDU-FIELD ID="{{eopdu.odx_id.local_id}}">
9
+ <END-OF-PDU-FIELD {{-peid.printElementIdAttribs(eopdu)}}>
10
10
  {{ peid.printElementIdSubtags(eopdu)|indent(1) }}
11
11
  <BASIC-STRUCTURE-REF ID-REF="{{eopdu.structure_ref.ref_id}}" />
12
12
  {%- if eopdu.max_number_of_items is not none %}
@@ -6,7 +6,7 @@
6
6
  {%- import('macros/printElementId.xml.jinja2') as peid %}
7
7
 
8
8
  {%- macro printEnvDataDesc(env_data_desc) %}
9
- <ENV-DATA-DESC ID="{{env_data_desc.odx_id.local_id}}">
9
+ <ENV-DATA-DESC {{-peid.printElementIdAttribs(env_data_desc)}}>
10
10
  {{ peid.printElementIdSubtags(env_data_desc)|indent(1) }}
11
11
  <PARAM-SNREF SHORT-NAME="{{env_data_desc.param_snref}}"/>
12
12
  <ENV-DATA-REFS>
@@ -7,7 +7,7 @@
7
7
  {%- import('macros/printElementId.xml.jinja2') as peid %}
8
8
 
9
9
  {%- macro printFunctionalClass(fc) -%}
10
- <FUNCT-CLASS ID="{{fc.odx_id.local_id}}">
10
+ <FUNCT-CLASS {{-peid.printElementIdAttribs(fc)}}>
11
11
  {{ peid.printElementIdSubtags(fc)|indent(1) }}
12
12
  </FUNCT-CLASS>
13
13
  {%- endmacro -%}
@@ -8,7 +8,7 @@
8
8
  {%- import('macros/printDOP.xml.jinja2') as pdop %}
9
9
 
10
10
  {%- macro printMux(mux) %}
11
- <MUX ID="{{mux.odx_id.local_id}}"
11
+ <MUX {{-peid.printElementIdAttribs(mux)}}
12
12
  {{-make_bool_xml_attrib("IS-VISIBLE", mux.is_visible_raw)}}
13
13
  {#- #}>
14
14
  {{ peid.printElementIdSubtags(mux)|indent(1) }}
@@ -11,8 +11,8 @@
11
11
  {%- set semattrib = make_xml_attrib("SEMANTIC", param.semantic) -%}
12
12
  {%- if param.parameter_type == "TABLE-KEY" %}
13
13
  <PARAM {{ semattrib }}
14
- {{- make_xml_attrib("ID", param.odx_id and param.odx_id.local_id) }}
15
- xsi:type="{{param.parameter_type}}">
14
+ {{-peid.printElementIdAttribs(param)}}
15
+ xsi:type="{{param.parameter_type}}">
16
16
  {%- elif param.parameter_type == "SYSTEM" %}
17
17
  <PARAM {{ semattrib }}
18
18
  {{- make_xml_attrib("SYSPARAM", param.sysparam) }}
@@ -7,7 +7,7 @@
7
7
  {%- import('macros/printSpecialData.xml.jinja2') as psd %}
8
8
 
9
9
  {%- macro printProtStack(ps) %}
10
- <PROT-STACK ID="{{ps.odx_id.local_id}}">
10
+ <PROT-STACK {{-peid.printElementIdAttribs(ps)}}>
11
11
  {{ peid.printElementIdSubtags(ps) | indent(1) }}
12
12
  <PDU-PROTOCOL-TYPE>{{ ps.pdu_protocol_type }}</PDU-PROTOCOL-TYPE>
13
13
  <PHYSICAL-LINK-TYPE>{{ ps.physical_link_type }}</PHYSICAL-LINK-TYPE>
@@ -9,7 +9,7 @@
9
9
  {%- import('macros/printSpecialData.xml.jinja2') as psd %}
10
10
 
11
11
  {%- macro printRequest(request) -%}
12
- <REQUEST ID="{{request.odx_id.local_id}}">
12
+ <REQUEST {{-peid.printElementIdAttribs(request)}}>
13
13
  {{ peid.printElementIdSubtags(request)|indent(1) }}
14
14
  {%- if request.parameters %}
15
15
  <PARAMS>
@@ -8,7 +8,7 @@
8
8
  {%- import('macros/printSpecialData.xml.jinja2') as psd %}
9
9
 
10
10
  {%- macro printResponse(resp, tag_name="POS-RESPONSE") -%}
11
- <{{tag_name}} ID="{{resp.odx_id.local_id}}">
11
+ <{{tag_name}} {{-peid.printElementIdAttribs(resp)}}>
12
12
  {{ peid.printElementIdSubtags(resp)|indent(1) }}
13
13
  {%- if resp.parameters %}
14
14
  <PARAMS>
@@ -73,7 +73,7 @@
73
73
  {%- endmacro -%}
74
74
 
75
75
  {%- macro printOutputParam(param) -%}
76
- <OUTPUT-PARAM ID="{{param.odx_id.local_id}}"
76
+ <OUTPUT-PARAM {{-peid.printElementIdAttribs(param)}}
77
77
  {{-make_xml_attrib("OID", param.oid)}}
78
78
  {{-make_xml_attrib("SEMANTIC", param.semantic)}}>
79
79
  {{ peid.printElementIdSubtags(param)|indent(1) }}
@@ -17,7 +17,7 @@
17
17
  {%- endmacro %}
18
18
 
19
19
  {%- macro printSdgCaption(sdg_caption) %}
20
- <SDG-CAPTION ID="{{sdg_caption.odx_id.local_id}}">
20
+ <SDG-CAPTION {{-peid.printElementIdAttribs(sdg_caption)}}>
21
21
  {{ peid.printElementIdSubtags(sdg_caption)|indent(1) }}
22
22
  </SDG-CAPTION>
23
23
  {%- endmacro %}
@@ -6,7 +6,7 @@
6
6
  {%- import('macros/printElementId.xml.jinja2') as peid %}
7
7
 
8
8
  {%- macro printState(state) -%}
9
- <STATE ID="{{state.odx_id.local_id}}">
9
+ <STATE {{-peid.printElementIdAttribs(state)}}>
10
10
  {{ peid.printElementIdSubtags(state)|indent(1) }}
11
11
  </STATE>
12
12
  {%- endmacro -%}
@@ -8,7 +8,7 @@
8
8
  {%- import('macros/printStateTransition.xml.jinja2') as pst %}
9
9
 
10
10
  {%- macro printStateChart(state_chart) -%}
11
- <STATE-CHART ID="{{state_chart.odx_id.local_id}}">
11
+ <STATE-CHART {{-peid.printElementIdAttribs(state_chart)}}>
12
12
  {{ peid.printElementIdSubtags(state_chart)|indent(1) }}
13
13
  <SEMANTIC>{{state_chart.semantic}}</SEMANTIC>
14
14
  {%- if state_chart.state_transitions %}
@@ -6,7 +6,7 @@
6
6
  {%- import('macros/printElementId.xml.jinja2') as peid %}
7
7
 
8
8
  {%- macro printStateTransition(state_transition) -%}
9
- <STATE-TRANSITION ID="{{state_transition.odx_id.local_id}}">
9
+ <STATE-TRANSITION {{-peid.printElementIdAttribs(state_transition)}}>
10
10
  {{ peid.printElementIdSubtags(state_transition)|indent(1) }}
11
11
  <SOURCE-SNREF SHORT-NAME="{{state_transition.source_snref}}" />
12
12
  <TARGET-SNREF SHORT-NAME="{{state_transition.target_snref}}" />
@@ -6,7 +6,7 @@
6
6
  {%- import('macros/printElementId.xml.jinja2') as peid %}
7
7
 
8
8
  {%- macro printStaticField(sf) -%}
9
- <STATIC-FIELD ID="{{sf.odx_id.local_id}}">
9
+ <STATIC-FIELD {{-peid.printElementIdAttribs(sf)}}>
10
10
  {{ peid.printElementIdSubtags(sf)|indent(1) }}
11
11
  <BASIC-STRUCTURE-REF ID-REF="{{sf.structure_ref.ref_id}}" />
12
12
  <FIXED-NUMBER-OF-ITEMS>{{sf.fixed_number_of_items}}</FIXED-NUMBER-OF-ITEMS>
@@ -7,7 +7,7 @@
7
7
  {%- import('macros/printParam.xml.jinja2') as pp %}
8
8
 
9
9
  {%- macro printStructure(st) -%}
10
- <STRUCTURE ID="{{st.odx_id.local_id}}">
10
+ <STRUCTURE {{-peid.printElementIdAttribs(st)}}>
11
11
  {{ peid.printElementIdSubtags(st)|indent(1) }}
12
12
  {%- if st.byte_size is not none %}
13
13
  <BYTE-SIZE>{{st.byte_size}}</BYTE-SIZE>
@@ -8,7 +8,7 @@
8
8
  {%- import('macros/printDescription.xml.jinja2') as pd %}
9
9
 
10
10
  {%- macro printTable(table) %}
11
- <TABLE ID="{{table.odx_id.local_id}}"
11
+ <TABLE {{-peid.printElementIdAttribs(table)}}
12
12
  {{-make_xml_attrib("SEMANTIC", table.semantic)}}>
13
13
  {{ peid.printElementIdSubtags(table)|indent(1) }}
14
14
  {%- if table.key_dop_ref %}
@@ -16,7 +16,7 @@
16
16
  {%- endif %}
17
17
  {%- for table_row in table.table_rows_raw %}
18
18
  {%- if hasattr(table_row, "key") %}
19
- <TABLE-ROW ID="{{table_row.odx_id.local_id}}"
19
+ <TABLE-ROW {{-peid.printElementIdAttribs(table_row)}}
20
20
  {{-make_xml_attrib("SEMANTIC", table_row.semantic)}}>
21
21
  <SHORT-NAME>{{table_row.short_name}}</SHORT-NAME>
22
22
  {%- if table_row.long_name %}
@@ -35,8 +35,7 @@
35
35
 
36
36
 
37
37
  {%- macro printUnit(unit) -%}
38
- <UNIT ID="{{unit.odx_id.local_id}}"
39
- {{-make_xml_attrib("OID", unit.oid)}}>
38
+ <UNIT {{-peid.printElementIdAttribs(unit)}}>
40
39
  {{ peid.printElementIdSubtags(unit)|indent(1) }}
41
40
  <DISPLAY-NAME>{{ unit.display_name }}</DISPLAY-NAME>
42
41
  {%- if unit.factor_si_to_unit is not none %}
@@ -52,7 +51,7 @@
52
51
  {%- endmacro -%}
53
52
 
54
53
  {%- macro printUnitGroup(group) -%}
55
- <UNIT-GROUP {%- if group.oid %} OID="{{group.oid}}" {%- endif %}>
54
+ <UNIT-GROUP {{-make_xml_attrib("OID", group.oid)}}>
56
55
  {{ peid.printElementIdSubtags(group)|indent(1) }}
57
56
  <CATEGORY>{{ group.category.value }}</CATEGORY>
58
57
  {%- if group.unit_refs %}
@@ -66,8 +65,7 @@
66
65
  {%- endmacro -%}
67
66
 
68
67
  {%- macro printPhysicalDimesion(dim) -%}
69
- <PHYSICAL-DIMENSION ID="{{dim.odx_id.local_id}}"
70
- {{-make_xml_attrib("OID",dim.oid)}}>
68
+ <PHYSICAL-DIMENSION {{-peid.printElementIdAttribs(dim)}}>
71
69
  {{ peid.printElementIdSubtags(dim)|indent(1) }}
72
70
  {%- if dim.length_exp %}
73
71
  <LENGTH-EXP>{{ dim.length_exp }}</LENGTH-EXP>
odxtools/unit.py CHANGED
@@ -53,7 +53,6 @@ class Unit(IdentifiableElement):
53
53
  ```
54
54
  """
55
55
  display_name: str
56
- oid: Optional[str]
57
56
  factor_si_to_unit: Optional[float]
58
57
  offset_si_to_unit: Optional[float]
59
58
  physical_dimension_ref: Optional[OdxLinkRef]
@@ -64,7 +63,7 @@ class Unit(IdentifiableElement):
64
63
  @staticmethod
65
64
  def from_et(et_element: ElementTree.Element, doc_frags: List[OdxDocFragment]) -> "Unit":
66
65
  kwargs = dataclass_fields_asdict(IdentifiableElement.from_et(et_element, doc_frags))
67
- oid = et_element.get("OID")
66
+
68
67
  display_name = odxrequire(et_element.findtext("DISPLAY-NAME"))
69
68
 
70
69
  def read_optional_float(element: ElementTree.Element, name: str) -> Optional[float]:
@@ -80,7 +79,6 @@ class Unit(IdentifiableElement):
80
79
 
81
80
  return Unit(
82
81
  display_name=display_name,
83
- oid=oid,
84
82
  factor_si_to_unit=factor_si_to_unit,
85
83
  offset_si_to_unit=offset_si_to_unit,
86
84
  physical_dimension_ref=physical_dimension_ref,
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.6'
16
- __version_tuple__ = version_tuple = (8, 0, 6)
15
+ __version__ = version = '8.1.0'
16
+ __version_tuple__ = version_tuple = (8, 1, 0)
odxtools/writepdxfile.py CHANGED
@@ -140,6 +140,7 @@ def write_pdx_file(
140
140
  out_file.write(data_file.read())
141
141
 
142
142
  jinja_env = jinja2.Environment(loader=jinja2.FileSystemLoader(templates_dir))
143
+ jinja_env.globals["getattr"] = getattr
143
144
  jinja_env.globals["hasattr"] = hasattr
144
145
  jinja_env.globals["odxraise"] = jinja2_odxraise_helper
145
146
  jinja_env.globals["make_xml_attrib"] = make_xml_attrib
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odxtools
3
- Version: 8.0.6
3
+ Version: 8.1.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>
@@ -40,7 +40,7 @@ odxtools/dyndefinedspec.py,sha256=ErtMIFVAB-E-ujTUwLXxsheGOOFkhNy6zCXs4cp7biE,76
40
40
  odxtools/dynenddopref.py,sha256=SYXrmRUQoLWD4UI3WV92oA5rNhxbDuRv6H1MeXeuWhM,1199
41
41
  odxtools/ecuvariantmatcher.py,sha256=muZfBcHVUQFXn3mBRwLtQ2asGV1oDYkDrBwZ9WYuLKU,6848
42
42
  odxtools/ecuvariantpattern.py,sha256=Xp2NpS13sVvyOjy2PgxLvXPptAfmYSH_KDIjqYByZHs,863
43
- odxtools/element.py,sha256=7JlWYW_KERDpYPfofdfRwT8UQBI94B_iEmhNCM7jUi8,1230
43
+ 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
@@ -67,11 +67,11 @@ odxtools/negoutputparam.py,sha256=u2IhJvy6n19t3nyADGG0H0XTm7JNdQ0-95FawGAdtiE,13
67
67
  odxtools/obd.py,sha256=WsUbhdonqQJtxf972CUdYL78AMMTVjMQhoCJbaZhRIo,1860
68
68
  odxtools/odxlink.py,sha256=YoEovTx5T8c5YFJPa2CSxk_gwRfP8miGCwicHbpqQNg,9259
69
69
  odxtools/odxtypes.py,sha256=Cg1BxXAoOW-cqbbmePw3x-rZ2CW6qZGlFX2xdAanlKc,7541
70
- odxtools/outputparam.py,sha256=e9YvdJvKlX-GOdmu2vCPO6BZEyOLuOsYEdvtC5ISLHM,1636
70
+ odxtools/outputparam.py,sha256=_NVZj4YfU_RdPpGUnz659-70DaYwBxYxwktxZ5lSMsY,1568
71
71
  odxtools/parameterinfo.py,sha256=hsUqlTnMJ-s6QbA6-X7rN6b6NfdnagJ1u_1JLLuYRqo,8564
72
72
  odxtools/paramlengthinfotype.py,sha256=vhgvCPIRnyCF9t8yhkYf5MsHXQhWWeEgz_kS8AbiONQ,4700
73
73
  odxtools/parentref.py,sha256=kcY3VMyVaIUWD0iVNX8sD9qeI4peU8gijboquu0zD7E,3751
74
- odxtools/physicaldimension.py,sha256=iaf7LIJEiEoV3WniybEpDvGgL4Z_iWCjo1HlQy663GU,3359
74
+ odxtools/physicaldimension.py,sha256=CEH7Ura4gqsqlBUxBW08ea9Pxh_Od8JruYQ8o9qOGME,3269
75
75
  odxtools/physicaltype.py,sha256=oYjOhdrTVCJcLLBYgy6pxKsZHpuwm1vZ8svwSjsUB6E,2699
76
76
  odxtools/progcode.py,sha256=ZoGf6X7qH3TT8zSr3bQAYwPb0Il4V6vSLWgdTnlj88Y,2169
77
77
  odxtools/protstack.py,sha256=nb2RR4OEaGX6lJ6drHejJU-tkB1p0Ok0KLZhNMTdsEc,2012
@@ -97,13 +97,13 @@ odxtools/table.py,sha256=zgpVveH8neSNhdcsPp0jG4f6H00M0NKCuAME8MSrf-Q,4024
97
97
  odxtools/tablerow.py,sha256=hOi7FCX7TiCRxErCD1hKU6h2hT5_8V3ghtt8dJXOiQY,6307
98
98
  odxtools/teammember.py,sha256=xn1y6k42zQoyM2SlEkZ8UFyiqBvVI5FNZAm_xt2Vt_Y,1772
99
99
  odxtools/uds.py,sha256=69SyVnQDcyspzSf6QVfm_Uk9iCxczD6UcrO1PxhNo7E,5894
100
- odxtools/unit.py,sha256=zzQlQGAct6G0dARTlqBlhqnkg2iixkViI4VScLWrnP4,3667
100
+ odxtools/unit.py,sha256=PLMErZ6N9oA4z3fuwYsmqMajeVHFNtKhC-w7IzaTfvw,3588
101
101
  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=ezZqCbstAPwDi9fM4OrkFMyujfwJlfH0tBmH0LsrRww,411
106
- odxtools/writepdxfile.py,sha256=x3W2xiPVjzNZjfpJssY6ngkx74sZtb95OFmBHql1VY4,7766
105
+ odxtools/version.py,sha256=eiWyn2_6w1-A0TRBYVKm6NOjpOjm1AVjrofuhC156co,411
106
+ odxtools/writepdxfile.py,sha256=ZEoNkSxheqnXm836-HOpd04O6ipMXYKFzXZy6PM0YLc,7813
107
107
  odxtools/xdoc.py,sha256=gDq-8l8x-Tj1ZJOttPxZchcO5_jEPwcXxMgT29VgTS0,1433
108
108
  odxtools/cli/__init__.py,sha256=T7ano_FIyzBASxYpmcA5VJXU5bQLIy_Qk0HE_SDKelY,106
109
109
  odxtools/cli/_parser_utils.py,sha256=p0L9NYYnml5ydfD22oC04EMhz8PKHgU40GPOPkybZwg,1116
@@ -153,7 +153,7 @@ odxtools/parameters/dynamicparameter.py,sha256=mdZx12XbhTSYVVuXEsPYRll3zaHjbHIYI
153
153
  odxtools/parameters/lengthkeyparameter.py,sha256=WSpSIbxFmEwBov6Jj5Ubj9gMr46OgrdNi5-UaahCjAo,5270
154
154
  odxtools/parameters/matchingrequestparameter.py,sha256=VNYIpmP_Yt_pzMHPgGWZk1XYH5liIdyawNIwIR1Cbvw,2897
155
155
  odxtools/parameters/nrcconstparameter.py,sha256=SjTHQlaBzvyUATyOzSFFWCcdkTeHcaoKO54kTomzb6Y,4823
156
- odxtools/parameters/parameter.py,sha256=K6UU0vQV010n-7oov9uibN7u5-cIp-r68Vfaz7jJqR0,5945
156
+ odxtools/parameters/parameter.py,sha256=vb74YXUKEffF6ISshYtlIACf8TV-AOlIzlSthBIkxXc,6025
157
157
  odxtools/parameters/parameterwithdop.py,sha256=k7yJABRmHQTZNTEEPjyq3tBXJD4Aey365HpP7SGsEgk,3283
158
158
  odxtools/parameters/physicalconstantparameter.py,sha256=2iC6EKVJZVHwVVmd4h8KJ6OLc7B5QOUawivQMqWPCRA,3593
159
159
  odxtools/parameters/reservedparameter.py,sha256=8XQocU3_ExRZzXYEkITj535TTEUCNK87wIkrUTizgvI,1989
@@ -167,51 +167,51 @@ odxtools/templates/comparam-subset.odx-cs.xml.jinja2,sha256=9desdk8puFzysHAeLSoZ
167
167
  odxtools/templates/diag_layer_container.odx-d.xml.jinja2,sha256=YC4-jWVRoFqD_zd2Sd5FKnAlYsGYGVm9n2uXQ6kXqW8,2388
168
168
  odxtools/templates/index.xml.jinja2,sha256=Z1bcntvvky7NoH0Q0CRJgUORwf3g96PFPGeOpi7VATw,647
169
169
  odxtools/templates/macros/printAdminData.xml.jinja2,sha256=YTB_CbhnALF6RIbE0XKQHRbC6c0PSZ_DxdrRHgqMD_s,2590
170
- odxtools/templates/macros/printAudience.xml.jinja2,sha256=IiAogxtEIo6qg7iZm1plQtrM4nkl6jj9GhIv5QI5ETM,1278
170
+ odxtools/templates/macros/printAudience.xml.jinja2,sha256=vaYL_-GPVdlLc7WAQTbkVZZbFuQptnCbOhXJb3tsHv8,1286
171
171
  odxtools/templates/macros/printBaseVariant.xml.jinja2,sha256=l4Jp8v9ZfPXvIisqVLgTpzc5UdYGeIocY4vAcgCiiaE,1480
172
172
  odxtools/templates/macros/printBasicStructure.xml.jinja2,sha256=V5oWGZesU_U5pvPO3Rtlodc7sxe5mFWY-uURLnQ8OfQ,614
173
- odxtools/templates/macros/printCompanyData.xml.jinja2,sha256=-F5xfUbjFAee7E__lgLCXC8a9xn15t_MDfxv6BzbKGA,2965
174
- odxtools/templates/macros/printComparam.xml.jinja2,sha256=rhoJO78urhjO07kuX0p_PRwfRHPIp2BPRu-eQ-USe6I,2392
173
+ odxtools/templates/macros/printCompanyData.xml.jinja2,sha256=jcNmQBOGDw7wcKdam72NIJSOTxthfkPJvrmw24MBiYQ,2981
174
+ odxtools/templates/macros/printComparam.xml.jinja2,sha256=e3hPCswAymJteQIUNoc7FOwsK_FrbJOvJooWdEx_vuQ,2408
175
175
  odxtools/templates/macros/printComparamRef.xml.jinja2,sha256=rBhrdUnp605fsUN9SaljpyaAojzaLBvTbkOuduKod18,1274
176
176
  odxtools/templates/macros/printCompuMethod.xml.jinja2,sha256=6eW1IgjPDwtW9qvA24Tx1wFtGFfJ0k10Gne5HoQpy4U,4394
177
- odxtools/templates/macros/printDOP.xml.jinja2,sha256=1i8s6Z9zR6C5WRngxXPMGaHhoaZsJSEfWsggjfxnRqY,5138
177
+ odxtools/templates/macros/printDOP.xml.jinja2,sha256=t-6U0gZLdV2n6-YW5pkVFnHNVTAOnfqMch-mk_fGyjo,5146
178
178
  odxtools/templates/macros/printDescription.xml.jinja2,sha256=7jcYEIXr7hbbKqSvIUIgXaQSXV4dKAR9UhY352BZct8,452
179
- odxtools/templates/macros/printDiagComm.xml.jinja2,sha256=eIKtu3xEmoQllyNYOWQx5Iv2oljKSg3lR6V4As-SFE0,2231
180
- odxtools/templates/macros/printDiagLayer.xml.jinja2,sha256=V4CYnhnRLUPBhjE-l4kWpG3Hzym-9ddO0q9Kp2ypflU,6456
181
- odxtools/templates/macros/printDiagVariable.xml.jinja2,sha256=7Fa0DFyeEUDUxgM0IUsj_BXC2-csLSv1xjiUT1yauis,2531
179
+ odxtools/templates/macros/printDiagComm.xml.jinja2,sha256=_SByYBYzPG9t7VNnAohFAXsgng9VrQcSacXH923wRzY,2239
180
+ odxtools/templates/macros/printDiagLayer.xml.jinja2,sha256=NKrQ9JTxxhdHTHYFo_ZzyoClJJkZC3ISObhWCJOXUq4,6449
181
+ odxtools/templates/macros/printDiagVariable.xml.jinja2,sha256=sQEU42Onf0WkRJZJyNUgeeGICc3MZaQJPQ0YKY6lRrU,2656
182
182
  odxtools/templates/macros/printDynDefinedSpec.xml.jinja2,sha256=uX3C40VmlbH7sndlJNyTvq8upzaoq8vCk6S93gtpFIY,1742
183
- odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2,sha256=EvUOkfVsNAT61B5OApyE7Yh45C_A_iBg9gCTiq_td7w,579
184
- odxtools/templates/macros/printDynamicLengthField.xml.jinja2,sha256=YCwgKV2na49mlHQQmI8L85ZYqUktaYuNil-K6rp4BR8,776
183
+ odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2,sha256=6BmxPKesQvfy46iTiPSFu_iJffC6umZ_YRsTEd-0y5Q,587
184
+ odxtools/templates/macros/printDynamicLengthField.xml.jinja2,sha256=bNvNh_4xyp4L6v7cxJ5cO1yOHYPnSFiaK9oY4l63fDU,784
185
185
  odxtools/templates/macros/printEcuSharedData.xml.jinja2,sha256=WK08eoDFEjj9o3eOuy__H0r9ioo688rTuQp6uXE6Tdo,820
186
186
  odxtools/templates/macros/printEcuVariant.xml.jinja2,sha256=Nsgj2VUWZvSDFPQsn6wv75M9TaryOB-tlQYCVq9hDEM,1594
187
187
  odxtools/templates/macros/printEcuVariantPattern.xml.jinja2,sha256=uSUrX1n2YVw6tt1-A0Lmlgy_W3dxW4r8bVErdrf_6vk,846
188
- odxtools/templates/macros/printElementId.xml.jinja2,sha256=wuCXYyXlg50zgUvukxScHN_SCH8YEATjkcqvwsC9aNw,389
189
- odxtools/templates/macros/printEndOfPdu.xml.jinja2,sha256=_BwCjD0iBya3JFRi_XcUrq8nwR96O7Tw6TeRu3t6Tgs,671
188
+ odxtools/templates/macros/printElementId.xml.jinja2,sha256=Oe4sgtBB_VhTz6uJzaiTCpQki2ulKKfpBq56FVgBC-I,570
189
+ odxtools/templates/macros/printEndOfPdu.xml.jinja2,sha256=ptjwOxyNTABATOajiitcvlJRKVGP_osh2wSJTCbaa38,679
190
190
  odxtools/templates/macros/printEnvData.xml.jinja2,sha256=2Goatqb66d-pCf9wqJDXn1EZWNhkQ8FJANKQMOnxuJs,609
191
- odxtools/templates/macros/printEnvDataDesc.xml.jinja2,sha256=23d4XOrHD6O-JHGVYbwnLVJWwaw3al1kneSsP2EIW0Q,580
192
- odxtools/templates/macros/printFunctionalClass.xml.jinja2,sha256=7Jtf_xB3bBcvjK_fXXHYTDXqcxMU4eBnJeZgLPKjFmg,321
191
+ odxtools/templates/macros/printEnvDataDesc.xml.jinja2,sha256=rBpPf51LFx5oNx_XjeTABast9hmru5hYbeJQ2axHntw,588
192
+ odxtools/templates/macros/printFunctionalClass.xml.jinja2,sha256=TpOQTj-hlNLtIfcSTVzU-gRrfaWrgsTrIFMqm_1M6Qs,329
193
193
  odxtools/templates/macros/printFunctionalGroup.xml.jinja2,sha256=zIeZbhf8haXhgJJUPiOnMe3lvqvfye4-zmwWDQJxFtQ,1159
194
194
  odxtools/templates/macros/printHierarchyElement.xml.jinja2,sha256=GD6iNIE0Wu0QsJ8uLtwEV8N9t6mIhI00_KpCVzOVQBM,651
195
- odxtools/templates/macros/printMux.xml.jinja2,sha256=EL9sCWzqC3iaBPsrTINUo03zGGMrU-bWbJ3f0U5CBIQ,1861
196
- odxtools/templates/macros/printParam.xml.jinja2,sha256=BKvKvswnelCynXmz_rAsejMdtce6Fji2CkSteX5x0jI,3203
195
+ odxtools/templates/macros/printMux.xml.jinja2,sha256=68IiPY_mIJQqQiqce3jUphqp3-xLfmEBL7CSb3Cz7eI,1869
196
+ odxtools/templates/macros/printParam.xml.jinja2,sha256=bdp-r1arWod-vV9ODUZn_QThtAAqkm31SqdJeGItJ1M,3183
197
197
  odxtools/templates/macros/printParentRef.xml.jinja2,sha256=RllVKt2RgrMnWfsujGnBUiABwV2y4_ZfINYy7LXenPM,896
198
- odxtools/templates/macros/printProtStack.xml.jinja2,sha256=abss3fNe-e5CbFBI0WcRopP7omIV2POzT0qJ6Az7dUE,765
198
+ odxtools/templates/macros/printProtStack.xml.jinja2,sha256=0FHHvuduiMPhAE19vpTHu3cQeM9kSybWj5FbybcXnGk,773
199
199
  odxtools/templates/macros/printProtocol.xml.jinja2,sha256=1DXoRSq6z4dhpZnXWH3x9JPKCWmAmghjVgVFfizo41s,1028
200
- odxtools/templates/macros/printRequest.xml.jinja2,sha256=GazGOinjHp72ZhIZ8LVKpRxYcyYyNlBmEUNuN0cgntg,709
201
- odxtools/templates/macros/printResponse.xml.jinja2,sha256=QVU8dVCJm_Tv_Cy6SEun-fJBs2w9ASEfJeRs0LynZdA,675
200
+ odxtools/templates/macros/printRequest.xml.jinja2,sha256=yq4xGSlQCioT7FRivyx40Cjs2CYr9EK6NLZf0W4wGW0,717
201
+ odxtools/templates/macros/printResponse.xml.jinja2,sha256=GsOYmnoh4ewhWg3FUdcovHuJxvuIjsSrXNtbcnnAQcM,683
202
202
  odxtools/templates/macros/printService.xml.jinja2,sha256=zvjOCELEx4yim2FtdNKiExTsDPkAfQAP4Gf_QsondfQ,1546
203
- odxtools/templates/macros/printSingleEcuJob.xml.jinja2,sha256=KQqp5TeKPEC3Z_kasE35n9SRw7KhjPulQ4ijyReKF-U,2637
204
- odxtools/templates/macros/printSpecialData.xml.jinja2,sha256=SrgPPQkZF5C4wdveJSiHk8QJVYZ2zbd6XFvkyt7NEBE,1378
205
- odxtools/templates/macros/printState.xml.jinja2,sha256=B-rhB7HgfZCoC_mGljgDaX9hU4X1tZ9DbS39WpffBu4,307
206
- odxtools/templates/macros/printStateChart.xml.jinja2,sha256=bOj9FWl-kZmlhoMskG71zS9NxtTimGwQvgDpKNaPw6s,943
207
- odxtools/templates/macros/printStateTransition.xml.jinja2,sha256=iO4fSCwFMLdX_VDdNnn8udiGE3vYU7tXPfbEBvoTFa4,502
208
- odxtools/templates/macros/printStaticField.xml.jinja2,sha256=JIXFhyNrnQ-2_vWy6RxikrYpp5ZMAITgWCVCnt7bOxQ,513
209
- odxtools/templates/macros/printStructure.xml.jinja2,sha256=uswYs2xse0B9hZut_FN1GvvR0xsZa_3pZRnlF0ElEEc,559
210
- odxtools/templates/macros/printTable.xml.jinja2,sha256=VsP01jqyQllLP-brQ6J1E8ubVntiToEb8Uk7HQEYqtY,1485
211
- odxtools/templates/macros/printUnitSpec.xml.jinja2,sha256=AJ5jWYKRmoIZkrd25R1KmjjgU6pfOqRiOQHtUAuS6GI,2813
212
- odxtools-8.0.6.dist-info/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
213
- odxtools-8.0.6.dist-info/METADATA,sha256=I6_6YdNbHTRJXLyvjh-KMskjqe5-CvSc0tQCRYU0qXI,44084
214
- odxtools-8.0.6.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
215
- odxtools-8.0.6.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
216
- odxtools-8.0.6.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
217
- odxtools-8.0.6.dist-info/RECORD,,
203
+ odxtools/templates/macros/printSingleEcuJob.xml.jinja2,sha256=SXUgO57KQFahI3fv9tRWlEyWeSr0sYXwQ8vq8lqo0eI,2645
204
+ odxtools/templates/macros/printSpecialData.xml.jinja2,sha256=0eIFh9cWXfFrQN_f8G_lz3fUqmtysxY6tSN4DbuFY40,1386
205
+ odxtools/templates/macros/printState.xml.jinja2,sha256=BNnTEyczp43iP9Bn_plMLRsJsasra4sRyvmgODuZQYg,315
206
+ odxtools/templates/macros/printStateChart.xml.jinja2,sha256=XW1EhF1k8ogbEDt-QMjSOojKl4vjxXkq6BwJWR9GJsI,951
207
+ odxtools/templates/macros/printStateTransition.xml.jinja2,sha256=J2t0yU82UBegUSH9sAbnkdgEYPTUU0A7I-CokuPQxDo,510
208
+ odxtools/templates/macros/printStaticField.xml.jinja2,sha256=fkV07zrL2pTo6b5ZPD14V0uC1aEk2P4roXyDhp-ah38,521
209
+ odxtools/templates/macros/printStructure.xml.jinja2,sha256=CJUPZv_9lko63C5fNpOn5LlQqLCuS--qyhtx4NyD5Rk,567
210
+ odxtools/templates/macros/printTable.xml.jinja2,sha256=5DQjjJ-UxQ75ntov0S0LGnm_V7YWtKadBpNbmV1aBb8,1501
211
+ 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,,