odxtools 8.0.4__py3-none-any.whl → 8.0.5__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/database.py CHANGED
@@ -1,9 +1,10 @@
1
1
  # SPDX-License-Identifier: MIT
2
2
  from itertools import chain
3
3
  from pathlib import Path
4
- from typing import IO, Any, Dict, List, Optional, OrderedDict
4
+ from typing import IO, Any, Dict, List, Optional, OrderedDict, Union
5
5
  from xml.etree import ElementTree
6
6
  from zipfile import ZipFile
7
+ from os import PathLike
7
8
 
8
9
  from packaging.version import Version
9
10
 
@@ -27,10 +28,7 @@ class Database:
27
28
  into a single PDX file.
28
29
  """
29
30
 
30
- def __init__(self,
31
- *,
32
- pdx_zip: Optional[ZipFile] = None,
33
- odx_d_file_name: Optional[str] = None) -> None:
31
+ def __init__(self) -> None:
34
32
  self.model_version: Optional[Version] = None
35
33
  self.auxiliary_files: OrderedDict[str, IO[bytes]] = OrderedDict()
36
34
 
@@ -39,9 +37,14 @@ class Database:
39
37
  self._comparam_subsets = NamedItemList[ComparamSubset]()
40
38
  self._comparam_specs = NamedItemList[ComparamSpec]()
41
39
 
42
- def add_pdx_file(self, pdx_file_name: str) -> None:
43
- pdx_zip = ZipFile(pdx_file_name)
44
-
40
+ def add_pdx_file(self, pdx_file: Union[str, "PathLike[Any]", IO[bytes], ZipFile]) -> None:
41
+ """Add PDX file to database.
42
+ Either pass the path to the file, an IO with the file content or a ZipFile object.
43
+ """
44
+ if isinstance(pdx_file, ZipFile):
45
+ pdx_zip = pdx_file
46
+ else:
47
+ pdx_zip = ZipFile(pdx_file)
45
48
  for zip_member in pdx_zip.namelist():
46
49
  # The name of ODX files can end with .odx, .odx-d,
47
50
  # .odx-c, .odx-cs, .odx-e, .odx-f, .odx-fd, .odx-m,
@@ -54,16 +57,16 @@ class Database:
54
57
  elif p.name.lower() != "index.xml":
55
58
  self.add_auxiliary_file(zip_member, pdx_zip.open(zip_member))
56
59
 
57
- def add_odx_file(self, odx_file_name: str) -> None:
60
+ def add_odx_file(self, odx_file_name: Union[str, "PathLike[Any]"]) -> None:
58
61
  self._process_xml_tree(ElementTree.parse(odx_file_name).getroot())
59
62
 
60
63
  def add_auxiliary_file(self,
61
- aux_file_name: str,
64
+ aux_file_name: Union[str, "PathLike[Any]"],
62
65
  aux_file_obj: Optional[IO[bytes]] = None) -> None:
63
66
  if aux_file_obj is None:
64
67
  aux_file_obj = open(aux_file_name, "rb")
65
68
 
66
- self.auxiliary_files[aux_file_name] = aux_file_obj
69
+ self.auxiliary_files[str(aux_file_name)] = aux_file_obj
67
70
 
68
71
  def _process_xml_tree(self, root: ElementTree.Element) -> None:
69
72
  dlcs: List[DiagLayerContainer] = []
odxtools/version.py CHANGED
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '8.0.4'
16
- __version_tuple__ = version_tuple = (8, 0, 4)
15
+ __version__ = version = '8.0.5'
16
+ __version_tuple__ = version_tuple = (8, 0, 5)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odxtools
3
- Version: 8.0.4
3
+ Version: 8.0.5
4
4
  Summary: Utilities to work with the ODX standard for automotive diagnostics
5
5
  Author-email: Katrin Bauer <katrin.bauer@mbition.io>, Andreas Lauser <andreas.lauser@mbition.io>, Ayoub Kaanich <kayoub5@live.com>
6
6
  Maintainer-email: Andreas Lauser <andreas.lauser@mbition.io>, Ayoub Kaanich <kayoub5@live.com>
@@ -19,7 +19,7 @@ odxtools/complexdop.py,sha256=AHkHMf_IEWfy-_zSiCuZXmdTNCXiCOpg5GRZ5uMVV5A,280
19
19
  odxtools/createanycomparam.py,sha256=RP0XA2Ut4GL2NWy05RvKBrTnpbvvCG2XuNL8OO-9rbI,617
20
20
  odxtools/createanydiagcodedtype.py,sha256=0DVmMj4UCDYIg0zu9pgTplyhHmRedz1KJcchq1uKMjg,1216
21
21
  odxtools/createecuvariantpatterns.py,sha256=FXHLGR4M791MRkpU2_keck88hoMYkuyPiCUxuGbUasQ,559
22
- odxtools/database.py,sha256=SKLWsUtNR5Ai81uYxBVOgz7Na91m6rKzC7WBHL15u40,8612
22
+ odxtools/database.py,sha256=FlyIkTPGsJoVceJco4c_GBlMbV5YdM5nokfVVTia3vo,8832
23
23
  odxtools/dataobjectproperty.py,sha256=R5sOMIejzcTB-CXTRrL2dWnFwR08eInF531s3l9BQcI,5888
24
24
  odxtools/decodestate.py,sha256=jJxLUzUYZ0C4t18FhJzo2iRTP8DF7BzrWLtRTTlLsJI,4885
25
25
  odxtools/description.py,sha256=UoACftC_n7fQ1n9WDwCzizStMH0HCO2Qv0YLRaSjEgs,1484
@@ -102,7 +102,7 @@ odxtools/unitgroup.py,sha256=_WNpnYFmkiHQnOY8XhIviiQLXziY3kplH--7ufAWXyI,2067
102
102
  odxtools/unitspec.py,sha256=bc3B6ysTXSxpNWyQ6cQVJgIGyxmeqRTeshc3bdym1iA,2948
103
103
  odxtools/utils.py,sha256=PJFXkG74BzoheurrDYOwHZ6EuIcr1sdxf1tQGk6zSgs,1122
104
104
  odxtools/variablegroup.py,sha256=--5sMDOMUg4I3hFyoVOFcGCTOrctrrMADdmH3Mn4wHk,848
105
- odxtools/version.py,sha256=rKRFWPCzOWco8E_y7IYGymVQklA8jyRKIs4hQcCz_vI,411
105
+ odxtools/version.py,sha256=FuDHlM0820mCxDF0l8iRRVBUG8T6ZmD0Oxf1Zetwp8U,411
106
106
  odxtools/writepdxfile.py,sha256=x3W2xiPVjzNZjfpJssY6ngkx74sZtb95OFmBHql1VY4,7766
107
107
  odxtools/xdoc.py,sha256=gDq-8l8x-Tj1ZJOttPxZchcO5_jEPwcXxMgT29VgTS0,1433
108
108
  odxtools/cli/__init__.py,sha256=T7ano_FIyzBASxYpmcA5VJXU5bQLIy_Qk0HE_SDKelY,106
@@ -209,9 +209,9 @@ odxtools/templates/macros/printStaticField.xml.jinja2,sha256=JIXFhyNrnQ-2_vWy6Rx
209
209
  odxtools/templates/macros/printStructure.xml.jinja2,sha256=uswYs2xse0B9hZut_FN1GvvR0xsZa_3pZRnlF0ElEEc,559
210
210
  odxtools/templates/macros/printTable.xml.jinja2,sha256=VsP01jqyQllLP-brQ6J1E8ubVntiToEb8Uk7HQEYqtY,1485
211
211
  odxtools/templates/macros/printUnitSpec.xml.jinja2,sha256=AJ5jWYKRmoIZkrd25R1KmjjgU6pfOqRiOQHtUAuS6GI,2813
212
- odxtools-8.0.4.dist-info/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
213
- odxtools-8.0.4.dist-info/METADATA,sha256=FmuQOkIhcsg1YsqcvMpBa-ciZwNtoZ7lZJbl0DUf3zU,44084
214
- odxtools-8.0.4.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
215
- odxtools-8.0.4.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
216
- odxtools-8.0.4.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
217
- odxtools-8.0.4.dist-info/RECORD,,
212
+ odxtools-8.0.5.dist-info/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
213
+ odxtools-8.0.5.dist-info/METADATA,sha256=KrVsOJyd7fni3SPL2N98k906AKBzGkdkfE1gxDRi4K0,44084
214
+ odxtools-8.0.5.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
215
+ odxtools-8.0.5.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
216
+ odxtools-8.0.5.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
217
+ odxtools-8.0.5.dist-info/RECORD,,