odxtools 10.2.0__py3-none-any.whl → 10.2.1__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/diaglayers/diaglayer.py +31 -11
- odxtools/diaglayers/ecuvariant.py +12 -19
- odxtools/diaglayers/hierarchyelement.py +5 -5
- odxtools/diaglayers/protocol.py +14 -0
- odxtools/odxlink.py +4 -2
- odxtools/subcomponentparamconnector.py +1 -1
- odxtools/version.py +2 -2
- {odxtools-10.2.0.dist-info → odxtools-10.2.1.dist-info}/METADATA +1 -1
- {odxtools-10.2.0.dist-info → odxtools-10.2.1.dist-info}/RECORD +13 -13
- {odxtools-10.2.0.dist-info → odxtools-10.2.1.dist-info}/WHEEL +1 -1
- {odxtools-10.2.0.dist-info → odxtools-10.2.1.dist-info}/entry_points.txt +0 -0
- {odxtools-10.2.0.dist-info → odxtools-10.2.1.dist-info}/licenses/LICENSE +0 -0
- {odxtools-10.2.0.dist-info → odxtools-10.2.1.dist-info}/top_level.txt +0 -0
odxtools/diaglayers/diaglayer.py
CHANGED
@@ -7,6 +7,7 @@ from itertools import chain
|
|
7
7
|
from typing import Any, Union, cast
|
8
8
|
from xml.etree import ElementTree
|
9
9
|
|
10
|
+
from ..additionalaudience import AdditionalAudience
|
10
11
|
from ..admindata import AdminData
|
11
12
|
from ..companydata import CompanyData
|
12
13
|
from ..description import Description
|
@@ -14,6 +15,7 @@ from ..diagcomm import DiagComm
|
|
14
15
|
from ..diagdatadictionaryspec import DiagDataDictionarySpec
|
15
16
|
from ..diagservice import DiagService
|
16
17
|
from ..exceptions import DecodeError, odxassert, odxraise
|
18
|
+
from ..functionalclass import FunctionalClass
|
17
19
|
from ..library import Library
|
18
20
|
from ..message import Message
|
19
21
|
from ..nameditemlist import NamedItemList, TNamed
|
@@ -26,6 +28,7 @@ from ..servicebinner import ServiceBinner
|
|
26
28
|
from ..singleecujob import SingleEcuJob
|
27
29
|
from ..snrefcontext import SnRefContext
|
28
30
|
from ..specialdatagroup import SpecialDataGroup
|
31
|
+
from ..statechart import StateChart
|
29
32
|
from ..subcomponent import SubComponent
|
30
33
|
from ..unitgroup import UnitGroup
|
31
34
|
from .diaglayerraw import DiagLayerRaw
|
@@ -223,12 +226,30 @@ class DiagLayer:
|
|
223
226
|
def admin_data(self) -> AdminData | None:
|
224
227
|
return self.diag_layer_raw.admin_data
|
225
228
|
|
229
|
+
@property
|
230
|
+
def company_datas(self) -> NamedItemList[CompanyData]:
|
231
|
+
return self.diag_layer_raw.company_datas
|
232
|
+
|
233
|
+
@property
|
234
|
+
def functional_classes(self) -> NamedItemList[FunctionalClass]:
|
235
|
+
return self.diag_layer_raw.functional_classes
|
236
|
+
|
237
|
+
@property
|
238
|
+
def diag_data_dictionary_spec(self) -> DiagDataDictionarySpec:
|
239
|
+
"""The DiagDataDictionarySpec applicable to this DiagLayer"""
|
240
|
+
return self._diag_data_dictionary_spec
|
241
|
+
|
242
|
+
@property
|
243
|
+
def diag_comms_raw(self) -> list[OdxLinkRef | DiagComm]:
|
244
|
+
return self.diag_layer_raw.diag_comms_raw
|
245
|
+
|
226
246
|
@property
|
227
247
|
def diag_comms(self) -> NamedItemList[DiagComm]:
|
228
248
|
return self.diag_layer_raw.diag_comms
|
229
249
|
|
230
250
|
@property
|
231
251
|
def services(self) -> NamedItemList[DiagService]:
|
252
|
+
"""This is an alias for `.diag_services`"""
|
232
253
|
return self.diag_layer_raw.services
|
233
254
|
|
234
255
|
@property
|
@@ -239,10 +260,6 @@ class DiagLayer:
|
|
239
260
|
def single_ecu_jobs(self) -> NamedItemList[SingleEcuJob]:
|
240
261
|
return self.diag_layer_raw.single_ecu_jobs
|
241
262
|
|
242
|
-
@property
|
243
|
-
def company_datas(self) -> NamedItemList[CompanyData]:
|
244
|
-
return self.diag_layer_raw.company_datas
|
245
|
-
|
246
263
|
@property
|
247
264
|
def requests(self) -> NamedItemList[Request]:
|
248
265
|
return self.diag_layer_raw.requests
|
@@ -264,21 +281,24 @@ class DiagLayer:
|
|
264
281
|
return self.diag_layer_raw.import_refs
|
265
282
|
|
266
283
|
@property
|
267
|
-
def
|
268
|
-
return self.diag_layer_raw.
|
284
|
+
def state_charts(self) -> NamedItemList[StateChart]:
|
285
|
+
return self.diag_layer_raw.state_charts
|
286
|
+
|
287
|
+
@property
|
288
|
+
def additional_audiences(self) -> NamedItemList[AdditionalAudience]:
|
289
|
+
return self.diag_layer_raw.additional_audiences
|
269
290
|
|
270
291
|
@property
|
271
292
|
def sub_components(self) -> NamedItemList[SubComponent]:
|
272
293
|
return self.diag_layer_raw.sub_components
|
273
294
|
|
274
295
|
@property
|
275
|
-
def
|
276
|
-
return self.diag_layer_raw.
|
296
|
+
def libraries(self) -> NamedItemList[Library]:
|
297
|
+
return self.diag_layer_raw.libraries
|
277
298
|
|
278
299
|
@property
|
279
|
-
def
|
280
|
-
|
281
|
-
return self._diag_data_dictionary_spec
|
300
|
+
def sdgs(self) -> list[SpecialDataGroup]:
|
301
|
+
return self.diag_layer_raw.sdgs
|
282
302
|
|
283
303
|
#####
|
284
304
|
# </properties forwarded to the "raw" diag layer>
|
@@ -33,6 +33,18 @@ class EcuVariant(HierarchyElement):
|
|
33
33
|
def diag_variables_raw(self) -> list[DiagVariable | OdxLinkRef]:
|
34
34
|
return self.ecu_variant_raw.diag_variables_raw
|
35
35
|
|
36
|
+
@property
|
37
|
+
def diag_variables(self) -> NamedItemList[DiagVariable]:
|
38
|
+
return self._diag_variables
|
39
|
+
|
40
|
+
@property
|
41
|
+
def variable_groups(self) -> NamedItemList[VariableGroup]:
|
42
|
+
return self._variable_groups
|
43
|
+
|
44
|
+
@property
|
45
|
+
def ecu_variant_patterns(self) -> list[EcuVariantPattern]:
|
46
|
+
return self.ecu_variant_raw.ecu_variant_patterns
|
47
|
+
|
36
48
|
@property
|
37
49
|
def dyn_defined_spec(self) -> DynDefinedSpec | None:
|
38
50
|
return self.ecu_variant_raw.dyn_defined_spec
|
@@ -56,25 +68,6 @@ class EcuVariant(HierarchyElement):
|
|
56
68
|
|
57
69
|
return None
|
58
70
|
|
59
|
-
@property
|
60
|
-
def ecu_variant_patterns(self) -> list[EcuVariantPattern]:
|
61
|
-
return self.ecu_variant_raw.ecu_variant_patterns
|
62
|
-
|
63
|
-
#######
|
64
|
-
# <properties subject to value inheritance>
|
65
|
-
#######
|
66
|
-
@property
|
67
|
-
def diag_variables(self) -> NamedItemList[DiagVariable]:
|
68
|
-
return self._diag_variables
|
69
|
-
|
70
|
-
@property
|
71
|
-
def variable_groups(self) -> NamedItemList[VariableGroup]:
|
72
|
-
return self._variable_groups
|
73
|
-
|
74
|
-
#######
|
75
|
-
# </properties subject to value inheritance>
|
76
|
-
#######
|
77
|
-
|
78
71
|
@staticmethod
|
79
72
|
def from_et(et_element: ElementTree.Element, context: OdxDocContext) -> "EcuVariant":
|
80
73
|
ecu_variant_raw = EcuVariantRaw.from_et(et_element, context)
|
@@ -438,6 +438,11 @@ class HierarchyElement(DiagLayer):
|
|
438
438
|
#######
|
439
439
|
# <properties subject to value inheritance>
|
440
440
|
#######
|
441
|
+
@property
|
442
|
+
def functional_classes(self) -> NamedItemList[FunctionalClass]:
|
443
|
+
"""All functional classes applicable to this DiagLayer"""
|
444
|
+
return self._functional_classes
|
445
|
+
|
441
446
|
@property
|
442
447
|
def diag_data_dictionary_spec(self) -> DiagDataDictionarySpec:
|
443
448
|
return self._diag_data_dictionary_spec
|
@@ -480,11 +485,6 @@ class HierarchyElement(DiagLayer):
|
|
480
485
|
"""All global negative responses applicable to this DiagLayer"""
|
481
486
|
return self._global_negative_responses
|
482
487
|
|
483
|
-
@property
|
484
|
-
def functional_classes(self) -> NamedItemList[FunctionalClass]:
|
485
|
-
"""All functional classes applicable to this DiagLayer"""
|
486
|
-
return self._functional_classes
|
487
|
-
|
488
488
|
@property
|
489
489
|
def state_charts(self) -> NamedItemList[StateChart]:
|
490
490
|
"""All state charts applicable to this DiagLayer"""
|
odxtools/diaglayers/protocol.py
CHANGED
@@ -7,6 +7,8 @@ from xml.etree import ElementTree
|
|
7
7
|
from ..comparamspec import ComparamSpec
|
8
8
|
from ..exceptions import odxassert
|
9
9
|
from ..odxdoccontext import OdxDocContext
|
10
|
+
from ..odxlink import OdxLinkRef
|
11
|
+
from ..parentref import ParentRef
|
10
12
|
from ..protstack import ProtStack
|
11
13
|
from .hierarchyelement import HierarchyElement
|
12
14
|
from .protocolraw import ProtocolRaw
|
@@ -24,14 +26,26 @@ class Protocol(HierarchyElement):
|
|
24
26
|
def protocol_raw(self) -> ProtocolRaw:
|
25
27
|
return cast(ProtocolRaw, self.diag_layer_raw)
|
26
28
|
|
29
|
+
@property
|
30
|
+
def comparam_spec_ref(self) -> OdxLinkRef:
|
31
|
+
return self.protocol_raw.comparam_spec_ref
|
32
|
+
|
27
33
|
@property
|
28
34
|
def comparam_spec(self) -> ComparamSpec:
|
29
35
|
return self.protocol_raw.comparam_spec
|
30
36
|
|
37
|
+
@property
|
38
|
+
def prot_stack_snref(self) -> str | None:
|
39
|
+
return self.protocol_raw.prot_stack_snref
|
40
|
+
|
31
41
|
@property
|
32
42
|
def prot_stack(self) -> ProtStack | None:
|
33
43
|
return self.protocol_raw.prot_stack
|
34
44
|
|
45
|
+
@property
|
46
|
+
def parent_refs(self) -> list[ParentRef]:
|
47
|
+
return self.protocol_raw.parent_refs
|
48
|
+
|
35
49
|
@staticmethod
|
36
50
|
def from_et(et_element: ElementTree.Element, context: OdxDocContext) -> "Protocol":
|
37
51
|
protocol_raw = ProtocolRaw.from_et(et_element, context)
|
odxtools/odxlink.py
CHANGED
@@ -204,8 +204,10 @@ class OdxLinkDatabase:
|
|
204
204
|
# locate an object exhibiting with the referenced local ID
|
205
205
|
# in the ID database for the document fragment
|
206
206
|
if (obj := doc_frag_db.get(ref.ref_id)) is not None:
|
207
|
-
if expected_type is not None:
|
208
|
-
|
207
|
+
if expected_type is not None and not isinstance(obj, expected_type):
|
208
|
+
odxraise(f"Referenced object for link {ref.ref_id} is of type "
|
209
|
+
f"{type(obj).__name__} which is not a subclass of expected "
|
210
|
+
f"type {expected_type.__name__}")
|
209
211
|
|
210
212
|
return obj
|
211
213
|
|
@@ -77,7 +77,7 @@ class SubComponentParamConnector(IdentifiableElement):
|
|
77
77
|
odxrequire(context.diag_layer).diag_comms, DiagService)
|
78
78
|
self._service = service
|
79
79
|
|
80
|
-
if self._service.request is
|
80
|
+
if self._service.request is None:
|
81
81
|
odxraise()
|
82
82
|
return
|
83
83
|
if not self._service.positive_responses:
|
odxtools/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: odxtools
|
3
|
-
Version: 10.2.
|
3
|
+
Version: 10.2.1
|
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>
|
@@ -107,7 +107,7 @@ odxtools/negoutputparam.py,sha256=-uP34wmnBYz_wwxJDRWYsqMIVqRdrBpjhw15Ctyvs0E,12
|
|
107
107
|
odxtools/obd.py,sha256=hjTvs7DD6_JngNOH_b362L7X6zcpNsmoY6d8DDxQoZI,1829
|
108
108
|
odxtools/odxcategory.py,sha256=hZ3_BBJFA5cNVZ8Rd2vlsbEV_qU6zECXtUJ8H-mg6Fk,2664
|
109
109
|
odxtools/odxdoccontext.py,sha256=QjdOp7jwtJVgyGwzPBH_a35xqdS24WJmlF6uNqLrp9U,460
|
110
|
-
odxtools/odxlink.py,sha256=
|
110
|
+
odxtools/odxlink.py,sha256=me0Y5yoXv6HsFGPQjo99hSt1GxpzllJlwIy0nhgpcdQ,10807
|
111
111
|
odxtools/odxtypes.py,sha256=uhlKergX9Mutax_gf-bsyf_LJwF-t18HoYt2OXcimf0,8208
|
112
112
|
odxtools/outputparam.py,sha256=oijoIXChUY7Jwds4x7OeIiyp5VTEivi61Sj5oVPjQMY,1477
|
113
113
|
odxtools/ownident.py,sha256=beX1glfBfG-s9hMD6qT_cGMZLln7LYt2X8uY4R_-_Zo,1146
|
@@ -154,7 +154,7 @@ odxtools/statetransitionref.py,sha256=j5vmWpTF4RsgS75GTLkAIgGcbkG3wtgPvIthIQOBjM
|
|
154
154
|
odxtools/staticfield.py,sha256=pVJNbdtO9-Vnf4atzpmLWzcHAII6sXnQmwBsVZ36Y3E,4477
|
155
155
|
odxtools/structure.py,sha256=LsGejNUEyXOe1tI69lAPzxpLnX_GKDd4pwGcLvV40Yw,844
|
156
156
|
odxtools/subcomponent.py,sha256=PO-Fi2qUS3IX7nPJyCciCiPUo-Vk4g3eznETTb_FrkE,4752
|
157
|
-
odxtools/subcomponentparamconnector.py,sha256=
|
157
|
+
odxtools/subcomponentparamconnector.py,sha256=Oqt5jFXbjOtAfZFcYskiARyxW6-mLk58PAOb0WvOzsE,3960
|
158
158
|
odxtools/subcomponentpattern.py,sha256=G7dAAJD_cN1QrKRgl6UTIj_o9trbkounJ-IHZGtau2k,1404
|
159
159
|
odxtools/swvariable.py,sha256=3OsXxWhKFomNPd6ASvgMr67CB7G0Sm3tBQg1fMTc7C4,679
|
160
160
|
odxtools/table.py,sha256=7JCxtclipAbbwvsJ9Gy1jYMU9OdYoAYkvjm2VpqeVWk,4978
|
@@ -178,7 +178,7 @@ odxtools/validtype.py,sha256=exe5OIqoIWgsgEm1t54pyk-U2m61DgBWI0Gew8rNYFc,194
|
|
178
178
|
odxtools/variablegroup.py,sha256=o2hHupTvYSAJgOK8YOG9-VjXZpOMQ9vp9Sssu6RvN6E,834
|
179
179
|
odxtools/variantmatcher.py,sha256=5Dad4WHHkQT6US8tnFoXxqO4wo2yGhCez_EpmnljfX4,8289
|
180
180
|
odxtools/variantpattern.py,sha256=Mt2iXrlHvdo2EZtWq_tTqOqD-MxsaMUumQLcOpTkFR8,1406
|
181
|
-
odxtools/version.py,sha256=
|
181
|
+
odxtools/version.py,sha256=n-m0uzfNiaOnNZiQObPm6Fv9pffKHdK3pGoS5Y0ivH8,513
|
182
182
|
odxtools/writepdxfile.py,sha256=I1FHKYUrUSir8XQB6Q-a0pA3Xfzem7GkM9pPnwUi7ME,9141
|
183
183
|
odxtools/xdoc.py,sha256=Ymir_UH5dz8h-T4_kVCm2M_zyip7lDSnQ_wJvu-BCAA,1463
|
184
184
|
odxtools/cli/__init__.py,sha256=T7ano_FIyzBASxYpmcA5VJXU5bQLIy_Qk0HE_SDKelY,106
|
@@ -216,18 +216,18 @@ odxtools/compumethods/tabintpcompumethod.py,sha256=Jb57a3xKtFreZmwDdvKbmPQ4Dg0fR
|
|
216
216
|
odxtools/compumethods/texttablecompumethod.py,sha256=0aLSPsOsb3XgP1aj13CkpDfSi4PIZID6ErnAXiQgtZo,5957
|
217
217
|
odxtools/diaglayers/basevariant.py,sha256=urQiHezdLQ2TM6X8LfPTQHIMELxAP_CKFiHxZI3JKzQ,4660
|
218
218
|
odxtools/diaglayers/basevariantraw.py,sha256=y7yujzGooVuPuX0bAtCNcvSCSrKQObgmyNABI5Pypyc,4994
|
219
|
-
odxtools/diaglayers/diaglayer.py,sha256=
|
219
|
+
odxtools/diaglayers/diaglayer.py,sha256=KXF9R6ZmtYOn52VEHt-Yvl72D8eODqV0LVl49TsQKyw,16992
|
220
220
|
odxtools/diaglayers/diaglayerraw.py,sha256=cS3w4FcjuTPZ06wyfXPRrI99X_zsx9vjbaDwFCyGzn4,13059
|
221
221
|
odxtools/diaglayers/diaglayertype.py,sha256=o1Vz6ycSqkDGNxNErcqpXUs0SAk9c4NSmxPDGWlufOE,1316
|
222
222
|
odxtools/diaglayers/ecushareddata.py,sha256=2mg6bS50oSJlpqYDgRfXqPbkZHSvY4fFF3b_VwBhPwE,3336
|
223
223
|
odxtools/diaglayers/ecushareddataraw.py,sha256=APSi5JRkzA7kcpz5ihKva4Gskh0NNxwnS3RK4G3H6I0,3376
|
224
|
-
odxtools/diaglayers/ecuvariant.py,sha256=
|
224
|
+
odxtools/diaglayers/ecuvariant.py,sha256=bZsG2QEwwZsThb2jylYE52zS6PEep2SQwP6xx-V_N_g,4732
|
225
225
|
odxtools/diaglayers/ecuvariantraw.py,sha256=wlyLX50zYx3Ai7AADU6G4MCnH0kIkj9CzPTagT7TSUA,4993
|
226
226
|
odxtools/diaglayers/functionalgroup.py,sha256=unQkoHGdRHCQi-ENJYxCbhGtuWLWD0UpDHAe1hNLKQA,4108
|
227
227
|
odxtools/diaglayers/functionalgroupraw.py,sha256=QNtJfMXWwHXxNRCnszbAjN8Y615Vw4neRA1RrfIzv3M,3992
|
228
|
-
odxtools/diaglayers/hierarchyelement.py,sha256=
|
228
|
+
odxtools/diaglayers/hierarchyelement.py,sha256=mfjfj0X3mnDCx550YkJu8OEtq4FcP1HbpRDEbxnpktY,36420
|
229
229
|
odxtools/diaglayers/hierarchyelementraw.py,sha256=WKA6YlH11Wrc1KUQXrJYBeDIe-DrKvEFWyjEtkjaj_c,2049
|
230
|
-
odxtools/diaglayers/protocol.py,sha256=
|
230
|
+
odxtools/diaglayers/protocol.py,sha256=1Bc5ICvihzjjitwZ3x2N9-4-N_gyuvJwQTiWUm6O7V0,2463
|
231
231
|
odxtools/diaglayers/protocolraw.py,sha256=qWlpec5NfjFuBOb-5phStJXelRbwl8yFGpnI1L68moI,3199
|
232
232
|
odxtools/parameters/codedconstparameter.py,sha256=v7f_4FNx8eRWeOD8Y4Hx3LBhNCP_4e5AqOfoy3hyB7o,3907
|
233
233
|
odxtools/parameters/createanyparameter.py,sha256=fMkf0HJ6RHzOvu6Ib6vQIMBkdCblKtZ4K-PG0lthwWU,2512
|
@@ -314,9 +314,9 @@ odxtools/templates/macros/printStructure.xml.jinja2,sha256=M8p82SlgKaDk6nJA-0wr6
|
|
314
314
|
odxtools/templates/macros/printSubComponent.xml.jinja2,sha256=R3DxnK6NysUQL84uf2kGYMoF_VVym2l7H-J0JZ1uLKc,3416
|
315
315
|
odxtools/templates/macros/printTable.xml.jinja2,sha256=iMmq4tSFl_nc44HNdFqzk4XLYjrbQ73cKm7kMVdRLmc,3336
|
316
316
|
odxtools/templates/macros/printUnitSpec.xml.jinja2,sha256=pgZdrPdWi3OGtDIFNpEDz_TQs103uuRQoDdmGkNffOM,2878
|
317
|
-
odxtools-10.2.
|
318
|
-
odxtools-10.2.
|
319
|
-
odxtools-10.2.
|
320
|
-
odxtools-10.2.
|
321
|
-
odxtools-10.2.
|
322
|
-
odxtools-10.2.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|