odxtools 6.7.0__py3-none-any.whl → 9.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- odxtools/__init__.py +6 -4
- odxtools/additionalaudience.py +3 -5
- odxtools/admindata.py +5 -7
- odxtools/audience.py +10 -13
- odxtools/basecomparam.py +3 -5
- odxtools/basicstructure.py +55 -240
- odxtools/cli/_parser_utils.py +1 -1
- odxtools/cli/_print_utils.py +168 -134
- odxtools/cli/browse.py +111 -92
- odxtools/cli/compare.py +90 -71
- odxtools/cli/list.py +24 -15
- odxtools/cli/snoop.py +28 -5
- odxtools/codec.py +211 -0
- odxtools/commrelation.py +122 -0
- odxtools/companydata.py +5 -7
- odxtools/companydocinfo.py +7 -8
- odxtools/companyrevisioninfo.py +3 -5
- odxtools/companyspecificinfo.py +8 -9
- odxtools/comparam.py +4 -6
- odxtools/comparaminstance.py +7 -9
- odxtools/comparamspec.py +16 -54
- odxtools/comparamsubset.py +22 -62
- odxtools/complexcomparam.py +5 -7
- odxtools/compumethods/compucodecompumethod.py +63 -0
- odxtools/compumethods/compuconst.py +31 -0
- odxtools/compumethods/compudefaultvalue.py +27 -0
- odxtools/compumethods/compuinternaltophys.py +56 -0
- odxtools/compumethods/compuinversevalue.py +7 -0
- odxtools/compumethods/compumethod.py +93 -12
- odxtools/compumethods/compuphystointernal.py +56 -0
- odxtools/compumethods/compurationalcoeffs.py +20 -9
- odxtools/compumethods/compuscale.py +30 -35
- odxtools/compumethods/createanycompumethod.py +28 -161
- odxtools/compumethods/identicalcompumethod.py +31 -6
- odxtools/compumethods/linearcompumethod.py +69 -189
- odxtools/compumethods/linearsegment.py +190 -0
- odxtools/compumethods/ratfunccompumethod.py +106 -0
- odxtools/compumethods/ratfuncsegment.py +87 -0
- odxtools/compumethods/scalelinearcompumethod.py +132 -26
- odxtools/compumethods/scaleratfunccompumethod.py +113 -0
- odxtools/compumethods/tabintpcompumethod.py +119 -99
- odxtools/compumethods/texttablecompumethod.py +107 -43
- odxtools/createanydiagcodedtype.py +10 -67
- odxtools/database.py +167 -87
- odxtools/dataobjectproperty.py +15 -25
- odxtools/decodestate.py +9 -15
- odxtools/description.py +47 -0
- odxtools/determinenumberofitems.py +4 -5
- odxtools/diagcodedtype.py +36 -106
- odxtools/diagcomm.py +24 -12
- odxtools/diagdatadictionaryspec.py +33 -34
- odxtools/diaglayercontainer.py +46 -54
- odxtools/diaglayers/basevariant.py +128 -0
- odxtools/diaglayers/basevariantraw.py +123 -0
- odxtools/diaglayers/diaglayer.py +432 -0
- odxtools/{diaglayerraw.py → diaglayers/diaglayerraw.py} +105 -120
- odxtools/diaglayers/ecushareddata.py +96 -0
- odxtools/diaglayers/ecushareddataraw.py +87 -0
- odxtools/diaglayers/ecuvariant.py +124 -0
- odxtools/diaglayers/ecuvariantraw.py +129 -0
- odxtools/diaglayers/functionalgroup.py +110 -0
- odxtools/diaglayers/functionalgroupraw.py +106 -0
- odxtools/{diaglayer.py → diaglayers/hierarchyelement.py} +209 -448
- odxtools/diaglayers/hierarchyelementraw.py +58 -0
- odxtools/diaglayers/protocol.py +64 -0
- odxtools/diaglayers/protocolraw.py +91 -0
- odxtools/diagnostictroublecode.py +8 -9
- odxtools/diagservice.py +56 -43
- odxtools/diagvariable.py +113 -0
- odxtools/docrevision.py +5 -7
- odxtools/dopbase.py +15 -17
- odxtools/dtcdop.py +168 -50
- odxtools/dynamicendmarkerfield.py +134 -0
- odxtools/dynamiclengthfield.py +41 -37
- odxtools/dyndefinedspec.py +177 -0
- odxtools/dynenddopref.py +38 -0
- odxtools/ecuvariantmatcher.py +6 -7
- odxtools/element.py +13 -15
- odxtools/encodestate.py +199 -22
- odxtools/endofpdufield.py +31 -18
- odxtools/environmentdata.py +8 -1
- odxtools/environmentdatadescription.py +198 -38
- odxtools/exceptions.py +11 -2
- odxtools/field.py +10 -10
- odxtools/functionalclass.py +3 -5
- odxtools/inputparam.py +3 -12
- odxtools/leadinglengthinfotype.py +37 -18
- odxtools/library.py +66 -0
- odxtools/loadfile.py +64 -0
- odxtools/matchingparameter.py +3 -3
- odxtools/message.py +0 -7
- odxtools/minmaxlengthtype.py +61 -33
- odxtools/modification.py +3 -5
- odxtools/multiplexer.py +128 -73
- odxtools/multiplexercase.py +13 -14
- odxtools/multiplexerdefaultcase.py +15 -12
- odxtools/multiplexerswitchkey.py +4 -5
- odxtools/nameditemlist.py +29 -5
- odxtools/negoutputparam.py +3 -5
- odxtools/odxcategory.py +83 -0
- odxtools/odxlink.py +60 -51
- odxtools/odxtypes.py +37 -5
- odxtools/outputparam.py +4 -15
- odxtools/parameterinfo.py +218 -67
- odxtools/parameters/codedconstparameter.py +16 -24
- odxtools/parameters/dynamicparameter.py +5 -4
- odxtools/parameters/lengthkeyparameter.py +60 -26
- odxtools/parameters/matchingrequestparameter.py +23 -11
- odxtools/parameters/nrcconstparameter.py +45 -46
- odxtools/parameters/parameter.py +54 -56
- odxtools/parameters/parameterwithdop.py +15 -25
- odxtools/parameters/physicalconstantparameter.py +15 -18
- odxtools/parameters/reservedparameter.py +6 -2
- odxtools/parameters/systemparameter.py +55 -11
- odxtools/parameters/tableentryparameter.py +3 -2
- odxtools/parameters/tablekeyparameter.py +103 -49
- odxtools/parameters/tablestructparameter.py +47 -48
- odxtools/parameters/valueparameter.py +16 -20
- odxtools/paramlengthinfotype.py +52 -32
- odxtools/parentref.py +16 -2
- odxtools/physicaldimension.py +3 -8
- odxtools/progcode.py +26 -11
- odxtools/protstack.py +3 -5
- odxtools/py.typed +0 -0
- odxtools/relateddoc.py +7 -9
- odxtools/request.py +120 -10
- odxtools/response.py +123 -23
- odxtools/scaleconstr.py +3 -3
- odxtools/servicebinner.py +1 -1
- odxtools/singleecujob.py +12 -10
- odxtools/snrefcontext.py +29 -0
- odxtools/specialdata.py +3 -5
- odxtools/specialdatagroup.py +7 -9
- odxtools/specialdatagroupcaption.py +3 -6
- odxtools/standardlengthtype.py +80 -14
- odxtools/state.py +3 -5
- odxtools/statechart.py +13 -19
- odxtools/statetransition.py +7 -17
- odxtools/staticfield.py +31 -25
- odxtools/subcomponent.py +288 -0
- odxtools/swvariable.py +21 -0
- odxtools/table.py +7 -8
- odxtools/tablerow.py +19 -11
- odxtools/teammember.py +3 -5
- odxtools/templates/comparam-spec.odx-c.xml.jinja2 +4 -24
- odxtools/templates/comparam-subset.odx-cs.xml.jinja2 +5 -26
- odxtools/templates/diag_layer_container.odx-d.xml.jinja2 +15 -31
- odxtools/templates/{index.xml.xml.jinja2 → index.xml.jinja2} +1 -1
- odxtools/templates/macros/printAudience.xml.jinja2 +1 -1
- odxtools/templates/macros/printBaseVariant.xml.jinja2 +53 -0
- odxtools/templates/macros/printCompanyData.xml.jinja2 +4 -7
- odxtools/templates/macros/printComparam.xml.jinja2 +6 -4
- odxtools/templates/macros/printComparamRef.xml.jinja2 +5 -12
- odxtools/templates/macros/printCompuMethod.xml.jinja2 +147 -0
- odxtools/templates/macros/printDOP.xml.jinja2 +27 -133
- odxtools/templates/macros/printDescription.xml.jinja2 +18 -0
- odxtools/templates/macros/printDiagComm.xml.jinja2 +1 -1
- odxtools/templates/macros/printDiagLayer.xml.jinja2 +222 -0
- odxtools/templates/macros/printDiagVariable.xml.jinja2 +66 -0
- odxtools/templates/macros/printDynDefinedSpec.xml.jinja2 +48 -0
- odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2 +16 -0
- odxtools/templates/macros/printDynamicLengthField.xml.jinja2 +1 -1
- odxtools/templates/macros/printEcuSharedData.xml.jinja2 +30 -0
- odxtools/templates/macros/printEcuVariant.xml.jinja2 +53 -0
- odxtools/templates/macros/printEcuVariantPattern.xml.jinja2 +1 -1
- odxtools/templates/macros/printElementId.xml.jinja2 +8 -3
- odxtools/templates/macros/printEndOfPdu.xml.jinja2 +1 -1
- odxtools/templates/macros/printEnvDataDesc.xml.jinja2 +1 -1
- odxtools/templates/macros/printFunctionalClass.xml.jinja2 +1 -1
- odxtools/templates/macros/printFunctionalGroup.xml.jinja2 +40 -0
- odxtools/templates/macros/printHierarchyElement.xml.jinja2 +24 -0
- odxtools/templates/macros/printLibrary.xml.jinja2 +21 -0
- odxtools/templates/macros/printMux.xml.jinja2 +4 -3
- odxtools/templates/macros/printOdxCategory.xml.jinja2 +28 -0
- odxtools/templates/macros/printParam.xml.jinja2 +11 -12
- odxtools/templates/macros/printProtStack.xml.jinja2 +1 -1
- odxtools/templates/macros/printProtocol.xml.jinja2 +30 -0
- odxtools/templates/macros/printRequest.xml.jinja2 +1 -1
- odxtools/templates/macros/printResponse.xml.jinja2 +1 -1
- odxtools/templates/macros/printService.xml.jinja2 +3 -2
- odxtools/templates/macros/printSingleEcuJob.xml.jinja2 +5 -26
- odxtools/templates/macros/printSpecialData.xml.jinja2 +1 -1
- odxtools/templates/macros/printState.xml.jinja2 +1 -1
- odxtools/templates/macros/printStateChart.xml.jinja2 +1 -1
- odxtools/templates/macros/printStateTransition.xml.jinja2 +1 -1
- odxtools/templates/macros/printStaticField.xml.jinja2 +1 -1
- odxtools/templates/macros/printStructure.xml.jinja2 +1 -1
- odxtools/templates/macros/printSubComponent.xml.jinja2 +104 -0
- odxtools/templates/macros/printTable.xml.jinja2 +4 -5
- odxtools/templates/macros/printUnitSpec.xml.jinja2 +3 -5
- odxtools/uds.py +2 -10
- odxtools/unit.py +4 -8
- odxtools/unitgroup.py +3 -5
- odxtools/unitspec.py +17 -17
- odxtools/utils.py +38 -20
- odxtools/variablegroup.py +32 -0
- odxtools/version.py +2 -2
- odxtools/{write_pdx_file.py → writepdxfile.py} +20 -10
- odxtools/xdoc.py +3 -5
- {odxtools-6.7.0.dist-info → odxtools-9.3.0.dist-info}/METADATA +20 -21
- odxtools-9.3.0.dist-info/RECORD +228 -0
- {odxtools-6.7.0.dist-info → odxtools-9.3.0.dist-info}/WHEEL +1 -1
- odxtools/createcompanydatas.py +0 -17
- odxtools/createsdgs.py +0 -19
- odxtools/load_file.py +0 -13
- odxtools/load_odx_d_file.py +0 -6
- odxtools/load_pdx_file.py +0 -8
- odxtools/templates/macros/printVariant.xml.jinja2 +0 -216
- odxtools-6.7.0.dist-info/RECORD +0 -182
- /odxtools/{diaglayertype.py → diaglayers/diaglayertype.py} +0 -0
- {odxtools-6.7.0.dist-info → odxtools-9.3.0.dist-info}/LICENSE +0 -0
- {odxtools-6.7.0.dist-info → odxtools-9.3.0.dist-info}/entry_points.txt +0 -0
- {odxtools-6.7.0.dist-info → odxtools-9.3.0.dist-info}/top_level.txt +0 -0
odxtools/utils.py
CHANGED
@@ -1,32 +1,50 @@
|
|
1
1
|
# SPDX-License-Identifier: MIT
|
2
2
|
import dataclasses
|
3
3
|
import re
|
4
|
-
from typing import Any, Dict, Optional
|
5
|
-
|
4
|
+
from typing import TYPE_CHECKING, Any, Dict, Optional
|
5
|
+
|
6
|
+
if TYPE_CHECKING:
|
7
|
+
from .database import Database
|
8
|
+
from .diaglayers.diaglayer import DiagLayer
|
9
|
+
from .snrefcontext import SnRefContext
|
10
|
+
|
11
|
+
|
12
|
+
def retarget_snrefs(database: "Database",
|
13
|
+
diag_layer: "DiagLayer",
|
14
|
+
context: Optional["SnRefContext"] = None) -> None:
|
15
|
+
"""Re-resolve the short name references reachable by a
|
16
|
+
DiagLayer to this DiagLayer
|
17
|
+
|
18
|
+
This implies that after the SNREFs have been retargeted, accessing
|
19
|
+
the resolved objects via a different diagnostic layer might not be
|
20
|
+
correct. E.g.: If the ECU variants "V1" and "V2" are derived from
|
21
|
+
the base variant "BV", BV defines a short name reference to a data
|
22
|
+
object property called "Foo" and V1 and V2 both define a "Foo"
|
23
|
+
DOP, the reference in the base variant to Foo ought to be resolved
|
24
|
+
differently depending on whether it is accessed via V1 or
|
25
|
+
V2. Since odxtools resolves all references ahead of time, a fixed
|
26
|
+
variant has to be chosen. This method allows to switch the variant
|
27
|
+
to another one.
|
6
28
|
|
29
|
+
"""
|
30
|
+
from .snrefcontext import SnRefContext
|
7
31
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
The description is located underneath the DESC tag of an an ODX
|
12
|
-
element."""
|
13
|
-
|
14
|
-
if et_element is None:
|
15
|
-
return None
|
32
|
+
if context is None:
|
33
|
+
context = SnRefContext()
|
16
34
|
|
17
|
-
if
|
18
|
-
|
19
|
-
f"'{et_element.tag}' XML node. (Must be a 'DESC' node!)")
|
35
|
+
if context.database is None:
|
36
|
+
context.database = database
|
20
37
|
|
21
|
-
|
22
|
-
|
23
|
-
for e in et_element:
|
24
|
-
raw_string += ElementTree.tostring(e, encoding="unicode")
|
38
|
+
if context.diag_layer is None:
|
39
|
+
context.diag_layer = diag_layer
|
25
40
|
|
26
|
-
#
|
27
|
-
|
41
|
+
# retarget the objects "owned" by the layer itself
|
42
|
+
diag_layer._resolve_snrefs(context)
|
28
43
|
|
29
|
-
|
44
|
+
# retarget all parents of the current layer (if any)
|
45
|
+
if (parent_refs := getattr(diag_layer, "parent_refs", None)) is not None:
|
46
|
+
for pr in parent_refs:
|
47
|
+
retarget_snrefs(database, pr.layer, context)
|
30
48
|
|
31
49
|
|
32
50
|
def dataclass_fields_asdict(obj: Any) -> Dict[str, Any]:
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
2
|
+
import typing
|
3
|
+
from dataclasses import dataclass
|
4
|
+
from typing import TYPE_CHECKING, List, runtime_checkable
|
5
|
+
from xml.etree import ElementTree
|
6
|
+
|
7
|
+
from .element import IdentifiableElement, NamedElement
|
8
|
+
from .nameditemlist import NamedItemList
|
9
|
+
from .odxlink import OdxDocFragment
|
10
|
+
from .utils import dataclass_fields_asdict
|
11
|
+
|
12
|
+
if TYPE_CHECKING:
|
13
|
+
pass
|
14
|
+
|
15
|
+
|
16
|
+
@runtime_checkable
|
17
|
+
class HasVariableGroups(typing.Protocol):
|
18
|
+
|
19
|
+
@property
|
20
|
+
def variable_groups(self) -> NamedItemList["VariableGroup"]:
|
21
|
+
...
|
22
|
+
|
23
|
+
|
24
|
+
@dataclass
|
25
|
+
class VariableGroup(IdentifiableElement):
|
26
|
+
|
27
|
+
@staticmethod
|
28
|
+
def from_et(et_element: ElementTree.Element,
|
29
|
+
doc_frags: List[OdxDocFragment]) -> "VariableGroup":
|
30
|
+
kwargs = dataclass_fields_asdict(NamedElement.from_et(et_element, doc_frags))
|
31
|
+
|
32
|
+
return VariableGroup(**kwargs)
|
odxtools/version.py
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
# SPDX-License-Identifier: MIT
|
2
2
|
import datetime
|
3
3
|
import inspect
|
4
|
+
import mimetypes
|
4
5
|
import os
|
5
6
|
import time
|
6
7
|
import zipfile
|
7
|
-
from typing import Any, Dict,
|
8
|
+
from typing import Any, Dict, Optional
|
8
9
|
|
9
10
|
import jinja2
|
10
11
|
|
@@ -60,7 +61,6 @@ __templates_dir = os.path.sep.join([os.path.dirname(__module_filename), "templat
|
|
60
61
|
def write_pdx_file(
|
61
62
|
output_file_name: str,
|
62
63
|
database: Database,
|
63
|
-
auxiliary_content_specifiers: Optional[List[Tuple[str, bytes]]] = None,
|
64
64
|
templates_dir: str = __templates_dir,
|
65
65
|
) -> bool:
|
66
66
|
"""
|
@@ -68,9 +68,6 @@ def write_pdx_file(
|
|
68
68
|
"""
|
69
69
|
global odxdatabase
|
70
70
|
|
71
|
-
if auxiliary_content_specifiers is None:
|
72
|
-
auxiliary_content_specifiers = []
|
73
|
-
|
74
71
|
odxdatabase = database
|
75
72
|
|
76
73
|
file_index = []
|
@@ -96,12 +93,18 @@ def write_pdx_file(
|
|
96
93
|
# are written based on the database)
|
97
94
|
continue
|
98
95
|
|
99
|
-
template_file_mime_type =
|
96
|
+
template_file_mime_type = None
|
100
97
|
if template_file_name.endswith(".odx-cs"):
|
101
98
|
template_file_mime_type = "application/x-asam.odx.odx-cs"
|
102
99
|
elif template_file_name.endswith(".odx-d"):
|
103
100
|
template_file_mime_type = "application/x-asam.odx.odx-d"
|
104
101
|
|
102
|
+
guessed_mime_type, guessed_encoding = mimetypes.guess_type(template_file_name)
|
103
|
+
if template_file_mime_type is None and guessed_mime_type is not None:
|
104
|
+
template_file_mime_type = guessed_mime_type
|
105
|
+
else:
|
106
|
+
template_file_mime_type = "application/octet-stream"
|
107
|
+
|
105
108
|
in_path = [root]
|
106
109
|
in_path.append(template_file_name)
|
107
110
|
in_file_name = os.path.sep.join(in_path)
|
@@ -115,22 +118,29 @@ def write_pdx_file(
|
|
115
118
|
out_file.write(open(in_file_name, "rb").read())
|
116
119
|
|
117
120
|
# write the auxiliary files
|
118
|
-
for output_file_name,
|
121
|
+
for output_file_name, data_file in database.auxiliary_files.items():
|
119
122
|
file_cdate = datetime.datetime.fromtimestamp(time.time())
|
120
123
|
creation_date = file_cdate.strftime("%Y-%m-%dT%H:%M:%S")
|
121
124
|
|
122
|
-
mime_type =
|
125
|
+
mime_type = None
|
123
126
|
if output_file_name.endswith(".odx-cs"):
|
124
127
|
mime_type = "application/x-asam.odx.odx-cs"
|
125
128
|
elif output_file_name.endswith(".odx-d"):
|
126
129
|
mime_type = "application/x-asam.odx.odx-d"
|
127
130
|
|
131
|
+
guessed_mime_type, guessed_encoding = mimetypes.guess_type(output_file_name)
|
132
|
+
if mime_type is None and guessed_mime_type is not None:
|
133
|
+
mime_type = guessed_mime_type
|
134
|
+
else:
|
135
|
+
mime_type = "application/octet-stream"
|
136
|
+
|
128
137
|
zf_name = os.path.basename(output_file_name)
|
129
138
|
with zf.open(zf_name, "w") as out_file:
|
130
139
|
file_index.append((zf_name, creation_date, mime_type))
|
131
|
-
out_file.write(
|
140
|
+
out_file.write(data_file.read())
|
132
141
|
|
133
142
|
jinja_env = jinja2.Environment(loader=jinja2.FileSystemLoader(templates_dir))
|
143
|
+
jinja_env.globals["getattr"] = getattr
|
134
144
|
jinja_env.globals["hasattr"] = hasattr
|
135
145
|
jinja_env.globals["odxraise"] = jinja2_odxraise_helper
|
136
146
|
jinja_env.globals["make_xml_attrib"] = make_xml_attrib
|
@@ -187,7 +197,7 @@ def write_pdx_file(
|
|
187
197
|
|
188
198
|
# write the index.xml file
|
189
199
|
vars["file_index"] = file_index
|
190
|
-
index_tpl = jinja_env.get_template("index.xml.
|
200
|
+
index_tpl = jinja_env.get_template("index.xml.jinja2")
|
191
201
|
text = index_tpl.render(**vars)
|
192
202
|
zf.writestr("index.xml", text)
|
193
203
|
|
odxtools/xdoc.py
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
# SPDX-License-Identifier: MIT
|
2
2
|
from dataclasses import dataclass
|
3
|
-
from typing import
|
3
|
+
from typing import Any, Dict, List, Optional
|
4
4
|
from xml.etree import ElementTree
|
5
5
|
|
6
6
|
from .element import NamedElement
|
7
7
|
from .odxlink import OdxDocFragment, OdxLinkDatabase, OdxLinkId
|
8
|
+
from .snrefcontext import SnRefContext
|
8
9
|
from .utils import dataclass_fields_asdict
|
9
10
|
|
10
|
-
if TYPE_CHECKING:
|
11
|
-
from .diaglayer import DiagLayer
|
12
|
-
|
13
11
|
|
14
12
|
@dataclass
|
15
13
|
class XDoc(NamedElement):
|
@@ -45,5 +43,5 @@ class XDoc(NamedElement):
|
|
45
43
|
def _resolve_odxlinks(self, odxlinks: OdxLinkDatabase) -> None:
|
46
44
|
pass
|
47
45
|
|
48
|
-
def _resolve_snrefs(self,
|
46
|
+
def _resolve_snrefs(self, context: SnRefContext) -> None:
|
49
47
|
pass
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.2
|
2
2
|
Name: odxtools
|
3
|
-
Version:
|
3
|
+
Version: 9.3.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>
|
@@ -22,28 +22,27 @@ Classifier: Operating System :: OS Independent
|
|
22
22
|
Requires-Python: >=3.8
|
23
23
|
Description-Content-Type: text/markdown
|
24
24
|
License-File: LICENSE
|
25
|
-
Requires-Dist: bitstruct
|
26
|
-
Requires-Dist:
|
27
|
-
Requires-Dist: jinja2
|
28
|
-
Requires-Dist: python-can
|
29
|
-
Requires-Dist: markdownify
|
30
|
-
Requires-Dist: deprecation
|
25
|
+
Requires-Dist: bitstruct>=8.17
|
26
|
+
Requires-Dist: argparse_addons>=0.12
|
27
|
+
Requires-Dist: jinja2>=3.1
|
28
|
+
Requires-Dist: python-can>=4.2
|
29
|
+
Requires-Dist: markdownify>=0.11
|
30
|
+
Requires-Dist: deprecation>=2.1
|
31
31
|
Requires-Dist: packaging
|
32
|
-
Requires-Dist:
|
33
|
-
Requires-Dist:
|
34
|
-
Requires-Dist: typing-extensions >=4.9
|
35
|
-
Provides-Extra: all
|
36
|
-
Requires-Dist: odxtools[browse-tool,examples,test] ; extra == 'all'
|
32
|
+
Requires-Dist: rich>=13.7
|
33
|
+
Requires-Dist: typing_extensions>=4.9
|
37
34
|
Provides-Extra: browse-tool
|
38
|
-
Requires-Dist: InquirerPy
|
39
|
-
Provides-Extra: examples
|
40
|
-
Requires-Dist: can-isotp >=1.9 ; extra == 'examples'
|
35
|
+
Requires-Dist: InquirerPy>=0.3.4; extra == "browse-tool"
|
41
36
|
Provides-Extra: test
|
42
|
-
Requires-Dist: mypy
|
43
|
-
Requires-Dist: types-tabulate
|
44
|
-
Requires-Dist: ruff
|
45
|
-
Requires-Dist: pytest
|
46
|
-
Requires-Dist: coverage
|
37
|
+
Requires-Dist: mypy>=1.5; extra == "test"
|
38
|
+
Requires-Dist: types-tabulate>=0.9.0.3; extra == "test"
|
39
|
+
Requires-Dist: ruff>=0.0.290; extra == "test"
|
40
|
+
Requires-Dist: pytest>=7.4; extra == "test"
|
41
|
+
Requires-Dist: coverage>=7.3; extra == "test"
|
42
|
+
Provides-Extra: examples
|
43
|
+
Requires-Dist: can-isotp>=1.9; extra == "examples"
|
44
|
+
Provides-Extra: all
|
45
|
+
Requires-Dist: odxtools[browse-tool,examples,test]; extra == "all"
|
47
46
|
|
48
47
|
<!-- SPDX-License-Identifier: MIT -->
|
49
48
|
[](https://pypi.org/project/odxtools)
|
@@ -0,0 +1,228 @@
|
|
1
|
+
odxtools/__init__.py,sha256=kfejU9B_COPKCNfhbzkq_RuQ1VpH0S_EA4gstYaANtk,2458
|
2
|
+
odxtools/__main__.py,sha256=MKzFqY8KAV0BGsBXs04QwPpW5OGuT-rZQ4QlM8Tar8Y,119
|
3
|
+
odxtools/additionalaudience.py,sha256=Xjy_PhTfTV23oAMvml5XeZw3ex8xssIhgRseSsxKcxQ,956
|
4
|
+
odxtools/admindata.py,sha256=ue5MnYJK_jxNq6Okxy4aGtH15uBAnWXIjMBFSh36Q3g,1879
|
5
|
+
odxtools/audience.py,sha256=_O6UPKnrDbwMMKRnCJ5b8M3_I2jU5jMR6Ss5zLzk9yM,3361
|
6
|
+
odxtools/basecomparam.py,sha256=VxpIsTr6-S4e8Vw72hJXSLUFU5TvHy5CM0sweVL-ZWE,2384
|
7
|
+
odxtools/basicstructure.py,sha256=GcyZuasaH62JcINgyeD300N297q7_LP6iMfDy8fwzMg,5071
|
8
|
+
odxtools/codec.py,sha256=2aTfrQc0-cNuPAfXeDDyjxXAHjBJ1xy3ELCVeA9UQP0,8108
|
9
|
+
odxtools/commrelation.py,sha256=Gh3CqMuF9rS0X107oxUkISNT2VWDZVPCpOSu54q7hcs,4793
|
10
|
+
odxtools/companydata.py,sha256=o8vRONHfzmon3Ws0LLKX3-9Och34Uu91aAmBnNg2N34,2539
|
11
|
+
odxtools/companydocinfo.py,sha256=fcceuYX8eTKhVhtmji6yiMRi6gtqPAJdi5kpo-wyL_8,2267
|
12
|
+
odxtools/companyrevisioninfo.py,sha256=rim57tX4jFoJq4Xvdet7UUHMA7MpcIjMQQrL-YTWAh0,1356
|
13
|
+
odxtools/companyspecificinfo.py,sha256=Fww7CqQmU-4HUtyaJatcgg9VV8iZzj4YQ5M0UqJVs2c,1537
|
14
|
+
odxtools/comparam.py,sha256=uVThBbKO8_aoTWYFH5OhyKdAnq1Psq2gifEmvfL0-I0,1592
|
15
|
+
odxtools/comparaminstance.py,sha256=NZImeN3HSfjUx_xyRghH8yDPD8wd5_RadNGWeQD16KI,4949
|
16
|
+
odxtools/comparamspec.py,sha256=RvkFc9rcxDL_S8bGnTRVJOW1DzHXLXIr_VoHs4feijQ,1822
|
17
|
+
odxtools/comparamsubset.py,sha256=uy7ZxtTjAtTK-9Uh7AD-J0-LcgECJCsyAboWbQMo1rQ,3796
|
18
|
+
odxtools/complexcomparam.py,sha256=4EJQXVmi_i3Eas5LAF-sEC5XnAUMZKr2sS6LoDNskk0,3729
|
19
|
+
odxtools/complexdop.py,sha256=AHkHMf_IEWfy-_zSiCuZXmdTNCXiCOpg5GRZ5uMVV5A,280
|
20
|
+
odxtools/createanycomparam.py,sha256=RP0XA2Ut4GL2NWy05RvKBrTnpbvvCG2XuNL8OO-9rbI,617
|
21
|
+
odxtools/createanydiagcodedtype.py,sha256=0DVmMj4UCDYIg0zu9pgTplyhHmRedz1KJcchq1uKMjg,1216
|
22
|
+
odxtools/createecuvariantpatterns.py,sha256=FXHLGR4M791MRkpU2_keck88hoMYkuyPiCUxuGbUasQ,559
|
23
|
+
odxtools/database.py,sha256=VJk-EOzHHtxjkhP7o0h470B0oyg73ZafK3w1UjnwRNM,9945
|
24
|
+
odxtools/dataobjectproperty.py,sha256=otbbtGadW_W9nr5sL9Fug5_bU91eYeOYyfBWa7sb3B0,6052
|
25
|
+
odxtools/decodestate.py,sha256=jJxLUzUYZ0C4t18FhJzo2iRTP8DF7BzrWLtRTTlLsJI,4885
|
26
|
+
odxtools/description.py,sha256=UoACftC_n7fQ1n9WDwCzizStMH0HCO2Qv0YLRaSjEgs,1484
|
27
|
+
odxtools/determinenumberofitems.py,sha256=DxM9udr1MQfEojiLdc35bbjniQl1fkeHcTMpoo9AfPI,1558
|
28
|
+
odxtools/diagcodedtype.py,sha256=LeL4UzaDM70XN2ec-4c7pdE6Z671TQTS7ivC8XNbd8M,4620
|
29
|
+
odxtools/diagcomm.py,sha256=j8esUkogoxHBwIEUBkAoXe28jX3vaRnnrgCR_gdP6VY,8110
|
30
|
+
odxtools/diagdatadictionaryspec.py,sha256=2zy5f-xnfGI0bnjPOEwG_IJxfsHhXZoOfdIS_fOr3L0,10552
|
31
|
+
odxtools/diaglayercontainer.py,sha256=giiRUB_wlirogJLpJ3qrbUXgM_5JhHD6VXPPhDGTiDk,5318
|
32
|
+
odxtools/diagnostictroublecode.py,sha256=jKtO8JqU0HRpeSyrcHn4s21N4Jj-p19WVP-qw2H98gY,2459
|
33
|
+
odxtools/diagservice.py,sha256=y1_qKI7kJXDWpjpw91loIdf-K7Ozo45BsYiOhVYGuXg,10291
|
34
|
+
odxtools/diagvariable.py,sha256=KUyRCV-H5xKITWYk9wxDnaS_N2nwDFGQzHaQRfNndKA,3829
|
35
|
+
odxtools/docrevision.py,sha256=m57a4lCWeR6QvNNxtwUNpLXAMgSq29ks1HorxoipFVk,2698
|
36
|
+
odxtools/dopbase.py,sha256=NCTTq2NF4DJI9nUAwBoa79IBgBjQtWo4V0WvkxuTx5g,2616
|
37
|
+
odxtools/dtcdop.py,sha256=3H0jSH6EHOA0-UJ9GcJwJuBCCciPhxZsz_dfRnNYF7A,11560
|
38
|
+
odxtools/dynamicendmarkerfield.py,sha256=Q7KKOBNSrAg5cehEP3i4YTPiqz5UetEIJDGah608DDk,5559
|
39
|
+
odxtools/dynamiclengthfield.py,sha256=Us0qRvkRPId7xSNKrYdsr1AhVFdTBezRMCBhXl98E00,5273
|
40
|
+
odxtools/dyndefinedspec.py,sha256=efvUG2kMUdwfmMG5qxGHzMSZ5CxdSJhmtzHecopnpHg,7610
|
41
|
+
odxtools/dynenddopref.py,sha256=SYXrmRUQoLWD4UI3WV92oA5rNhxbDuRv6H1MeXeuWhM,1199
|
42
|
+
odxtools/ecuvariantmatcher.py,sha256=muZfBcHVUQFXn3mBRwLtQ2asGV1oDYkDrBwZ9WYuLKU,6848
|
43
|
+
odxtools/ecuvariantpattern.py,sha256=Xp2NpS13sVvyOjy2PgxLvXPptAfmYSH_KDIjqYByZHs,863
|
44
|
+
odxtools/element.py,sha256=nCJkQMIPC26XfD4w1VrTH3l7Cd_BemMM_5lALh5gC7E,1259
|
45
|
+
odxtools/encodestate.py,sha256=yxeql949uvlB2WnsF0jVcMJ6PvaoYcGB7M0OuB4Afj0,10008
|
46
|
+
odxtools/endofpdufield.py,sha256=mGkhTj-YGdJ4EHMsK3AlWV6G_KLWI4ymiFKbY8U2W50,3359
|
47
|
+
odxtools/environmentdata.py,sha256=_wSKhV_NuMG6UPMnpOxz6mVjvrXsd2mtqqT7VKSSxHU,1414
|
48
|
+
odxtools/environmentdatadescription.py,sha256=p1NThRs6WcoP62JTlqOvwKLqq967kBN7a86N89NeESA,11760
|
49
|
+
odxtools/exceptions.py,sha256=ZApQkhOJ9gn4jk0uO1wmULn5PhNEl1aMYMSHDoXihh0,2714
|
50
|
+
odxtools/field.py,sha256=pdQpWxybPsiQ4oFKtvnjIEcQXV2WD0qH-NnBV54KMcI,3860
|
51
|
+
odxtools/functionalclass.py,sha256=IfhxKd02WNGftjSMyBJ8RsxVZgTBxzUM0h6EKHVrrxY,951
|
52
|
+
odxtools/globals.py,sha256=P6YbgyTSWHMw3sk5cEzsCvVaLrTiakLvewTgySb1jLo,139
|
53
|
+
odxtools/inputparam.py,sha256=-9BTmw8BjCM-zM7VOy30O220XKs7-GKRX032wjWGe3U,1667
|
54
|
+
odxtools/internalconstr.py,sha256=QKEkaOcrFoL9xID-oHWWkeg-vtcPV6RFOW1fX2K3pwg,1363
|
55
|
+
odxtools/isotp_state_machine.py,sha256=O6v29IK7p_4gFqrr-fahnbp9Qmo78EEQfEwRsA_Vfjw,13339
|
56
|
+
odxtools/leadinglengthinfotype.py,sha256=RnxA6On49hy1-SZ8GFOx1wwfNDjXo4zG1GXKJp_gcBM,3865
|
57
|
+
odxtools/library.py,sha256=E_A6K6jcEoUdXh4h4sQILj7_JM-6X5OUUWSM47G69CU,2067
|
58
|
+
odxtools/loadfile.py,sha256=hi8jVE7B1G9gklsb7MrGrp4aOAI65j0kNwvDeEEEN2k,1744
|
59
|
+
odxtools/matchingparameter.py,sha256=2cqaxFCZ28GvvUKCIM-jas3ae4eYGbULbkBlb3aH5RY,2232
|
60
|
+
odxtools/message.py,sha256=PDY-CDgTmJA6dyNacCV57M-p_ETtR8MdU7WZGEew4zM,855
|
61
|
+
odxtools/minmaxlengthtype.py,sha256=GQUici8NS9_znw8qiTKWHO2Ky-5tr3SJmdrVKtDd__M,8917
|
62
|
+
odxtools/modification.py,sha256=oyyFsYHixy6XHOdqqTCx3IIkTAKlSN9wxBpNpvhUaJA,838
|
63
|
+
odxtools/multiplexer.py,sha256=flHlorv9grEMj8pNAWQJNrxhptnDxSsFERO7gpKYRME,10235
|
64
|
+
odxtools/multiplexercase.py,sha256=qfxWJzfJLYAsnhFGheUWDsUaIte2dSRJ0nadiN9SXDw,3176
|
65
|
+
odxtools/multiplexerdefaultcase.py,sha256=u3YxZZawhXTOdrC5ltt1YNNaDMGrbL9qsz6PTKrPdSM,2104
|
66
|
+
odxtools/multiplexerswitchkey.py,sha256=fnCpPcg47JQZQsrqS2RAa_O-JrfUb0pvhKv8hhs1RXQ,1551
|
67
|
+
odxtools/nameditemlist.py,sha256=KqKILKq8lqo3qQKmR5HBAkePqfggFhI7yAoenYprjNs,6960
|
68
|
+
odxtools/negoutputparam.py,sha256=u2IhJvy6n19t3nyADGG0H0XTm7JNdQ0-95FawGAdtiE,1373
|
69
|
+
odxtools/obd.py,sha256=WsUbhdonqQJtxf972CUdYL78AMMTVjMQhoCJbaZhRIo,1860
|
70
|
+
odxtools/odxcategory.py,sha256=85geAwJqInPSLjSBx-rtuRdx_m1ACuzZtRl_BcAkyss,3208
|
71
|
+
odxtools/odxlink.py,sha256=7_O8pZB9prgjN-2rJHPMkce1RwV7PT988EmOONgxfng,9414
|
72
|
+
odxtools/odxtypes.py,sha256=MKfusVSYma_OZYmxCVm-kx7WBK8OHjeU3DnJhet4zeg,8055
|
73
|
+
odxtools/outputparam.py,sha256=reBgrSE7fORxfSVSTuim0FyxHrE6OsQOGIFUjhn5FlE,1394
|
74
|
+
odxtools/parameterinfo.py,sha256=PzhIZyYINNxykecPQWnRH1Ywrfgxx31DVax2VNN__CY,11183
|
75
|
+
odxtools/paramlengthinfotype.py,sha256=QMXGN5fd834abUvwql6j04ZiIbqixVHkQACaOx4xyH0,4699
|
76
|
+
odxtools/parentref.py,sha256=kcY3VMyVaIUWD0iVNX8sD9qeI4peU8gijboquu0zD7E,3751
|
77
|
+
odxtools/physicaldimension.py,sha256=CEH7Ura4gqsqlBUxBW08ea9Pxh_Od8JruYQ8o9qOGME,3269
|
78
|
+
odxtools/physicaltype.py,sha256=oYjOhdrTVCJcLLBYgy6pxKsZHpuwm1vZ8svwSjsUB6E,2699
|
79
|
+
odxtools/progcode.py,sha256=Cx8ziCmQm2OfhinAuRrFrMuoThU7hgA6zNQKAT-AT0A,2276
|
80
|
+
odxtools/protstack.py,sha256=nb2RR4OEaGX6lJ6drHejJU-tkB1p0Ok0KLZhNMTdsEc,2012
|
81
|
+
odxtools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
82
|
+
odxtools/relateddoc.py,sha256=zb5Ea9vkd31kxTP4s5_PLF3LuCoUcG8rgLckStHVRDc,1301
|
83
|
+
odxtools/request.py,sha256=iX3D4VX-ctUEk0WpvQHr7UQHalhHkSeR9DLFbVoEQws,4902
|
84
|
+
odxtools/response.py,sha256=aJDoe-ZAKI4Zui4VbwnWLLb9g8Y_SgVZ0XFH7jYZRVI,5505
|
85
|
+
odxtools/scaleconstr.py,sha256=xSH8kmld5Gg1lVgjLWTZINEtDn2a3HemVqlXiHsl4Fs,1783
|
86
|
+
odxtools/servicebinner.py,sha256=TId3D3XHa98zbyC1sGWacQUlIZ5e2Egklelv6_Ra2II,3861
|
87
|
+
odxtools/singleecujob.py,sha256=rlpReb9816abYX0oihYXMkIQo8hnzbUkZqkTvX-IRZ4,3920
|
88
|
+
odxtools/snrefcontext.py,sha256=5ZbrZiX1gw6LC6o62RPuxzSo4tDR2LqRQ9w9Vi57FA8,953
|
89
|
+
odxtools/specialdata.py,sha256=5-1D_6dcEmi-TodCzCoBZK7gqeDY-cuRe1ybkTh4rBY,1033
|
90
|
+
odxtools/specialdatagroup.py,sha256=9pNCA89kGwhBiVN9nC_03ASHZT6q3FL8l2CxRf9jwU0,3070
|
91
|
+
odxtools/specialdatagroupcaption.py,sha256=pIa1l6EXVDXBisUtRkn6hTzAcUXFnXJoWstesayLfME,987
|
92
|
+
odxtools/standardlengthtype.py,sha256=SQBgdHIc9msFCBuS9GYyDeKE8bK1PgSvIkVEZSVoBcU,5225
|
93
|
+
odxtools/state.py,sha256=d--nCbV1qBmOmiTmUrQjDC_naispOM0a-H1AvCe5_xI,898
|
94
|
+
odxtools/statechart.py,sha256=ZT8amPjec25pexwnOAPiifGEmKa68rliOILLnB6tNJc,2956
|
95
|
+
odxtools/statetransition.py,sha256=axZ1ePyyWAsxslTI5KDjZxC42uNyoPc6N7cNIhP5pxE,1860
|
96
|
+
odxtools/staticfield.py,sha256=NBZa5UZD4BD4UekpqF5bq_IzFjxUafmvpCHIEptOl-s,4434
|
97
|
+
odxtools/structure.py,sha256=W8uX1YQuJUApKfeLxYqlnU3EZ3AjTqcYpCUStR43ORI,582
|
98
|
+
odxtools/subcomponent.py,sha256=OPnpbliL7OTfYy9dR0hpQclyqQiTUEa2e2n7GmIoZVE,10401
|
99
|
+
odxtools/swvariable.py,sha256=tp8XJUokYOcAUkrQLM92IYDf7evIefwZR_DgMm33iYQ,622
|
100
|
+
odxtools/table.py,sha256=zgpVveH8neSNhdcsPp0jG4f6H00M0NKCuAME8MSrf-Q,4024
|
101
|
+
odxtools/tablerow.py,sha256=X6598ntJZyyMW5COoHWKUNXZXjqxnO6o8oIzLdmKxh0,6589
|
102
|
+
odxtools/teammember.py,sha256=xn1y6k42zQoyM2SlEkZ8UFyiqBvVI5FNZAm_xt2Vt_Y,1772
|
103
|
+
odxtools/uds.py,sha256=ttjCaqwfAU-DlM5peFpZCcwzq60QjBMxVpaOyUyY48k,5567
|
104
|
+
odxtools/unit.py,sha256=PLMErZ6N9oA4z3fuwYsmqMajeVHFNtKhC-w7IzaTfvw,3588
|
105
|
+
odxtools/unitgroup.py,sha256=_WNpnYFmkiHQnOY8XhIviiQLXziY3kplH--7ufAWXyI,2067
|
106
|
+
odxtools/unitspec.py,sha256=RMdEQoLrPhGt9vo32fkwbTqymicHFkFQnydFoi3uBog,2924
|
107
|
+
odxtools/utils.py,sha256=FaNlouR0FvO4W4nk3Wr7Ogx1wC4tYfuMOo07KF2QxbE,2764
|
108
|
+
odxtools/variablegroup.py,sha256=--5sMDOMUg4I3hFyoVOFcGCTOrctrrMADdmH3Mn4wHk,848
|
109
|
+
odxtools/version.py,sha256=9m72WO6BeC1UJz6vdfsmZpQBhwGg1riBtxDiWIhyY5U,411
|
110
|
+
odxtools/writepdxfile.py,sha256=ZEoNkSxheqnXm836-HOpd04O6ipMXYKFzXZy6PM0YLc,7813
|
111
|
+
odxtools/xdoc.py,sha256=gDq-8l8x-Tj1ZJOttPxZchcO5_jEPwcXxMgT29VgTS0,1433
|
112
|
+
odxtools/cli/__init__.py,sha256=T7ano_FIyzBASxYpmcA5VJXU5bQLIy_Qk0HE_SDKelY,106
|
113
|
+
odxtools/cli/_parser_utils.py,sha256=p0L9NYYnml5ydfD22oC04EMhz8PKHgU40GPOPkybZwg,1116
|
114
|
+
odxtools/cli/_print_utils.py,sha256=NWAnlOqIuMN4obAs_b0EcpnVHumMej6yAskK_bBsxF4,12348
|
115
|
+
odxtools/cli/browse.py,sha256=Hkf269s7Tg8vWq0WDRzZoU65zGShdddgOo5vLnjMB6I,16537
|
116
|
+
odxtools/cli/compare.py,sha256=mXF7C0rBHnRn9l9_jYNgnoOchSbfUh5XshnCY02UBr0,37485
|
117
|
+
odxtools/cli/decode.py,sha256=7tAUUyfJPaKNwVJfFZ61qGVc97i03wgb_wr2pAH_JWQ,4315
|
118
|
+
odxtools/cli/dummy_sub_parser.py,sha256=F2N_lRrxuU-beORcyrJ4bdbRsQl42-aPEBtyPJ74Tvo,1466
|
119
|
+
odxtools/cli/find.py,sha256=GZKzvsOus1Zv8n3nAG-ZsPgWJpB7z3wNxeqKtAL5mAo,4394
|
120
|
+
odxtools/cli/list.py,sha256=fQH1gK3ajUhbp9-giIZk8qIZ-57FtADU1EggXo2yH4I,8980
|
121
|
+
odxtools/cli/main.py,sha256=_zPCU6N2ofpj_jQuQ_BU5EafBpMW0srhahZI8BgAM-0,2335
|
122
|
+
odxtools/cli/snoop.py,sha256=z8USSpmz18VAvkGpzepeaOlVJhi-8aeW10XRylsvZLU,10610
|
123
|
+
odxtools/compumethods/compucodecompumethod.py,sha256=cCgCCuFcu2K9QuW0ZNbfp6AQdgPy9QE7UnmRa6Iet28,2459
|
124
|
+
odxtools/compumethods/compuconst.py,sha256=14JIJXVKSe4bPWb5JyKXB6tAASMcWznExE1w6z1SMoc,806
|
125
|
+
odxtools/compumethods/compudefaultvalue.py,sha256=Lw8Fnm854dpNCvO8waKWg_hSRyW-NwvoQFFjyW3RHwY,980
|
126
|
+
odxtools/compumethods/compuinternaltophys.py,sha256=7BHDeUpe8XUlvdUrLh0p416NREsGiZq5Rx6fQSzbosA,2102
|
127
|
+
odxtools/compumethods/compuinversevalue.py,sha256=oG5tWSJkvoDmJPmb9EAGGutslbTrwZok5nfG20iZ8vk,220
|
128
|
+
odxtools/compumethods/compumethod.py,sha256=yHPGIp3BHPs-aPHT3b15lTLicvhdXZJXHgA5LvGjgBs,4572
|
129
|
+
odxtools/compumethods/compuphystointernal.py,sha256=AeAqO2Vm5DwWuSnY2C1GGJU5IssaK9wSDDVzgv3mCoQ,2102
|
130
|
+
odxtools/compumethods/compurationalcoeffs.py,sha256=N95JWi06Wkgk3zAK57ONy7mQ9prpLxecsbVD0gyGloE,1246
|
131
|
+
odxtools/compumethods/compuscale.py,sha256=xkwIfkoRF4faICy2jlfB6rx4xYRQb0jL5fq6NMNPX8k,4487
|
132
|
+
odxtools/compumethods/createanycompumethod.py,sha256=w68p6ME_WSnV44X3zah4FJ1IROEU6mAglcKivMw7om8,2830
|
133
|
+
odxtools/compumethods/identicalcompumethod.py,sha256=VVQ0tAkmowXZMBFQd9-n0VnsodDFRHXWdWgpNxdHAkQ,2077
|
134
|
+
odxtools/compumethods/limit.py,sha256=QjrY6dd0Kc7n4CcweMBrkwlX4hsmx0bkQEaQKmTxQ18,4164
|
135
|
+
odxtools/compumethods/linearcompumethod.py,sha256=Q1wELL2Y_nMomy-_7OUHLo-hDkepXLHveWorje5eDEE,3671
|
136
|
+
odxtools/compumethods/linearsegment.py,sha256=_P96JyY5hatNlFvj-yXbWVBrx3rIj83_nu8SPpLezGk,7131
|
137
|
+
odxtools/compumethods/ratfunccompumethod.py,sha256=FgG1_jX3WvjbCFz989SqDC5WkwaZ0xR-CN-M5lkTH5I,4393
|
138
|
+
odxtools/compumethods/ratfuncsegment.py,sha256=_gWFz8FowgQ4X3YIdeYJaeX-QG23U25k4yLh02cn7j0,2834
|
139
|
+
odxtools/compumethods/scalelinearcompumethod.py,sha256=o_Re17G4XlCn-XbStnvlTs9XVN4h71mkkYyIOii-7w4,5895
|
140
|
+
odxtools/compumethods/scaleratfunccompumethod.py,sha256=3imvLJgN3gkc7pILPIwAILHw0Ie5Ih_vysVGA8wYRgk,4457
|
141
|
+
odxtools/compumethods/tabintpcompumethod.py,sha256=Gyf2qV5y53SHIcum5d5HQVGszoZCdu47jxMCQ6yKdQk,8065
|
142
|
+
odxtools/compumethods/texttablecompumethod.py,sha256=vDYafbM0YaipjfN0NSlCFMiIPvp8waMNj3thNcwuYgk,5929
|
143
|
+
odxtools/diaglayers/basevariant.py,sha256=mXS-SF-tcwtdV-rxZZCH6_yqdA-yhtMX1SGo1MS8w7k,4452
|
144
|
+
odxtools/diaglayers/basevariantraw.py,sha256=A9h6p2Ri0sPPTW217rtEdNpAt5g6t0MwP9sgXqZ8pFo,4673
|
145
|
+
odxtools/diaglayers/diaglayer.py,sha256=xs529IVG_18Fi8kbEZkD2vHjHRr57jeE4A_2lDLRKCQ,16254
|
146
|
+
odxtools/diaglayers/diaglayerraw.py,sha256=rQEH3Jzg6bzTmu0EyYhAoBlsL6qVm7Z46o2xlbL0nEo,12970
|
147
|
+
odxtools/diaglayers/diaglayertype.py,sha256=FXL-EVBdrAURuHSHo9OthFuEYEybQO66aMB1o2GxVdI,1340
|
148
|
+
odxtools/diaglayers/ecushareddata.py,sha256=QoV50wQIrJ2-faLtU1P7RrjdacbhPY2BfUtVtIyWqCM,3347
|
149
|
+
odxtools/diaglayers/ecushareddataraw.py,sha256=cvkBhqTLOAey7Pt1bjQ3Jkkenp-D3Zh5djpB4ZWWUvw,3375
|
150
|
+
odxtools/diaglayers/ecuvariant.py,sha256=OsLWg-dx6OJ_OPuYcgoTJuDXEReaJclDRbU5YKqrtBA,4368
|
151
|
+
odxtools/diaglayers/ecuvariantraw.py,sha256=bKlqFnBWkKdkM9EY5rFGOno3ClIVQNhgBoU5DseNnRc,4944
|
152
|
+
odxtools/diaglayers/functionalgroup.py,sha256=o5bUGGDYisr7CjHZZh83fokA80f0s0zpHC_501cg-f0,4093
|
153
|
+
odxtools/diaglayers/functionalgroupraw.py,sha256=H0-_XXlFTV8POGnh0S7CVBOKKQuyKHMB9lEyoAHuG_A,3963
|
154
|
+
odxtools/diaglayers/hierarchyelement.py,sha256=kYGKyn6ZdThOeC58m31ESLjpZ1YZ532tLDxahWvXxxo,36708
|
155
|
+
odxtools/diaglayers/hierarchyelementraw.py,sha256=IdFbnZIw7QGAMh3MW5N9vq5QNGBBAs5foCnbvotfqhQ,2058
|
156
|
+
odxtools/diaglayers/protocol.py,sha256=ypIhfySB6F16Y48XLZIPL36GfrKUznTCmiJ0ROIxYJo,2083
|
157
|
+
odxtools/diaglayers/protocolraw.py,sha256=Wf1q2l11mxw61gnveVVEZqgR0yj2RCxoaB3QLzdZQWc,3251
|
158
|
+
odxtools/parameters/codedconstparameter.py,sha256=g34JJxQkyL5R27XiGCgkXyt7UzxFtBhZgv_FbTe2aiQ,3893
|
159
|
+
odxtools/parameters/createanyparameter.py,sha256=m26HHUQrxwDak3eBBciVBLic768Qlo4F2xn1z3r0boM,2566
|
160
|
+
odxtools/parameters/dynamicparameter.py,sha256=mdZx12XbhTSYVVuXEsPYRll3zaHjbHIYIzA6yUy4zck,1569
|
161
|
+
odxtools/parameters/lengthkeyparameter.py,sha256=r9beVso1DQRJ81CU6e8Dxqexbp8W4QksDcc_BtItSCQ,5269
|
162
|
+
odxtools/parameters/matchingrequestparameter.py,sha256=VNYIpmP_Yt_pzMHPgGWZk1XYH5liIdyawNIwIR1Cbvw,2897
|
163
|
+
odxtools/parameters/nrcconstparameter.py,sha256=SjTHQlaBzvyUATyOzSFFWCcdkTeHcaoKO54kTomzb6Y,4823
|
164
|
+
odxtools/parameters/parameter.py,sha256=0WhCvULPzvZ07g9Nz-0NyHt1Y8E8Q4YsW0VF-EUg2ow,6145
|
165
|
+
odxtools/parameters/parameterwithdop.py,sha256=k7yJABRmHQTZNTEEPjyq3tBXJD4Aey365HpP7SGsEgk,3283
|
166
|
+
odxtools/parameters/physicalconstantparameter.py,sha256=2iC6EKVJZVHwVVmd4h8KJ6OLc7B5QOUawivQMqWPCRA,3593
|
167
|
+
odxtools/parameters/reservedparameter.py,sha256=8XQocU3_ExRZzXYEkITj535TTEUCNK87wIkrUTizgvI,1989
|
168
|
+
odxtools/parameters/systemparameter.py,sha256=CX5YeAcLs0ffDpksTOMXHSGvuPmRIF2Il_lnuCmbNI8,3593
|
169
|
+
odxtools/parameters/tableentryparameter.py,sha256=SuNAFn1wN_hyO2MVd1lT3oQllZ6nLjAIBJHX0HYRyko,2414
|
170
|
+
odxtools/parameters/tablekeyparameter.py,sha256=zT49Ci0lGZgMFlswdZR3CRKh7x6CtzQ2Rk-VmZkxQvk,10028
|
171
|
+
odxtools/parameters/tablestructparameter.py,sha256=Doym0Tybi_t8w7nqM9n_ZAFwRWm-yJOnsaSqi4u5KiU,7032
|
172
|
+
odxtools/parameters/valueparameter.py,sha256=khsmiaLhpW2PjUKQaAkntwurxsml3TUzNwaZCaWNS50,3063
|
173
|
+
odxtools/templates/comparam-spec.odx-c.xml.jinja2,sha256=A9q0SQCGhBaV2xUcXHFVkmZIBpbl9OP2x6JD0umzrdU,904
|
174
|
+
odxtools/templates/comparam-subset.odx-cs.xml.jinja2,sha256=xL4vy0yAsSajJRF_w7wCQFSklUIgyHwCHgGPlLTGK_A,1751
|
175
|
+
odxtools/templates/diag_layer_container.odx-d.xml.jinja2,sha256=fDH9K2IdGfX-dVV0pEpn2kkHIBQTT9B0Sb5dF4vGWco,1798
|
176
|
+
odxtools/templates/index.xml.jinja2,sha256=Z1bcntvvky7NoH0Q0CRJgUORwf3g96PFPGeOpi7VATw,647
|
177
|
+
odxtools/templates/macros/printAdminData.xml.jinja2,sha256=YTB_CbhnALF6RIbE0XKQHRbC6c0PSZ_DxdrRHgqMD_s,2590
|
178
|
+
odxtools/templates/macros/printAudience.xml.jinja2,sha256=vaYL_-GPVdlLc7WAQTbkVZZbFuQptnCbOhXJb3tsHv8,1286
|
179
|
+
odxtools/templates/macros/printBaseVariant.xml.jinja2,sha256=l4Jp8v9ZfPXvIisqVLgTpzc5UdYGeIocY4vAcgCiiaE,1480
|
180
|
+
odxtools/templates/macros/printBasicStructure.xml.jinja2,sha256=V5oWGZesU_U5pvPO3Rtlodc7sxe5mFWY-uURLnQ8OfQ,614
|
181
|
+
odxtools/templates/macros/printCompanyData.xml.jinja2,sha256=jcNmQBOGDw7wcKdam72NIJSOTxthfkPJvrmw24MBiYQ,2981
|
182
|
+
odxtools/templates/macros/printComparam.xml.jinja2,sha256=e3hPCswAymJteQIUNoc7FOwsK_FrbJOvJooWdEx_vuQ,2408
|
183
|
+
odxtools/templates/macros/printComparamRef.xml.jinja2,sha256=rBhrdUnp605fsUN9SaljpyaAojzaLBvTbkOuduKod18,1274
|
184
|
+
odxtools/templates/macros/printCompuMethod.xml.jinja2,sha256=9DilxMWnqOsXu7bNNlDqls-lEqcr_GPzhZum8rzDJP0,4430
|
185
|
+
odxtools/templates/macros/printDOP.xml.jinja2,sha256=SAmp1okfyecCmHf4XiF2rao78-TIzmPQW4azBtjbu9A,5709
|
186
|
+
odxtools/templates/macros/printDescription.xml.jinja2,sha256=7jcYEIXr7hbbKqSvIUIgXaQSXV4dKAR9UhY352BZct8,452
|
187
|
+
odxtools/templates/macros/printDiagComm.xml.jinja2,sha256=_SByYBYzPG9t7VNnAohFAXsgng9VrQcSacXH923wRzY,2239
|
188
|
+
odxtools/templates/macros/printDiagLayer.xml.jinja2,sha256=gQQhNGpVQRfVichgJdwBS6gMvoLfi-nlGat9imlW62Y,6901
|
189
|
+
odxtools/templates/macros/printDiagVariable.xml.jinja2,sha256=sQEU42Onf0WkRJZJyNUgeeGICc3MZaQJPQ0YKY6lRrU,2656
|
190
|
+
odxtools/templates/macros/printDynDefinedSpec.xml.jinja2,sha256=uX3C40VmlbH7sndlJNyTvq8upzaoq8vCk6S93gtpFIY,1742
|
191
|
+
odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2,sha256=6BmxPKesQvfy46iTiPSFu_iJffC6umZ_YRsTEd-0y5Q,587
|
192
|
+
odxtools/templates/macros/printDynamicLengthField.xml.jinja2,sha256=bNvNh_4xyp4L6v7cxJ5cO1yOHYPnSFiaK9oY4l63fDU,784
|
193
|
+
odxtools/templates/macros/printEcuSharedData.xml.jinja2,sha256=WK08eoDFEjj9o3eOuy__H0r9ioo688rTuQp6uXE6Tdo,820
|
194
|
+
odxtools/templates/macros/printEcuVariant.xml.jinja2,sha256=Nsgj2VUWZvSDFPQsn6wv75M9TaryOB-tlQYCVq9hDEM,1594
|
195
|
+
odxtools/templates/macros/printEcuVariantPattern.xml.jinja2,sha256=uSUrX1n2YVw6tt1-A0Lmlgy_W3dxW4r8bVErdrf_6vk,846
|
196
|
+
odxtools/templates/macros/printElementId.xml.jinja2,sha256=Oe4sgtBB_VhTz6uJzaiTCpQki2ulKKfpBq56FVgBC-I,570
|
197
|
+
odxtools/templates/macros/printEndOfPdu.xml.jinja2,sha256=ptjwOxyNTABATOajiitcvlJRKVGP_osh2wSJTCbaa38,679
|
198
|
+
odxtools/templates/macros/printEnvData.xml.jinja2,sha256=2Goatqb66d-pCf9wqJDXn1EZWNhkQ8FJANKQMOnxuJs,609
|
199
|
+
odxtools/templates/macros/printEnvDataDesc.xml.jinja2,sha256=rBpPf51LFx5oNx_XjeTABast9hmru5hYbeJQ2axHntw,588
|
200
|
+
odxtools/templates/macros/printFunctionalClass.xml.jinja2,sha256=TpOQTj-hlNLtIfcSTVzU-gRrfaWrgsTrIFMqm_1M6Qs,329
|
201
|
+
odxtools/templates/macros/printFunctionalGroup.xml.jinja2,sha256=zIeZbhf8haXhgJJUPiOnMe3lvqvfye4-zmwWDQJxFtQ,1159
|
202
|
+
odxtools/templates/macros/printHierarchyElement.xml.jinja2,sha256=GD6iNIE0Wu0QsJ8uLtwEV8N9t6mIhI00_KpCVzOVQBM,651
|
203
|
+
odxtools/templates/macros/printLibrary.xml.jinja2,sha256=wp8vZzHPLZayWZh6BOQ56kGyHSeyrlNacdlxBw9d0N0,683
|
204
|
+
odxtools/templates/macros/printMux.xml.jinja2,sha256=68IiPY_mIJQqQiqce3jUphqp3-xLfmEBL7CSb3Cz7eI,1869
|
205
|
+
odxtools/templates/macros/printOdxCategory.xml.jinja2,sha256=SatvRj0yafePV_Xg6Un1d5KXq3yZyqV9f5YZU1wlzws,856
|
206
|
+
odxtools/templates/macros/printParam.xml.jinja2,sha256=U96BZDgcG8O0ewTXY8DHY8z29I8BkD4ndX0r7JAk54w,3197
|
207
|
+
odxtools/templates/macros/printParentRef.xml.jinja2,sha256=RllVKt2RgrMnWfsujGnBUiABwV2y4_ZfINYy7LXenPM,896
|
208
|
+
odxtools/templates/macros/printProtStack.xml.jinja2,sha256=0FHHvuduiMPhAE19vpTHu3cQeM9kSybWj5FbybcXnGk,773
|
209
|
+
odxtools/templates/macros/printProtocol.xml.jinja2,sha256=1DXoRSq6z4dhpZnXWH3x9JPKCWmAmghjVgVFfizo41s,1028
|
210
|
+
odxtools/templates/macros/printRequest.xml.jinja2,sha256=yq4xGSlQCioT7FRivyx40Cjs2CYr9EK6NLZf0W4wGW0,717
|
211
|
+
odxtools/templates/macros/printResponse.xml.jinja2,sha256=GsOYmnoh4ewhWg3FUdcovHuJxvuIjsSrXNtbcnnAQcM,683
|
212
|
+
odxtools/templates/macros/printService.xml.jinja2,sha256=zvjOCELEx4yim2FtdNKiExTsDPkAfQAP4Gf_QsondfQ,1546
|
213
|
+
odxtools/templates/macros/printSingleEcuJob.xml.jinja2,sha256=6phi3VxGllusm6KGgrjWiOj7g80ojHyxvesqmHvuNhs,2174
|
214
|
+
odxtools/templates/macros/printSpecialData.xml.jinja2,sha256=0eIFh9cWXfFrQN_f8G_lz3fUqmtysxY6tSN4DbuFY40,1386
|
215
|
+
odxtools/templates/macros/printState.xml.jinja2,sha256=BNnTEyczp43iP9Bn_plMLRsJsasra4sRyvmgODuZQYg,315
|
216
|
+
odxtools/templates/macros/printStateChart.xml.jinja2,sha256=XW1EhF1k8ogbEDt-QMjSOojKl4vjxXkq6BwJWR9GJsI,951
|
217
|
+
odxtools/templates/macros/printStateTransition.xml.jinja2,sha256=J2t0yU82UBegUSH9sAbnkdgEYPTUU0A7I-CokuPQxDo,510
|
218
|
+
odxtools/templates/macros/printStaticField.xml.jinja2,sha256=fkV07zrL2pTo6b5ZPD14V0uC1aEk2P4roXyDhp-ah38,521
|
219
|
+
odxtools/templates/macros/printStructure.xml.jinja2,sha256=CJUPZv_9lko63C5fNpOn5LlQqLCuS--qyhtx4NyD5Rk,567
|
220
|
+
odxtools/templates/macros/printSubComponent.xml.jinja2,sha256=ETo-k0K7px5nu9kgVjgDnjPoy8rYRfzq5ojvsZhM3Rw,3416
|
221
|
+
odxtools/templates/macros/printTable.xml.jinja2,sha256=5DQjjJ-UxQ75ntov0S0LGnm_V7YWtKadBpNbmV1aBb8,1501
|
222
|
+
odxtools/templates/macros/printUnitSpec.xml.jinja2,sha256=opS6_Gr94WlAtREEyX4sLo-D-17Gni9Wvr3y1nfVgSA,2715
|
223
|
+
odxtools-9.3.0.dist-info/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
|
224
|
+
odxtools-9.3.0.dist-info/METADATA,sha256=z1DujfQWpVS5O7sQ2B0FXgUBMyN9xoYk4F-otwi_se4,44055
|
225
|
+
odxtools-9.3.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
226
|
+
odxtools-9.3.0.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
|
227
|
+
odxtools-9.3.0.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
|
228
|
+
odxtools-9.3.0.dist-info/RECORD,,
|
odxtools/createcompanydatas.py
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
# SPDX-License-Identifier: MIT
|
2
|
-
from typing import List, Optional
|
3
|
-
from xml.etree import ElementTree
|
4
|
-
|
5
|
-
from .companydata import CompanyData
|
6
|
-
from .nameditemlist import NamedItemList
|
7
|
-
from .odxlink import OdxDocFragment
|
8
|
-
|
9
|
-
|
10
|
-
def create_company_datas_from_et(et_element: Optional[ElementTree.Element],
|
11
|
-
doc_frags: List[OdxDocFragment]) -> NamedItemList[CompanyData]:
|
12
|
-
if et_element is None:
|
13
|
-
return NamedItemList()
|
14
|
-
|
15
|
-
return NamedItemList([
|
16
|
-
CompanyData.from_et(cd_elem, doc_frags) for cd_elem in et_element.iterfind("COMPANY-DATA")
|
17
|
-
],)
|
odxtools/createsdgs.py
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
# SPDX-License-Identifier: MIT
|
2
|
-
from typing import List, Optional
|
3
|
-
from xml.etree import ElementTree
|
4
|
-
|
5
|
-
from .odxlink import OdxDocFragment
|
6
|
-
from .specialdatagroup import SpecialDataGroup
|
7
|
-
|
8
|
-
|
9
|
-
def create_sdgs_from_et(et_element: Optional[ElementTree.Element],
|
10
|
-
doc_frags: List[OdxDocFragment]) -> List[SpecialDataGroup]:
|
11
|
-
|
12
|
-
if not et_element:
|
13
|
-
return []
|
14
|
-
|
15
|
-
result = []
|
16
|
-
for sdg_elem in et_element.iterfind("SDG"):
|
17
|
-
result.append(SpecialDataGroup.from_et(sdg_elem, doc_frags))
|
18
|
-
|
19
|
-
return result
|
odxtools/load_file.py
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
# SPDX-License-Identifier: MIT
|
2
|
-
from .database import Database
|
3
|
-
from .load_odx_d_file import load_odx_d_file
|
4
|
-
from .load_pdx_file import load_pdx_file
|
5
|
-
|
6
|
-
|
7
|
-
def load_file(file_name: str) -> Database:
|
8
|
-
if file_name.lower().endswith(".pdx"):
|
9
|
-
return load_pdx_file(file_name)
|
10
|
-
elif file_name.lower().endswith(".odx-d"):
|
11
|
-
return load_odx_d_file(file_name)
|
12
|
-
else:
|
13
|
-
raise RuntimeError(f"Could not guess the file format of file '{file_name}'!")
|
odxtools/load_odx_d_file.py
DELETED