odxtools 10.1.1__py3-none-any.whl → 10.2.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 (106) hide show
  1. odxtools/addrdeffilter.py +33 -0
  2. odxtools/addrdefphyssegment.py +33 -0
  3. odxtools/checksum.py +67 -0
  4. odxtools/checksumresult.py +7 -0
  5. odxtools/database.py +24 -4
  6. odxtools/datablock.py +153 -0
  7. odxtools/datafile.py +23 -0
  8. odxtools/dataformat.py +39 -0
  9. odxtools/dataformatselection.py +9 -0
  10. odxtools/description.py +2 -5
  11. odxtools/diagdatadictionaryspec.py +1 -3
  12. odxtools/direction.py +7 -0
  13. odxtools/ecumem.py +71 -0
  14. odxtools/ecumemconnector.py +136 -0
  15. odxtools/encryptcompressmethod.py +39 -0
  16. odxtools/encryptcompressmethodtype.py +13 -0
  17. odxtools/expectedident.py +40 -0
  18. odxtools/externflashdata.py +34 -0
  19. odxtools/filter.py +32 -0
  20. odxtools/flash.py +88 -0
  21. odxtools/flashclass.py +32 -0
  22. odxtools/flashdata.py +70 -0
  23. odxtools/fwchecksum.py +7 -0
  24. odxtools/fwsignature.py +7 -0
  25. odxtools/identdesc.py +54 -0
  26. odxtools/identvalue.py +32 -0
  27. odxtools/identvaluetype.py +14 -0
  28. odxtools/internflashdata.py +33 -0
  29. odxtools/loadfile.py +1 -1
  30. odxtools/mem.py +80 -0
  31. odxtools/modification.py +3 -2
  32. odxtools/negoffset.py +21 -0
  33. odxtools/ownident.py +38 -0
  34. odxtools/physicaltype.py +12 -10
  35. odxtools/physmem.py +52 -0
  36. odxtools/physsegment.py +42 -0
  37. odxtools/posoffset.py +21 -0
  38. odxtools/security.py +42 -0
  39. odxtools/securitymethod.py +7 -0
  40. odxtools/segment.py +63 -0
  41. odxtools/session.py +88 -0
  42. odxtools/sessiondesc.py +101 -0
  43. odxtools/sessionsubelemtype.py +14 -0
  44. odxtools/sizedeffilter.py +33 -0
  45. odxtools/sizedefphyssegment.py +33 -0
  46. odxtools/specialdata.py +2 -1
  47. odxtools/targetaddroffset.py +13 -0
  48. odxtools/templates/comparam-spec.odx-c.xml.jinja2 +1 -0
  49. odxtools/templates/comparam-subset.odx-cs.xml.jinja2 +1 -0
  50. odxtools/templates/diag_layer_container.odx-d.xml.jinja2 +2 -1
  51. odxtools/templates/flash.odx-f.xml.jinja2 +42 -0
  52. odxtools/templates/macros/printAdminData.xml.jinja2 +4 -4
  53. odxtools/templates/macros/printAudience.xml.jinja2 +3 -3
  54. odxtools/templates/macros/printChecksum.xml.jinja2 +36 -0
  55. odxtools/templates/macros/printComparam.xml.jinja2 +1 -1
  56. odxtools/templates/macros/printComparamRef.xml.jinja2 +1 -3
  57. odxtools/templates/macros/printCompuMethod.xml.jinja2 +1 -1
  58. odxtools/templates/macros/printDOP.xml.jinja2 +3 -3
  59. odxtools/templates/macros/printDatablock.xml.jinja2 +78 -0
  60. odxtools/templates/macros/printDiagComm.xml.jinja2 +2 -2
  61. odxtools/templates/macros/printDiagLayer.xml.jinja2 +2 -1
  62. odxtools/templates/macros/printDiagVariable.xml.jinja2 +4 -4
  63. odxtools/templates/macros/printDynDefinedSpec.xml.jinja2 +3 -3
  64. odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2 +2 -2
  65. odxtools/templates/macros/printDynamicLengthField.xml.jinja2 +2 -2
  66. odxtools/templates/macros/printEcuMem.xml.jinja2 +24 -0
  67. odxtools/templates/macros/printEcuMemConnector.xml.jinja2 +58 -0
  68. odxtools/templates/macros/printEndOfPdu.xml.jinja2 +1 -1
  69. odxtools/templates/macros/printEnvDataDesc.xml.jinja2 +1 -1
  70. odxtools/templates/macros/printExpectedIdent.xml.jinja2 +21 -0
  71. odxtools/templates/macros/printFlashdata.xml.jinja2 +43 -0
  72. odxtools/templates/macros/printIdentDesc.xml.jinja2 +17 -0
  73. odxtools/templates/macros/printMem.xml.jinja2 +35 -0
  74. odxtools/templates/macros/printMux.xml.jinja2 +3 -3
  75. odxtools/templates/macros/printOdxCategory.xml.jinja2 +4 -4
  76. odxtools/templates/macros/printOwnIdent.xml.jinja2 +17 -0
  77. odxtools/templates/macros/printParam.xml.jinja2 +4 -4
  78. odxtools/templates/macros/printParentRef.xml.jinja2 +1 -5
  79. odxtools/templates/macros/printPhysMem.xml.jinja2 +20 -0
  80. odxtools/templates/macros/printPhysSegment.xml.jinja2 +33 -0
  81. odxtools/templates/macros/printPreConditionStateRef.xml.jinja2 +1 -1
  82. odxtools/templates/macros/printProtStack.xml.jinja2 +1 -1
  83. odxtools/templates/macros/printProtocol.xml.jinja2 +1 -1
  84. odxtools/templates/macros/printSecurity.xml.jinja2 +37 -0
  85. odxtools/templates/macros/printSegment.xml.jinja2 +31 -0
  86. odxtools/templates/macros/printService.xml.jinja2 +3 -3
  87. odxtools/templates/macros/printSession.xml.jinja2 +45 -0
  88. odxtools/templates/macros/printSessionDesc.xml.jinja2 +40 -0
  89. odxtools/templates/macros/printSingleEcuJob.xml.jinja2 +3 -3
  90. odxtools/templates/macros/printSpecialData.xml.jinja2 +2 -2
  91. odxtools/templates/macros/printStateTransitionRef.xml.jinja2 +1 -1
  92. odxtools/templates/macros/printStaticField.xml.jinja2 +1 -1
  93. odxtools/templates/macros/printSubComponent.xml.jinja2 +3 -3
  94. odxtools/templates/macros/printTable.xml.jinja2 +6 -6
  95. odxtools/templates/macros/printUnitSpec.xml.jinja2 +2 -2
  96. odxtools/text.py +2 -6
  97. odxtools/utils.py +22 -1
  98. odxtools/validityfor.py +30 -0
  99. odxtools/version.py +2 -2
  100. odxtools/writepdxfile.py +70 -21
  101. {odxtools-10.1.1.dist-info → odxtools-10.2.0.dist-info}/METADATA +1 -1
  102. {odxtools-10.1.1.dist-info → odxtools-10.2.0.dist-info}/RECORD +106 -49
  103. {odxtools-10.1.1.dist-info → odxtools-10.2.0.dist-info}/WHEEL +1 -1
  104. {odxtools-10.1.1.dist-info → odxtools-10.2.0.dist-info}/entry_points.txt +0 -0
  105. {odxtools-10.1.1.dist-info → odxtools-10.2.0.dist-info}/licenses/LICENSE +0 -0
  106. {odxtools-10.1.1.dist-info → odxtools-10.2.0.dist-info}/top_level.txt +0 -0
odxtools/text.py CHANGED
@@ -2,6 +2,7 @@ from dataclasses import dataclass
2
2
  from xml.etree import ElementTree
3
3
 
4
4
  from .odxdoccontext import OdxDocContext
5
+ from .utils import strip_indent
5
6
 
6
7
 
7
8
  @dataclass(kw_only=True)
@@ -16,12 +17,7 @@ class Text:
16
17
  for e in et_element:
17
18
  raw_string += ElementTree.tostring(e, encoding="unicode")
18
19
 
19
- # remove white spaces at the beginning and at the end of all
20
- # extracted lines
21
- stripped_lines = [x.strip() for x in raw_string.split("\n")]
22
-
23
- text = "\n".join(stripped_lines).strip()
24
-
20
+ text = strip_indent(raw_string)
25
21
  text_identifier = et_element.get("TI")
26
22
 
27
23
  return Text(text=text, text_identifier=text_identifier)
odxtools/utils.py CHANGED
@@ -1,7 +1,7 @@
1
1
  # SPDX-License-Identifier: MIT
2
2
  import dataclasses
3
3
  import re
4
- from typing import TYPE_CHECKING, Any, Optional
4
+ from typing import TYPE_CHECKING, Any, Optional, overload
5
5
  from xml.etree import ElementTree
6
6
 
7
7
  from .exceptions import odxraise
@@ -12,6 +12,27 @@ if TYPE_CHECKING:
12
12
  from .snrefcontext import SnRefContext
13
13
 
14
14
 
15
+ @overload
16
+ def strip_indent(text: str) -> str:
17
+ ...
18
+
19
+
20
+ @overload
21
+ def strip_indent(text: None) -> None:
22
+ ...
23
+
24
+
25
+ def strip_indent(text: str | None) -> str | None:
26
+ """Remove the leading and trailing space characters of all lines of a string.
27
+
28
+ Note that non-space whitespace characters (tabulators, etc) are unaffected
29
+ """
30
+ if text is None:
31
+ return None
32
+
33
+ return "\n".join([x.strip(" \r") for x in text.split("\n")])
34
+
35
+
15
36
  def read_hex_binary(et_element: ElementTree.Element | None) -> int | None:
16
37
  """Convert the contents of an xsd:hexBinary to an integer
17
38
  """
@@ -0,0 +1,30 @@
1
+ # SPDX-License-Identifier: MIT
2
+ from dataclasses import dataclass
3
+ from typing import cast
4
+ from xml.etree import ElementTree
5
+
6
+ from .exceptions import odxraise, odxrequire
7
+ from .odxdoccontext import OdxDocContext
8
+ from .sessionsubelemtype import SessionSubElemType
9
+
10
+
11
+ @dataclass(kw_only=True)
12
+ class ValidityFor:
13
+ value: str
14
+ value_type: SessionSubElemType
15
+
16
+ @staticmethod
17
+ def from_et(et_element: ElementTree.Element, context: OdxDocContext) -> "ValidityFor":
18
+ value = et_element.text or ""
19
+
20
+ value_type_str = odxrequire(et_element.get("TYPE"))
21
+ try:
22
+ value_type = SessionSubElemType(value_type_str)
23
+ except ValueError:
24
+ value_type = cast(SessionSubElemType, None)
25
+ odxraise(f"Encountered unknown SESSION-SUB-ELEM-TYPE type '{value_type_str}'")
26
+
27
+ return ValidityFor(
28
+ value=value,
29
+ value_type=value_type,
30
+ )
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.1.1'
21
- __version_tuple__ = version_tuple = (10, 1, 1)
20
+ __version__ = version = '10.2.0'
21
+ __version_tuple__ = version_tuple = (10, 2, 0)
odxtools/writepdxfile.py CHANGED
@@ -1,5 +1,6 @@
1
1
  # SPDX-License-Identifier: MIT
2
2
  import datetime
3
+ import html
3
4
  import inspect
4
5
  import mimetypes
5
6
  import os
@@ -12,10 +13,9 @@ import jinja2
12
13
  import odxtools
13
14
 
14
15
  from .database import Database
16
+ from .odxlink import DocType, OdxDocFragment, OdxLinkRef
15
17
  from .odxtypes import bool_to_odxstr
16
18
 
17
- odxdatabase: Database | None = None
18
-
19
19
 
20
20
  def jinja2_odxraise_helper(msg: str) -> None:
21
21
  raise Exception(msg)
@@ -25,7 +25,7 @@ def make_xml_attrib(attrib_name: str, attrib_val: Any | None) -> str:
25
25
  if attrib_val is None:
26
26
  return ""
27
27
 
28
- return f' {attrib_name}="{attrib_val}"'
28
+ return f' {attrib_name}="{html.escape(attrib_val)}"'
29
29
 
30
30
 
31
31
  def make_bool_xml_attrib(attrib_name: str, attrib_val: bool | None) -> str:
@@ -35,6 +35,39 @@ def make_bool_xml_attrib(attrib_name: str, attrib_val: bool | None) -> str:
35
35
  return make_xml_attrib(attrib_name, bool_to_odxstr(attrib_val))
36
36
 
37
37
 
38
+ def set_category_docfrag(jinja_vars: dict[str, Any], category_short_name: str,
39
+ category_type: str) -> str:
40
+ jinja_vars["cur_docfrags"] = [OdxDocFragment(category_short_name, DocType(category_type))]
41
+
42
+ return ""
43
+
44
+
45
+ def set_layer_docfrag(jinja_vars: dict[str, Any], layer_short_name: str | None) -> str:
46
+ cur_docfrags = jinja_vars["cur_docfrags"]
47
+
48
+ if layer_short_name is None:
49
+ cur_docfrags = cur_docfrags[:1]
50
+ return ""
51
+
52
+ if len(cur_docfrags) == 1:
53
+ cur_docfrags.append(OdxDocFragment(layer_short_name, DocType.LAYER))
54
+ else:
55
+ cur_docfrags[1] = OdxDocFragment(layer_short_name, DocType.LAYER)
56
+
57
+ return ""
58
+
59
+
60
+ def make_ref_attribs(jinja_vars: dict[str, Any], ref: OdxLinkRef) -> str:
61
+ cur_docfrags = jinja_vars["cur_docfrags"]
62
+
63
+ for ref_frag in ref.ref_docs:
64
+ if ref_frag in cur_docfrags:
65
+ return f"ID-REF=\"{ref.ref_id}\""
66
+
67
+ docfrag = ref.ref_docs[-1]
68
+ return f"ID-REF=\"{ref.ref_id}\" DOCREF=\"{docfrag.doc_name}\" DOCTYPE=\"{docfrag.doc_type.value}\""
69
+
70
+
38
71
  __module_filename = inspect.getsourcefile(odxtools)
39
72
  assert isinstance(__module_filename, str)
40
73
  __templates_dir = os.path.sep.join([os.path.dirname(__module_filename), "templates"])
@@ -48,10 +81,6 @@ def write_pdx_file(
48
81
  """
49
82
  Write an internalized database to a PDX file.
50
83
  """
51
- global odxdatabase
52
-
53
- odxdatabase = database
54
-
55
84
  file_index = []
56
85
  with zipfile.ZipFile(output_file_name, mode="w", compression=zipfile.ZIP_DEFLATED) as zf:
57
86
 
@@ -128,9 +157,14 @@ def write_pdx_file(
128
157
  jinja_env.globals["make_xml_attrib"] = make_xml_attrib
129
158
  jinja_env.globals["make_bool_xml_attrib"] = make_bool_xml_attrib
130
159
 
131
- vars: dict[str, Any] = {}
132
- vars["odxtools_version"] = odxtools.__version__
133
- vars["database"] = database
160
+ jinja_vars: dict[str, Any] = {}
161
+ jinja_vars["odxtools_version"] = odxtools.__version__
162
+ jinja_vars["database"] = database
163
+
164
+ jinja_env.globals["set_category_docfrag"] = lambda cname, ctype: set_category_docfrag(
165
+ jinja_vars, cname, ctype)
166
+ jinja_env.globals["set_layer_docfrag"] = lambda lname: set_layer_docfrag(jinja_vars, lname)
167
+ jinja_env.globals["make_ref_attribs"] = lambda ref: make_ref_attribs(jinja_vars, ref)
134
168
 
135
169
  # write the communication parameter subsets
136
170
  comparam_subset_tpl = jinja_env.get_template("comparam-subset.odx-cs.xml.jinja2")
@@ -139,13 +173,13 @@ def write_pdx_file(
139
173
  zf_file_cdate = datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
140
174
  zf_mime_type = "application/x-asam.odx.odx-cs"
141
175
 
142
- vars["comparam_subset"] = comparam_subset
176
+ jinja_vars["comparam_subset"] = comparam_subset
143
177
 
144
178
  file_index.append((zf_file_name, zf_file_cdate, zf_mime_type))
145
179
 
146
- zf.writestr(zf_file_name, comparam_subset_tpl.render(**vars))
180
+ zf.writestr(zf_file_name, comparam_subset_tpl.render(**jinja_vars))
147
181
 
148
- del vars["comparam_subset"]
182
+ del jinja_vars["comparam_subset"]
149
183
 
150
184
  # write the communication parameter specs
151
185
  comparam_spec_tpl = jinja_env.get_template("comparam-spec.odx-c.xml.jinja2")
@@ -154,18 +188,18 @@ def write_pdx_file(
154
188
  zf_file_cdate = datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
155
189
  zf_mime_type = "application/x-asam.odx.odx-c"
156
190
 
157
- vars["comparam_spec"] = comparam_spec
191
+ jinja_vars["comparam_spec"] = comparam_spec
158
192
 
159
193
  file_index.append((zf_file_name, zf_file_cdate, zf_mime_type))
160
194
 
161
- zf.writestr(zf_file_name, comparam_spec_tpl.render(**vars))
195
+ zf.writestr(zf_file_name, comparam_spec_tpl.render(**jinja_vars))
162
196
 
163
- del vars["comparam_spec"]
197
+ del jinja_vars["comparam_spec"]
164
198
 
165
199
  # write the actual diagnostic data.
166
200
  dlc_tpl = jinja_env.get_template("diag_layer_container.odx-d.xml.jinja2")
167
201
  for dlc in database.diag_layer_containers:
168
- vars["dlc"] = dlc
202
+ jinja_vars["dlc"] = dlc
169
203
 
170
204
  file_name = f"{dlc.short_name}.odx-d"
171
205
  file_cdate = datetime.datetime.now()
@@ -173,13 +207,28 @@ def write_pdx_file(
173
207
  mime_type = "application/x-asam.odx.odx-d"
174
208
 
175
209
  file_index.append((file_name, creation_date, mime_type))
176
- zf.writestr(file_name, dlc_tpl.render(**vars))
177
- del vars["dlc"]
210
+ zf.writestr(file_name, dlc_tpl.render(**jinja_vars))
211
+ del jinja_vars["dlc"]
212
+
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"
217
+ zf_file_cdate = datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
218
+ zf_mime_type = "application/x-asam.odx.odx-f"
219
+
220
+ jinja_vars["flash"] = flash
221
+
222
+ file_index.append((zf_file_name, zf_file_cdate, zf_mime_type))
223
+
224
+ zf.writestr(zf_file_name, flash_tpl.render(**jinja_vars))
225
+
226
+ del jinja_vars["flash"]
178
227
 
179
228
  # write the index.xml file
180
- vars["file_index"] = file_index
229
+ jinja_vars["file_index"] = file_index
181
230
  index_tpl = jinja_env.get_template("index.xml.jinja2")
182
- text = index_tpl.render(**vars)
231
+ text = index_tpl.render(**jinja_vars)
183
232
  zf.writestr("index.xml", text)
184
233
 
185
234
  return True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: odxtools
3
- Version: 10.1.1
3
+ Version: 10.2.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>
@@ -1,12 +1,16 @@
1
1
  odxtools/__init__.py,sha256=kfejU9B_COPKCNfhbzkq_RuQ1VpH0S_EA4gstYaANtk,2458
2
2
  odxtools/__main__.py,sha256=MKzFqY8KAV0BGsBXs04QwPpW5OGuT-rZQ4QlM8Tar8Y,119
3
3
  odxtools/additionalaudience.py,sha256=Rlwe2DGEYnIXJVCTa6RXMZXywgJIBeFhdsbCsGBms50,967
4
+ odxtools/addrdeffilter.py,sha256=Mhd91FYTHl4fFMAx3iYRCBR_f60OeLmQyhhcGFL7a0g,1097
5
+ odxtools/addrdefphyssegment.py,sha256=ELVytdZWiUxhZgiz9m-YR3rtoX9lu2ZBJBeo2ZELty0,1137
4
6
  odxtools/addressing.py,sha256=ENZYQICOCrg75dwGxKqJFClggHPWwVtNZt9Cp7SZ4zA,189
5
7
  odxtools/admindata.py,sha256=ciC0CWDW2k1-q4AzwwQE5Fb3tFtBihTc3BNtVgfqOOw,2048
6
8
  odxtools/audience.py,sha256=Xq1MAPFVeGBdu35QU47slDxufos2jvoUVkj0YqwIOp0,3504
7
9
  odxtools/basecomparam.py,sha256=8XrGhny0LiR8sZHEK4LZ_ry9IktaCL7CRuM1kPoP8Uo,2162
8
10
  odxtools/basevariantpattern.py,sha256=-n9OTlFRFgS5V71KaLp14ZdWap9gm3vg6ZTAp8MELUg,1482
9
11
  odxtools/basicstructure.py,sha256=wOxnlEq-AHkL4OJeOjDuHZwAp6BzJEF-_Q-eSluLTTA,5158
12
+ odxtools/checksum.py,sha256=adYGW076hMY_zFF5H15_kSJbwmt-zfIRDiD5ktKv55A,2488
13
+ odxtools/checksumresult.py,sha256=wfKpGpaiW65oGrr5kZi1KL2pFqfKPN1K89-mgfF_uxA,285
10
14
  odxtools/codec.py,sha256=XvC2lKzRwVpRX9pZsoUTjCNJtYJUbivgdfM6HxRxFYY,717
11
15
  odxtools/commrelation.py,sha256=zVhtrfWvgSOEgPZ99lsm8xq6XLMo8QBfxPR9JkOdnkE,4753
12
16
  odxtools/commrelationvaluetype.py,sha256=R3kIem0Hls57FJyaqedX_Z-PoqXWp4ymm3EdODQ3OQw,190
@@ -23,19 +27,24 @@ odxtools/complexdop.py,sha256=_945BBh-F60szuwJ1l_Hwh3IEv2LJkwPx514OLfjb8c,294
23
27
  odxtools/compositecodec.py,sha256=w0xabjai5bxofQYoBtC2XO8krJA6VggWLMDFxU3RwvU,7582
24
28
  odxtools/createanycomparam.py,sha256=KHsN027D7AoDx6kKjQ_0f84Us_UQD54Ps0fR1-p09n8,587
25
29
  odxtools/createanydiagcodedtype.py,sha256=eLyqOminWq7yI8WGIPsUHbm7_J4IkaJP0rsoDQDpUUM,1178
26
- odxtools/database.py,sha256=z6xwGaa0Zcrktt9tP9W0U9rBZp8BAQbNKbW0V-vqWos,10415
30
+ odxtools/database.py,sha256=YnQHxpBRjthW0v2t5Si3x0nzej_oSh9ym78TKVkJI00,11150
31
+ odxtools/datablock.py,sha256=ILjjna50PyLFApnLM4cduxQ77P9I-Sr7kzrMZ_ebX6M,6306
32
+ odxtools/datafile.py,sha256=k_SatFNGhf7x1P-Iiyh7iphDufNkql6OZGA0HJFJXnk,658
33
+ odxtools/dataformat.py,sha256=1yiZj0gmEmqJikpKHP-IW7xSFsuHI40TVcuOfJ1JWLA,1320
34
+ odxtools/dataformatselection.py,sha256=NLbfPhqlbAMtaeoFHZnGgfyGzhuHG9GKkmz7qKQI8ac,202
27
35
  odxtools/dataobjectproperty.py,sha256=t_jukpaQai6MOtdV9ozWPDe9ARucywIuvlBmhDHVFZY,6210
28
36
  odxtools/decodestate.py,sha256=YUk96vPSf5Kqbbu525HwzQ2dAerpDzw81o4AAsgZTxE,8257
29
- odxtools/description.py,sha256=uQ6zPPJX_Pao2kiEPunhuJzXOs-UIGUh92KI0aFlga8,1598
37
+ odxtools/description.py,sha256=hJlp2YLSR7oAgbLszq9ScBXlQsV2vX3VzX2QCLON_hs,1456
30
38
  odxtools/determinenumberofitems.py,sha256=64giK5HKF1VtDcHdqwj59SgSPdPp3ad819WpDaN0Sjc,1568
31
39
  odxtools/diagclasstype.py,sha256=s39LWF39ncIxTW11hvROvmCyRqWs4vrxzvh1hpkVFPI,338
32
40
  odxtools/diagcodedtype.py,sha256=3ekcTajh3knYk2otJSFAUnbWXHQwPdA8mS0H0QKbSq4,4911
33
41
  odxtools/diagcomm.py,sha256=1giYn3bmj_v344fRF-bBwWKDjpQ3wSIWBP16d5WfyZ8,8319
34
- odxtools/diagdatadictionaryspec.py,sha256=wsTsC70-IEbnVEpBNUhIFxCAWMtPTqrgjj1e6Bl5Rwk,10802
42
+ odxtools/diagdatadictionaryspec.py,sha256=FXgC0JGuc50QjVKE20HPQrdyrMAREpzf5OC2RxdVZRo,10711
35
43
  odxtools/diaglayercontainer.py,sha256=UVADNCjMYcF0gLv4Q5ba-CwHzvZlMCQOCw7i-hXQsVY,5887
36
44
  odxtools/diagnostictroublecode.py,sha256=eloalKE_Vqji45HQY9bO-M2unB4KXnaZMtH4W9KdN4M,2403
37
45
  odxtools/diagservice.py,sha256=Bit3Xa-pju5OCp69h6m88ZRRvtXhg83aINmO6-lKGD8,10296
38
46
  odxtools/diagvariable.py,sha256=7lcTDOfhi5zum4TqdfHeD7sP2KjP4DFT68WRpLBb254,5366
47
+ odxtools/direction.py,sha256=6G9vg9Le7286SKADUJteJh0dGtaDasDkm40IqAovEuA,126
39
48
  odxtools/docrevision.py,sha256=yESqkSaTRlpH6-oczi5rVYeR1d-TXuFNCzvcFUfBuc4,2819
40
49
  odxtools/dopbase.py,sha256=ieIQbMO2AqcarWorCEE5LaX7CxLcnFbcf-2zhU_tNH4,2634
41
50
  odxtools/dtcconnector.py,sha256=1D-wXE1h0JbXACPa1FeiYNCa5-YulBo5BHO90sGKUmo,1611
@@ -45,37 +54,55 @@ odxtools/dynamiclengthfield.py,sha256=V93li_SfajpLFEUXyMPyEwIBkwK3b6aSHZ8FwZkpeS
45
54
  odxtools/dyndefinedspec.py,sha256=YybdsMSKKYeqEp0l7V1QUg64pP7oTgP4s7nHAarlL7A,1343
46
55
  odxtools/dynenddopref.py,sha256=HwtH469VL8nZB1DQFAgD53Dx6F_X_D7FwxoeNSS7a0o,1156
47
56
  odxtools/dyniddefmodeinfo.py,sha256=LQX4Ga5n2jtTbLXYA6vzvkTHVGhELHNQNammCmV3E8Q,7412
57
+ odxtools/ecumem.py,sha256=Qq2LP_MN3p8xAusA-fN04ltIhTwSWerNmuHK5AxItMw,2616
58
+ odxtools/ecumemconnector.py,sha256=jJ5aw7fp7tMzlsG30XaKGayp_dLlkGoeC1aKH94LOVI,5309
48
59
  odxtools/ecuvariantpattern.py,sha256=wnnRUd7ERJUq_U6xuppof0-SWxKXf7dGn-1ZD3ImZzU,1341
49
60
  odxtools/element.py,sha256=xw8XaBxOZ7von0IeonZWOZ6XJkqG2EgEcwuXWLfKm5Q,1250
50
61
  odxtools/encodestate.py,sha256=qRUzdMijsuSngSf5xed4-FqKu56oMZirQDjWwtMST-0,13519
51
62
  odxtools/encoding.py,sha256=9sCmds2A-vjz98GuKjXxbm-E7s6uarZcvHT4P7uSFeA,1960
63
+ odxtools/encryptcompressmethod.py,sha256=zWlqbyPpHWD6UPX-oo9Hf_Xd9F8lLIYDCO-kgh2Yqmw,1282
64
+ odxtools/encryptcompressmethodtype.py,sha256=6ydqhb-YeCBTzJH-q7Vn1Ac5Sd0qs1NpfVqBGumTzgQ,272
52
65
  odxtools/endofpdufield.py,sha256=uTC-EjsFhUEvztvRHKugyYA7ERllayXjDJs661gN3yA,3328
53
66
  odxtools/envdataconnector.py,sha256=5BKHEwlFGWAf64xrFIfkuiHHTC8QEjClvt1vu-tSi1Y,1864
54
67
  odxtools/environmentdata.py,sha256=P_x_2m0vajrQ_XiN-aoLs_puyvhuDo__kdKwhKYPPWw,1413
55
68
  odxtools/environmentdatadescription.py,sha256=ZNMnpbSHVh9j3WUEOtq4ev79Qa4whC0nPTGnPJ8MQ8A,11242
56
69
  odxtools/exceptions.py,sha256=RTfQYjSyPXQbcrkud6wDv0ifi9QgQoeZaAaXNexVmHg,2686
70
+ odxtools/expectedident.py,sha256=tO-v9kbcoang-h6hVt7p9pHAv_2x3ohGjb_nfbriPHI,1197
57
71
  odxtools/externalaccessmethod.py,sha256=IPdzR9XaUAOvw2y72c4pGCG9tQDmCE9JczQ7leEbwyM,684
58
72
  odxtools/externaldoc.py,sha256=ujqWTbec5QZB_hjcOGKAKPRGpIYepQJadjiEVuc1CRM,619
73
+ odxtools/externflashdata.py,sha256=YpCkcM1naeU_n7jNbX8v_Jpo7vsNeE7F97xxHenW5Ks,1134
59
74
  odxtools/field.py,sha256=kaTmcqmirjlxe-U9u4K_GZ8a6ZgtDrjSOq6Q7179h3g,3861
75
+ odxtools/filter.py,sha256=qHeENtsOpjBJalZ9Snp-RqrLXDK3RLjChGrPViQ5Hpk,906
76
+ odxtools/flash.py,sha256=YnErcrd68tuTdJkVm-uIkGj64uHM6GJEoQlP7oy7XXM,3282
77
+ odxtools/flashclass.py,sha256=NC2-nP9NM3Dzd-rgC6m-aMaagK9wn3n8vPSFxMQolqA,935
78
+ odxtools/flashdata.py,sha256=uA5H8PBy_meicmCT6gbVTCaTqL7MgY5RRccqFMwurFA,2766
60
79
  odxtools/functionalclass.py,sha256=tUQTCzAqZ72v3VHOWLiG8aVe0lHKa3HFl-VW-TrD2rE,1128
80
+ odxtools/fwchecksum.py,sha256=FZ7-Gzbma5KjRK_HOD95Vke6BycKBFVm8qWhWwQbeg0,281
81
+ odxtools/fwsignature.py,sha256=22Pb0tz93FjnLOcyCf7yJW6xLKWWrlIqkSsCd1rYZew,282
61
82
  odxtools/globals.py,sha256=P6YbgyTSWHMw3sk5cEzsCvVaLrTiakLvewTgySb1jLo,139
83
+ odxtools/identdesc.py,sha256=NR6ytJmBzik76OOwyP5TTs-VUoKOXDdhwa6c5T0dYKw,2005
84
+ odxtools/identvalue.py,sha256=a6GeYhpq27JkunOpoB7zWjiybEj9T_fgsNM6w5gN0y0,886
85
+ odxtools/identvaluetype.py,sha256=8pRoJIFmi3gGGktlXVt1NapkBPZzR-PMzZyXoBdv4mE,297
62
86
  odxtools/inputparam.py,sha256=zsmF8DCs8-ZBEcjuJMB5is3ykZAbWsHqFvbdprIlY30,1824
63
87
  odxtools/internalconstr.py,sha256=IBZ8RZBRZaGfYM1Wa1bMgmXOSZkH7JBqR3PqQ5K3Zsg,1378
88
+ odxtools/internflashdata.py,sha256=1QQ3BeRC3KAgVD-rh5VrkTAOK67HuBEzklHxFgkArdc,1055
64
89
  odxtools/isotp_state_machine.py,sha256=PHS2W6u85znRVSHWqm6BQJXT_E4FTPgUBgcrHidouWk,13295
65
90
  odxtools/leadinglengthinfotype.py,sha256=E8CKjaMvxjuQLvV9zj4EpnRtRE5GR3AUnC4LPmQ3kNU,3981
66
91
  odxtools/library.py,sha256=MqSpRi8bCZnE6HfKvXl00qavilZTT9g-vo6jxMBAQGU,2081
67
92
  odxtools/linkeddtcdop.py,sha256=3zaytQUftehimc12_VZC9OSFIjbRAztF0a3d0IcisSQ,2133
68
- odxtools/loadfile.py,sha256=LHkJ4dy8Ei419ki0NHqM8GyLePPeZOkBFcfp25ZwOVw,1689
93
+ odxtools/loadfile.py,sha256=fxMEAT4YdLDLvYLGkOP2WCWku3b5kMcAwNvgU-eBm1U,1697
69
94
  odxtools/matchingbasevariantparameter.py,sha256=lN84nczYsCFFMlLWIwvbGCvesWaw7ZcbEoBslfg7u04,1265
70
95
  odxtools/matchingparameter.py,sha256=RgMGU8adFy0yiI52EqVYSDKkHuAMdfdpu-3aw0yOSTM,5754
96
+ odxtools/mem.py,sha256=M0M7G7vAmoYV1njP6PpSe-N_KjmRCEZKMMmytSuC79k,2976
71
97
  odxtools/message.py,sha256=7FZV5iVy1KTN-h7CO6OSKjdp89Yuci3_2h-Alj19Q_4,869
72
98
  odxtools/minmaxlengthtype.py,sha256=MfmH_D4o-JDOHIgUSyC-jW2xwvHCsGm57tnBYlYGndI,9621
73
- odxtools/modification.py,sha256=BiV6eiulLugvKcZAadf70SE6jMgjPalk1tZdqNk-LR0,887
99
+ odxtools/modification.py,sha256=BNm3MgYa8TNccG1t76IyDCMzbz4xJpFgdgCqPKqDDSA,947
74
100
  odxtools/multiplexer.py,sha256=qay6yE_Wxne86CH9HQuZ2VrwL7_bLh3dPqeI6AfqQG8,11634
75
101
  odxtools/multiplexercase.py,sha256=bs-mAnkd7MY_hOaQtoYT-pEMGKPfUOFpt1YJuIECL8w,3082
76
102
  odxtools/multiplexerdefaultcase.py,sha256=RI3SrEwfE8WiPr-TBoafzNwAO9vF57nMKZnYwD8iZXA,2030
77
103
  odxtools/multiplexerswitchkey.py,sha256=fPaOJX_u2dbFlBX9tz1TWZxd7MjBkqf1WZO4v9rIz88,1545
78
104
  odxtools/nameditemlist.py,sha256=P5YiQUeiwVCImWGsf2N1Uwqgj8T1JOP5BcW23u6v43E,6900
105
+ odxtools/negoffset.py,sha256=NqK0z3wRD_CmcyMDR-ooVcNxRGBd6VFZ4OuN_QNnXfw,726
79
106
  odxtools/negoutputparam.py,sha256=-uP34wmnBYz_wwxJDRWYsqMIVqRdrBpjhw15Ctyvs0E,1278
80
107
  odxtools/obd.py,sha256=hjTvs7DD6_JngNOH_b362L7X6zcpNsmoY6d8DDxQoZI,1829
81
108
  odxtools/odxcategory.py,sha256=hZ3_BBJFA5cNVZ8Rd2vlsbEV_qU6zECXtUJ8H-mg6Fk,2664
@@ -83,11 +110,15 @@ odxtools/odxdoccontext.py,sha256=QjdOp7jwtJVgyGwzPBH_a35xqdS24WJmlF6uNqLrp9U,460
83
110
  odxtools/odxlink.py,sha256=dg72A5i104f79dbStJb19zfQUMNODkQsC-JNMn7v7zM,10593
84
111
  odxtools/odxtypes.py,sha256=uhlKergX9Mutax_gf-bsyf_LJwF-t18HoYt2OXcimf0,8208
85
112
  odxtools/outputparam.py,sha256=oijoIXChUY7Jwds4x7OeIiyp5VTEivi61Sj5oVPjQMY,1477
113
+ odxtools/ownident.py,sha256=beX1glfBfG-s9hMD6qT_cGMZLln7LYt2X8uY4R_-_Zo,1146
86
114
  odxtools/parameterinfo.py,sha256=OeHQK1Ockq-CZgEXl1XWPH9UZ7vEW2_OSRnF1BZPRnY,11198
87
115
  odxtools/paramlengthinfotype.py,sha256=tBVKJHmC2jyeUiY4fRuq8FGx3UQoHJOjVzozMAEyTbM,4931
88
116
  odxtools/parentref.py,sha256=UGHkCkszmh3PAB9OrftVoDt64kt9XDEPyVYVdjxW9aE,3932
89
117
  odxtools/physicaldimension.py,sha256=DrGddGTAB7WtlU0SmHDArxJsmt8_8kbc7Il2IZMamZM,3391
90
- odxtools/physicaltype.py,sha256=FnzTe_WMxzW-xCWTbFjzKn2QxYKsNbrXOYCrUjIlwQs,2437
118
+ odxtools/physicaltype.py,sha256=HDV9U-40iCRtJJYfHLC2sStwoYz6Z1hjXzZotOTPoZA,2491
119
+ odxtools/physmem.py,sha256=ouKiYncTfZaAFKQ_NtpuKZe2S417kpCS55ChbBEGArU,2109
120
+ odxtools/physsegment.py,sha256=Jh5IcZA09_kjk_wi8aKD2pOvBX73IkHqIy4kLLZLF_s,1447
121
+ odxtools/posoffset.py,sha256=NwWrQbMhbjT6Ji_Dw2SRED9Q36ZnEQe8fh7Tw18ShU8,726
91
122
  odxtools/posresponsesuppressible.py,sha256=L-AfdAsZOY0YGiIRtRtQeyqRSJ1xVEUZSi7cwENKA04,2896
92
123
  odxtools/preconditionstateref.py,sha256=p2YjeuvQElqcPtYSzRzdzO12IMNGe8pyeVfevV2gp3w,3346
93
124
  odxtools/progcode.py,sha256=iR5VyXn-j7TrtxUNdN2afYGjcfxm6chy-9tIZmXKRO4,2326
@@ -99,10 +130,18 @@ odxtools/relateddoc.py,sha256=b0_vaIIv1gl0lOdw1hUTeTo8uU4KiVnJWk0DV7PvrFw,1309
99
130
  odxtools/request.py,sha256=l9AgipmIIY5rDVbSSPWoMOixrmKwntTtxzldklWdagE,5039
100
131
  odxtools/response.py,sha256=YoqPy56PfkJZSys7M5xXDYZIkEveOMRoUIUiJF-gNsU,5639
101
132
  odxtools/scaleconstr.py,sha256=B6XMS-8RuJPC_Yzbny40PDG7GUsvzDlpDx7H5RnS9cc,1634
133
+ odxtools/security.py,sha256=4wt2rDwla3HjPNSYy7A6kcNUfcQ4gAVLZCagiUkBzlY,1486
134
+ odxtools/securitymethod.py,sha256=AOJ1-ssNjl1FwyWZC_R-9p7ViyJf7UsXAvnbRh66R9g,285
135
+ odxtools/segment.py,sha256=_QFeWIx7XnKGjfxvWu5UouECbkRqqqszbKYCtjCrK_A,2479
102
136
  odxtools/servicebinner.py,sha256=j0BBI5AerYDhhsY3j9HVSgVdpn9i6qWo43v2arlWrtM,3842
137
+ odxtools/session.py,sha256=SVy2J3QTtEHq23CVGdmWS3uuW63K4-QqqpruGCoEwOg,3305
138
+ odxtools/sessiondesc.py,sha256=GuguQ83vsCEXf7jXso8cU6DnkOuhukRLqzekH_odpwA,3938
139
+ odxtools/sessionsubelemtype.py,sha256=k3dL5TT6AYIJQ_U7W78ad6pNz4SH1pge4m62epRtT7w,301
103
140
  odxtools/singleecujob.py,sha256=181jUAefl5LPdkdV4jOB_x_6LlVmw8YyuI3fAfxqXd8,4116
141
+ odxtools/sizedeffilter.py,sha256=CYLo4293-dJMw5pNYzUIIr6d6sb_zHZSxM6ZYcpHFKM,1084
142
+ odxtools/sizedefphyssegment.py,sha256=6Ykna8Fq-0Yu1puAOU_qbhFPauqD1ueylxDXkybgQBY,1084
104
143
  odxtools/snrefcontext.py,sha256=zuY3SU16YvgDKvKF7vocCA6f92iXQUKR6sFrLm7U2YU,958
105
- odxtools/specialdata.py,sha256=-IorgVzjskAEp1f_0u06BgS7FqxxsM3uLsuva7QyTok,1094
144
+ odxtools/specialdata.py,sha256=6AvvLiP8TC37wlBVFzFuwtBx2z3q7gIQZgy0RD5qB3s,1140
106
145
  odxtools/specialdatagroup.py,sha256=GnlaePVPNbcQ6MyLEIb5N567BPKMwW7qhwalD43p680,3134
107
146
  odxtools/specialdatagroupcaption.py,sha256=xYiwSQyxbzRnWGzd5bj-CPcBudEvxtxZ4mPCpizJN1M,1003
108
147
  odxtools/standardizationlevel.py,sha256=8GSB-TDmsHpWJDCKP7sl6BQmdGYk4E4DmQxStZ3AlOo,209
@@ -122,9 +161,10 @@ odxtools/table.py,sha256=7JCxtclipAbbwvsJ9Gy1jYMU9OdYoAYkvjm2VpqeVWk,4978
122
161
  odxtools/tablediagcommconnector.py,sha256=MeY6JuPMIXW118hXnBGFy6W_OU4juqsVsEDKMHfN1wk,1700
123
162
  odxtools/tablerow.py,sha256=Ux7x8v-4ha46xrFcznk5fQxSLG-czQkeTjMbj4hTaRQ,10938
124
163
  odxtools/tablerowconnector.py,sha256=uCMyUA0eSJGwcomn2NM-ZolD1JTFl8PEih7bs3F-EcM,1622
164
+ odxtools/targetaddroffset.py,sha256=rmyXBfj_mqTdgIve8xyUlC5yOoPDvqXZvlcBOmkVvdE,341
125
165
  odxtools/teammember.py,sha256=0VKctn_zGyC-ChXBDOM6mcv3vvB5WXtVCh0cB-2Ow7U,1922
126
166
  odxtools/termination.py,sha256=9byJI8Cl9UAiEEsMOvlEt4eueGfRUigzKIgJbiDG2s0,150
127
- odxtools/text.py,sha256=fDeY-1SUOUKImpGQ7ymumXtZSCclWZqiR0Ky_pM0pgg,1000
167
+ odxtools/text.py,sha256=JPAw3MjgOQCgnpunnmedfiOiOUcEnxqPRp5mYf9AFPs,857
128
168
  odxtools/transmode.py,sha256=qz0nN2eoAAMU70OAaqvbKhIbHrci4cmCxVEE5HEoJiM,222
129
169
  odxtools/uds.py,sha256=o8rIBt7x-54-UUn-77sHq_iFiwasY7KxCquuLx65VrM,5533
130
170
  odxtools/unit.py,sha256=cITCHq5_V97py8mprXNoaG1GdHYPjQmoTkIuB1VGvoQ,3377
@@ -132,13 +172,14 @@ odxtools/unitgroup.py,sha256=CfdlEzENHRalycJYxjBlHc5qyaYGQgICL4ifNKXiY9g,1951
132
172
  odxtools/unitgroupcategory.py,sha256=DgqlMM2h1sy4sgFeEXE3IkTesrrzQKOU1q3FTt4AtgY,142
133
173
  odxtools/unitspec.py,sha256=xBJ1ejsmrxTYqhjbilai9Lg9pUGlsCAxTA4_NyuDzgQ,3208
134
174
  odxtools/usage.py,sha256=bkbxoBeArK07I1nxgDUJKTirFqdeGf0vjTQJ4r8zdQk,188
135
- odxtools/utils.py,sha256=hbbx2xugDcPYVclOHeBICF9fvxqXSiBYNzc7aWu_eSw,3689
175
+ odxtools/utils.py,sha256=DC-3ooClwbxoaizP7T-nJASZhl-95ObYzCWm1l6-5i0,4142
176
+ odxtools/validityfor.py,sha256=JrvTiJosnOODm9tXTplHSfZbQK0FN9IqYSZtQzt0Yz8,912
136
177
  odxtools/validtype.py,sha256=exe5OIqoIWgsgEm1t54pyk-U2m61DgBWI0Gew8rNYFc,194
137
178
  odxtools/variablegroup.py,sha256=o2hHupTvYSAJgOK8YOG9-VjXZpOMQ9vp9Sssu6RvN6E,834
138
179
  odxtools/variantmatcher.py,sha256=5Dad4WHHkQT6US8tnFoXxqO4wo2yGhCez_EpmnljfX4,8289
139
180
  odxtools/variantpattern.py,sha256=Mt2iXrlHvdo2EZtWq_tTqOqD-MxsaMUumQLcOpTkFR8,1406
140
- odxtools/version.py,sha256=C3D-dPum7eliLcX4MZNv8pp73_H9ypPM1sLDveBaclU,513
141
- odxtools/writepdxfile.py,sha256=4hjOscx59p3bWSv4Iguv5hwVEJX_aQ42B03tIi-YxDg,7105
181
+ odxtools/version.py,sha256=SZPRsJtjzCo-uujoU7-r_xkH3WFdZZh3Z80jCyCOJVg,513
182
+ odxtools/writepdxfile.py,sha256=I1FHKYUrUSir8XQB6Q-a0pA3Xfzem7GkM9pPnwUi7ME,9141
142
183
  odxtools/xdoc.py,sha256=Ymir_UH5dz8h-T4_kVCm2M_zyip7lDSnQ_wJvu-BCAA,1463
143
184
  odxtools/cli/__init__.py,sha256=T7ano_FIyzBASxYpmcA5VJXU5bQLIy_Qk0HE_SDKelY,106
144
185
  odxtools/cli/_parser_utils.py,sha256=p0L9NYYnml5ydfD22oC04EMhz8PKHgU40GPOPkybZwg,1116
@@ -204,62 +245,78 @@ odxtools/parameters/tableentryparameter.py,sha256=pT2MMqKdnJrftSDb3izJesXnubaKZd
204
245
  odxtools/parameters/tablekeyparameter.py,sha256=PjxMhkWfy9yn5jKAtnrBX1aRKphvt6VXrae2kPWAGQ0,9943
205
246
  odxtools/parameters/tablestructparameter.py,sha256=ydK0_o1N7RR4ib4yKvcxEm2wooetSu39aVPcfPTbNqA,7173
206
247
  odxtools/parameters/valueparameter.py,sha256=-YfKQ6wz4HTZJMXW4R6rBaU3ZvvpAtRRgzZmckQJNqw,3049
207
- odxtools/templates/comparam-spec.odx-c.xml.jinja2,sha256=A9q0SQCGhBaV2xUcXHFVkmZIBpbl9OP2x6JD0umzrdU,904
208
- odxtools/templates/comparam-subset.odx-cs.xml.jinja2,sha256=xL4vy0yAsSajJRF_w7wCQFSklUIgyHwCHgGPlLTGK_A,1751
209
- odxtools/templates/diag_layer_container.odx-d.xml.jinja2,sha256=fDH9K2IdGfX-dVV0pEpn2kkHIBQTT9B0Sb5dF4vGWco,1798
248
+ odxtools/templates/comparam-spec.odx-c.xml.jinja2,sha256=C48-nPdRKy4yJ0Lpiy4hRt9IlRSwvr8jtawOPJCA_rE,976
249
+ 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
210
252
  odxtools/templates/index.xml.jinja2,sha256=Z1bcntvvky7NoH0Q0CRJgUORwf3g96PFPGeOpi7VATw,647
211
- odxtools/templates/macros/printAdminData.xml.jinja2,sha256=YTB_CbhnALF6RIbE0XKQHRbC6c0PSZ_DxdrRHgqMD_s,2590
212
- odxtools/templates/macros/printAudience.xml.jinja2,sha256=vaYL_-GPVdlLc7WAQTbkVZZbFuQptnCbOhXJb3tsHv8,1286
253
+ odxtools/templates/macros/printAdminData.xml.jinja2,sha256=uG5BzloGpnW3FrmlqyMHGlaEtA1X3lZ-iJsOtWtDGPY,2598
254
+ odxtools/templates/macros/printAudience.xml.jinja2,sha256=2blg9weUZ3AOKaETJ06qjiGolc1CR4qpvNM4y2_kKoM,1291
213
255
  odxtools/templates/macros/printBaseVariant.xml.jinja2,sha256=Ovf7NvO5jzy_9w1-iXi_q2dedoEfsQOYCK_WASkcITQ,1451
214
256
  odxtools/templates/macros/printBaseVariantPattern.xml.jinja2,sha256=foL_DmH4mWFzPObZ3VjPixdzbomAA5jK7GLpAhJsKVE,1192
215
257
  odxtools/templates/macros/printBasicStructure.xml.jinja2,sha256=V5oWGZesU_U5pvPO3Rtlodc7sxe5mFWY-uURLnQ8OfQ,614
258
+ odxtools/templates/macros/printChecksum.xml.jinja2,sha256=o7duAslUxV-I8rtp4HXboqsdslxhDcfGfS1nz9GiP3o,1706
216
259
  odxtools/templates/macros/printCompanyData.xml.jinja2,sha256=GkQM6tIx-RxhOfZz4XqNPgnMRn82MZ4OVBOukhkRHtc,2989
217
- odxtools/templates/macros/printComparam.xml.jinja2,sha256=75nb34_fancCqpiPLjon5xsr3J9cScvq5ibLrWknoz0,2345
218
- odxtools/templates/macros/printComparamRef.xml.jinja2,sha256=rBhrdUnp605fsUN9SaljpyaAojzaLBvTbkOuduKod18,1274
219
- odxtools/templates/macros/printCompuMethod.xml.jinja2,sha256=9DilxMWnqOsXu7bNNlDqls-lEqcr_GPzhZum8rzDJP0,4430
220
- odxtools/templates/macros/printDOP.xml.jinja2,sha256=RUnofs7WCrGHzbUIK6yRPNMlk_SXPuwFsSpUg7HGY-o,5970
260
+ odxtools/templates/macros/printComparam.xml.jinja2,sha256=nzVPQOWv3cGDLnrQvThNwAan4xmyZiy0i5IUWDkWSwM,2347
261
+ 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
264
+ odxtools/templates/macros/printDatablock.xml.jinja2,sha256=Eyvvtig2TknUXS4svdYly1nRo5b2ozJzq21IUiiSOG8,3470
221
265
  odxtools/templates/macros/printDescription.xml.jinja2,sha256=95Zamh5YtS5d-R3RVdOZV5xqb9syho_L0-CFq0PPJdI,589
222
- odxtools/templates/macros/printDiagComm.xml.jinja2,sha256=05J7BGIf8vv41ksZuKnv--gMuA--vKtAATdxfAuKKro,2374
223
- odxtools/templates/macros/printDiagLayer.xml.jinja2,sha256=jVsoXIThQxIYte0d8lzEc7R7mm54vzT-GKAxu5NKk-Q,6901
224
- odxtools/templates/macros/printDiagVariable.xml.jinja2,sha256=sg81-vgZFOsBt-e-CJ9BxcfoWMAf6imhJXS9_ftq1YM,3172
225
- odxtools/templates/macros/printDynDefinedSpec.xml.jinja2,sha256=uX3C40VmlbH7sndlJNyTvq8upzaoq8vCk6S93gtpFIY,1742
226
- odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2,sha256=6BmxPKesQvfy46iTiPSFu_iJffC6umZ_YRsTEd-0y5Q,587
227
- odxtools/templates/macros/printDynamicLengthField.xml.jinja2,sha256=bNvNh_4xyp4L6v7cxJ5cO1yOHYPnSFiaK9oY4l63fDU,784
266
+ 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
268
+ odxtools/templates/macros/printDiagVariable.xml.jinja2,sha256=SuJKQvlfaUEJo7kvNnKQeKyRBL_agxzZ7Hek16OdpoE,3178
269
+ odxtools/templates/macros/printDynDefinedSpec.xml.jinja2,sha256=AuvP0Rvfd29o4xkBSxpIcS6g7OBMyfBTf1pMlS11Sus,1746
270
+ odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2,sha256=xO_FxjCecLwE1FU16AlT_NDKb261w5z3oE8I-kxux74,591
271
+ odxtools/templates/macros/printDynamicLengthField.xml.jinja2,sha256=F8ttAKFRJqA11GxgEVbnleu9ldNn0DHClh_HdOFNEPs,788
272
+ odxtools/templates/macros/printEcuMem.xml.jinja2,sha256=ook2-Gk291hVPDApdVJD-C4Bxf-aG5FBsprQ702lr5g,905
273
+ odxtools/templates/macros/printEcuMemConnector.xml.jinja2,sha256=eS_m0zyXxJK0lYWOQvMDNJGFi54DDsX2f6KikWhT4cI,2124
228
274
  odxtools/templates/macros/printEcuSharedData.xml.jinja2,sha256=WK08eoDFEjj9o3eOuy__H0r9ioo688rTuQp6uXE6Tdo,820
229
275
  odxtools/templates/macros/printEcuVariant.xml.jinja2,sha256=Nsgj2VUWZvSDFPQsn6wv75M9TaryOB-tlQYCVq9hDEM,1594
230
276
  odxtools/templates/macros/printEcuVariantPattern.xml.jinja2,sha256=YoYyzmxerJLJzUNoQ8H-JBnOqiwpVdODqk2KNRdWKWo,844
231
277
  odxtools/templates/macros/printElementId.xml.jinja2,sha256=Oe4sgtBB_VhTz6uJzaiTCpQki2ulKKfpBq56FVgBC-I,570
232
- odxtools/templates/macros/printEndOfPdu.xml.jinja2,sha256=ptjwOxyNTABATOajiitcvlJRKVGP_osh2wSJTCbaa38,679
278
+ odxtools/templates/macros/printEndOfPdu.xml.jinja2,sha256=ezcZpkRnOGXKkExVXceI9EKudoZAx2ch7qMOsfDVzoU,681
233
279
  odxtools/templates/macros/printEnvData.xml.jinja2,sha256=2Goatqb66d-pCf9wqJDXn1EZWNhkQ8FJANKQMOnxuJs,609
234
- odxtools/templates/macros/printEnvDataDesc.xml.jinja2,sha256=rBpPf51LFx5oNx_XjeTABast9hmru5hYbeJQ2axHntw,588
280
+ 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
235
283
  odxtools/templates/macros/printFunctionalClass.xml.jinja2,sha256=o6_YZhmULzsC2WJZEpV8Z8iEW6myztY9FwNli9t42LM,490
236
284
  odxtools/templates/macros/printFunctionalGroup.xml.jinja2,sha256=zIeZbhf8haXhgJJUPiOnMe3lvqvfye4-zmwWDQJxFtQ,1159
237
285
  odxtools/templates/macros/printHierarchyElement.xml.jinja2,sha256=GD6iNIE0Wu0QsJ8uLtwEV8N9t6mIhI00_KpCVzOVQBM,651
286
+ odxtools/templates/macros/printIdentDesc.xml.jinja2,sha256=r4FX9zurKH0gBi_lTUJBHL8aurF7wVmE0jLpleJK7Ak,614
238
287
  odxtools/templates/macros/printLibrary.xml.jinja2,sha256=wp8vZzHPLZayWZh6BOQ56kGyHSeyrlNacdlxBw9d0N0,683
239
- odxtools/templates/macros/printMux.xml.jinja2,sha256=68IiPY_mIJQqQiqce3jUphqp3-xLfmEBL7CSb3Cz7eI,1869
240
- odxtools/templates/macros/printOdxCategory.xml.jinja2,sha256=SatvRj0yafePV_Xg6Un1d5KXq3yZyqV9f5YZU1wlzws,856
241
- odxtools/templates/macros/printParam.xml.jinja2,sha256=VvIA-4IjG1ugEPtACc4FKA-d8MlzaI8_Dcw8UR2vNc4,3221
242
- odxtools/templates/macros/printParentRef.xml.jinja2,sha256=BGXWw9NDQ5P1XC-cHKQF1xBxK4U8_WvTTX0IvWAovOU,1813
243
- odxtools/templates/macros/printPreConditionStateRef.xml.jinja2,sha256=h6oQnvO8_1r5vSYlvyXMNT1ZEFaUpGg5bGMkZkWlBjU,614
244
- odxtools/templates/macros/printProtStack.xml.jinja2,sha256=0FHHvuduiMPhAE19vpTHu3cQeM9kSybWj5FbybcXnGk,773
245
- odxtools/templates/macros/printProtocol.xml.jinja2,sha256=QYfA8-3HWPVmpKW8bA7shKhrZ3s8iKQd8BfOYSRnMiU,1034
288
+ odxtools/templates/macros/printMem.xml.jinja2,sha256=aZ3bYZ5LMDzsBQGDa5SCiVCkaHOI4OBgvWJ1w8jSQPU,935
289
+ odxtools/templates/macros/printMux.xml.jinja2,sha256=lSJEOac8paS57A_pA0vzNNiDUMvizTvLrY7Poau5LR4,1875
290
+ 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
292
+ odxtools/templates/macros/printParam.xml.jinja2,sha256=tjk8P5eRN5pMBUhju3ROFYT42ojdrHkTsPbM0LH2A4o,3229
293
+ odxtools/templates/macros/printParentRef.xml.jinja2,sha256=_W5PUdBbzM7pWWbjipjbvSOfD9lHvVrLMF6GYu6_r8g,1660
294
+ odxtools/templates/macros/printPhysMem.xml.jinja2,sha256=GMcXGAeI90-sF9M0W4FAneZhQmaiZxJtXCqQR3HiXYM,605
295
+ odxtools/templates/macros/printPhysSegment.xml.jinja2,sha256=UpJEqVwrsT1D85lzqZjI_1qVKlOtxveZPuQtocMuoa8,1529
296
+ odxtools/templates/macros/printPreConditionStateRef.xml.jinja2,sha256=qngZqfBPq7wqqgXM7YH8tats16-ZGvCUjlmU8qRvmLI,616
297
+ odxtools/templates/macros/printProtStack.xml.jinja2,sha256=rNJXTdBvpRW0kc9EqBEQ8BRIeaEV2lKNULBikXoelZY,725
298
+ odxtools/templates/macros/printProtocol.xml.jinja2,sha256=-tQe7Kl570tQkR_I2UknyQ1pZjq65U1iPpMstQjMov8,961
246
299
  odxtools/templates/macros/printRequest.xml.jinja2,sha256=yq4xGSlQCioT7FRivyx40Cjs2CYr9EK6NLZf0W4wGW0,717
247
300
  odxtools/templates/macros/printResponse.xml.jinja2,sha256=GsOYmnoh4ewhWg3FUdcovHuJxvuIjsSrXNtbcnnAQcM,683
248
- odxtools/templates/macros/printService.xml.jinja2,sha256=3S18iXYKYFcaC0HTST2j5vw7RND9Ga_ewategISY_ug,2856
249
- odxtools/templates/macros/printSingleEcuJob.xml.jinja2,sha256=6phi3VxGllusm6KGgrjWiOj7g80ojHyxvesqmHvuNhs,2174
250
- odxtools/templates/macros/printSpecialData.xml.jinja2,sha256=0eIFh9cWXfFrQN_f8G_lz3fUqmtysxY6tSN4DbuFY40,1386
301
+ odxtools/templates/macros/printSecurity.xml.jinja2,sha256=Q18tRDYkR0NTkhPfLvKmfSLkxH8VqXORSgwg-sZWm-8,1286
302
+ odxtools/templates/macros/printSegment.xml.jinja2,sha256=M_es2sZegoxXyGHZRG9KoYwb60LjvruDt71VjbLcrEM,1423
303
+ odxtools/templates/macros/printService.xml.jinja2,sha256=8y8I5JbEUwHM07tm_ccjWLid5ZHTBYds0vPSbNezofs,2862
304
+ odxtools/templates/macros/printSession.xml.jinja2,sha256=AcXqpf1E8Vl3lEbBGaFkWjpGyr27P5jkWPxEA6m_Sdk,1469
305
+ odxtools/templates/macros/printSessionDesc.xml.jinja2,sha256=9fGQ0POsx0joxHpkXGFJGTr2z0KyY2kD6nmukC0Qb8k,1600
306
+ odxtools/templates/macros/printSingleEcuJob.xml.jinja2,sha256=3EVIfCtAaYWCwH9myM_bSrBWtKdhYyCREwYuDXxjSTM,2180
307
+ odxtools/templates/macros/printSpecialData.xml.jinja2,sha256=RmXn_sc4cxQnj5kP3knFv631t9lvtBBiooEg_0OjXPc,1394
251
308
  odxtools/templates/macros/printState.xml.jinja2,sha256=BNnTEyczp43iP9Bn_plMLRsJsasra4sRyvmgODuZQYg,315
252
309
  odxtools/templates/macros/printStateChart.xml.jinja2,sha256=XW1EhF1k8ogbEDt-QMjSOojKl4vjxXkq6BwJWR9GJsI,951
253
310
  odxtools/templates/macros/printStateTransition.xml.jinja2,sha256=J2t0yU82UBegUSH9sAbnkdgEYPTUU0A7I-CokuPQxDo,510
254
- odxtools/templates/macros/printStateTransitionRef.xml.jinja2,sha256=rm6uKfRq8J_IlZ6KQP6jOwdvqMBI-mYcdLdjKse_seM,606
255
- odxtools/templates/macros/printStaticField.xml.jinja2,sha256=fkV07zrL2pTo6b5ZPD14V0uC1aEk2P4roXyDhp-ah38,521
311
+ odxtools/templates/macros/printStateTransitionRef.xml.jinja2,sha256=NUSBwFJXXmXu2R5HXpsZMnBMRvIC2IQbI0hbrXH22jw,608
312
+ odxtools/templates/macros/printStaticField.xml.jinja2,sha256=1Sd9waNqTqTEbHa_RvJTpgjuf9_xM29V58pD0sYeGTM,523
256
313
  odxtools/templates/macros/printStructure.xml.jinja2,sha256=M8p82SlgKaDk6nJA-0wr6FhyfFCYw9UTrqvB8WnzdxU,645
257
- odxtools/templates/macros/printSubComponent.xml.jinja2,sha256=ETo-k0K7px5nu9kgVjgDnjPoy8rYRfzq5ojvsZhM3Rw,3416
258
- odxtools/templates/macros/printTable.xml.jinja2,sha256=uB0o-B3aJ64pkxY0flGoSx69QeSfdGjx30YhUtCAKy8,3336
259
- odxtools/templates/macros/printUnitSpec.xml.jinja2,sha256=KOjRVwtdIg7uGl4B9cLpvW68-TYeE33Tz9sWZdnwkBE,2878
260
- odxtools-10.1.1.dist-info/licenses/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
261
- odxtools-10.1.1.dist-info/METADATA,sha256=-QD9VBMBzbzG7mDjydAKYs8bLzZndh9RcddaILtU1Es,44025
262
- odxtools-10.1.1.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
263
- odxtools-10.1.1.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
264
- odxtools-10.1.1.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
265
- odxtools-10.1.1.dist-info/RECORD,,
314
+ odxtools/templates/macros/printSubComponent.xml.jinja2,sha256=R3DxnK6NysUQL84uf2kGYMoF_VVym2l7H-J0JZ1uLKc,3416
315
+ odxtools/templates/macros/printTable.xml.jinja2,sha256=iMmq4tSFl_nc44HNdFqzk4XLYjrbQ73cKm7kMVdRLmc,3336
316
+ odxtools/templates/macros/printUnitSpec.xml.jinja2,sha256=pgZdrPdWi3OGtDIFNpEDz_TQs103uuRQoDdmGkNffOM,2878
317
+ odxtools-10.2.0.dist-info/licenses/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
318
+ odxtools-10.2.0.dist-info/METADATA,sha256=NqMX_3pAHCVaO9ZR66tv5_eABeOKBXaN1lrHfFdFHCY,44025
319
+ odxtools-10.2.0.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
320
+ odxtools-10.2.0.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
321
+ odxtools-10.2.0.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
322
+ odxtools-10.2.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (79.0.0)
2
+ Generator: setuptools (80.3.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5