odxtools 7.4.0__py3-none-any.whl → 8.0.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.
- odxtools/cli/_print_utils.py +4 -3
- odxtools/cli/browse.py +13 -11
- odxtools/cli/compare.py +1 -1
- odxtools/cli/list.py +20 -10
- odxtools/cli/snoop.py +28 -5
- odxtools/database.py +46 -10
- odxtools/diagcomm.py +4 -4
- odxtools/diaglayercontainer.py +23 -11
- odxtools/diaglayers/basevariant.py +128 -0
- odxtools/diaglayers/basevariantraw.py +117 -0
- odxtools/diaglayers/diaglayer.py +422 -0
- odxtools/{diaglayerraw.py → diaglayers/diaglayerraw.py} +18 -156
- odxtools/diaglayers/ecushareddata.py +96 -0
- odxtools/diaglayers/ecushareddataraw.py +81 -0
- odxtools/diaglayers/ecuvariant.py +124 -0
- odxtools/diaglayers/ecuvariantraw.py +123 -0
- odxtools/diaglayers/functionalgroup.py +110 -0
- odxtools/diaglayers/functionalgroupraw.py +100 -0
- odxtools/{diaglayer.py → diaglayers/hierarchyelement.py} +183 -498
- odxtools/diaglayers/hierarchyelementraw.py +52 -0
- odxtools/diaglayers/protocol.py +64 -0
- odxtools/diaglayers/protocolraw.py +85 -0
- odxtools/diagvariable.py +10 -1
- odxtools/ecuvariantmatcher.py +6 -7
- odxtools/field.py +3 -4
- odxtools/matchingparameter.py +1 -1
- odxtools/nameditemlist.py +4 -3
- odxtools/parameterinfo.py +10 -1
- odxtools/parameters/parameterwithdop.py +2 -3
- odxtools/parentref.py +1 -1
- odxtools/snrefcontext.py +1 -1
- odxtools/templates/diag_layer_container.odx-d.xml.jinja2 +11 -6
- odxtools/templates/macros/printBaseVariant.xml.jinja2 +53 -0
- odxtools/templates/macros/printCompuMethod.xml.jinja2 +1 -1
- odxtools/templates/macros/printDiagLayer.xml.jinja2 +206 -0
- odxtools/templates/macros/printEcuSharedData.xml.jinja2 +30 -0
- odxtools/templates/macros/printEcuVariant.xml.jinja2 +53 -0
- odxtools/templates/macros/printFunctionalGroup.xml.jinja2 +40 -0
- odxtools/templates/macros/printHierarchyElement.xml.jinja2 +24 -0
- odxtools/templates/macros/printProtocol.xml.jinja2 +30 -0
- odxtools/variablegroup.py +11 -1
- odxtools/version.py +2 -2
- {odxtools-7.4.0.dist-info → odxtools-8.0.0.dist-info}/METADATA +1 -1
- {odxtools-7.4.0.dist-info → odxtools-8.0.0.dist-info}/RECORD +49 -31
- odxtools/templates/macros/printVariant.xml.jinja2 +0 -241
- /odxtools/{diaglayertype.py → diaglayers/diaglayertype.py} +0 -0
- {odxtools-7.4.0.dist-info → odxtools-8.0.0.dist-info}/LICENSE +0 -0
- {odxtools-7.4.0.dist-info → odxtools-8.0.0.dist-info}/WHEEL +0 -0
- {odxtools-7.4.0.dist-info → odxtools-8.0.0.dist-info}/entry_points.txt +0 -0
- {odxtools-7.4.0.dist-info → odxtools-8.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,206 @@
|
|
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
|
+
{%- import('macros/printDOP.xml.jinja2') as pdop %}
|
8
|
+
{%- import('macros/printTable.xml.jinja2') as pt %}
|
9
|
+
{%- import('macros/printFunctionalClass.xml.jinja2') as pfc %}
|
10
|
+
{%- import('macros/printStructure.xml.jinja2') as pst %}
|
11
|
+
{%- import('macros/printEndOfPdu.xml.jinja2') as peopdu %}
|
12
|
+
{%- import('macros/printStaticField.xml.jinja2') as psf %}
|
13
|
+
{%- import('macros/printDynamicLengthField.xml.jinja2') as pdlf %}
|
14
|
+
{%- import('macros/printDynamicEndmarkerField.xml.jinja2') as pdemf %}
|
15
|
+
{%- import('macros/printMux.xml.jinja2') as pm %}
|
16
|
+
{%- import('macros/printEnvData.xml.jinja2') as ped %}
|
17
|
+
{%- import('macros/printEnvDataDesc.xml.jinja2') as pedd %}
|
18
|
+
{%- import('macros/printUnitSpec.xml.jinja2') as punit %}
|
19
|
+
{%- import('macros/printService.xml.jinja2') as ps %}
|
20
|
+
{%- import('macros/printSingleEcuJob.xml.jinja2') as psej %}
|
21
|
+
{%- import('macros/printRequest.xml.jinja2') as prq %}
|
22
|
+
{%- import('macros/printResponse.xml.jinja2') as presp %}
|
23
|
+
{%- import('macros/printStateChart.xml.jinja2') as psc %}
|
24
|
+
{%- import('macros/printAudience.xml.jinja2') as paud %}
|
25
|
+
{%- import('macros/printSpecialData.xml.jinja2') as psd %}
|
26
|
+
{%- import('macros/printEcuVariantPattern.xml.jinja2') as pvpat %}
|
27
|
+
{%- import('macros/printAdminData.xml.jinja2') as pad %}
|
28
|
+
|
29
|
+
{%- macro printDiagLayerAttribs(dl) -%}
|
30
|
+
{#- #} ID="{{dl.diag_layer_raw.odx_id.local_id}}"{# -#}
|
31
|
+
{%- endmacro -%}
|
32
|
+
|
33
|
+
{%- macro printDiagLayerSubtags(dl) -%}
|
34
|
+
{%- set dlr = dl.diag_layer_raw %}
|
35
|
+
{{ peid.printElementIdSubtags(dlr)|indent(1) }}
|
36
|
+
{%- if dlr.admin_data is not none %}
|
37
|
+
{{ pad.printAdminData(dlr.admin_data) }}
|
38
|
+
{%- endif %}
|
39
|
+
{%- if dlr.company_datas %}
|
40
|
+
<COMPANY-DATAS>
|
41
|
+
{%- for cd in dlr.company_datas %}
|
42
|
+
{{ pcd.printCompanyData(cd) }}
|
43
|
+
{%- endfor %}
|
44
|
+
</COMPANY-DATAS>
|
45
|
+
{%- endif %}
|
46
|
+
{%- if dlr.functional_classes %}
|
47
|
+
<FUNCT-CLASSS>
|
48
|
+
{%- for fc in dlr.functional_classes %}
|
49
|
+
{{ pfc.printFunctionalClass(fc)|indent(3) }}
|
50
|
+
{%- endfor%}
|
51
|
+
</FUNCT-CLASSS>
|
52
|
+
{%- endif %}
|
53
|
+
{%- if dlr.diag_data_dictionary_spec is not none %}
|
54
|
+
{%- set ddds = dlr.diag_data_dictionary_spec %}
|
55
|
+
<DIAG-DATA-DICTIONARY-SPEC>
|
56
|
+
{%- if ddds.dtc_dops %}
|
57
|
+
<DTC-DOPS>
|
58
|
+
{%- for dop in ddds.dtc_dops -%}
|
59
|
+
{{ pdop.printDtcDop(dop)|indent(3) }}
|
60
|
+
{%- endfor %}
|
61
|
+
</DTC-DOPS>
|
62
|
+
{%- endif %}
|
63
|
+
{%- if ddds.env_data_descs %}
|
64
|
+
<ENV-DATA-DESCS>
|
65
|
+
{%- for env_data_desc in ddds.env_data_descs -%}
|
66
|
+
{{ pedd.printEnvDataDesc(env_data_desc)|indent(3) }}
|
67
|
+
{%- endfor %}
|
68
|
+
</ENV-DATA-DESCS>
|
69
|
+
{%- endif %}
|
70
|
+
{%- if ddds.data_object_props %}
|
71
|
+
<DATA-OBJECT-PROPS>
|
72
|
+
{%- for dop in ddds.data_object_props %}
|
73
|
+
{{- pdop.printDataObjectProp(dop)|indent(3) }}
|
74
|
+
{%- endfor %}
|
75
|
+
</DATA-OBJECT-PROPS>
|
76
|
+
{%- endif %}
|
77
|
+
{%- if ddds.structures %}
|
78
|
+
<STRUCTURES>
|
79
|
+
{%- for st in ddds.structures %}
|
80
|
+
{{ pst.printStructure(st)|indent(3) }}
|
81
|
+
{%- endfor %}
|
82
|
+
</STRUCTURES>
|
83
|
+
{%- endif %}
|
84
|
+
{%- if ddds.static_fields %}
|
85
|
+
<STATIC-FIELDS>
|
86
|
+
{%- for sf in ddds.static_fields %}
|
87
|
+
{{ psf.printStaticField(sf)|indent(3) }}
|
88
|
+
{%- endfor %}
|
89
|
+
</STATIC-FIELDS>
|
90
|
+
{%- endif %}
|
91
|
+
{%- if ddds.dynamic_length_fields %}
|
92
|
+
<DYNAMIC-LENGTH-FIELDS>
|
93
|
+
{%- for dlf in ddds.dynamic_length_fields %}
|
94
|
+
{{ pdlf.printDynamicLengthField(dlf)|indent(3) }}
|
95
|
+
{%- endfor %}
|
96
|
+
</DYNAMIC-LENGTH-FIELDS>
|
97
|
+
{%- endif %}
|
98
|
+
{%- if ddds.dynamic_endmarker_fields %}
|
99
|
+
<DYNAMIC-ENDMARKER-FIELDS>
|
100
|
+
{%- for demf in ddds.dynamic_endmarker_fields %}
|
101
|
+
{{ pdemf.printDynamicEndmarkerField(demf)|indent(3) }}
|
102
|
+
{%- endfor %}
|
103
|
+
</DYNAMIC-ENDMARKER-FIELDS>
|
104
|
+
{%- endif %}
|
105
|
+
{%- if ddds.end_of_pdu_fields %}
|
106
|
+
<END-OF-PDU-FIELDS>
|
107
|
+
{%- for eopdu in ddds.end_of_pdu_fields %}
|
108
|
+
{{ peopdu.printEndOfPdu(eopdu)|indent(3) }}
|
109
|
+
{%- endfor %}
|
110
|
+
</END-OF-PDU-FIELDS>
|
111
|
+
{%- endif %}
|
112
|
+
{%- if ddds.muxs %}
|
113
|
+
<MUXS>
|
114
|
+
{%- for mux in ddds.muxs %}
|
115
|
+
{{ pm.printMux(mux)|indent(3) }}
|
116
|
+
{%- endfor %}
|
117
|
+
</MUXS>
|
118
|
+
{%- endif %}
|
119
|
+
{%- if ddds.env_datas %}
|
120
|
+
<ENV-DATAS>
|
121
|
+
{%- for env_data in ddds.env_datas %}
|
122
|
+
{{ ped.printEnvData(env_data)|indent(3) }}
|
123
|
+
{%- endfor %}
|
124
|
+
</ENV-DATAS>
|
125
|
+
{%- endif %}
|
126
|
+
{%- if ddds.unit_spec %}
|
127
|
+
{{ punit.printUnitSpec(ddds.unit_spec)|indent(2) }}
|
128
|
+
{%- endif %}
|
129
|
+
{%- if ddds.tables %}
|
130
|
+
<TABLES>
|
131
|
+
{%- for table in ddds.tables -%}
|
132
|
+
{{ pt.printTable(table)|indent(3) }}
|
133
|
+
{%- endfor %}
|
134
|
+
</TABLES>
|
135
|
+
{{- psd.printSpecialDataGroups(ddds.sdgs)|indent(2, first=True) }}
|
136
|
+
{%- endif %}
|
137
|
+
</DIAG-DATA-DICTIONARY-SPEC>
|
138
|
+
{%- endif %}
|
139
|
+
{%- if dlr.diag_comms_raw %}
|
140
|
+
<DIAG-COMMS>
|
141
|
+
{%- for dc in dlr.diag_comms_raw %}
|
142
|
+
|
143
|
+
{#- use some serious duck typing to determine the kind of diag-comm
|
144
|
+
#- object. this would not be necessary if something like
|
145
|
+
#- isinstance() was available in jinja...
|
146
|
+
#}
|
147
|
+
|
148
|
+
{%- if hasattr(dc, "ref_id") %}
|
149
|
+
{#- -> reference to a diag-comm object #}
|
150
|
+
<DIAG-COMM-REF ID-REF="{{dc.ref_id}}" />
|
151
|
+
{%- elif hasattr(dc, "request") %}
|
152
|
+
{#- -> service #}
|
153
|
+
{{ ps.printService(dc)|indent(2) }}
|
154
|
+
{%- elif hasattr(dc, "prog_codes") %}
|
155
|
+
{#- -> single-ECU job #}
|
156
|
+
{{ psej.printSingleEcuJob(dc)|indent(2) }}
|
157
|
+
{%- else %}
|
158
|
+
<!-- Error: database contains an unrecognized DIAG-COMM. -->
|
159
|
+
{%- endif %}
|
160
|
+
{%- endfor %}
|
161
|
+
</DIAG-COMMS>
|
162
|
+
{%- endif %}
|
163
|
+
{%- if dlr.requests %}
|
164
|
+
<REQUESTS>
|
165
|
+
{%- for req in dlr.requests %}
|
166
|
+
{{ prq.printRequest(req)|indent(2) }}
|
167
|
+
{%- endfor %}
|
168
|
+
</REQUESTS>
|
169
|
+
{%- endif %}
|
170
|
+
{%- if dlr.positive_responses %}
|
171
|
+
<POS-RESPONSES>
|
172
|
+
{%- for resp in dlr.positive_responses %}
|
173
|
+
{{ presp.printResponse(resp, "POS-RESPONSE")|indent(2) }}
|
174
|
+
{%- endfor %}
|
175
|
+
</POS-RESPONSES>
|
176
|
+
{%- endif %}
|
177
|
+
{%- if dlr.negative_responses %}
|
178
|
+
<NEG-RESPONSES>
|
179
|
+
{%- for resp in dlr.negative_responses %}
|
180
|
+
{{ presp.printResponse(resp, "NEG-RESPONSE")|indent(2) }}
|
181
|
+
{%- endfor %}
|
182
|
+
</NEG-RESPONSES>
|
183
|
+
{%- endif %}
|
184
|
+
{%- if dlr.global_negative_responses %}
|
185
|
+
<GLOBAL-NEG-RESPONSES>
|
186
|
+
{%- for resp in dlr.global_negative_responses %}
|
187
|
+
{{ presp.printResponse(resp, "GLOBAL-NEG-RESPONSE")|indent(2) }}
|
188
|
+
{%- endfor %}
|
189
|
+
</GLOBAL-NEG-RESPONSES>
|
190
|
+
{%- endif %}
|
191
|
+
{%- if dlr.state_charts %}
|
192
|
+
<STATE-CHARTS>
|
193
|
+
{%- for sc in dlr.state_charts %}
|
194
|
+
{{ psc.printStateChart(sc) }}
|
195
|
+
{%- endfor %}
|
196
|
+
</STATE-CHARTS>
|
197
|
+
{%- endif %}
|
198
|
+
{%- if dlr.additional_audiences %}
|
199
|
+
<ADDITIONAL-AUDIENCES>
|
200
|
+
{%- for audience in dlr.additional_audiences %}
|
201
|
+
{{ paud.printAdditionalAudience(audience)|indent(2) }}
|
202
|
+
{%- endfor %}
|
203
|
+
</ADDITIONAL-AUDIENCES>
|
204
|
+
{%- endif %}
|
205
|
+
{{- psd.printSpecialDataGroups(dlr.sdgs)|indent(0, first=True) }}
|
206
|
+
{%- endmacro -%}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
{#- -*- mode: sgml; tab-width: 2; indent-tabs-mode: nil -*-
|
2
|
+
#
|
3
|
+
# SPDX-License-Identifier: MIT
|
4
|
+
-#}
|
5
|
+
|
6
|
+
{%- import('macros/printDiagLayer.xml.jinja2') as pdl %}
|
7
|
+
|
8
|
+
{%- macro printEcuSharedData(ecu_shared_data) -%}
|
9
|
+
<ECU-SHARED-DATA {{- pdl.printDiagLayerAttribs(ecu_shared_data) -}}>
|
10
|
+
{{ pdl.printDiagLayerSubtags(ecu_shared_data) | indent(2) }}
|
11
|
+
{%- set dlr = ecu_shared_data.ecu_shared_data_raw %}
|
12
|
+
|
13
|
+
{%- if dlr.diag_variables %}
|
14
|
+
<DIAG-VARIABLES>
|
15
|
+
{%- for dv in dlr.diag_variables -%}
|
16
|
+
{{ pdv.printDiagVariable(dv)|indent(4) }}
|
17
|
+
{%- endfor -%}
|
18
|
+
</DIAG-VARIABLES>
|
19
|
+
{%- endif %}
|
20
|
+
|
21
|
+
{%- if dlr.variable_groups %}
|
22
|
+
<VARIABLE-GROUPS>
|
23
|
+
{%- for vg in dlr.variable_groups -%}
|
24
|
+
{{ pdv.printVariableGroup(vg)|indent(4) }}
|
25
|
+
{%- endfor -%}
|
26
|
+
</VARIABLE-GROUPS>
|
27
|
+
{%- endif %}
|
28
|
+
|
29
|
+
</ECU-SHARED-DATA>
|
30
|
+
{%- endmacro %}
|
@@ -0,0 +1,53 @@
|
|
1
|
+
{#- -*- mode: sgml; tab-width: 2; indent-tabs-mode: nil -*-
|
2
|
+
#
|
3
|
+
# SPDX-License-Identifier: MIT
|
4
|
+
-#}
|
5
|
+
|
6
|
+
{%- import('macros/printHierarchyElement.xml.jinja2') as phe %}
|
7
|
+
{%- import('macros/printComparamRef.xml.jinja2') as pcom %}
|
8
|
+
{%- import('macros/printParentRef.xml.jinja2') as pparref %}
|
9
|
+
{%- import('macros/printEcuVariantPattern.xml.jinja2') as pvpat %}
|
10
|
+
{%- import('macros/printDynDefinedSpec.xml.jinja2') as pdynspec %}
|
11
|
+
|
12
|
+
{%- macro printEcuVariant(ecu_variant) -%}
|
13
|
+
<ECU-VARIANT {{- phe.printHierarchyElementAttribs(ecu_variant) -}}>
|
14
|
+
{{ phe.printHierarchyElementSubtags(ecu_variant) | indent(2) }}
|
15
|
+
{%- set dlr = ecu_variant.diag_layer_raw %}
|
16
|
+
|
17
|
+
{%- if dlr.diag_variables %}
|
18
|
+
<DIAG-VARIABLES>
|
19
|
+
{%- for dv in dlr.diag_variables -%}
|
20
|
+
{{ pdv.printDiagVariable(dv)|indent(4) }}
|
21
|
+
{%- endfor -%}
|
22
|
+
</DIAG-VARIABLES>
|
23
|
+
{%- endif %}
|
24
|
+
|
25
|
+
{%- if dlr.variable_groups %}
|
26
|
+
<VARIABLE-GROUPS>
|
27
|
+
{%- for vg in dlr.variable_groups -%}
|
28
|
+
{{ pdv.printVariableGroup(vg)|indent(4) }}
|
29
|
+
{%- endfor -%}
|
30
|
+
</VARIABLE-GROUPS>
|
31
|
+
{%- endif %}
|
32
|
+
|
33
|
+
{%- if dlr.dyn_defined_spec %}
|
34
|
+
{{ pdynspec.printPrintDefinedSpec(dlr.dyn_defined_spec)|indent(4) }}
|
35
|
+
{%- endif %}
|
36
|
+
|
37
|
+
{%- if dlr.ecu_variant_patterns %}
|
38
|
+
<ECU-VARIANT-PATTERNS>
|
39
|
+
{%- for vp in dlr.ecu_variant_patterns -%}
|
40
|
+
{{ pvpat.printEcuVariantPattern(vp)|indent(4) }}
|
41
|
+
{%- endfor -%}
|
42
|
+
</ECU-VARIANT-PATTERNS>
|
43
|
+
{%- endif %}
|
44
|
+
|
45
|
+
{%- if dlr.parent_refs %}
|
46
|
+
<PARENT-REFS>
|
47
|
+
{%- for parent in dlr.parent_refs -%}
|
48
|
+
{{ pparref.printParentRef(parent)|indent(4) }}
|
49
|
+
{%- endfor %}
|
50
|
+
</PARENT-REFS>
|
51
|
+
{%- endif %}
|
52
|
+
</ECU-VARIANT>
|
53
|
+
{%- endmacro %}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
{#- -*- mode: sgml; tab-width: 2; indent-tabs-mode: nil -*-
|
2
|
+
#
|
3
|
+
# SPDX-License-Identifier: MIT
|
4
|
+
-#}
|
5
|
+
|
6
|
+
{%- import('macros/printHierarchyElement.xml.jinja2') as phe %}
|
7
|
+
{%- import('macros/printComparamRef.xml.jinja2') as pcom %}
|
8
|
+
{%- import('macros/printParentRef.xml.jinja2') as pparref %}
|
9
|
+
|
10
|
+
{%- macro printFunctionalGroup(functional_group) -%}
|
11
|
+
<FUNCTIONAL-GROUP {{- phe.printHierarchyElementAttribs(functional_group) -}}>
|
12
|
+
{{ phe.printHierarchyElementSubtags(functional_group) | indent(2) }}
|
13
|
+
|
14
|
+
{%- set dlr = functional_group.functional_group_raw %}
|
15
|
+
|
16
|
+
{%- if dlr.diag_variables %}
|
17
|
+
<DIAG-VARIABLES>
|
18
|
+
{%- for dv in dlr.diag_variables -%}
|
19
|
+
{{ pdv.printDiagVariable(dv)|indent(4) }}
|
20
|
+
{%- endfor -%}
|
21
|
+
</DIAG-VARIABLES>
|
22
|
+
{%- endif %}
|
23
|
+
|
24
|
+
{%- if dlr.variable_groups %}
|
25
|
+
<VARIABLE-GROUPS>
|
26
|
+
{%- for vg in dlr.variable_groups -%}
|
27
|
+
{{ pdv.printVariableGroup(vg)|indent(4) }}
|
28
|
+
{%- endfor -%}
|
29
|
+
</VARIABLE-GROUPS>
|
30
|
+
{%- endif %}
|
31
|
+
|
32
|
+
{%- if dlr.parent_refs %}
|
33
|
+
<PARENT-REFS>
|
34
|
+
{%- for parent in dlr.parent_refs -%}
|
35
|
+
{{ pparref.printParentRef(parent)|indent(4) }}
|
36
|
+
{%- endfor %}
|
37
|
+
</PARENT-REFS>
|
38
|
+
{%- endif %}
|
39
|
+
</FUNCTIONAL-GROUP>
|
40
|
+
{%- endmacro %}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{#- -*- mode: sgml; tab-width: 1; indent-tabs-mode: nil -*-
|
2
|
+
#
|
3
|
+
# SPDX-License-Identifier: MIT
|
4
|
+
-#}
|
5
|
+
|
6
|
+
{%- import('macros/printDiagLayer.xml.jinja2') as pdl %}
|
7
|
+
{%- import('macros/printComparamRef.xml.jinja2') as pcom %}
|
8
|
+
|
9
|
+
{%- macro printHierarchyElementAttribs(helem) -%}
|
10
|
+
{{- pdl.printDiagLayerAttribs(helem) -}}
|
11
|
+
{%- endmacro -%}
|
12
|
+
|
13
|
+
{%- macro printHierarchyElementSubtags(helem) -%}
|
14
|
+
{%- set dlr = helem.hierarchy_element_raw %}
|
15
|
+
{{- pdl.printDiagLayerSubtags(helem) }}
|
16
|
+
{%- if dlr.comparam_refs %}
|
17
|
+
<COMPARAM-REFS>
|
18
|
+
{%- for cp in dlr.comparam_refs -%}
|
19
|
+
{{ pcom.printComparamRef(cp)|indent(2) }}
|
20
|
+
{%- endfor %}
|
21
|
+
</COMPARAM-REFS>
|
22
|
+
{%- endif %}
|
23
|
+
|
24
|
+
{%- endmacro %}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
{#- -*- mode: sgml; tab-width: 2; indent-tabs-mode: nil -*-
|
2
|
+
#
|
3
|
+
# SPDX-License-Identifier: MIT
|
4
|
+
-#}
|
5
|
+
|
6
|
+
{%- import('macros/printHierarchyElement.xml.jinja2') as phe %}
|
7
|
+
{%- import('macros/printComparamRef.xml.jinja2') as pcom %}
|
8
|
+
{%- import('macros/printParentRef.xml.jinja2') as pparref %}
|
9
|
+
|
10
|
+
{%- macro printProtocol(protocol) -%}
|
11
|
+
<PROTOCOL {{- phe.printHierarchyElementAttribs(protocol) -}}>
|
12
|
+
{{ phe.printHierarchyElementSubtags(protocol) | indent(2) }}
|
13
|
+
{%- set dlr = protocol.protocol_raw %}
|
14
|
+
|
15
|
+
{%- set cps_docfrag = dlr.comparam_spec_ref.ref_docs[-1] %}
|
16
|
+
<COMPARAM-SPEC-REF ID-REF="{{dlr.comparam_spec_ref.ref_id}}" DOCREF="{{cps_docfrag.doc_name}}" DOCTYPE="{{cps_docfrag.doc_type}}" />
|
17
|
+
|
18
|
+
{%- if dlr.prot_stack_snref is not none %}
|
19
|
+
<PROT-STACK-SNREF SHORT-NAME="{{ dlr.prot_stack_snref }}" />
|
20
|
+
{%- endif %}
|
21
|
+
|
22
|
+
{%- if dlr.parent_refs %}
|
23
|
+
<PARENT-REFS>
|
24
|
+
{%- for parent in dlr.parent_refs -%}
|
25
|
+
{{ pparref.printParentRef(parent)|indent(4) }}
|
26
|
+
{%- endfor %}
|
27
|
+
</PARENT-REFS>
|
28
|
+
{%- endif %}
|
29
|
+
</PROTOCOL>
|
30
|
+
{%- endmacro %}
|
odxtools/variablegroup.py
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
# SPDX-License-Identifier: MIT
|
2
|
+
import typing
|
2
3
|
from dataclasses import dataclass
|
3
|
-
from typing import TYPE_CHECKING, List
|
4
|
+
from typing import TYPE_CHECKING, List, runtime_checkable
|
4
5
|
from xml.etree import ElementTree
|
5
6
|
|
6
7
|
from .element import IdentifiableElement, NamedElement
|
8
|
+
from .nameditemlist import NamedItemList
|
7
9
|
from .odxlink import OdxDocFragment
|
8
10
|
from .utils import dataclass_fields_asdict
|
9
11
|
|
@@ -11,6 +13,14 @@ if TYPE_CHECKING:
|
|
11
13
|
pass
|
12
14
|
|
13
15
|
|
16
|
+
@runtime_checkable
|
17
|
+
class HasVariableGroups(typing.Protocol):
|
18
|
+
|
19
|
+
@property
|
20
|
+
def variable_groups(self) -> NamedItemList["VariableGroup"]:
|
21
|
+
...
|
22
|
+
|
23
|
+
|
14
24
|
@dataclass
|
15
25
|
class VariableGroup(IdentifiableElement):
|
16
26
|
|
odxtools/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: odxtools
|
3
|
-
Version:
|
3
|
+
Version: 8.0.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>
|
@@ -19,21 +19,18 @@ odxtools/complexdop.py,sha256=AHkHMf_IEWfy-_zSiCuZXmdTNCXiCOpg5GRZ5uMVV5A,280
|
|
19
19
|
odxtools/createanycomparam.py,sha256=RP0XA2Ut4GL2NWy05RvKBrTnpbvvCG2XuNL8OO-9rbI,617
|
20
20
|
odxtools/createanydiagcodedtype.py,sha256=0DVmMj4UCDYIg0zu9pgTplyhHmRedz1KJcchq1uKMjg,1216
|
21
21
|
odxtools/createecuvariantpatterns.py,sha256=FXHLGR4M791MRkpU2_keck88hoMYkuyPiCUxuGbUasQ,559
|
22
|
-
odxtools/database.py,sha256
|
22
|
+
odxtools/database.py,sha256=SKLWsUtNR5Ai81uYxBVOgz7Na91m6rKzC7WBHL15u40,8612
|
23
23
|
odxtools/dataobjectproperty.py,sha256=R5sOMIejzcTB-CXTRrL2dWnFwR08eInF531s3l9BQcI,5888
|
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
|
27
27
|
odxtools/diagcodedtype.py,sha256=LeL4UzaDM70XN2ec-4c7pdE6Z671TQTS7ivC8XNbd8M,4620
|
28
|
-
odxtools/diagcomm.py,sha256=
|
28
|
+
odxtools/diagcomm.py,sha256=j8esUkogoxHBwIEUBkAoXe28jX3vaRnnrgCR_gdP6VY,8110
|
29
29
|
odxtools/diagdatadictionaryspec.py,sha256=2zy5f-xnfGI0bnjPOEwG_IJxfsHhXZoOfdIS_fOr3L0,10552
|
30
|
-
odxtools/
|
31
|
-
odxtools/diaglayercontainer.py,sha256=dPEmI72fObAlKZvBfd5nkQVjSTuC3-mEm3-YebJagm0,6041
|
32
|
-
odxtools/diaglayerraw.py,sha256=kRWNG2WznCte8A3HhSniAg0KnjJB2ALJk1cOjrDEBRo,17948
|
33
|
-
odxtools/diaglayertype.py,sha256=FXL-EVBdrAURuHSHo9OthFuEYEybQO66aMB1o2GxVdI,1340
|
30
|
+
odxtools/diaglayercontainer.py,sha256=0JC6ioUGe5c8FzXRotyGEGMMDz8fzKCsK204tGN3cAo,6524
|
34
31
|
odxtools/diagnostictroublecode.py,sha256=jKtO8JqU0HRpeSyrcHn4s21N4Jj-p19WVP-qw2H98gY,2459
|
35
32
|
odxtools/diagservice.py,sha256=ZNj7XbBPcNkrG0MLd8WoFcCneBmz9uU2Lpi8gtUF0mQ,10188
|
36
|
-
odxtools/diagvariable.py,sha256=
|
33
|
+
odxtools/diagvariable.py,sha256=KUyRCV-H5xKITWYk9wxDnaS_N2nwDFGQzHaQRfNndKA,3829
|
37
34
|
odxtools/docrevision.py,sha256=m57a4lCWeR6QvNNxtwUNpLXAMgSq29ks1HorxoipFVk,2698
|
38
35
|
odxtools/dopbase.py,sha256=JMqlMNKyZJlXwcBFROetCIy1RsK-V_mSCR0MDuA-G5Y,2493
|
39
36
|
odxtools/dtcdop.py,sha256=BXo2wnAQVw0zn9NAatUp-_MJjRmjMXy_H5iEAQ70B10,8168
|
@@ -41,7 +38,7 @@ odxtools/dynamicendmarkerfield.py,sha256=SdG1WfQi0e3IWL-Yza27umMo3VtflCGlyjOxGVv
|
|
41
38
|
odxtools/dynamiclengthfield.py,sha256=Us0qRvkRPId7xSNKrYdsr1AhVFdTBezRMCBhXl98E00,5273
|
42
39
|
odxtools/dyndefinedspec.py,sha256=ErtMIFVAB-E-ujTUwLXxsheGOOFkhNy6zCXs4cp7biE,7657
|
43
40
|
odxtools/dynenddopref.py,sha256=SYXrmRUQoLWD4UI3WV92oA5rNhxbDuRv6H1MeXeuWhM,1199
|
44
|
-
odxtools/ecuvariantmatcher.py,sha256=
|
41
|
+
odxtools/ecuvariantmatcher.py,sha256=muZfBcHVUQFXn3mBRwLtQ2asGV1oDYkDrBwZ9WYuLKU,6848
|
45
42
|
odxtools/ecuvariantpattern.py,sha256=Xp2NpS13sVvyOjy2PgxLvXPptAfmYSH_KDIjqYByZHs,863
|
46
43
|
odxtools/element.py,sha256=7JlWYW_KERDpYPfofdfRwT8UQBI94B_iEmhNCM7jUi8,1230
|
47
44
|
odxtools/encodestate.py,sha256=yxeql949uvlB2WnsF0jVcMJ6PvaoYcGB7M0OuB4Afj0,10008
|
@@ -49,7 +46,7 @@ odxtools/endofpdufield.py,sha256=mGkhTj-YGdJ4EHMsK3AlWV6G_KLWI4ymiFKbY8U2W50,335
|
|
49
46
|
odxtools/environmentdata.py,sha256=_wSKhV_NuMG6UPMnpOxz6mVjvrXsd2mtqqT7VKSSxHU,1414
|
50
47
|
odxtools/environmentdatadescription.py,sha256=4LzDitFyxAJF1v3vPTbkrZsADWabMj60WPPa7wb9c2U,9570
|
51
48
|
odxtools/exceptions.py,sha256=ZApQkhOJ9gn4jk0uO1wmULn5PhNEl1aMYMSHDoXihh0,2714
|
52
|
-
odxtools/field.py,sha256=
|
49
|
+
odxtools/field.py,sha256=pdQpWxybPsiQ4oFKtvnjIEcQXV2WD0qH-NnBV54KMcI,3860
|
53
50
|
odxtools/functionalclass.py,sha256=IfhxKd02WNGftjSMyBJ8RsxVZgTBxzUM0h6EKHVrrxY,951
|
54
51
|
odxtools/globals.py,sha256=P6YbgyTSWHMw3sk5cEzsCvVaLrTiakLvewTgySb1jLo,139
|
55
52
|
odxtools/inputparam.py,sha256=lyffK4UBG2d_0JzIaf1QZCsPXFti6gejiIWRSdr-CYA,1841
|
@@ -57,7 +54,7 @@ odxtools/internalconstr.py,sha256=QKEkaOcrFoL9xID-oHWWkeg-vtcPV6RFOW1fX2K3pwg,13
|
|
57
54
|
odxtools/isotp_state_machine.py,sha256=O6v29IK7p_4gFqrr-fahnbp9Qmo78EEQfEwRsA_Vfjw,13339
|
58
55
|
odxtools/leadinglengthinfotype.py,sha256=mtq38k74hEh_CUY7NbVwdCc_aqKr7v5ABoS_SlKVXyI,4185
|
59
56
|
odxtools/loadfile.py,sha256=hi8jVE7B1G9gklsb7MrGrp4aOAI65j0kNwvDeEEEN2k,1744
|
60
|
-
odxtools/matchingparameter.py,sha256=
|
57
|
+
odxtools/matchingparameter.py,sha256=2cqaxFCZ28GvvUKCIM-jas3ae4eYGbULbkBlb3aH5RY,2232
|
61
58
|
odxtools/message.py,sha256=07GekN1MbYXm7HaUITDKTj2lBmGK-LB9W8gtBmfAOew,1057
|
62
59
|
odxtools/minmaxlengthtype.py,sha256=eF78Zb77f6Q6-JXdP3AjqmqNWo4KhGWb-_PVHT7Exmg,8906
|
63
60
|
odxtools/modification.py,sha256=oyyFsYHixy6XHOdqqTCx3IIkTAKlSN9wxBpNpvhUaJA,838
|
@@ -65,15 +62,15 @@ odxtools/multiplexer.py,sha256=NW3vjajt5LleDY_rYWCzOkPLF1xSIxutyUR4uanSwLg,9935
|
|
65
62
|
odxtools/multiplexercase.py,sha256=ObUQIf41UM3tQuECwPLks2Iff_FbN7A-W4Vh6zxSKNs,3177
|
66
63
|
odxtools/multiplexerdefaultcase.py,sha256=u3YxZZawhXTOdrC5ltt1YNNaDMGrbL9qsz6PTKrPdSM,2104
|
67
64
|
odxtools/multiplexerswitchkey.py,sha256=fnCpPcg47JQZQsrqS2RAa_O-JrfUb0pvhKv8hhs1RXQ,1551
|
68
|
-
odxtools/nameditemlist.py,sha256=
|
65
|
+
odxtools/nameditemlist.py,sha256=kPNab44E3cSHXjih7MDgjLBARb98PGB2qcPnM_445O4,6550
|
69
66
|
odxtools/negoutputparam.py,sha256=u2IhJvy6n19t3nyADGG0H0XTm7JNdQ0-95FawGAdtiE,1373
|
70
67
|
odxtools/obd.py,sha256=WsUbhdonqQJtxf972CUdYL78AMMTVjMQhoCJbaZhRIo,1860
|
71
68
|
odxtools/odxlink.py,sha256=YoEovTx5T8c5YFJPa2CSxk_gwRfP8miGCwicHbpqQNg,9259
|
72
69
|
odxtools/odxtypes.py,sha256=BUOoYMHEV7SiWH3zeFURtpWeOuv89Ojg1hhzPl3lvdk,7525
|
73
70
|
odxtools/outputparam.py,sha256=e9YvdJvKlX-GOdmu2vCPO6BZEyOLuOsYEdvtC5ISLHM,1636
|
74
|
-
odxtools/parameterinfo.py,sha256=
|
71
|
+
odxtools/parameterinfo.py,sha256=hsUqlTnMJ-s6QbA6-X7rN6b6NfdnagJ1u_1JLLuYRqo,8564
|
75
72
|
odxtools/paramlengthinfotype.py,sha256=vhgvCPIRnyCF9t8yhkYf5MsHXQhWWeEgz_kS8AbiONQ,4700
|
76
|
-
odxtools/parentref.py,sha256=
|
73
|
+
odxtools/parentref.py,sha256=kcY3VMyVaIUWD0iVNX8sD9qeI4peU8gijboquu0zD7E,3751
|
77
74
|
odxtools/physicaldimension.py,sha256=iaf7LIJEiEoV3WniybEpDvGgL4Z_iWCjo1HlQy663GU,3359
|
78
75
|
odxtools/physicaltype.py,sha256=oYjOhdrTVCJcLLBYgy6pxKsZHpuwm1vZ8svwSjsUB6E,2699
|
79
76
|
odxtools/progcode.py,sha256=ZoGf6X7qH3TT8zSr3bQAYwPb0Il4V6vSLWgdTnlj88Y,2169
|
@@ -85,7 +82,7 @@ odxtools/response.py,sha256=-E7IKlocsg4EC5F0txoNXZloZBAqFVfrRnzXKAzFl2U,1808
|
|
85
82
|
odxtools/scaleconstr.py,sha256=xSH8kmld5Gg1lVgjLWTZINEtDn2a3HemVqlXiHsl4Fs,1783
|
86
83
|
odxtools/servicebinner.py,sha256=TId3D3XHa98zbyC1sGWacQUlIZ5e2Egklelv6_Ra2II,3861
|
87
84
|
odxtools/singleecujob.py,sha256=rlpReb9816abYX0oihYXMkIQo8hnzbUkZqkTvX-IRZ4,3920
|
88
|
-
odxtools/snrefcontext.py,sha256=
|
85
|
+
odxtools/snrefcontext.py,sha256=5ZbrZiX1gw6LC6o62RPuxzSo4tDR2LqRQ9w9Vi57FA8,953
|
89
86
|
odxtools/specialdata.py,sha256=5-1D_6dcEmi-TodCzCoBZK7gqeDY-cuRe1ybkTh4rBY,1033
|
90
87
|
odxtools/specialdatagroup.py,sha256=y2fMwWVX5h7W7-gBi6izlvdc26bkYRYXKNbinNel3RM,3070
|
91
88
|
odxtools/specialdatagroupcaption.py,sha256=pIa1l6EXVDXBisUtRkn6hTzAcUXFnXJoWstesayLfME,987
|
@@ -104,21 +101,21 @@ odxtools/unit.py,sha256=zzQlQGAct6G0dARTlqBlhqnkg2iixkViI4VScLWrnP4,3667
|
|
104
101
|
odxtools/unitgroup.py,sha256=_WNpnYFmkiHQnOY8XhIviiQLXziY3kplH--7ufAWXyI,2067
|
105
102
|
odxtools/unitspec.py,sha256=bc3B6ysTXSxpNWyQ6cQVJgIGyxmeqRTeshc3bdym1iA,2948
|
106
103
|
odxtools/utils.py,sha256=PJFXkG74BzoheurrDYOwHZ6EuIcr1sdxf1tQGk6zSgs,1122
|
107
|
-
odxtools/variablegroup.py,sha256
|
108
|
-
odxtools/version.py,sha256=
|
104
|
+
odxtools/variablegroup.py,sha256=--5sMDOMUg4I3hFyoVOFcGCTOrctrrMADdmH3Mn4wHk,848
|
105
|
+
odxtools/version.py,sha256=W5KWuf57BrC3TjPFa46hFwhhB9tlBKsI6z34ep3gqxA,411
|
109
106
|
odxtools/writepdxfile.py,sha256=x3W2xiPVjzNZjfpJssY6ngkx74sZtb95OFmBHql1VY4,7766
|
110
107
|
odxtools/xdoc.py,sha256=gDq-8l8x-Tj1ZJOttPxZchcO5_jEPwcXxMgT29VgTS0,1433
|
111
108
|
odxtools/cli/__init__.py,sha256=T7ano_FIyzBASxYpmcA5VJXU5bQLIy_Qk0HE_SDKelY,106
|
112
109
|
odxtools/cli/_parser_utils.py,sha256=p0L9NYYnml5ydfD22oC04EMhz8PKHgU40GPOPkybZwg,1116
|
113
|
-
odxtools/cli/_print_utils.py,sha256=
|
114
|
-
odxtools/cli/browse.py,sha256=
|
115
|
-
odxtools/cli/compare.py,sha256=
|
110
|
+
odxtools/cli/_print_utils.py,sha256=uR3CTMD1XYCfZk-HVkdo2w8XzmTc7qar1Nh_Kow7nEU,10413
|
111
|
+
odxtools/cli/browse.py,sha256=jOQoVabpPx9wyrOGZwApFElON1KzdyynK1f6GcwxwNM,16051
|
112
|
+
odxtools/cli/compare.py,sha256=In5x66Y-vT85v7zZr5P50NgJXJl4P_ZbNg8uihOji9E,36778
|
116
113
|
odxtools/cli/decode.py,sha256=7tAUUyfJPaKNwVJfFZ61qGVc97i03wgb_wr2pAH_JWQ,4315
|
117
114
|
odxtools/cli/dummy_sub_parser.py,sha256=F2N_lRrxuU-beORcyrJ4bdbRsQl42-aPEBtyPJ74Tvo,1466
|
118
115
|
odxtools/cli/find.py,sha256=GZKzvsOus1Zv8n3nAG-ZsPgWJpB7z3wNxeqKtAL5mAo,4394
|
119
|
-
odxtools/cli/list.py,sha256=
|
116
|
+
odxtools/cli/list.py,sha256=4cJS7JbODR2aLwM_1QNutei4MIlZ4nvIMdLfR9mP1gw,9050
|
120
117
|
odxtools/cli/main.py,sha256=_zPCU6N2ofpj_jQuQ_BU5EafBpMW0srhahZI8BgAM-0,2335
|
121
|
-
odxtools/cli/snoop.py,sha256=
|
118
|
+
odxtools/cli/snoop.py,sha256=z8USSpmz18VAvkGpzepeaOlVJhi-8aeW10XRylsvZLU,10610
|
122
119
|
odxtools/compumethods/compuconst.py,sha256=14JIJXVKSe4bPWb5JyKXB6tAASMcWznExE1w6z1SMoc,806
|
123
120
|
odxtools/compumethods/compudefaultvalue.py,sha256=Lw8Fnm854dpNCvO8waKWg_hSRyW-NwvoQFFjyW3RHwY,980
|
124
121
|
odxtools/compumethods/compuinternaltophys.py,sha256=7SCW_lpnBq-hlKBjkuc_wII3idxgHrsuB9K2vOJfTiI,1512
|
@@ -135,6 +132,21 @@ odxtools/compumethods/linearsegment.py,sha256=_v5XwcwZ3IC3WXaRejmY_kDo1ccew4YCrB
|
|
135
132
|
odxtools/compumethods/scalelinearcompumethod.py,sha256=o_Re17G4XlCn-XbStnvlTs9XVN4h71mkkYyIOii-7w4,5895
|
136
133
|
odxtools/compumethods/tabintpcompumethod.py,sha256=Gyf2qV5y53SHIcum5d5HQVGszoZCdu47jxMCQ6yKdQk,8065
|
137
134
|
odxtools/compumethods/texttablecompumethod.py,sha256=vDYafbM0YaipjfN0NSlCFMiIPvp8waMNj3thNcwuYgk,5929
|
135
|
+
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
|
139
|
+
odxtools/diaglayers/diaglayertype.py,sha256=FXL-EVBdrAURuHSHo9OthFuEYEybQO66aMB1o2GxVdI,1340
|
140
|
+
odxtools/diaglayers/ecushareddata.py,sha256=QoV50wQIrJ2-faLtU1P7RrjdacbhPY2BfUtVtIyWqCM,3347
|
141
|
+
odxtools/diaglayers/ecushareddataraw.py,sha256=VBVaCSec4ZHfTqc3l_BszGULYmv9wI6aFLgvugJY3Xk,3079
|
142
|
+
odxtools/diaglayers/ecuvariant.py,sha256=OsLWg-dx6OJ_OPuYcgoTJuDXEReaJclDRbU5YKqrtBA,4368
|
143
|
+
odxtools/diaglayers/ecuvariantraw.py,sha256=PpvvAoegaejpoOdto-0CxUiCU0KM_Wm7NzjNlBm9vP8,4648
|
144
|
+
odxtools/diaglayers/functionalgroup.py,sha256=o5bUGGDYisr7CjHZZh83fokA80f0s0zpHC_501cg-f0,4093
|
145
|
+
odxtools/diaglayers/functionalgroupraw.py,sha256=CHzSwHzG27sCD2pvG9EoPZynDs1bFA5pIX1GyglUmwM,3667
|
146
|
+
odxtools/diaglayers/hierarchyelement.py,sha256=GWM7Gc4nLQlWMe8wjSY-fvyKlI7uAvqcmit3B1Zvcy0,37061
|
147
|
+
odxtools/diaglayers/hierarchyelementraw.py,sha256=ivhSrmRrEkCmU9NENFwzxqAC4k2XOa88SQ7azU8q94g,1762
|
148
|
+
odxtools/diaglayers/protocol.py,sha256=ypIhfySB6F16Y48XLZIPL36GfrKUznTCmiJ0ROIxYJo,2083
|
149
|
+
odxtools/diaglayers/protocolraw.py,sha256=fmk5LYB-mrfUYxjJf1REkdY_jSqQgNQ3L5SleBvDwGo,2955
|
138
150
|
odxtools/parameters/codedconstparameter.py,sha256=g34JJxQkyL5R27XiGCgkXyt7UzxFtBhZgv_FbTe2aiQ,3893
|
139
151
|
odxtools/parameters/createanyparameter.py,sha256=m26HHUQrxwDak3eBBciVBLic768Qlo4F2xn1z3r0boM,2566
|
140
152
|
odxtools/parameters/dynamicparameter.py,sha256=mdZx12XbhTSYVVuXEsPYRll3zaHjbHIYIzA6yUy4zck,1569
|
@@ -142,7 +154,7 @@ odxtools/parameters/lengthkeyparameter.py,sha256=WSpSIbxFmEwBov6Jj5Ubj9gMr46Ogrd
|
|
142
154
|
odxtools/parameters/matchingrequestparameter.py,sha256=VNYIpmP_Yt_pzMHPgGWZk1XYH5liIdyawNIwIR1Cbvw,2897
|
143
155
|
odxtools/parameters/nrcconstparameter.py,sha256=SjTHQlaBzvyUATyOzSFFWCcdkTeHcaoKO54kTomzb6Y,4823
|
144
156
|
odxtools/parameters/parameter.py,sha256=K6UU0vQV010n-7oov9uibN7u5-cIp-r68Vfaz7jJqR0,5945
|
145
|
-
odxtools/parameters/parameterwithdop.py,sha256=
|
157
|
+
odxtools/parameters/parameterwithdop.py,sha256=k7yJABRmHQTZNTEEPjyq3tBXJD4Aey365HpP7SGsEgk,3283
|
146
158
|
odxtools/parameters/physicalconstantparameter.py,sha256=2iC6EKVJZVHwVVmd4h8KJ6OLc7B5QOUawivQMqWPCRA,3593
|
147
159
|
odxtools/parameters/reservedparameter.py,sha256=8XQocU3_ExRZzXYEkITj535TTEUCNK87wIkrUTizgvI,1989
|
148
160
|
odxtools/parameters/systemparameter.py,sha256=bDz0zV_FNiUDyqI3DUKRAa9F3Pm1yjp_su5ib4JemlA,1779
|
@@ -152,32 +164,39 @@ odxtools/parameters/tablestructparameter.py,sha256=Doym0Tybi_t8w7nqM9n_ZAFwRWm-y
|
|
152
164
|
odxtools/parameters/valueparameter.py,sha256=khsmiaLhpW2PjUKQaAkntwurxsml3TUzNwaZCaWNS50,3063
|
153
165
|
odxtools/templates/comparam-spec.odx-c.xml.jinja2,sha256=esdk5C0rjG6azzA1uZYiC-9Hzhqtn_d654AFq8VRa6g,1525
|
154
166
|
odxtools/templates/comparam-subset.odx-cs.xml.jinja2,sha256=9desdk8puFzysHAeLSoZOBxM1d3EzjbnlqlhVsU-Kmc,2481
|
155
|
-
odxtools/templates/diag_layer_container.odx-d.xml.jinja2,sha256=
|
167
|
+
odxtools/templates/diag_layer_container.odx-d.xml.jinja2,sha256=YC4-jWVRoFqD_zd2Sd5FKnAlYsGYGVm9n2uXQ6kXqW8,2388
|
156
168
|
odxtools/templates/index.xml.jinja2,sha256=dX7QZA3G5Au2BMbXWMMyF2K1aR6i3go-0E5dY3Z9hWE,636
|
157
169
|
odxtools/templates/macros/printAdminData.xml.jinja2,sha256=YTB_CbhnALF6RIbE0XKQHRbC6c0PSZ_DxdrRHgqMD_s,2590
|
158
170
|
odxtools/templates/macros/printAudience.xml.jinja2,sha256=IiAogxtEIo6qg7iZm1plQtrM4nkl6jj9GhIv5QI5ETM,1278
|
171
|
+
odxtools/templates/macros/printBaseVariant.xml.jinja2,sha256=l4Jp8v9ZfPXvIisqVLgTpzc5UdYGeIocY4vAcgCiiaE,1480
|
159
172
|
odxtools/templates/macros/printBasicStructure.xml.jinja2,sha256=V5oWGZesU_U5pvPO3Rtlodc7sxe5mFWY-uURLnQ8OfQ,614
|
160
173
|
odxtools/templates/macros/printCompanyData.xml.jinja2,sha256=-F5xfUbjFAee7E__lgLCXC8a9xn15t_MDfxv6BzbKGA,2965
|
161
174
|
odxtools/templates/macros/printComparam.xml.jinja2,sha256=rhoJO78urhjO07kuX0p_PRwfRHPIp2BPRu-eQ-USe6I,2392
|
162
175
|
odxtools/templates/macros/printComparamRef.xml.jinja2,sha256=rBhrdUnp605fsUN9SaljpyaAojzaLBvTbkOuduKod18,1274
|
163
|
-
odxtools/templates/macros/printCompuMethod.xml.jinja2,sha256=
|
176
|
+
odxtools/templates/macros/printCompuMethod.xml.jinja2,sha256=6eW1IgjPDwtW9qvA24Tx1wFtGFfJ0k10Gne5HoQpy4U,4394
|
164
177
|
odxtools/templates/macros/printDOP.xml.jinja2,sha256=1i8s6Z9zR6C5WRngxXPMGaHhoaZsJSEfWsggjfxnRqY,5138
|
165
178
|
odxtools/templates/macros/printDescription.xml.jinja2,sha256=zsPzVuM4cZJr0RlUYKQ-tGVDNVRO0yAs_pYetFHme3s,450
|
166
179
|
odxtools/templates/macros/printDiagComm.xml.jinja2,sha256=eIKtu3xEmoQllyNYOWQx5Iv2oljKSg3lR6V4As-SFE0,2231
|
180
|
+
odxtools/templates/macros/printDiagLayer.xml.jinja2,sha256=V4CYnhnRLUPBhjE-l4kWpG3Hzym-9ddO0q9Kp2ypflU,6456
|
167
181
|
odxtools/templates/macros/printDiagVariable.xml.jinja2,sha256=7Fa0DFyeEUDUxgM0IUsj_BXC2-csLSv1xjiUT1yauis,2531
|
168
182
|
odxtools/templates/macros/printDynDefinedSpec.xml.jinja2,sha256=uX3C40VmlbH7sndlJNyTvq8upzaoq8vCk6S93gtpFIY,1742
|
169
183
|
odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2,sha256=EvUOkfVsNAT61B5OApyE7Yh45C_A_iBg9gCTiq_td7w,579
|
170
184
|
odxtools/templates/macros/printDynamicLengthField.xml.jinja2,sha256=YCwgKV2na49mlHQQmI8L85ZYqUktaYuNil-K6rp4BR8,776
|
185
|
+
odxtools/templates/macros/printEcuSharedData.xml.jinja2,sha256=WK08eoDFEjj9o3eOuy__H0r9ioo688rTuQp6uXE6Tdo,820
|
186
|
+
odxtools/templates/macros/printEcuVariant.xml.jinja2,sha256=Nsgj2VUWZvSDFPQsn6wv75M9TaryOB-tlQYCVq9hDEM,1594
|
171
187
|
odxtools/templates/macros/printEcuVariantPattern.xml.jinja2,sha256=uSUrX1n2YVw6tt1-A0Lmlgy_W3dxW4r8bVErdrf_6vk,846
|
172
188
|
odxtools/templates/macros/printElementId.xml.jinja2,sha256=wuCXYyXlg50zgUvukxScHN_SCH8YEATjkcqvwsC9aNw,389
|
173
189
|
odxtools/templates/macros/printEndOfPdu.xml.jinja2,sha256=_BwCjD0iBya3JFRi_XcUrq8nwR96O7Tw6TeRu3t6Tgs,671
|
174
190
|
odxtools/templates/macros/printEnvData.xml.jinja2,sha256=2Goatqb66d-pCf9wqJDXn1EZWNhkQ8FJANKQMOnxuJs,609
|
175
191
|
odxtools/templates/macros/printEnvDataDesc.xml.jinja2,sha256=23d4XOrHD6O-JHGVYbwnLVJWwaw3al1kneSsP2EIW0Q,580
|
176
192
|
odxtools/templates/macros/printFunctionalClass.xml.jinja2,sha256=7Jtf_xB3bBcvjK_fXXHYTDXqcxMU4eBnJeZgLPKjFmg,321
|
193
|
+
odxtools/templates/macros/printFunctionalGroup.xml.jinja2,sha256=zIeZbhf8haXhgJJUPiOnMe3lvqvfye4-zmwWDQJxFtQ,1159
|
194
|
+
odxtools/templates/macros/printHierarchyElement.xml.jinja2,sha256=GD6iNIE0Wu0QsJ8uLtwEV8N9t6mIhI00_KpCVzOVQBM,651
|
177
195
|
odxtools/templates/macros/printMux.xml.jinja2,sha256=EL9sCWzqC3iaBPsrTINUo03zGGMrU-bWbJ3f0U5CBIQ,1861
|
178
196
|
odxtools/templates/macros/printParam.xml.jinja2,sha256=BKvKvswnelCynXmz_rAsejMdtce6Fji2CkSteX5x0jI,3203
|
179
197
|
odxtools/templates/macros/printParentRef.xml.jinja2,sha256=RllVKt2RgrMnWfsujGnBUiABwV2y4_ZfINYy7LXenPM,896
|
180
198
|
odxtools/templates/macros/printProtStack.xml.jinja2,sha256=abss3fNe-e5CbFBI0WcRopP7omIV2POzT0qJ6Az7dUE,765
|
199
|
+
odxtools/templates/macros/printProtocol.xml.jinja2,sha256=1DXoRSq6z4dhpZnXWH3x9JPKCWmAmghjVgVFfizo41s,1028
|
181
200
|
odxtools/templates/macros/printRequest.xml.jinja2,sha256=GazGOinjHp72ZhIZ8LVKpRxYcyYyNlBmEUNuN0cgntg,709
|
182
201
|
odxtools/templates/macros/printResponse.xml.jinja2,sha256=QVU8dVCJm_Tv_Cy6SEun-fJBs2w9ASEfJeRs0LynZdA,675
|
183
202
|
odxtools/templates/macros/printService.xml.jinja2,sha256=zvjOCELEx4yim2FtdNKiExTsDPkAfQAP4Gf_QsondfQ,1546
|
@@ -190,10 +209,9 @@ odxtools/templates/macros/printStaticField.xml.jinja2,sha256=JIXFhyNrnQ-2_vWy6Rx
|
|
190
209
|
odxtools/templates/macros/printStructure.xml.jinja2,sha256=uswYs2xse0B9hZut_FN1GvvR0xsZa_3pZRnlF0ElEEc,559
|
191
210
|
odxtools/templates/macros/printTable.xml.jinja2,sha256=VsP01jqyQllLP-brQ6J1E8ubVntiToEb8Uk7HQEYqtY,1485
|
192
211
|
odxtools/templates/macros/printUnitSpec.xml.jinja2,sha256=AJ5jWYKRmoIZkrd25R1KmjjgU6pfOqRiOQHtUAuS6GI,2813
|
193
|
-
odxtools
|
194
|
-
odxtools-
|
195
|
-
odxtools-
|
196
|
-
odxtools-
|
197
|
-
odxtools-
|
198
|
-
odxtools-
|
199
|
-
odxtools-7.4.0.dist-info/RECORD,,
|
212
|
+
odxtools-8.0.0.dist-info/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
|
213
|
+
odxtools-8.0.0.dist-info/METADATA,sha256=Igh8fyFKmg4ygNCCAqC9eNsT01HhaUmZwXIqdh2vC-E,44084
|
214
|
+
odxtools-8.0.0.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
215
|
+
odxtools-8.0.0.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
|
216
|
+
odxtools-8.0.0.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
|
217
|
+
odxtools-8.0.0.dist-info/RECORD,,
|