odxtools 10.2.1__py3-none-any.whl → 10.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 (74) hide show
  1. odxtools/cli/browse.py +4 -2
  2. odxtools/cli/compare.py +3 -3
  3. odxtools/compositecodec.py +1 -1
  4. odxtools/configdata.py +70 -0
  5. odxtools/configdatadictionaryspec.py +57 -0
  6. odxtools/configiditem.py +18 -0
  7. odxtools/configitem.py +85 -0
  8. odxtools/configrecord.py +146 -0
  9. odxtools/database.py +40 -0
  10. odxtools/dataiditem.py +18 -0
  11. odxtools/datarecord.py +132 -0
  12. odxtools/decodestate.py +1 -1
  13. odxtools/diagcommdataconnector.py +61 -0
  14. odxtools/diaglayers/diaglayer.py +9 -14
  15. odxtools/diagservice.py +10 -10
  16. odxtools/ecuconfig.py +89 -0
  17. odxtools/encryptcompressmethod.py +16 -3
  18. odxtools/externflashdata.py +21 -2
  19. odxtools/flashdata.py +40 -2
  20. odxtools/identvalue.py +16 -3
  21. odxtools/internflashdata.py +4 -0
  22. odxtools/isotp_state_machine.py +11 -11
  23. odxtools/itemvalue.py +77 -0
  24. odxtools/multipleecujob.py +178 -0
  25. odxtools/multipleecujobspec.py +142 -0
  26. odxtools/nameditemlist.py +2 -2
  27. odxtools/optionitem.py +79 -0
  28. odxtools/outputparam.py +1 -1
  29. odxtools/parameters/codedconstparameter.py +2 -3
  30. odxtools/readdiagcommconnector.py +79 -0
  31. odxtools/readparamvalue.py +52 -0
  32. odxtools/request.py +3 -3
  33. odxtools/response.py +8 -4
  34. odxtools/snrefcontext.py +2 -0
  35. odxtools/statemachine.py +3 -2
  36. odxtools/systemitem.py +23 -0
  37. odxtools/templates/diag_layer_container.odx-d.xml.jinja2 +4 -0
  38. odxtools/templates/ecu_config.odx-e.xml.jinja2 +38 -0
  39. odxtools/templates/flash.odx-f.xml.jinja2 +2 -2
  40. odxtools/templates/macros/printAdminData.xml.jinja2 +1 -1
  41. odxtools/templates/macros/printAudience.xml.jinja2 +3 -3
  42. odxtools/templates/macros/printChecksum.xml.jinja2 +1 -1
  43. odxtools/templates/macros/printCompuMethod.xml.jinja2 +2 -2
  44. odxtools/templates/macros/printConfigData.xml.jinja2 +39 -0
  45. odxtools/templates/macros/printConfigDataDictionarySpec.xml.jinja2 +22 -0
  46. odxtools/templates/macros/printConfigItems.xml.jinja2 +66 -0
  47. odxtools/templates/macros/printConfigRecord.xml.jinja2 +73 -0
  48. odxtools/templates/macros/printDOP.xml.jinja2 +5 -6
  49. odxtools/templates/macros/printDataRecord.xml.jinja2 +35 -0
  50. odxtools/templates/macros/printDiagCommDataConnector.xml.jinja2 +66 -0
  51. odxtools/templates/macros/printDiagDataDictionarySpec.xml.jinja2 +107 -0
  52. odxtools/templates/macros/printDiagLayer.xml.jinja2 +11 -97
  53. odxtools/templates/macros/printElementId.xml.jinja2 +2 -0
  54. odxtools/templates/macros/printExpectedIdent.xml.jinja2 +1 -1
  55. odxtools/templates/macros/printFlashdata.xml.jinja2 +2 -2
  56. odxtools/templates/macros/printFunctionalClass.xml.jinja2 +4 -4
  57. odxtools/templates/macros/printItemValue.xml.jinja2 +31 -0
  58. odxtools/templates/macros/printMultipleEcuJob.xml.jinja2 +77 -0
  59. odxtools/templates/macros/printOwnIdent.xml.jinja2 +1 -1
  60. odxtools/templates/macros/printSecurity.xml.jinja2 +4 -4
  61. odxtools/templates/macros/printSegment.xml.jinja2 +1 -1
  62. odxtools/templates/multiple-ecu-job-spec.odx-m.xml.jinja2 +51 -0
  63. odxtools/validbasevariant.py +62 -0
  64. odxtools/validityfor.py +16 -3
  65. odxtools/variantmatcher.py +4 -4
  66. odxtools/version.py +2 -2
  67. odxtools/writediagcommconnector.py +77 -0
  68. odxtools/writepdxfile.py +58 -27
  69. {odxtools-10.2.1.dist-info → odxtools-10.4.0.dist-info}/METADATA +2 -1
  70. {odxtools-10.2.1.dist-info → odxtools-10.4.0.dist-info}/RECORD +74 -45
  71. {odxtools-10.2.1.dist-info → odxtools-10.4.0.dist-info}/WHEEL +1 -1
  72. {odxtools-10.2.1.dist-info → odxtools-10.4.0.dist-info}/entry_points.txt +0 -0
  73. {odxtools-10.2.1.dist-info → odxtools-10.4.0.dist-info}/licenses/LICENSE +0 -0
  74. {odxtools-10.2.1.dist-info → odxtools-10.4.0.dist-info}/top_level.txt +0 -0
@@ -107,14 +107,14 @@ class VariantMatcher:
107
107
  req_bytes = matching_param.get_ident_service(variant).encode_request()
108
108
 
109
109
  if self.use_cache and req_bytes in self.req_resp_cache:
110
- resp_values = copy(self.req_resp_cache[req_bytes])
110
+ resp_values = copy(bytes(self.req_resp_cache[bytes(req_bytes)]))
111
111
  else:
112
112
  if isinstance(matching_param, MatchingBaseVariantParameter):
113
- yield matching_param.use_physical_addressing, req_bytes
113
+ yield matching_param.use_physical_addressing, bytes(req_bytes)
114
114
  else:
115
- yield True, req_bytes
115
+ yield True, bytes(req_bytes)
116
116
  resp_values = self._get_ident_response()
117
- self._update_cache(req_bytes, copy(resp_values))
117
+ self._update_cache(bytes(req_bytes), copy(bytes(resp_values)))
118
118
 
119
119
  cur_response_matches = self._ident_response_matches(
120
120
  variant, matching_param, resp_values)
odxtools/version.py CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '10.2.1'
21
- __version_tuple__ = version_tuple = (10, 2, 1)
20
+ __version__ = version = '10.4.0'
21
+ __version_tuple__ = version_tuple = (10, 4, 0)
@@ -0,0 +1,77 @@
1
+ # SPDX-License-Identifier: MIT
2
+ from dataclasses import dataclass
3
+ from typing import Any
4
+ from xml.etree import ElementTree
5
+
6
+ from .diagcomm import DiagComm
7
+ from .exceptions import odxrequire
8
+ from .odxdoccontext import OdxDocContext
9
+ from .odxlink import OdxLinkDatabase, OdxLinkId, OdxLinkRef, resolve_snref
10
+ from .parameters.valueparameter import ValueParameter
11
+ from .request import Request
12
+ from .snrefcontext import SnRefContext
13
+
14
+
15
+ @dataclass(kw_only=True)
16
+ class WriteDiagCommConnector:
17
+ # exactly one of the following attributes must be non-None
18
+ write_diag_comm_ref: OdxLinkRef | None = None
19
+ write_diag_comm_snref: str | None = None
20
+
21
+ # exactly one of the following attributes must be non-None
22
+ write_data_snref: str | None = None
23
+ write_data_snpathref: str | None = None
24
+
25
+ @property
26
+ def write_diag_comm(self) -> DiagComm | None:
27
+ return self._write_diag_comm
28
+
29
+ @property
30
+ def write_data(self) -> ValueParameter | None:
31
+ return self._write_data
32
+
33
+ @staticmethod
34
+ def from_et(et_element: ElementTree.Element,
35
+ context: OdxDocContext) -> "WriteDiagCommConnector":
36
+ write_diag_comm_ref = OdxLinkRef.from_et(et_element.find("WRITE-DIAG-COMM-REF"), context)
37
+ write_diag_comm_snref = None
38
+ if (write_diag_comm_snref_elem := et_element.find("WRITE-DIAG-COMM-SNREF")) is not None:
39
+ write_diag_comm_snref = odxrequire(write_diag_comm_snref_elem.attrib.get("SHORT-NAME"))
40
+
41
+ write_data_snref = None
42
+ if (write_data_snref_elem := et_element.find("WRITE-DATA-SNREF")) is not None:
43
+ write_data_snref = odxrequire(write_data_snref_elem.attrib.get("SHORT-NAME"))
44
+
45
+ write_data_snpathref = None
46
+ if (write_data_snpathref_elem := et_element.find("WRITE-DATA-SNPATHREF")) is not None:
47
+ write_data_snpathref = odxrequire(
48
+ write_data_snpathref_elem.attrib.get("SHORT-NAME-PATH"))
49
+
50
+ return WriteDiagCommConnector(
51
+ write_diag_comm_ref=write_diag_comm_ref,
52
+ write_diag_comm_snref=write_diag_comm_snref,
53
+ write_data_snref=write_data_snref,
54
+ write_data_snpathref=write_data_snpathref,
55
+ )
56
+
57
+ def _build_odxlinks(self) -> dict[OdxLinkId, Any]:
58
+ odxlinks: dict[OdxLinkId, Any] = {}
59
+
60
+ return odxlinks
61
+
62
+ def _resolve_odxlinks(self, odxlinks: OdxLinkDatabase) -> None:
63
+ self._write_diag_comm = None
64
+ if self.write_diag_comm_ref is not None:
65
+ self._write_diag_comm = odxlinks.resolve(self.write_diag_comm_ref, DiagComm)
66
+
67
+ def _resolve_snrefs(self, context: SnRefContext) -> None:
68
+ # write_diag_comm_snref can only be uniquely resolved ahead of
69
+ # time if the diag comm is referenced via ODXLINK, the write
70
+ # data parameter is referenced via SNREF. If the diag comm is
71
+ # referenced via SNREF, it depends on the applicable diag layer
72
+ self._write_data = None
73
+ if self.write_data_snref is not None and \
74
+ self._write_diag_comm is not None and \
75
+ (req := getattr(self._write_diag_comm, "request", None)) is not None:
76
+ assert isinstance(req, Request)
77
+ self._write_data = resolve_snref(self.write_data_snref, req.parameters, ValueParameter)
odxtools/writepdxfile.py CHANGED
@@ -166,20 +166,50 @@ def write_pdx_file(
166
166
  jinja_env.globals["set_layer_docfrag"] = lambda lname: set_layer_docfrag(jinja_vars, lname)
167
167
  jinja_env.globals["make_ref_attribs"] = lambda ref: make_ref_attribs(jinja_vars, ref)
168
168
 
169
- # write the communication parameter subsets
170
- comparam_subset_tpl = jinja_env.get_template("comparam-subset.odx-cs.xml.jinja2")
171
- for comparam_subset in database.comparam_subsets:
172
- zf_file_name = f"{comparam_subset.short_name}.odx-cs"
169
+ # write the flash description objects
170
+ flash_tpl = jinja_env.get_template("flash.odx-f.xml.jinja2")
171
+ for flash in database.flashs:
172
+ zf_file_name = f"{flash.short_name}.odx-f"
173
173
  zf_file_cdate = datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
174
- zf_mime_type = "application/x-asam.odx.odx-cs"
174
+ zf_mime_type = "application/x-asam.odx.odx-f"
175
175
 
176
- jinja_vars["comparam_subset"] = comparam_subset
176
+ jinja_vars["flash"] = flash
177
177
 
178
178
  file_index.append((zf_file_name, zf_file_cdate, zf_mime_type))
179
179
 
180
- zf.writestr(zf_file_name, comparam_subset_tpl.render(**jinja_vars))
180
+ zf.writestr(zf_file_name, flash_tpl.render(**jinja_vars))
181
181
 
182
- del jinja_vars["comparam_subset"]
182
+ del jinja_vars["flash"]
183
+
184
+ # write the actual diagnostic data.
185
+ dlc_tpl = jinja_env.get_template("diag_layer_container.odx-d.xml.jinja2")
186
+ for dlc in database.diag_layer_containers:
187
+ jinja_vars["dlc"] = dlc
188
+
189
+ file_name = f"{dlc.short_name}.odx-d"
190
+ file_cdate = datetime.datetime.now()
191
+ creation_date = file_cdate.strftime("%Y-%m-%dT%H:%M:%S")
192
+ mime_type = "application/x-asam.odx.odx-d"
193
+
194
+ file_index.append((file_name, creation_date, mime_type))
195
+ zf.writestr(file_name, dlc_tpl.render(**jinja_vars))
196
+ del jinja_vars["dlc"]
197
+
198
+ # write the multiple ECU jobs specs
199
+ multiple_ecu_jobs_spec_tpl = jinja_env.get_template(
200
+ "multiple-ecu-job-spec.odx-m.xml.jinja2")
201
+ for multiple_ecu_jobs_spec in database.multiple_ecu_job_specs:
202
+ zf_file_name = f"{multiple_ecu_jobs_spec.short_name}.odx-m"
203
+ zf_file_cdate = datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
204
+ zf_mime_type = "application/x-asam.odx.odx-m"
205
+
206
+ jinja_vars["multiple_ecu_jobs_spec"] = multiple_ecu_jobs_spec
207
+
208
+ file_index.append((zf_file_name, zf_file_cdate, zf_mime_type))
209
+
210
+ zf.writestr(zf_file_name, multiple_ecu_jobs_spec_tpl.render(**jinja_vars))
211
+
212
+ del jinja_vars["multiple_ecu_jobs_spec"]
183
213
 
184
214
  # write the communication parameter specs
185
215
  comparam_spec_tpl = jinja_env.get_template("comparam-spec.odx-c.xml.jinja2")
@@ -196,34 +226,35 @@ def write_pdx_file(
196
226
 
197
227
  del jinja_vars["comparam_spec"]
198
228
 
199
- # write the actual diagnostic data.
200
- dlc_tpl = jinja_env.get_template("diag_layer_container.odx-d.xml.jinja2")
201
- for dlc in database.diag_layer_containers:
202
- jinja_vars["dlc"] = dlc
229
+ # write the communication parameter subsets
230
+ comparam_subset_tpl = jinja_env.get_template("comparam-subset.odx-cs.xml.jinja2")
231
+ for comparam_subset in database.comparam_subsets:
232
+ zf_file_name = f"{comparam_subset.short_name}.odx-cs"
233
+ zf_file_cdate = datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
234
+ zf_mime_type = "application/x-asam.odx.odx-cs"
203
235
 
204
- file_name = f"{dlc.short_name}.odx-d"
205
- file_cdate = datetime.datetime.now()
206
- creation_date = file_cdate.strftime("%Y-%m-%dT%H:%M:%S")
207
- mime_type = "application/x-asam.odx.odx-d"
236
+ jinja_vars["comparam_subset"] = comparam_subset
208
237
 
209
- file_index.append((file_name, creation_date, mime_type))
210
- zf.writestr(file_name, dlc_tpl.render(**jinja_vars))
211
- del jinja_vars["dlc"]
238
+ file_index.append((zf_file_name, zf_file_cdate, zf_mime_type))
212
239
 
213
- # write the flash description objects
214
- flash_tpl = jinja_env.get_template("flash.odx-f.xml.jinja2")
215
- for flash in database.flashs:
216
- zf_file_name = f"{flash.short_name}.odx-f"
240
+ zf.writestr(zf_file_name, comparam_subset_tpl.render(**jinja_vars))
241
+
242
+ del jinja_vars["comparam_subset"]
243
+
244
+ # write the ECU-config objects
245
+ ecu_config_tpl = jinja_env.get_template("ecu_config.odx-e.xml.jinja2")
246
+ for ecu_config in database.ecu_configs:
247
+ zf_file_name = f"{ecu_config.short_name}.odx-e"
217
248
  zf_file_cdate = datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
218
- zf_mime_type = "application/x-asam.odx.odx-f"
249
+ zf_mime_type = "application/x-asam.odx.odx-e"
219
250
 
220
- jinja_vars["flash"] = flash
251
+ jinja_vars["ecu_config"] = ecu_config
221
252
 
222
253
  file_index.append((zf_file_name, zf_file_cdate, zf_mime_type))
223
254
 
224
- zf.writestr(zf_file_name, flash_tpl.render(**jinja_vars))
255
+ zf.writestr(zf_file_name, ecu_config_tpl.render(**jinja_vars))
225
256
 
226
- del jinja_vars["flash"]
257
+ del jinja_vars["ecu_config"]
227
258
 
228
259
  # write the index.xml file
229
260
  jinja_vars["file_index"] = file_index
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: odxtools
3
- Version: 10.2.1
3
+ Version: 10.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>
@@ -31,6 +31,7 @@ Requires-Dist: deprecation>=2.1
31
31
  Requires-Dist: packaging
32
32
  Requires-Dist: rich>=13.7
33
33
  Requires-Dist: typing_extensions>=4.9
34
+ Requires-Dist: bincopy>=20.1
34
35
  Provides-Extra: browse-tool
35
36
  Requires-Dist: InquirerPy>=0.3.4; extra == "browse-tool"
36
37
  Provides-Extra: test
@@ -24,25 +24,33 @@ odxtools/comparamspec.py,sha256=_RBjlRQnYy1gFLzouxP4oDuwpjwR-tTwfrundKVdkuU,1813
24
24
  odxtools/comparamsubset.py,sha256=c7GXmXQDkWhlNIsG--zAxAWH_9qnnRivJQ-8bbHbRe0,3830
25
25
  odxtools/complexcomparam.py,sha256=UHoz9nWgTIRhz8whBoJRe_Hw6qc_jA4pOL7zG3mDSxI,3768
26
26
  odxtools/complexdop.py,sha256=_945BBh-F60szuwJ1l_Hwh3IEv2LJkwPx514OLfjb8c,294
27
- odxtools/compositecodec.py,sha256=w0xabjai5bxofQYoBtC2XO8krJA6VggWLMDFxU3RwvU,7582
27
+ odxtools/compositecodec.py,sha256=umtUXSmxJsbJZUsV6iEYIJpQ-mhqJgcZpHhzoByiGeo,7586
28
+ odxtools/configdata.py,sha256=d8josrN_TzwPj82DhK6nEjTKGXP5B9oBd0uDthzfiM8,2737
29
+ odxtools/configdatadictionaryspec.py,sha256=joMjIpxNialMLQx2SBrp3-cUfmgJip5EWxOETNHMdo8,2090
30
+ odxtools/configiditem.py,sha256=qcr1sgGd--BSQr-gEAkgYqIyEPu2qCubJCOSHgmcG1g,560
31
+ odxtools/configitem.py,sha256=yXlFyuaRMYLa2HmUoWdq_TOabEYf3Vpz6SCXuMO2828,3237
32
+ odxtools/configrecord.py,sha256=f0GLG_PIj0MBFhHPT59_0PhvzYwDLKCw8XLLIKWpoVw,6567
28
33
  odxtools/createanycomparam.py,sha256=KHsN027D7AoDx6kKjQ_0f84Us_UQD54Ps0fR1-p09n8,587
29
34
  odxtools/createanydiagcodedtype.py,sha256=eLyqOminWq7yI8WGIPsUHbm7_J4IkaJP0rsoDQDpUUM,1178
30
- odxtools/database.py,sha256=YnQHxpBRjthW0v2t5Si3x0nzej_oSh9ym78TKVkJI00,11150
35
+ odxtools/database.py,sha256=vioK3yLowla35rX-c6RHIK6SKCa--CNBwvIqKy1wE08,13148
31
36
  odxtools/datablock.py,sha256=ILjjna50PyLFApnLM4cduxQ77P9I-Sr7kzrMZ_ebX6M,6306
32
37
  odxtools/datafile.py,sha256=k_SatFNGhf7x1P-Iiyh7iphDufNkql6OZGA0HJFJXnk,658
33
38
  odxtools/dataformat.py,sha256=1yiZj0gmEmqJikpKHP-IW7xSFsuHI40TVcuOfJ1JWLA,1320
34
39
  odxtools/dataformatselection.py,sha256=NLbfPhqlbAMtaeoFHZnGgfyGzhuHG9GKkmz7qKQI8ac,202
40
+ odxtools/dataiditem.py,sha256=bKcKW8RzmW_OBOikQfQnoCaDWAkC5rpyit50Dr7xR08,552
35
41
  odxtools/dataobjectproperty.py,sha256=t_jukpaQai6MOtdV9ozWPDe9ARucywIuvlBmhDHVFZY,6210
36
- odxtools/decodestate.py,sha256=YUk96vPSf5Kqbbu525HwzQ2dAerpDzw81o4AAsgZTxE,8257
42
+ odxtools/datarecord.py,sha256=L5pyivsNpNJs2zF_SVdtYfpg7scR5QDFmfwo0oV3YcU,4533
43
+ odxtools/decodestate.py,sha256=lvi6VgyyEjq9aozKpq4b204Z5SzIwmDxfx8TNx6XvyU,8269
37
44
  odxtools/description.py,sha256=hJlp2YLSR7oAgbLszq9ScBXlQsV2vX3VzX2QCLON_hs,1456
38
45
  odxtools/determinenumberofitems.py,sha256=64giK5HKF1VtDcHdqwj59SgSPdPp3ad819WpDaN0Sjc,1568
39
46
  odxtools/diagclasstype.py,sha256=s39LWF39ncIxTW11hvROvmCyRqWs4vrxzvh1hpkVFPI,338
40
47
  odxtools/diagcodedtype.py,sha256=3ekcTajh3knYk2otJSFAUnbWXHQwPdA8mS0H0QKbSq4,4911
41
48
  odxtools/diagcomm.py,sha256=1giYn3bmj_v344fRF-bBwWKDjpQ3wSIWBP16d5WfyZ8,8319
49
+ odxtools/diagcommdataconnector.py,sha256=c5kFrh4CxBV9m0cUaYJgMIBt1w3tjmkIynhw5BlpQ7I,2685
42
50
  odxtools/diagdatadictionaryspec.py,sha256=FXgC0JGuc50QjVKE20HPQrdyrMAREpzf5OC2RxdVZRo,10711
43
51
  odxtools/diaglayercontainer.py,sha256=UVADNCjMYcF0gLv4Q5ba-CwHzvZlMCQOCw7i-hXQsVY,5887
44
52
  odxtools/diagnostictroublecode.py,sha256=eloalKE_Vqji45HQY9bO-M2unB4KXnaZMtH4W9KdN4M,2403
45
- odxtools/diagservice.py,sha256=Bit3Xa-pju5OCp69h6m88ZRRvtXhg83aINmO6-lKGD8,10296
53
+ odxtools/diagservice.py,sha256=JTKGT198_qWgVw5tquYKPD03MpwnEuRp4DDfMEm89X8,10370
46
54
  odxtools/diagvariable.py,sha256=7lcTDOfhi5zum4TqdfHeD7sP2KjP4DFT68WRpLBb254,5366
47
55
  odxtools/direction.py,sha256=6G9vg9Le7286SKADUJteJh0dGtaDasDkm40IqAovEuA,126
48
56
  odxtools/docrevision.py,sha256=yESqkSaTRlpH6-oczi5rVYeR1d-TXuFNCzvcFUfBuc4,2819
@@ -54,13 +62,14 @@ odxtools/dynamiclengthfield.py,sha256=V93li_SfajpLFEUXyMPyEwIBkwK3b6aSHZ8FwZkpeS
54
62
  odxtools/dyndefinedspec.py,sha256=YybdsMSKKYeqEp0l7V1QUg64pP7oTgP4s7nHAarlL7A,1343
55
63
  odxtools/dynenddopref.py,sha256=HwtH469VL8nZB1DQFAgD53Dx6F_X_D7FwxoeNSS7a0o,1156
56
64
  odxtools/dyniddefmodeinfo.py,sha256=LQX4Ga5n2jtTbLXYA6vzvkTHVGhELHNQNammCmV3E8Q,7412
65
+ odxtools/ecuconfig.py,sha256=phQT1vJq52HwhQ-Et0yEt2CVu8ant4I9Idt1QRRKR6c,3388
57
66
  odxtools/ecumem.py,sha256=Qq2LP_MN3p8xAusA-fN04ltIhTwSWerNmuHK5AxItMw,2616
58
67
  odxtools/ecumemconnector.py,sha256=jJ5aw7fp7tMzlsG30XaKGayp_dLlkGoeC1aKH94LOVI,5309
59
68
  odxtools/ecuvariantpattern.py,sha256=wnnRUd7ERJUq_U6xuppof0-SWxKXf7dGn-1ZD3ImZzU,1341
60
69
  odxtools/element.py,sha256=xw8XaBxOZ7von0IeonZWOZ6XJkqG2EgEcwuXWLfKm5Q,1250
61
70
  odxtools/encodestate.py,sha256=qRUzdMijsuSngSf5xed4-FqKu56oMZirQDjWwtMST-0,13519
62
71
  odxtools/encoding.py,sha256=9sCmds2A-vjz98GuKjXxbm-E7s6uarZcvHT4P7uSFeA,1960
63
- odxtools/encryptcompressmethod.py,sha256=zWlqbyPpHWD6UPX-oo9Hf_Xd9F8lLIYDCO-kgh2Yqmw,1282
72
+ odxtools/encryptcompressmethod.py,sha256=1bdW3ebPHjpydx86Z_WVbA4fHCcLpt58WfmtbUiLBVw,1677
64
73
  odxtools/encryptcompressmethodtype.py,sha256=6ydqhb-YeCBTzJH-q7Vn1Ac5Sd0qs1NpfVqBGumTzgQ,272
65
74
  odxtools/endofpdufield.py,sha256=uTC-EjsFhUEvztvRHKugyYA7ERllayXjDJs661gN3yA,3328
66
75
  odxtools/envdataconnector.py,sha256=5BKHEwlFGWAf64xrFIfkuiHHTC8QEjClvt1vu-tSi1Y,1864
@@ -70,23 +79,24 @@ odxtools/exceptions.py,sha256=RTfQYjSyPXQbcrkud6wDv0ifi9QgQoeZaAaXNexVmHg,2686
70
79
  odxtools/expectedident.py,sha256=tO-v9kbcoang-h6hVt7p9pHAv_2x3ohGjb_nfbriPHI,1197
71
80
  odxtools/externalaccessmethod.py,sha256=IPdzR9XaUAOvw2y72c4pGCG9tQDmCE9JczQ7leEbwyM,684
72
81
  odxtools/externaldoc.py,sha256=ujqWTbec5QZB_hjcOGKAKPRGpIYepQJadjiEVuc1CRM,619
73
- odxtools/externflashdata.py,sha256=YpCkcM1naeU_n7jNbX8v_Jpo7vsNeE7F97xxHenW5Ks,1134
82
+ odxtools/externflashdata.py,sha256=mIncmjdw_-XA6naDt--K56y7xtnK4maozKXBLyCi-bI,1719
74
83
  odxtools/field.py,sha256=kaTmcqmirjlxe-U9u4K_GZ8a6ZgtDrjSOq6Q7179h3g,3861
75
84
  odxtools/filter.py,sha256=qHeENtsOpjBJalZ9Snp-RqrLXDK3RLjChGrPViQ5Hpk,906
76
85
  odxtools/flash.py,sha256=YnErcrd68tuTdJkVm-uIkGj64uHM6GJEoQlP7oy7XXM,3282
77
86
  odxtools/flashclass.py,sha256=NC2-nP9NM3Dzd-rgC6m-aMaagK9wn3n8vPSFxMQolqA,935
78
- odxtools/flashdata.py,sha256=uA5H8PBy_meicmCT6gbVTCaTqL7MgY5RRccqFMwurFA,2766
87
+ odxtools/flashdata.py,sha256=2QFr8TyNw5smLYArEqGkxfOGEBTJkSt2sYzpos82do4,4231
79
88
  odxtools/functionalclass.py,sha256=tUQTCzAqZ72v3VHOWLiG8aVe0lHKa3HFl-VW-TrD2rE,1128
80
89
  odxtools/fwchecksum.py,sha256=FZ7-Gzbma5KjRK_HOD95Vke6BycKBFVm8qWhWwQbeg0,281
81
90
  odxtools/fwsignature.py,sha256=22Pb0tz93FjnLOcyCf7yJW6xLKWWrlIqkSsCd1rYZew,282
82
91
  odxtools/globals.py,sha256=P6YbgyTSWHMw3sk5cEzsCvVaLrTiakLvewTgySb1jLo,139
83
92
  odxtools/identdesc.py,sha256=NR6ytJmBzik76OOwyP5TTs-VUoKOXDdhwa6c5T0dYKw,2005
84
- odxtools/identvalue.py,sha256=a6GeYhpq27JkunOpoB7zWjiybEj9T_fgsNM6w5gN0y0,886
93
+ odxtools/identvalue.py,sha256=Q9YS03X82eNO42DvCwhQ8pcIXekEHlJsNqjwPVlTfS0,1281
85
94
  odxtools/identvaluetype.py,sha256=8pRoJIFmi3gGGktlXVt1NapkBPZzR-PMzZyXoBdv4mE,297
86
95
  odxtools/inputparam.py,sha256=zsmF8DCs8-ZBEcjuJMB5is3ykZAbWsHqFvbdprIlY30,1824
87
96
  odxtools/internalconstr.py,sha256=IBZ8RZBRZaGfYM1Wa1bMgmXOSZkH7JBqR3PqQ5K3Zsg,1378
88
- odxtools/internflashdata.py,sha256=1QQ3BeRC3KAgVD-rh5VrkTAOK67HuBEzklHxFgkArdc,1055
89
- odxtools/isotp_state_machine.py,sha256=PHS2W6u85znRVSHWqm6BQJXT_E4FTPgUBgcrHidouWk,13295
97
+ odxtools/internflashdata.py,sha256=2be_dGHT76OYM9tkrquJxSlIXZ84qcp6TgTTHtojZvI,1126
98
+ odxtools/isotp_state_machine.py,sha256=HBSS03X3t_-lSKGEOnZvurvQo-7Ty6_AEqf-pP9C5HI,13409
99
+ odxtools/itemvalue.py,sha256=R3OWOThH-i7Tvww4d2vYi9HRqTp3Ltr8pWxXdUjsvP8,2537
90
100
  odxtools/leadinglengthinfotype.py,sha256=E8CKjaMvxjuQLvV9zj4EpnRtRE5GR3AUnC4LPmQ3kNU,3981
91
101
  odxtools/library.py,sha256=MqSpRi8bCZnE6HfKvXl00qavilZTT9g-vo6jxMBAQGU,2081
92
102
  odxtools/linkeddtcdop.py,sha256=3zaytQUftehimc12_VZC9OSFIjbRAztF0a3d0IcisSQ,2133
@@ -97,11 +107,13 @@ odxtools/mem.py,sha256=M0M7G7vAmoYV1njP6PpSe-N_KjmRCEZKMMmytSuC79k,2976
97
107
  odxtools/message.py,sha256=7FZV5iVy1KTN-h7CO6OSKjdp89Yuci3_2h-Alj19Q_4,869
98
108
  odxtools/minmaxlengthtype.py,sha256=MfmH_D4o-JDOHIgUSyC-jW2xwvHCsGm57tnBYlYGndI,9621
99
109
  odxtools/modification.py,sha256=BNm3MgYa8TNccG1t76IyDCMzbz4xJpFgdgCqPKqDDSA,947
110
+ odxtools/multipleecujob.py,sha256=oRGY2B2hN-TXmMwICUZEippSCTWuWmKBnodcdoBYYT4,7293
111
+ odxtools/multipleecujobspec.py,sha256=VBj16TFuEU3N6bi_55j3CznrBU5GOgBdzQYqsHaW4Uc,5996
100
112
  odxtools/multiplexer.py,sha256=qay6yE_Wxne86CH9HQuZ2VrwL7_bLh3dPqeI6AfqQG8,11634
101
113
  odxtools/multiplexercase.py,sha256=bs-mAnkd7MY_hOaQtoYT-pEMGKPfUOFpt1YJuIECL8w,3082
102
114
  odxtools/multiplexerdefaultcase.py,sha256=RI3SrEwfE8WiPr-TBoafzNwAO9vF57nMKZnYwD8iZXA,2030
103
115
  odxtools/multiplexerswitchkey.py,sha256=fPaOJX_u2dbFlBX9tz1TWZxd7MjBkqf1WZO4v9rIz88,1545
104
- odxtools/nameditemlist.py,sha256=P5YiQUeiwVCImWGsf2N1Uwqgj8T1JOP5BcW23u6v43E,6900
116
+ odxtools/nameditemlist.py,sha256=YIJiVTO-cS1JY48xCHIwxkdPY5qZUXZZZTOpVCeNeKo,6878
105
117
  odxtools/negoffset.py,sha256=NqK0z3wRD_CmcyMDR-ooVcNxRGBd6VFZ4OuN_QNnXfw,726
106
118
  odxtools/negoutputparam.py,sha256=-uP34wmnBYz_wwxJDRWYsqMIVqRdrBpjhw15Ctyvs0E,1278
107
119
  odxtools/obd.py,sha256=hjTvs7DD6_JngNOH_b362L7X6zcpNsmoY6d8DDxQoZI,1829
@@ -109,7 +121,8 @@ odxtools/odxcategory.py,sha256=hZ3_BBJFA5cNVZ8Rd2vlsbEV_qU6zECXtUJ8H-mg6Fk,2664
109
121
  odxtools/odxdoccontext.py,sha256=QjdOp7jwtJVgyGwzPBH_a35xqdS24WJmlF6uNqLrp9U,460
110
122
  odxtools/odxlink.py,sha256=me0Y5yoXv6HsFGPQjo99hSt1GxpzllJlwIy0nhgpcdQ,10807
111
123
  odxtools/odxtypes.py,sha256=uhlKergX9Mutax_gf-bsyf_LJwF-t18HoYt2OXcimf0,8208
112
- odxtools/outputparam.py,sha256=oijoIXChUY7Jwds4x7OeIiyp5VTEivi61Sj5oVPjQMY,1477
124
+ odxtools/optionitem.py,sha256=kihbKVgPSNNqIT6aL2Ac5gNhluXUbTaXenYvn4hgmho,2914
125
+ odxtools/outputparam.py,sha256=q974Fa-fre1NcwK8RMRUD50D7GXBYq4gvEHOopZOe6s,1494
113
126
  odxtools/ownident.py,sha256=beX1glfBfG-s9hMD6qT_cGMZLln7LYt2X8uY4R_-_Zo,1146
114
127
  odxtools/parameterinfo.py,sha256=OeHQK1Ockq-CZgEXl1XWPH9UZ7vEW2_OSRnF1BZPRnY,11198
115
128
  odxtools/paramlengthinfotype.py,sha256=tBVKJHmC2jyeUiY4fRuq8FGx3UQoHJOjVzozMAEyTbM,4931
@@ -125,10 +138,12 @@ odxtools/progcode.py,sha256=iR5VyXn-j7TrtxUNdN2afYGjcfxm6chy-9tIZmXKRO4,2326
125
138
  odxtools/protstack.py,sha256=EEk-hJECg764Pdq2pWWZkOJ4qVAjpFpR5TmS2TtfrWc,2063
126
139
  odxtools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
127
140
  odxtools/radix.py,sha256=mWFYHJHYwK4o48B5Q98wJ378bC4SP1DggbBkx6e3MYY,130
141
+ odxtools/readdiagcommconnector.py,sha256=qh9DMoaErthc_J6GZKbBFfCKaLAZXqabDnA4g7cbhQs,3029
142
+ odxtools/readparamvalue.py,sha256=TjpNlhQgenKHBIwPhiDoI5XaFGneQvKIJeGif5n-kkQ,1783
128
143
  odxtools/relateddiagcommref.py,sha256=oE6KGzc3oNgspm-rwa9IKC_T6Fs9h6MLWVKUT_-0Ecw,737
129
144
  odxtools/relateddoc.py,sha256=b0_vaIIv1gl0lOdw1hUTeTo8uU4KiVnJWk0DV7PvrFw,1309
130
- odxtools/request.py,sha256=l9AgipmIIY5rDVbSSPWoMOixrmKwntTtxzldklWdagE,5039
131
- odxtools/response.py,sha256=YoqPy56PfkJZSys7M5xXDYZIkEveOMRoUIUiJF-gNsU,5639
145
+ odxtools/request.py,sha256=ptdv1nyUZlj-ILhDrol3XMORJsozFMNHmdvg7Axn5cI,5062
146
+ odxtools/response.py,sha256=-8LpFXbF8te2XBfxrXnDUTVRzBuGyXQ67p0ZuFBxg6c,5768
132
147
  odxtools/scaleconstr.py,sha256=B6XMS-8RuJPC_Yzbny40PDG7GUsvzDlpDx7H5RnS9cc,1634
133
148
  odxtools/security.py,sha256=4wt2rDwla3HjPNSYy7A6kcNUfcQ4gAVLZCagiUkBzlY,1486
134
149
  odxtools/securitymethod.py,sha256=AOJ1-ssNjl1FwyWZC_R-9p7ViyJf7UsXAvnbRh66R9g,285
@@ -140,7 +155,7 @@ odxtools/sessionsubelemtype.py,sha256=k3dL5TT6AYIJQ_U7W78ad6pNz4SH1pge4m62epRtT7
140
155
  odxtools/singleecujob.py,sha256=181jUAefl5LPdkdV4jOB_x_6LlVmw8YyuI3fAfxqXd8,4116
141
156
  odxtools/sizedeffilter.py,sha256=CYLo4293-dJMw5pNYzUIIr6d6sb_zHZSxM6ZYcpHFKM,1084
142
157
  odxtools/sizedefphyssegment.py,sha256=6Ykna8Fq-0Yu1puAOU_qbhFPauqD1ueylxDXkybgQBY,1084
143
- odxtools/snrefcontext.py,sha256=zuY3SU16YvgDKvKF7vocCA6f92iXQUKR6sFrLm7U2YU,958
158
+ odxtools/snrefcontext.py,sha256=mb1-07gaGpncDFzpNINGwzJFJf2S-GnmqqKT2zq5rv0,1061
144
159
  odxtools/specialdata.py,sha256=6AvvLiP8TC37wlBVFzFuwtBx2z3q7gIQZgy0RD5qB3s,1140
145
160
  odxtools/specialdatagroup.py,sha256=GnlaePVPNbcQ6MyLEIb5N567BPKMwW7qhwalD43p680,3134
146
161
  odxtools/specialdatagroupcaption.py,sha256=xYiwSQyxbzRnWGzd5bj-CPcBudEvxtxZ4mPCpizJN1M,1003
@@ -148,7 +163,7 @@ odxtools/standardizationlevel.py,sha256=8GSB-TDmsHpWJDCKP7sl6BQmdGYk4E4DmQxStZ3A
148
163
  odxtools/standardlengthtype.py,sha256=mylazDIHaplOYYlKQ-n-8sLTlc9NuwYxg1ycq5hmIXw,7284
149
164
  odxtools/state.py,sha256=LkNl11lnIa_vHwbxNvBq9FGyJxak0VdkNxAehpjdsas,914
150
165
  odxtools/statechart.py,sha256=SB1bJQKyMkFCdYv2GVr7wrwbPYdlqS8A7Oe2wiO7sd8,3139
151
- odxtools/statemachine.py,sha256=wrjL5YUjq0p6ib0j_4r1-mkQn4GTbXLWR8HQDxjdtto,7035
166
+ odxtools/statemachine.py,sha256=1L7246UNCyZLegbATYuNXpPYP9RzyzTUiSGUEoQvKao,7045
152
167
  odxtools/statetransition.py,sha256=zu8i8hQlnvN496MvQX7oHDkZasxD548YDGujMUmaSJ4,2209
153
168
  odxtools/statetransitionref.py,sha256=j5vmWpTF4RsgS75GTLkAIgGcbkG3wtgPvIthIQOBjMg,9210
154
169
  odxtools/staticfield.py,sha256=pVJNbdtO9-Vnf4atzpmLWzcHAII6sXnQmwBsVZ36Y3E,4477
@@ -157,6 +172,7 @@ odxtools/subcomponent.py,sha256=PO-Fi2qUS3IX7nPJyCciCiPUo-Vk4g3eznETTb_FrkE,4752
157
172
  odxtools/subcomponentparamconnector.py,sha256=Oqt5jFXbjOtAfZFcYskiARyxW6-mLk58PAOb0WvOzsE,3960
158
173
  odxtools/subcomponentpattern.py,sha256=G7dAAJD_cN1QrKRgl6UTIj_o9trbkounJ-IHZGtau2k,1404
159
174
  odxtools/swvariable.py,sha256=3OsXxWhKFomNPd6ASvgMr67CB7G0Sm3tBQg1fMTc7C4,679
175
+ odxtools/systemitem.py,sha256=N1vtKm_p6Mqc7pN3lD6MdXazzXd5F60ATOPCOvRUZBg,690
160
176
  odxtools/table.py,sha256=7JCxtclipAbbwvsJ9Gy1jYMU9OdYoAYkvjm2VpqeVWk,4978
161
177
  odxtools/tablediagcommconnector.py,sha256=MeY6JuPMIXW118hXnBGFy6W_OU4juqsVsEDKMHfN1wk,1700
162
178
  odxtools/tablerow.py,sha256=Ux7x8v-4ha46xrFcznk5fQxSLG-czQkeTjMbj4hTaRQ,10938
@@ -173,19 +189,21 @@ odxtools/unitgroupcategory.py,sha256=DgqlMM2h1sy4sgFeEXE3IkTesrrzQKOU1q3FTt4AtgY
173
189
  odxtools/unitspec.py,sha256=xBJ1ejsmrxTYqhjbilai9Lg9pUGlsCAxTA4_NyuDzgQ,3208
174
190
  odxtools/usage.py,sha256=bkbxoBeArK07I1nxgDUJKTirFqdeGf0vjTQJ4r8zdQk,188
175
191
  odxtools/utils.py,sha256=DC-3ooClwbxoaizP7T-nJASZhl-95ObYzCWm1l6-5i0,4142
176
- odxtools/validityfor.py,sha256=JrvTiJosnOODm9tXTplHSfZbQK0FN9IqYSZtQzt0Yz8,912
192
+ odxtools/validbasevariant.py,sha256=HVhF-MYyebF2zmv2y8oQ-ZS8OT7Rw6Mo14860at1rv0,2290
193
+ odxtools/validityfor.py,sha256=_cQv3BhIqqlj62oUGdScTEiRjwUnggtPB4T6q8ePBfc,1307
177
194
  odxtools/validtype.py,sha256=exe5OIqoIWgsgEm1t54pyk-U2m61DgBWI0Gew8rNYFc,194
178
195
  odxtools/variablegroup.py,sha256=o2hHupTvYSAJgOK8YOG9-VjXZpOMQ9vp9Sssu6RvN6E,834
179
- odxtools/variantmatcher.py,sha256=5Dad4WHHkQT6US8tnFoXxqO4wo2yGhCez_EpmnljfX4,8289
196
+ odxtools/variantmatcher.py,sha256=9qCg0ln3B1_zdNw-imFZ1DCECGdH4oa8_oGhC2gyl_g,8331
180
197
  odxtools/variantpattern.py,sha256=Mt2iXrlHvdo2EZtWq_tTqOqD-MxsaMUumQLcOpTkFR8,1406
181
- odxtools/version.py,sha256=n-m0uzfNiaOnNZiQObPm6Fv9pffKHdK3pGoS5Y0ivH8,513
182
- odxtools/writepdxfile.py,sha256=I1FHKYUrUSir8XQB6Q-a0pA3Xfzem7GkM9pPnwUi7ME,9141
198
+ odxtools/version.py,sha256=19M94hjIavZZJFdX2XJTnMIikXzunL4QfRwNieuLnp8,513
199
+ odxtools/writediagcommconnector.py,sha256=pkpIX8msn82L3S9mAL_ebXdoqZ8f-SK9eeFX8FXqgaA,3256
200
+ odxtools/writepdxfile.py,sha256=_pestzsUMngFLWeOsG3t70vk2L36TgnFcEhbPONdTnY,10489
183
201
  odxtools/xdoc.py,sha256=Ymir_UH5dz8h-T4_kVCm2M_zyip7lDSnQ_wJvu-BCAA,1463
184
202
  odxtools/cli/__init__.py,sha256=T7ano_FIyzBASxYpmcA5VJXU5bQLIy_Qk0HE_SDKelY,106
185
203
  odxtools/cli/_parser_utils.py,sha256=p0L9NYYnml5ydfD22oC04EMhz8PKHgU40GPOPkybZwg,1116
186
204
  odxtools/cli/_print_utils.py,sha256=5BI0SwLTZ2UufJKac4M-s58X18ASTQ1d4Mmql-MQcrk,12427
187
- odxtools/cli/browse.py,sha256=UwWg_SZec-AbeOdNeqH1lh1sEUrGRcla4H8k7iCQt8s,16496
188
- odxtools/cli/compare.py,sha256=p-qrY1nPUnjy3ptSTAiE2tdf_AdclD1IfrDCZ7Xzc1E,34946
205
+ odxtools/cli/browse.py,sha256=SWYUVS0xGGPKGlR2OLUYRcAdyOMRuPObx3A0GrollCA,16638
206
+ odxtools/cli/compare.py,sha256=nmv3kQ6i6ETZneQtf3e4BxoSzJfOeBh6nZhqPel4lE4,34982
189
207
  odxtools/cli/decode.py,sha256=bDXe700cl_lK3Y1aEKYzZMT19HTNwLjmeT3MZjiGmE8,4272
190
208
  odxtools/cli/dummy_sub_parser.py,sha256=F2N_lRrxuU-beORcyrJ4bdbRsQl42-aPEBtyPJ74Tvo,1466
191
209
  odxtools/cli/find.py,sha256=KW_0YdGECn9UvNzHYt97cEEHhwKcZbxzyugBuMWGgwk,4351
@@ -216,7 +234,7 @@ odxtools/compumethods/tabintpcompumethod.py,sha256=Jb57a3xKtFreZmwDdvKbmPQ4Dg0fR
216
234
  odxtools/compumethods/texttablecompumethod.py,sha256=0aLSPsOsb3XgP1aj13CkpDfSi4PIZID6ErnAXiQgtZo,5957
217
235
  odxtools/diaglayers/basevariant.py,sha256=urQiHezdLQ2TM6X8LfPTQHIMELxAP_CKFiHxZI3JKzQ,4660
218
236
  odxtools/diaglayers/basevariantraw.py,sha256=y7yujzGooVuPuX0bAtCNcvSCSrKQObgmyNABI5Pypyc,4994
219
- odxtools/diaglayers/diaglayer.py,sha256=KXF9R6ZmtYOn52VEHt-Yvl72D8eODqV0LVl49TsQKyw,16992
237
+ odxtools/diaglayers/diaglayer.py,sha256=oR-oxtv2QZxxHMirY2q7ns2inFKx25Qq60hq9WCeRrA,16697
220
238
  odxtools/diaglayers/diaglayerraw.py,sha256=cS3w4FcjuTPZ06wyfXPRrI99X_zsx9vjbaDwFCyGzn4,13059
221
239
  odxtools/diaglayers/diaglayertype.py,sha256=o1Vz6ycSqkDGNxNErcqpXUs0SAk9c4NSmxPDGWlufOE,1316
222
240
  odxtools/diaglayers/ecushareddata.py,sha256=2mg6bS50oSJlpqYDgRfXqPbkZHSvY4fFF3b_VwBhPwE,3336
@@ -229,7 +247,7 @@ odxtools/diaglayers/hierarchyelement.py,sha256=mfjfj0X3mnDCx550YkJu8OEtq4FcP1Hbp
229
247
  odxtools/diaglayers/hierarchyelementraw.py,sha256=WKA6YlH11Wrc1KUQXrJYBeDIe-DrKvEFWyjEtkjaj_c,2049
230
248
  odxtools/diaglayers/protocol.py,sha256=1Bc5ICvihzjjitwZ3x2N9-4-N_gyuvJwQTiWUm6O7V0,2463
231
249
  odxtools/diaglayers/protocolraw.py,sha256=qWlpec5NfjFuBOb-5phStJXelRbwl8yFGpnI1L68moI,3199
232
- odxtools/parameters/codedconstparameter.py,sha256=v7f_4FNx8eRWeOD8Y4Hx3LBhNCP_4e5AqOfoy3hyB7o,3907
250
+ odxtools/parameters/codedconstparameter.py,sha256=oGfSQIGdHq8ubWbtqt-oFzv71fwDf7U0Phl1gX6wBp4,3867
233
251
  odxtools/parameters/createanyparameter.py,sha256=fMkf0HJ6RHzOvu6Ib6vQIMBkdCblKtZ4K-PG0lthwWU,2512
234
252
  odxtools/parameters/dynamicparameter.py,sha256=NsIBYtSnhxIiHvuMcrJ7VKE4y628xsXQfqHRSe4eAes,1524
235
253
  odxtools/parameters/lengthkeyparameter.py,sha256=xEot_Ht0uSLmMUwF_lPGQVocbukiUb0Qlz-w0VEK_xY,5252
@@ -247,24 +265,33 @@ odxtools/parameters/tablestructparameter.py,sha256=ydK0_o1N7RR4ib4yKvcxEm2wooetS
247
265
  odxtools/parameters/valueparameter.py,sha256=-YfKQ6wz4HTZJMXW4R6rBaU3ZvvpAtRRgzZmckQJNqw,3049
248
266
  odxtools/templates/comparam-spec.odx-c.xml.jinja2,sha256=C48-nPdRKy4yJ0Lpiy4hRt9IlRSwvr8jtawOPJCA_rE,976
249
267
  odxtools/templates/comparam-subset.odx-cs.xml.jinja2,sha256=fPNOBY6Sb3JxIPKvrjNdVFLFif2BifQBrN6Q_izy6NM,1827
250
- odxtools/templates/diag_layer_container.odx-d.xml.jinja2,sha256=thgUk_8C6EprVIkrf0HNa-ii2i2yUdGktaD0VJa41is,1855
251
- odxtools/templates/flash.odx-f.xml.jinja2,sha256=fRWPD7yY8e_MDKS71ojjY10JOYSFlsWXkfRO10wEIEI,1540
268
+ odxtools/templates/diag_layer_container.odx-d.xml.jinja2,sha256=WL__gfOYnta-cHDGeSQQPOZEiZ0L7HQTu8Jj1EdONSQ,2045
269
+ odxtools/templates/ecu_config.odx-e.xml.jinja2,sha256=pc7tBjJIkDXqaH8l09efZ2NnAl4v2zszLWLpT3Cp5xI,1581
270
+ odxtools/templates/flash.odx-f.xml.jinja2,sha256=kgToXyDbAfS2qJ2nNamF8Wh1cCX0Wl9Rt5L5EKc0Wuw,1572
252
271
  odxtools/templates/index.xml.jinja2,sha256=Z1bcntvvky7NoH0Q0CRJgUORwf3g96PFPGeOpi7VATw,647
253
- odxtools/templates/macros/printAdminData.xml.jinja2,sha256=uG5BzloGpnW3FrmlqyMHGlaEtA1X3lZ-iJsOtWtDGPY,2598
254
- odxtools/templates/macros/printAudience.xml.jinja2,sha256=2blg9weUZ3AOKaETJ06qjiGolc1CR4qpvNM4y2_kKoM,1291
272
+ odxtools/templates/multiple-ecu-job-spec.odx-m.xml.jinja2,sha256=IbNchTHNQyKFzmpIKr1qxhfZaZAlk8NjoXGJiFbXMsU,2181
273
+ odxtools/templates/macros/printAdminData.xml.jinja2,sha256=_faltyDPBghsk_AKb-WAiun9MXIMpvTvxATgA9UYQHE,2586
274
+ odxtools/templates/macros/printAudience.xml.jinja2,sha256=IkEKH5sPcoaLhS2aqTUBmwoh3GxtSpOp8-g_niktU5c,1320
255
275
  odxtools/templates/macros/printBaseVariant.xml.jinja2,sha256=Ovf7NvO5jzy_9w1-iXi_q2dedoEfsQOYCK_WASkcITQ,1451
256
276
  odxtools/templates/macros/printBaseVariantPattern.xml.jinja2,sha256=foL_DmH4mWFzPObZ3VjPixdzbomAA5jK7GLpAhJsKVE,1192
257
277
  odxtools/templates/macros/printBasicStructure.xml.jinja2,sha256=V5oWGZesU_U5pvPO3Rtlodc7sxe5mFWY-uURLnQ8OfQ,614
258
- odxtools/templates/macros/printChecksum.xml.jinja2,sha256=o7duAslUxV-I8rtp4HXboqsdslxhDcfGfS1nz9GiP3o,1706
278
+ odxtools/templates/macros/printChecksum.xml.jinja2,sha256=jurfinjiGaB7lePtguc_6KpV0adsPGxrAeDhjwSI55k,1710
259
279
  odxtools/templates/macros/printCompanyData.xml.jinja2,sha256=GkQM6tIx-RxhOfZz4XqNPgnMRn82MZ4OVBOukhkRHtc,2989
260
280
  odxtools/templates/macros/printComparam.xml.jinja2,sha256=nzVPQOWv3cGDLnrQvThNwAan4xmyZiy0i5IUWDkWSwM,2347
261
281
  odxtools/templates/macros/printComparamRef.xml.jinja2,sha256=BSPoFG675nWuwqN-JSIjKZHi9-R_-2V37ksG_jvM68Y,1176
262
- odxtools/templates/macros/printCompuMethod.xml.jinja2,sha256=-iS9GGJg-aVji5mAqz9qW3inkH-uUa7rn2MlLN8zuTI,4432
263
- odxtools/templates/macros/printDOP.xml.jinja2,sha256=rSHxaSKbzHOrYkMPUlLdXzeUVG6t3-VHQprRVjGvppA,5974
282
+ odxtools/templates/macros/printCompuMethod.xml.jinja2,sha256=FVaqIxFi6CCVI36MICcwwdot03qBaFxd-lcJMJNLX80,4430
283
+ odxtools/templates/macros/printConfigData.xml.jinja2,sha256=XOeSzQ1UMhC5ah8PPnEJI7KmMboxJBkHzZnCAajhquE,1416
284
+ odxtools/templates/macros/printConfigDataDictionarySpec.xml.jinja2,sha256=VmrPWzQEQ-CH30S3Vv42i1x-eoNNfmJcwAtGY6b71Xs,644
285
+ odxtools/templates/macros/printConfigItems.xml.jinja2,sha256=xyYBMb7otusYxG7C3NSZSz9brzKjf0lRZI5LqPY7NiU,2321
286
+ odxtools/templates/macros/printConfigRecord.xml.jinja2,sha256=JP3n3a2j1FkMq8bxLrqjkyUSffVtk53lw9tNoMAew7E,2762
287
+ odxtools/templates/macros/printDOP.xml.jinja2,sha256=v3Eyg4TnXJAa4X9OIshe7e_dcE8l-SWRn39SpqaCWz0,5963
288
+ odxtools/templates/macros/printDataRecord.xml.jinja2,sha256=ADZu-tJHS4CU0v5nxeYBNKDqoxRJRr9P63NAmLYLFGQ,1294
264
289
  odxtools/templates/macros/printDatablock.xml.jinja2,sha256=Eyvvtig2TknUXS4svdYly1nRo5b2ozJzq21IUiiSOG8,3470
265
290
  odxtools/templates/macros/printDescription.xml.jinja2,sha256=95Zamh5YtS5d-R3RVdOZV5xqb9syho_L0-CFq0PPJdI,589
266
291
  odxtools/templates/macros/printDiagComm.xml.jinja2,sha256=pw0cB-eHWL9sG_iTPRSR9D4z_vdw3oasQ76NWRL1pUY,2378
267
- odxtools/templates/macros/printDiagLayer.xml.jinja2,sha256=ZbeKP0UtJfV-yCL-fZ4GzCCj-ndlLk9iIHhPOr0clmw,6943
292
+ odxtools/templates/macros/printDiagCommDataConnector.xml.jinja2,sha256=jWnhlpsM-IvjYDbY19xG5vLy6DDUdfhP-vDDgNfIUWk,2917
293
+ odxtools/templates/macros/printDiagDataDictionarySpec.xml.jinja2,sha256=7mtgWV9VWFQv8ZPE6VbONna-MWufsdfSwmXID-hFYHg,3364
294
+ odxtools/templates/macros/printDiagLayer.xml.jinja2,sha256=eoHepbwCRpKc7E-H43C3oL07qAl1qm25rYtv7x5BxKo,4218
268
295
  odxtools/templates/macros/printDiagVariable.xml.jinja2,sha256=SuJKQvlfaUEJo7kvNnKQeKyRBL_agxzZ7Hek16OdpoE,3178
269
296
  odxtools/templates/macros/printDynDefinedSpec.xml.jinja2,sha256=AuvP0Rvfd29o4xkBSxpIcS6g7OBMyfBTf1pMlS11Sus,1746
270
297
  odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2,sha256=xO_FxjCecLwE1FU16AlT_NDKb261w5z3oE8I-kxux74,591
@@ -274,21 +301,23 @@ odxtools/templates/macros/printEcuMemConnector.xml.jinja2,sha256=eS_m0zyXxJK0lYW
274
301
  odxtools/templates/macros/printEcuSharedData.xml.jinja2,sha256=WK08eoDFEjj9o3eOuy__H0r9ioo688rTuQp6uXE6Tdo,820
275
302
  odxtools/templates/macros/printEcuVariant.xml.jinja2,sha256=Nsgj2VUWZvSDFPQsn6wv75M9TaryOB-tlQYCVq9hDEM,1594
276
303
  odxtools/templates/macros/printEcuVariantPattern.xml.jinja2,sha256=YoYyzmxerJLJzUNoQ8H-JBnOqiwpVdODqk2KNRdWKWo,844
277
- odxtools/templates/macros/printElementId.xml.jinja2,sha256=Oe4sgtBB_VhTz6uJzaiTCpQki2ulKKfpBq56FVgBC-I,570
304
+ odxtools/templates/macros/printElementId.xml.jinja2,sha256=1Ykzcq2hF5qAFE5Q8Wb9j8_fSEuNmwxkZcbBaHE78yA,615
278
305
  odxtools/templates/macros/printEndOfPdu.xml.jinja2,sha256=ezcZpkRnOGXKkExVXceI9EKudoZAx2ch7qMOsfDVzoU,681
279
306
  odxtools/templates/macros/printEnvData.xml.jinja2,sha256=2Goatqb66d-pCf9wqJDXn1EZWNhkQ8FJANKQMOnxuJs,609
280
307
  odxtools/templates/macros/printEnvDataDesc.xml.jinja2,sha256=RSICw9XQzIhkGbbI9rvdKCmM50DHuVpPjnsXxVGe2bY,590
281
- odxtools/templates/macros/printExpectedIdent.xml.jinja2,sha256=J9NdCLXKJcg4DOV2h-rEqHn3-6tYRGoXyozGpTTl03Y,661
282
- odxtools/templates/macros/printFlashdata.xml.jinja2,sha256=1JkP2_6LozCTezfm2SlJymI6AnR_tF44CwT6m0X3HpE,1802
283
- odxtools/templates/macros/printFunctionalClass.xml.jinja2,sha256=o6_YZhmULzsC2WJZEpV8Z8iEW6myztY9FwNli9t42LM,490
308
+ odxtools/templates/macros/printExpectedIdent.xml.jinja2,sha256=YdAjL8GEfs3jv8vAIDxZbMc2KSDGlun5NVsb7VhQWug,665
309
+ odxtools/templates/macros/printFlashdata.xml.jinja2,sha256=9hvB93SW_0xSxrBXgiRgAcqPWa4vR3C_8yMTxjq8Cvk,1815
310
+ odxtools/templates/macros/printFunctionalClass.xml.jinja2,sha256=OajJ-DvcWu5Hk9HHBWF5IpgopYJEkW9kC9Ip_dM8LFI,492
284
311
  odxtools/templates/macros/printFunctionalGroup.xml.jinja2,sha256=zIeZbhf8haXhgJJUPiOnMe3lvqvfye4-zmwWDQJxFtQ,1159
285
312
  odxtools/templates/macros/printHierarchyElement.xml.jinja2,sha256=GD6iNIE0Wu0QsJ8uLtwEV8N9t6mIhI00_KpCVzOVQBM,651
286
313
  odxtools/templates/macros/printIdentDesc.xml.jinja2,sha256=r4FX9zurKH0gBi_lTUJBHL8aurF7wVmE0jLpleJK7Ak,614
314
+ odxtools/templates/macros/printItemValue.xml.jinja2,sha256=z7mxGVuLGMCvD8QA4JuxDuQt7v0c2TSDf6VcX9PZxZE,1199
287
315
  odxtools/templates/macros/printLibrary.xml.jinja2,sha256=wp8vZzHPLZayWZh6BOQ56kGyHSeyrlNacdlxBw9d0N0,683
288
316
  odxtools/templates/macros/printMem.xml.jinja2,sha256=aZ3bYZ5LMDzsBQGDa5SCiVCkaHOI4OBgvWJ1w8jSQPU,935
317
+ odxtools/templates/macros/printMultipleEcuJob.xml.jinja2,sha256=amlu1l4D6wRi2cnTiFa9vQeKHjTig0r4hsls2jhGBAs,3082
289
318
  odxtools/templates/macros/printMux.xml.jinja2,sha256=lSJEOac8paS57A_pA0vzNNiDUMvizTvLrY7Poau5LR4,1875
290
319
  odxtools/templates/macros/printOdxCategory.xml.jinja2,sha256=82uLhYpQfi9eE_3d8_JUk_LFh3uiwfC2o34l14DI0II,829
291
- odxtools/templates/macros/printOwnIdent.xml.jinja2,sha256=m1INLKX-9i-6gBoGac_PTZrh4ecWT5HlIbPYfSix2f0,540
320
+ odxtools/templates/macros/printOwnIdent.xml.jinja2,sha256=NuEUrmFiyNE-f95EKMuk4Pn_SCSn5iEkbqr02s0sV2Y,544
292
321
  odxtools/templates/macros/printParam.xml.jinja2,sha256=tjk8P5eRN5pMBUhju3ROFYT42ojdrHkTsPbM0LH2A4o,3229
293
322
  odxtools/templates/macros/printParentRef.xml.jinja2,sha256=_W5PUdBbzM7pWWbjipjbvSOfD9lHvVrLMF6GYu6_r8g,1660
294
323
  odxtools/templates/macros/printPhysMem.xml.jinja2,sha256=GMcXGAeI90-sF9M0W4FAneZhQmaiZxJtXCqQR3HiXYM,605
@@ -298,8 +327,8 @@ odxtools/templates/macros/printProtStack.xml.jinja2,sha256=rNJXTdBvpRW0kc9EqBEQ8
298
327
  odxtools/templates/macros/printProtocol.xml.jinja2,sha256=-tQe7Kl570tQkR_I2UknyQ1pZjq65U1iPpMstQjMov8,961
299
328
  odxtools/templates/macros/printRequest.xml.jinja2,sha256=yq4xGSlQCioT7FRivyx40Cjs2CYr9EK6NLZf0W4wGW0,717
300
329
  odxtools/templates/macros/printResponse.xml.jinja2,sha256=GsOYmnoh4ewhWg3FUdcovHuJxvuIjsSrXNtbcnnAQcM,683
301
- odxtools/templates/macros/printSecurity.xml.jinja2,sha256=Q18tRDYkR0NTkhPfLvKmfSLkxH8VqXORSgwg-sZWm-8,1286
302
- odxtools/templates/macros/printSegment.xml.jinja2,sha256=M_es2sZegoxXyGHZRG9KoYwb60LjvruDt71VjbLcrEM,1423
330
+ odxtools/templates/macros/printSecurity.xml.jinja2,sha256=Erb1eiZyI2omUOi9QLlW9amejl-HkpWrek5UZOVrnbA,1302
331
+ odxtools/templates/macros/printSegment.xml.jinja2,sha256=adScsyFJ-DUHOo0mAi62tvIF7XZHBQkTfavSpNkZ8JY,1431
303
332
  odxtools/templates/macros/printService.xml.jinja2,sha256=8y8I5JbEUwHM07tm_ccjWLid5ZHTBYds0vPSbNezofs,2862
304
333
  odxtools/templates/macros/printSession.xml.jinja2,sha256=AcXqpf1E8Vl3lEbBGaFkWjpGyr27P5jkWPxEA6m_Sdk,1469
305
334
  odxtools/templates/macros/printSessionDesc.xml.jinja2,sha256=9fGQ0POsx0joxHpkXGFJGTr2z0KyY2kD6nmukC0Qb8k,1600
@@ -314,9 +343,9 @@ odxtools/templates/macros/printStructure.xml.jinja2,sha256=M8p82SlgKaDk6nJA-0wr6
314
343
  odxtools/templates/macros/printSubComponent.xml.jinja2,sha256=R3DxnK6NysUQL84uf2kGYMoF_VVym2l7H-J0JZ1uLKc,3416
315
344
  odxtools/templates/macros/printTable.xml.jinja2,sha256=iMmq4tSFl_nc44HNdFqzk4XLYjrbQ73cKm7kMVdRLmc,3336
316
345
  odxtools/templates/macros/printUnitSpec.xml.jinja2,sha256=pgZdrPdWi3OGtDIFNpEDz_TQs103uuRQoDdmGkNffOM,2878
317
- odxtools-10.2.1.dist-info/licenses/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
318
- odxtools-10.2.1.dist-info/METADATA,sha256=NMsvH9So436uodI5M5POSIQNee3Y1Y9pxw0WUbVuvoA,44025
319
- odxtools-10.2.1.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
320
- odxtools-10.2.1.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
321
- odxtools-10.2.1.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
322
- odxtools-10.2.1.dist-info/RECORD,,
346
+ odxtools-10.4.0.dist-info/licenses/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
347
+ odxtools-10.4.0.dist-info/METADATA,sha256=4ECV1XPqKUcNCxO-fjRG5tDsf_g0sYNS-ywa3yCMFEs,44054
348
+ odxtools-10.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
349
+ odxtools-10.4.0.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
350
+ odxtools-10.4.0.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
351
+ odxtools-10.4.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.8.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5