py-eb-model 1.1.4__py3-none-any.whl → 1.1.6__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.
@@ -0,0 +1,63 @@
1
+ import argparse
2
+ import pkg_resources
3
+ import logging
4
+ import sys
5
+ import os.path
6
+
7
+ from ..parser import NvMXdmParser
8
+ from ..models import EBModel
9
+ from ..reporter import NvMXdmXlsWriter
10
+
11
+
12
+ def main():
13
+ version = pkg_resources.require("py_eb_model")[0].version
14
+
15
+ ap = argparse.ArgumentParser()
16
+ ap.description = "Version: %s" % version
17
+ ap.add_argument("-v", "--verbose", required=False, help="Print debug information.", action="store_true")
18
+ ap.add_argument("--log", required=False, help="Specify the log file name.")
19
+ ap.add_argument("INPUT", help="The path of NvM.xdm.")
20
+ ap.add_argument("OUTPUT", help="The path of excel file.")
21
+
22
+ args = ap.parse_args()
23
+
24
+ logger = logging.getLogger()
25
+
26
+ formatter = logging.Formatter('[%(levelname)s] : %(message)s')
27
+
28
+ stdout_handler = logging.StreamHandler(sys.stderr)
29
+ stdout_handler.setFormatter(formatter)
30
+
31
+ if args.log:
32
+ if os.path.exists(args.log):
33
+ os.remove(args.log)
34
+
35
+ file_handler = logging.FileHandler(args.log)
36
+ file_handler.setFormatter(formatter)
37
+ file_handler.setLevel(logging.DEBUG)
38
+
39
+ logger.setLevel(logging.DEBUG)
40
+
41
+ if args.verbose:
42
+ stdout_handler.setLevel(logging.DEBUG)
43
+ else:
44
+ stdout_handler.setLevel(logging.INFO)
45
+
46
+ if args.log:
47
+ logger.addHandler(file_handler)
48
+ logger.addHandler(stdout_handler)
49
+
50
+ try:
51
+ doc = EBModel.getInstance()
52
+
53
+ parser = NvMXdmParser()
54
+ parser.parse_xdm(args.INPUT, doc)
55
+
56
+ options = {}
57
+
58
+ writer = NvMXdmXlsWriter()
59
+ writer.write(args.OUTPUT, doc, options)
60
+
61
+ except Exception as e:
62
+ logger.error(e)
63
+ raise e
@@ -1,5 +1,5 @@
1
- from .abstract import *
2
- from .os_xdm import *
3
- from .rte_xdm import *
4
- from .eb_doc import *
5
- from .importer_xdm import *
1
+ from .abstract import * # noqa F403
2
+ from .os_xdm import * # noqa F403
3
+ from .rte_xdm import * # noqa F403
4
+ from .eb_doc import * # noqa F403
5
+ from .importer_xdm import * # noqa F403
@@ -2,15 +2,16 @@ from abc import ABCMeta
2
2
  from typing import Dict
3
3
  import re
4
4
 
5
+
5
6
  class EcucObject(metaclass=ABCMeta):
6
7
  def __init__(self, parent, name) -> None:
7
- if type(self) == EcucObject:
8
+ if type(self) is EcucObject:
8
9
  raise ValueError("Abstract EcucObject cannot be initialized.")
9
10
 
10
- self.name = name
11
+ self.name = name # type: str
11
12
  self.parent = parent # type: EcucObject
12
13
 
13
- if isinstance(parent, EcucContainer):
14
+ if isinstance(parent, EcucParamConfContainerDef):
14
15
  parent.addElement(self)
15
16
 
16
17
  def getName(self):
@@ -29,15 +30,21 @@ class EcucObject(metaclass=ABCMeta):
29
30
 
30
31
  def getFullName(self) -> str:
31
32
  return self.parent.getFullName() + "/" + self.name
33
+
34
+
35
+ class EcucEnumerationParamDef(EcucObject):
36
+ def __init__(self, parent, name):
37
+ super().__init__(parent, name)
32
38
 
33
- class EcucContainer(EcucObject):
39
+
40
+ class EcucParamConfContainerDef(EcucObject):
34
41
  def __init__(self, parent, name) -> None:
35
42
  super().__init__(parent, name)
36
43
 
37
44
  self.elements = {} # type: Dict[str, EcucObject]
38
45
 
39
46
  def getTotalElement(self) -> int:
40
- #return len(list(filter(lambda a: not isinstance(a, ARPackage) , self.elements.values())))
47
+ # return len(list(filter(lambda a: not isinstance(a, ARPackage) , self.elements.values())))
41
48
  return len(self.elements)
42
49
 
43
50
  def addElement(self, object: EcucObject):
@@ -60,6 +67,7 @@ class EcucContainer(EcucObject):
60
67
  return None
61
68
  return self.elements[name]
62
69
 
70
+
63
71
  class EcucRefType:
64
72
  def __init__(self, value: str) -> None:
65
73
  self.value = value
@@ -82,6 +90,7 @@ class EcucRefType:
82
90
  return m.group(1)
83
91
  return self.value
84
92
 
93
+
85
94
  class Version:
86
95
  def __init__(self):
87
96
  self.majorVersion = None
@@ -115,7 +124,8 @@ class Version:
115
124
  def getVersion(self) -> str:
116
125
  return "%d.%d.%d" % (self.majorVersion, self.minorVersion, self.patchVersion)
117
126
 
118
- class Module(EcucContainer):
127
+
128
+ class Module(EcucParamConfContainerDef):
119
129
  def __init__(self, parent, name):
120
130
  super().__init__(parent, name)
121
131
 
eb_model/models/eb_doc.py CHANGED
@@ -1,17 +1,18 @@
1
- from .importer_xdm import SystemDescriptionImporter
2
- from .rte_xdm import Rte
3
- from .os_xdm import Os
4
- from .abstract import EcucContainer, EcucObject
1
+ from ..models.nvm_xdm import NvM
2
+ from ..models.importer_xdm import SystemDescriptionImporter
3
+ from ..models.rte_xdm import Rte
4
+ from ..models.os_xdm import Os
5
+ from ..models.abstract import EcucParamConfContainerDef, EcucObject
5
6
 
6
7
 
7
- class AbstractModel(EcucContainer):
8
+ class AbstractModel(EcucParamConfContainerDef):
8
9
  def getFullName(self):
9
10
  return self.name
10
11
 
11
12
  def clear(self):
12
13
  self.elements = {}
13
14
 
14
- def find_object(self, referred_name: str, element: EcucContainer) -> EcucObject:
15
+ def find_object(self, referred_name: str, element: EcucParamConfContainerDef) -> EcucObject:
15
16
  name_list = referred_name.split("/")
16
17
  # element = EBModel.getInstance()
17
18
  for name in name_list:
@@ -37,21 +38,29 @@ class EBModel(AbstractModel):
37
38
  if (EBModel.__instance is not None):
38
39
  raise Exception("The EBModel is singleton!")
39
40
 
40
- EcucContainer.__init__(self, None, "")
41
+ EcucParamConfContainerDef.__init__(self, None, "")
41
42
  EBModel.__instance = self
42
43
 
43
44
  def find(self, referred_name: str) -> EcucObject:
44
45
  return self.find_object(referred_name, EBModel.getInstance())
45
46
 
46
47
  def getOs(self) -> Os:
47
- container = EcucContainer(self, "Os")
48
+ '''
49
+ get the Os Container
50
+ '''
51
+ container = EcucParamConfContainerDef(self, "Os")
48
52
  Os(container)
49
53
  return self.find("/Os/Os")
50
54
 
51
55
  def getRte(self) -> Rte:
52
- container = EcucContainer(self, "Rte")
56
+ container = EcucParamConfContainerDef(self, "Rte")
53
57
  Rte(container)
54
58
  return self.find("/Rte/Rte")
59
+
60
+ def getNvM(self) -> NvM:
61
+ container = EcucParamConfContainerDef(self, "NvM")
62
+ NvM(container)
63
+ return self.find("/NvM/NvM")
55
64
 
56
65
 
57
66
  class PreferenceModel(AbstractModel):
@@ -67,10 +76,10 @@ class PreferenceModel(AbstractModel):
67
76
  if (PreferenceModel.__instance is not None):
68
77
  raise Exception("The PreferenceModel is singleton!")
69
78
 
70
- EcucContainer.__init__(self, None, "")
79
+ EcucParamConfContainerDef.__init__(self, None, "")
71
80
  PreferenceModel.__instance = self
72
81
 
73
- container = EcucContainer(self, "ImporterExporterAdditions")
82
+ container = EcucParamConfContainerDef(self, "ImporterExporterAdditions")
74
83
  SystemDescriptionImporter(container, "SystemDescriptionImporters")
75
84
 
76
85
  def find(self, referred_name: str) -> EcucObject:
@@ -1,8 +1,5 @@
1
-
2
1
  class Link:
3
2
  def __init__(self, name, type, locationURI):
4
3
  self.name = name
5
4
  self.type = type
6
5
  self.locationURI = locationURI
7
-
8
-
@@ -7,6 +7,7 @@ import os
7
7
  import re
8
8
  import logging
9
9
 
10
+
10
11
  class SystemDescriptionImporter(EcucObject):
11
12
  def __init__(self, parent, name):
12
13
  super().__init__(parent, name)
@@ -28,7 +29,7 @@ class SystemDescriptionImporter(EcucObject):
28
29
  file_list.append(file)
29
30
  return file_list
30
31
 
31
- def getParsedInputFiles(self, params = {}) -> List[str]:
32
+ def getParsedInputFiles(self, params={}) -> List[str]:
32
33
  file_list = []
33
34
  for input_file in self.inputFiles:
34
35
  m = re.match(r'\$\{(env_var:\w+)\}(.*)', input_file)
@@ -50,7 +51,7 @@ class SystemDescriptionImporter(EcucObject):
50
51
  file_list.append(input_file)
51
52
  return file_list
52
53
 
53
- def getAllPaths(self, path :str) -> List[str]:
54
+ def getAllPaths(self, path: str) -> List[str]:
54
55
  path_segments = path.split("/")
55
56
 
56
57
  result = []
@@ -61,11 +62,11 @@ class SystemDescriptionImporter(EcucObject):
61
62
  if long_path == "":
62
63
  long_path = path_segment
63
64
  else:
64
- long_path = long_path +"/" + path_segment
65
+ long_path = long_path + "/" + path_segment
65
66
  result.append(long_path)
66
67
  return result
67
68
 
68
- def getNameByPath(self, path : str):
69
+ def getNameByPath(self, path: str):
69
70
  path_segments = path.split("/")
70
71
 
71
72
  result = []
@@ -76,10 +77,10 @@ class SystemDescriptionImporter(EcucObject):
76
77
  else:
77
78
  result.append(path_segment)
78
79
 
79
- return (count , "/".join(result))
80
+ return (count, "/".join(result))
80
81
 
81
82
  def getLinks(self, file_list: List[str]) -> List[Link]:
82
- path_sets = {} # type: Dict[str, List[str]]
83
+ path_sets = {} # type: Dict[str, List[str]]
83
84
  path_segment_sets = []
84
85
 
85
86
  for file in file_list:
@@ -111,5 +112,3 @@ class SystemDescriptionImporter(EcucObject):
111
112
  links.append(link)
112
113
 
113
114
  return links
114
-
115
-
@@ -0,0 +1,347 @@
1
+ from typing import List
2
+ from ..models.abstract import EcucParamConfContainerDef, Module, EcucRefType
3
+
4
+
5
+ class NvM(Module):
6
+ def __init__(self, parent):
7
+ super().__init__(parent, "NvM")
8
+
9
+ self.NvMBlockDescriptors = [] # type: List[NvMBlockDescriptor]
10
+
11
+ def getNvMBlockDescriptorList(self):
12
+ return self.NvMBlockDescriptors
13
+
14
+ def addNvMBlockDescriptor(self, value):
15
+ if value is not None:
16
+ self.NvMBlockDescriptors.append(value)
17
+ return self
18
+
19
+
20
+ class NvMBlockDescriptor(EcucParamConfContainerDef):
21
+ def __init__(self, parent, name):
22
+ super().__init__(parent, name)
23
+
24
+ self.nvMBlockCrcType = None # type: str # optional
25
+ self.nvMBlockHeaderInclude = None # type: int # optional
26
+ self.nvMBlockJobPriority = None # type: str # required
27
+ self.nvMBlockManagementType = None # type: str # required
28
+ self.nvMBlockUseAutoValidation = None # required
29
+ self.nvMBlockUseCompression = None # required
30
+ self.nvMBlockUseCrc = None # required
31
+ self.nvMBlockUseCRCCompMechanism = None # required
32
+ self.NvMBlockUsePort = None # required
33
+ self.nvMBlockUseSetRamBlockStatus = None # required
34
+ self.nvMBlockUseSyncMechanism = None # required
35
+ self.nvMBlockWriteProt = None # required
36
+ self.nvMBswMBlockStatusInformation = None # required
37
+ self.nvMCalcRamBlockCrc = None # optional
38
+ self.nvMMaxNumOfReadRetries = None # required
39
+ self.nvMMaxNumOfWriteRetries = None # required
40
+ self.nvMNvBlockBaseNumber = None # required
41
+ self.nvMNvBlockLength = None # type: int # required
42
+ self.nvMNvBlockNum = None # type: int # required
43
+ self.nvMNvramBlockIdentifier = None # required
44
+ self.nvMNvramDeviceId = None # required
45
+ self.nvMRamBlockDataAddress = None # optional
46
+ self.nvMReadRamBlockFromNvCallback = None # optional
47
+ self.nvMResistantToChangedSw = None # required
48
+ self.nvMRomBlockDataAddress = None # optional
49
+ self.nvMRomBlockNum = None # required
50
+ self.nvMSelectBlockForFirstInitAll = None # optional
51
+ self.nvMSelectBlockForReadAll = None # required
52
+ self.nvMSelectBlockForWriteAll = None # required
53
+ self.nvMStaticBlockIDCheck = None # required
54
+ self.nvMWriteBlockOnce = None # required
55
+ self.nvMWriteRamBlockToNvCallback = None # optional
56
+ self.nvMWriteVerification = None # required
57
+ self.nvMWriteVerificationDataSize = None # required
58
+ self.nvMBlockCipheringRef = None # optional
59
+ self.nvMBlockEcucPartitionRef = None # type: EcucRefType # required
60
+
61
+ def getNvMBlockCrcType(self):
62
+ return self.nvMBlockCrcType
63
+
64
+ def setNvMBlockCrcType(self, value):
65
+ if value is not None:
66
+ self.nvMBlockCrcType = value
67
+ return self
68
+
69
+ def getNvMBlockHeaderInclude(self):
70
+ return self.nvMBlockHeaderInclude
71
+
72
+ def setNvMBlockHeaderInclude(self, value):
73
+ if value is not None:
74
+ self.nvMBlockHeaderInclude = value
75
+ return self
76
+
77
+ def getNvMBlockJobPriority(self):
78
+ return self.nvMBlockJobPriority
79
+
80
+ def setNvMBlockJobPriority(self, value):
81
+ if value is not None:
82
+ self.nvMBlockJobPriority = value
83
+ return self
84
+
85
+ def getNvMBlockManagementType(self):
86
+ return self.nvMBlockManagementType
87
+
88
+ def setNvMBlockManagementType(self, value):
89
+ if value is not None:
90
+ self.nvMBlockManagementType = value
91
+ return self
92
+
93
+ def getNvMBlockUseAutoValidation(self):
94
+ return self.nvMBlockUseAutoValidation
95
+
96
+ def setNvMBlockUseAutoValidation(self, value):
97
+ if value is not None:
98
+ self.nvMBlockUseAutoValidation = value
99
+ return self
100
+
101
+ def getNvMBlockUseCompression(self):
102
+ return self.nvMBlockUseCompression
103
+
104
+ def setNvMBlockUseCompression(self, value):
105
+ if value is not None:
106
+ self.nvMBlockUseCompression = value
107
+ return self
108
+
109
+ def getNvMBlockUseCrc(self):
110
+ return self.nvMBlockUseCrc
111
+
112
+ def setNvMBlockUseCrc(self, value):
113
+ if value is not None:
114
+ self.nvMBlockUseCrc = value
115
+ return self
116
+
117
+ def getNvMBlockUseCRCCompMechanism(self):
118
+ return self.nvMBlockUseCRCCompMechanism
119
+
120
+ def setNvMBlockUseCRCCompMechanism(self, value):
121
+ if value is not None:
122
+ self.nvMBlockUseCRCCompMechanism = value
123
+ return self
124
+
125
+ def getNvMBlockUsePort(self):
126
+ return self.NvMBlockUsePort
127
+
128
+ def setNvMBlockUsePort(self, value):
129
+ if value is not None:
130
+ self.NvMBlockUsePort = value
131
+ return self
132
+
133
+ def getNvMBlockUseSetRamBlockStatus(self):
134
+ return self.nvMBlockUseSetRamBlockStatus
135
+
136
+ def setNvMBlockUseSetRamBlockStatus(self, value):
137
+ if value is not None:
138
+ self.nvMBlockUseSetRamBlockStatus = value
139
+ return self
140
+
141
+ def getNvMBlockUseSyncMechanism(self):
142
+ return self.nvMBlockUseSyncMechanism
143
+
144
+ def setNvMBlockUseSyncMechanism(self, value):
145
+ if value is not None:
146
+ self.nvMBlockUseSyncMechanism = value
147
+ return self
148
+
149
+ def getNvMBlockWriteProt(self):
150
+ return self.nvMBlockWriteProt
151
+
152
+ def setNvMBlockWriteProt(self, value):
153
+ if value is not None:
154
+ self.nvMBlockWriteProt = value
155
+ return self
156
+
157
+ def getNvMBswMBlockStatusInformation(self):
158
+ return self.nvMBswMBlockStatusInformation
159
+
160
+ def setNvMBswMBlockStatusInformation(self, value):
161
+ if value is not None:
162
+ self.nvMBswMBlockStatusInformation = value
163
+ return self
164
+
165
+ def getNvMCalcRamBlockCrc(self):
166
+ return self.nvMCalcRamBlockCrc
167
+
168
+ def setNvMCalcRamBlockCrc(self, value):
169
+ if value is not None:
170
+ self.nvMCalcRamBlockCrc = value
171
+ return self
172
+
173
+ def getNvMMaxNumOfReadRetries(self):
174
+ return self.nvMMaxNumOfReadRetries
175
+
176
+ def setNvMMaxNumOfReadRetries(self, value):
177
+ if value is not None:
178
+ self.nvMMaxNumOfReadRetries = value
179
+ return self
180
+
181
+ def getNvMMaxNumOfWriteRetries(self):
182
+ return self.nvMMaxNumOfWriteRetries
183
+
184
+ def setNvMMaxNumOfWriteRetries(self, value):
185
+ if value is not None:
186
+ self.nvMMaxNumOfWriteRetries = value
187
+ return self
188
+
189
+ def getNvMNvBlockBaseNumber(self):
190
+ return self.nvMNvBlockBaseNumber
191
+
192
+ def setNvMNvBlockBaseNumber(self, value):
193
+ if value is not None:
194
+ self.nvMNvBlockBaseNumber = value
195
+ return self
196
+
197
+ def getNvMNvBlockLength(self):
198
+ return self.nvMNvBlockLength
199
+
200
+ def setNvMNvBlockLength(self, value):
201
+ if value is not None:
202
+ self.nvMNvBlockLength = value
203
+ return self
204
+
205
+ def getNvMNvBlockNum(self):
206
+ return self.nvMNvBlockNum
207
+
208
+ def setNvMNvBlockNum(self, value):
209
+ if value is not None:
210
+ self.nvMNvBlockNum = value
211
+ return self
212
+
213
+ def getNvMNvramBlockIdentifier(self):
214
+ return self.nvMNvramBlockIdentifier
215
+
216
+ def setNvMNvramBlockIdentifier(self, value):
217
+ if value is not None:
218
+ self.nvMNvramBlockIdentifier = value
219
+ return self
220
+
221
+ def getNvMNvramDeviceId(self):
222
+ return self.nvMNvramDeviceId
223
+
224
+ def setNvMNvramDeviceId(self, value):
225
+ if value is not None:
226
+ self.nvMNvramDeviceId = value
227
+ return self
228
+
229
+ def getNvMRamBlockDataAddress(self):
230
+ return self.nvMRamBlockDataAddress
231
+
232
+ def setNvMRamBlockDataAddress(self, value):
233
+ if value is not None:
234
+ self.nvMRamBlockDataAddress = value
235
+ return self
236
+
237
+ def getNvMReadRamBlockFromNvCallback(self):
238
+ return self.nvMReadRamBlockFromNvCallback
239
+
240
+ def setNvMReadRamBlockFromNvCallback(self, value):
241
+ if value is not None:
242
+ self.nvMReadRamBlockFromNvCallback = value
243
+ return self
244
+
245
+ def getNvMResistantToChangedSw(self):
246
+ return self.nvMResistantToChangedSw
247
+
248
+ def setNvMResistantToChangedSw(self, value):
249
+ if value is not None:
250
+ self.nvMResistantToChangedSw = value
251
+ return self
252
+
253
+ def getNvMRomBlockDataAddress(self):
254
+ return self.nvMRomBlockDataAddress
255
+
256
+ def setNvMRomBlockDataAddress(self, value):
257
+ if value is not None:
258
+ self.nvMRomBlockDataAddress = value
259
+ return self
260
+
261
+ def getNvMRomBlockNum(self):
262
+ return self.nvMRomBlockNum
263
+
264
+ def setNvMRomBlockNum(self, value):
265
+ if value is not None:
266
+ self.nvMRomBlockNum = value
267
+ return self
268
+
269
+ def getNvMSelectBlockForFirstInitAll(self):
270
+ return self.nvMSelectBlockForFirstInitAll
271
+
272
+ def setNvMSelectBlockForFirstInitAll(self, value):
273
+ if value is not None:
274
+ self.nvMSelectBlockForFirstInitAll = value
275
+ return self
276
+
277
+ def getNvMSelectBlockForReadAll(self):
278
+ return self.nvMSelectBlockForReadAll
279
+
280
+ def setNvMSelectBlockForReadAll(self, value):
281
+ if value is not None:
282
+ self.nvMSelectBlockForReadAll = value
283
+ return self
284
+
285
+ def getNvMSelectBlockForWriteAll(self):
286
+ return self.nvMSelectBlockForWriteAll
287
+
288
+ def setNvMSelectBlockForWriteAll(self, value):
289
+ if value is not None:
290
+ self.nvMSelectBlockForWriteAll = value
291
+ return self
292
+
293
+ def getNvMStaticBlockIDCheck(self):
294
+ return self.nvMStaticBlockIDCheck
295
+
296
+ def setNvMStaticBlockIDCheck(self, value):
297
+ if value is not None:
298
+ self.nvMStaticBlockIDCheck = value
299
+ return self
300
+
301
+ def getNvMWriteBlockOnce(self):
302
+ return self.nvMWriteBlockOnce
303
+
304
+ def setNvMWriteBlockOnce(self, value):
305
+ if value is not None:
306
+ self.nvMWriteBlockOnce = value
307
+ return self
308
+
309
+ def getNvMWriteRamBlockToNvCallback(self):
310
+ return self.nvMWriteRamBlockToNvCallback
311
+
312
+ def setNvMWriteRamBlockToNvCallback(self, value):
313
+ if value is not None:
314
+ self.nvMWriteRamBlockToNvCallback = value
315
+ return self
316
+
317
+ def getNvMWriteVerification(self):
318
+ return self.nvMWriteVerification
319
+
320
+ def setNvMWriteVerification(self, value):
321
+ if value is not None:
322
+ self.nvMWriteVerification = value
323
+ return self
324
+
325
+ def getNvMWriteVerificationDataSize(self):
326
+ return self.nvMWriteVerificationDataSize
327
+
328
+ def setNvMWriteVerificationDataSize(self, value):
329
+ if value is not None:
330
+ self.nvMWriteVerificationDataSize = value
331
+ return self
332
+
333
+ def getNvMBlockCipheringRef(self):
334
+ return self.nvMBlockCipheringRef
335
+
336
+ def setNvMBlockCipheringRef(self, value):
337
+ if value is not None:
338
+ self.nvMBlockCipheringRef = value
339
+ return self
340
+
341
+ def getNvMBlockEcucPartitionRef(self) -> EcucRefType:
342
+ return self.nvMBlockEcucPartitionRef
343
+
344
+ def setNvMBlockEcucPartitionRef(self, value: EcucRefType):
345
+ if value is not None:
346
+ self.nvMBlockEcucPartitionRef = value
347
+ return self