py-eb-model 1.1.6__py3-none-any.whl → 1.1.8__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 (30) hide show
  1. eb_model/cli/pref_system_importer_cli.py +22 -13
  2. eb_model/cli/rte_xdm_2_xls_cli.py +28 -27
  3. eb_model/models/abstract.py +20 -8
  4. eb_model/models/importer_xdm.py +3 -1
  5. eb_model/models/nvm_xdm.py +321 -12
  6. eb_model/models/os_xdm.py +320 -55
  7. eb_model/models/rte_xdm.py +16 -11
  8. eb_model/parser/eb_parser.py +28 -20
  9. eb_model/parser/nvm_xdm_parser.py +89 -12
  10. eb_model/parser/os_xdm_parser.py +56 -12
  11. eb_model/parser/rte_xdm_parser.py +11 -11
  12. eb_model/reporter/excel_reporter/abstract.py +20 -6
  13. eb_model/reporter/excel_reporter/nvm_xdm.py +97 -7
  14. eb_model/reporter/excel_reporter/os_xdm.py +104 -20
  15. eb_model/reporter/excel_reporter/rte_xdm.py +15 -4
  16. eb_model/tests/models/test_abstract.py +201 -0
  17. eb_model/tests/models/test_eb_doc.py +66 -0
  18. eb_model/tests/models/test_eclipse_project.py +21 -0
  19. eb_model/tests/models/test_importer_xdm.py +45 -40
  20. eb_model/tests/parser/__init__.py +0 -0
  21. eb_model/tests/parser/test_nvm_xdm_parser.py +259 -0
  22. eb_model/tests/parser/test_os_xdm_parser.py +396 -0
  23. eb_model/writer/text_writer.py +4 -2
  24. {py_eb_model-1.1.6.dist-info → py_eb_model-1.1.8.dist-info}/METADATA +12 -1
  25. py_eb_model-1.1.8.dist-info/RECORD +48 -0
  26. py_eb_model-1.1.6.dist-info/RECORD +0 -42
  27. {py_eb_model-1.1.6.dist-info → py_eb_model-1.1.8.dist-info}/LICENSE +0 -0
  28. {py_eb_model-1.1.6.dist-info → py_eb_model-1.1.8.dist-info}/WHEEL +0 -0
  29. {py_eb_model-1.1.6.dist-info → py_eb_model-1.1.8.dist-info}/entry_points.txt +0 -0
  30. {py_eb_model-1.1.6.dist-info → py_eb_model-1.1.8.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,396 @@
1
+ from ...parser.os_xdm_parser import OsXdmParser
2
+ from ...models.os_xdm import Os, OsResource
3
+ from ...models.eb_doc import EBModel
4
+
5
+ import xml.etree.ElementTree as ET
6
+ import pytest
7
+
8
+
9
+ class TestOsXdmParser:
10
+ def test_read_os_resources(self):
11
+
12
+ # Create a mock XML element for testing
13
+ xml_content = """
14
+ <datamodel version="8.0"
15
+ xmlns="http://www.tresos.de/_projects/DataModel2/18/root.xsd"
16
+ xmlns:a="http://www.tresos.de/_projects/DataModel2/18/attribute.xsd"
17
+ xmlns:v="http://www.tresos.de/_projects/DataModel2/06/schema.xsd"
18
+ xmlns:d="http://www.tresos.de/_projects/DataModel2/06/data.xsd">
19
+ <d:lst name="OsResource" type="MAP">
20
+ <d:ctr name="Resource1">
21
+ <a:a name="IMPORTER_INFO" value="@CALC(SvcAs,os.resources,1)"/>
22
+ <d:var name="OsResourceProperty" type="ENUMERATION" value="STANDARD">
23
+ <d:lst name="OsResourceAccessingApplication">
24
+ <d:ref type="REFERENCE" value="ASPath:/Os/Os/OsApplication_C0">
25
+ <a:a name="IMPORTER_INFO" value="@CALC(SvcAs,os.resources,1)"/>
26
+ </d:ref>
27
+ </d:lst>
28
+ </d:var>
29
+ </d:ctr>
30
+ <d:ctr name="Resource2">
31
+ <d:var name="OsResourceProperty" type="ENUMERATION" value="INTERNAL"/>
32
+ <d:lst name="OsResourceAccessingApplication"/>
33
+ <d:ref name="OsResourceLinkedResourceRef" type="REFERENCE" >
34
+ <a:a name="ENABLE" value="false"/>
35
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
36
+ </d:ref>
37
+ </d:ctr>
38
+ </d:lst>
39
+ </datamodel>
40
+ """
41
+ element = ET.fromstring(xml_content)
42
+
43
+ # Mock Os object
44
+ model = EBModel.getInstance()
45
+ os = model.getOs()
46
+
47
+ # Create parser instance
48
+ parser = OsXdmParser()
49
+ parser.nsmap = {
50
+ '': "http://www.tresos.de/_projects/DataModel2/18/root.xsd",
51
+ 'a': "http://www.tresos.de/_projects/DataModel2/18/attribute.xsd",
52
+ 'v': "http://www.tresos.de/_projects/DataModel2/06/schema.xsd",
53
+ 'd': "http://www.tresos.de/_projects/DataModel2/06/data.xsd"
54
+ }
55
+
56
+ # Call the method
57
+ parser.read_os_resources(element, os)
58
+
59
+ # Assertions
60
+ resources = os.getOsResourceList()
61
+ assert len(resources) == 2
62
+
63
+ resource1 = resources[0]
64
+ assert resource1.getName() == "Resource1"
65
+ assert resource1.getImporterInfo() == "@CALC(SvcAs,os.resources,1)"
66
+ assert resource1.isCalculatedSvcAs() is True
67
+ assert resource1.getOsResourceProperty() == "STANDARD"
68
+ assert len(resource1.getOsResourceAccessingApplicationRefs()) == 1
69
+ for ref in resource1.getOsResourceAccessingApplicationRefs():
70
+ assert ref.getValue() == "/Os/Os/OsApplication_C0"
71
+
72
+ resource2 = resources[1]
73
+ assert resource2.getName() == "Resource2"
74
+ assert resource2.getImporterInfo() is None
75
+ assert resource2.isCalculatedSvcAs() is False
76
+ assert resource2.getOsResourceProperty() == "INTERNAL"
77
+ assert len(resource2.getOsResourceAccessingApplicationRefs()) == 0
78
+
79
+ def test_read_os_tasks(self):
80
+ # Create a mock XML element for testing
81
+ xml_content = """
82
+ <datamodel version="8.0"
83
+ xmlns="http://www.tresos.de/_projects/DataModel2/18/root.xsd"
84
+ xmlns:a="http://www.tresos.de/_projects/DataModel2/18/attribute.xsd"
85
+ xmlns:v="http://www.tresos.de/_projects/DataModel2/06/schema.xsd"
86
+ xmlns:d="http://www.tresos.de/_projects/DataModel2/06/data.xsd">
87
+ <d:lst name="OsTask" type="MAP">
88
+ <d:ctr name="Task1">
89
+ <d:var name="OsTaskActivation" type="INTEGER" value="1">
90
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
91
+ </d:var>
92
+ <d:var name="OsTaskPriority" type="INTEGER" value="250"/>
93
+ <d:var name="OsTaskPeriod" type="FLOAT" >
94
+ <a:a name="ENABLE" value="false"/>
95
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
96
+ </d:var>
97
+ <d:var name="OsMeasure_Max_Runtime" type="BOOLEAN" value="false">
98
+ <a:a name="ENABLE" value="false"/>
99
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
100
+ </d:var>
101
+ <d:lst name="OsTaskAccessingApplication">
102
+ <d:ref type="REFERENCE" value="ASPath:/Os/Os/Partition_01"/>
103
+ </d:lst>
104
+ <d:lst name="OsTaskEventRef"/>
105
+ <d:lst name="OsTaskResourceRef">
106
+ <d:ref type="REFERENCE" value="ASPath:/Os/Os/Res_Core0"/>
107
+ <d:ref type="REFERENCE" value="ASPath:/Os/Os/Res_Core1"/>
108
+ </d:lst>
109
+ <d:ctr name="OsTaskAutostart" type="IDENTIFIABLE">
110
+ <a:a name="ENABLE" value="true"/>
111
+ <d:lst name="OsTaskAppModeRef">
112
+ <d:ref type="REFERENCE" value="ASPath:/Os/Os/OSDEFAULTAPPMODE"/>
113
+ </d:lst>
114
+ </d:ctr>
115
+ <d:var name="OsTaskUse_Hw_Fp" type="BOOLEAN" >
116
+ <a:a name="ENABLE" value="false"/>
117
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
118
+ </d:var>
119
+ <d:var name="OsTaskCallScheduler" type="ENUMERATION" >
120
+ <a:a name="ENABLE" value="false"/>
121
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
122
+ </d:var>
123
+ <d:var name="OsTaskType" type="ENUMERATION" value="BASIC">
124
+ <a:a name="ENABLE" value="true"/>
125
+ </d:var>
126
+ <d:var name="OsStacksize" type="INTEGER" value="1024"/>
127
+ <d:ctr name="OsTaskTimingProtection" type="IDENTIFIABLE">
128
+ <a:a name="ENABLE" value="false"/>
129
+ <d:var name="OsTaskAllInterruptLockBudget" type="FLOAT">
130
+ <a:a name="ENABLE" value="false"/>
131
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
132
+ </d:var>
133
+ <d:var name="OsTaskExecutionBudget" type="FLOAT" >
134
+ <a:a name="ENABLE" value="false"/>
135
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
136
+ </d:var>
137
+ <d:var name="OsTaskOsInterruptLockBudget" type="FLOAT" >
138
+ <a:a name="ENABLE" value="false"/>
139
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
140
+ </d:var>
141
+ <d:var name="OsTaskTimeFrame" type="FLOAT" >
142
+ <a:a name="ENABLE" value="false"/>
143
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
144
+ </d:var>
145
+ <d:lst name="OsTaskResourceLock" type="MAP"/>
146
+ <d:var name="OsTaskCountLimit" type="INTEGER" value="1">
147
+ <a:a name="ENABLE" value="false"/>
148
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
149
+ </d:var>
150
+ </d:ctr>
151
+ <d:var name="OsTaskSchedule" type="ENUMERATION" value="FULL"/>
152
+ <d:var name="OsTaskMkCreateMemoryRegion" type="BOOLEAN" value="false"/>
153
+ <d:var name="OsTaskMkExcludeAppRegions" type="BOOLEAN" value="false">
154
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
155
+ </d:var>
156
+ <d:lst name="OsTaskMkMemoryRegionRef">
157
+ <d:ref type="REFERENCE" value="ASPath:/Os/Os/OsMicrokernel/MkMemoryProtection/MPU_01"/>
158
+ <d:ref type="REFERENCE" value="ASPath:/Os/Os/OsMicrokernel/MkMemoryProtection/MPU_02"/>
159
+ </d:lst>
160
+ <d:var name="OsTaskMkThreadModeOverride" type="ENUMERATION"
161
+ value="USER1">
162
+ <a:a name="ENABLE" value="true"/>
163
+ </d:var>
164
+ <d:var name="OsTaskSafetyIdentifier" type="BOOLEAN" value="false">
165
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
166
+ </d:var>
167
+ <d:var name="OsTaskFastPartition" type="BOOLEAN" value="false">
168
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
169
+ </d:var>
170
+ <d:var name="OsPswCallDepthCounting" type="BOOLEAN" value="false">
171
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
172
+ </d:var>
173
+ <d:var name="OsPswCallDepthCounter" type="INTEGER" >
174
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
175
+ </d:var>
176
+ </d:ctr>
177
+ <d:ctr name="Task2">
178
+ <d:var name="OsTaskPriority" type="INTEGER" value="3"/>
179
+ <d:var name="OsTaskActivation" type="INTEGER" value="2"/>
180
+ <d:var name="OsTaskSchedule" type="ENUMERATION" value="NON"/>
181
+ <d:var name="OsStacksize" type="INTEGER" value="2048"/>
182
+ </d:ctr>
183
+ <d:ctr name="Idle_Task_C0" type="IDENTIFIABLE">
184
+ <d:var name="OsTaskPeriod" type="FLOAT" >
185
+ <a:a name="ENABLE" value="false"/>
186
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
187
+ </d:var>
188
+ <d:ref name="OsMemoryMappingCodeLocationRef" type="REFERENCE" >
189
+ <a:a name="ENABLE" value="false"/>
190
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
191
+ </d:ref>
192
+ <d:lst name="OsTaskEventRef"/>
193
+ <d:lst name="OsTaskResourceRef"/>
194
+ <d:ctr name="OsTaskTimingProtection" type="IDENTIFIABLE">
195
+ <a:a name="ENABLE" value="false"/>
196
+ <d:var name="OsTaskAllInterruptLockBudget" type="FLOAT" >
197
+ <a:a name="ENABLE" value="false"/>
198
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
199
+ </d:var>
200
+ <d:var name="OsTaskExecutionBudget" type="FLOAT" >
201
+ <a:a name="ENABLE" value="false"/>
202
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
203
+ </d:var>
204
+ <d:var name="OsTaskOsInterruptLockBudget" type="FLOAT" >
205
+ <a:a name="ENABLE" value="false"/>
206
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
207
+ </d:var>
208
+ <d:var name="OsTaskTimeFrame" type="FLOAT" >
209
+ <a:a name="ENABLE" value="false"/>
210
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
211
+ </d:var>
212
+ <d:lst name="OsTaskResourceLock" type="MAP"/>
213
+ <d:var name="OsTaskCountLimit" type="INTEGER" value="1">
214
+ <a:a name="ENABLE" value="false"/>
215
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
216
+ </d:var>
217
+ </d:ctr>
218
+ <d:var name="OsMeasure_Max_Runtime" type="BOOLEAN" value="false">
219
+ <a:a name="ENABLE" value="false"/>
220
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
221
+ </d:var>
222
+ <d:var name="OsTaskCallScheduler" type="ENUMERATION" >
223
+ <a:a name="ENABLE" value="false"/>
224
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
225
+ </d:var>
226
+ <d:var name="OsTaskType" type="ENUMERATION" >
227
+ <a:a name="ENABLE" value="false"/>
228
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
229
+ </d:var>
230
+ <d:var name="OsStacksize" type="INTEGER" value="800"/>
231
+ <d:var name="OsTaskActivation" type="INTEGER" value="1"/>
232
+ <d:var name="OsTaskPriority" type="INTEGER" value="1"/>
233
+ <d:var name="OsTaskSchedule" type="ENUMERATION" value="FULL"/>
234
+ <d:var name="OsTaskUse_Hw_Fp" type="BOOLEAN" value="true">
235
+ <a:a name="ENABLE" value="true"/>
236
+ </d:var>
237
+ <d:lst name="OsTaskAccessingApplication">
238
+ <d:ref type="REFERENCE" value="ASPath:/Os/Os/OsApplication_C0"/>
239
+ </d:lst>
240
+ <d:ctr name="OsTaskAutostart" type="IDENTIFIABLE">
241
+ <a:a name="ENABLE" value="true"/>
242
+ <d:lst name="OsTaskAppModeRef">
243
+ <d:ref type="REFERENCE" value="ASPath:/Os/Os/OSDEFAULTAPPMODE"/>
244
+ </d:lst>
245
+ </d:ctr>
246
+ <d:var name="OsTaskMkCreateMemoryRegion" type="BOOLEAN" value="true">
247
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
248
+ </d:var>
249
+ <d:var name="OsTaskMkExcludeAppRegions" type="BOOLEAN" value="false">
250
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
251
+ </d:var>
252
+ <d:lst name="OsTaskMkMemoryRegionRef"/>
253
+ <d:var name="OsTaskMkThreadModeOverride" type="ENUMERATION" value="USER">
254
+ <a:a name="ENABLE" value="false"/>
255
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
256
+ </d:var>
257
+ <d:ctr name="OsCORTEXMMemoryRegions" type="IDENTIFIABLE">
258
+ <d:var name="OsCORTEXMPrivateDataRegionSize" type="ENUMERATION" value="SIZE_4K">
259
+ <a:a name="ENABLE" value="false"/>
260
+ <a:a name="IMPORTER_INFO" value="@DEF"/>
261
+ </d:var>
262
+ </d:ctr>
263
+ </d:ctr>
264
+ </d:lst>
265
+ </datamodel>
266
+ """
267
+ element = ET.fromstring(xml_content)
268
+
269
+ # Mock Os object
270
+ model = EBModel.getInstance()
271
+ os = model.getOs()
272
+
273
+ # Create parser instance
274
+ parser = OsXdmParser()
275
+ parser.nsmap = {
276
+ '': "http://www.tresos.de/_projects/DataModel2/18/root.xsd",
277
+ 'a': "http://www.tresos.de/_projects/DataModel2/18/attribute.xsd",
278
+ 'v': "http://www.tresos.de/_projects/DataModel2/06/schema.xsd",
279
+ 'd': "http://www.tresos.de/_projects/DataModel2/06/data.xsd"
280
+ }
281
+
282
+ # Call the method
283
+ parser.read_os_tasks(element, os)
284
+
285
+ # Assertions
286
+ tasks = os.getOsTaskList()
287
+ assert len(tasks) == 3
288
+
289
+ task1 = tasks[0]
290
+ assert task1.getName() == "Idle_Task_C0"
291
+ assert task1.getOsTaskPriority() == 1
292
+ assert task1.getOsTaskActivation() == 1
293
+ assert task1.getOsTaskSchedule() == "FULL"
294
+ assert task1.getOsTaskType() is None
295
+ assert task1.getOsStacksize() == 800
296
+ assert len(task1.getOsTaskResourceRefList()) == 0
297
+ assert task1.getOsTaskAutostart() is not None
298
+ assert task1.getOsTaskAutostart().getOsTaskAppModeRefList() is not None
299
+
300
+ task2 = tasks[1]
301
+ assert task2.getName() == "Task1"
302
+ assert task2.getOsTaskPriority() == 250
303
+ assert task2.getOsTaskActivation() == 1
304
+ assert task2.getOsTaskSchedule() == "FULL"
305
+ assert task2.getOsTaskType() == "BASIC"
306
+ assert task2.getOsStacksize() == 1024
307
+ assert len(task2.getOsTaskResourceRefList()) == 2
308
+ assert task2.getOsTaskResourceRefList()[0].getValue() == "/Os/Os/Res_Core0"
309
+ assert task2.getOsTaskResourceRefList()[1].getValue() == "/Os/Os/Res_Core1"
310
+ autostart = task2.getOsTaskAutostart()
311
+ assert autostart is not None
312
+ assert len(autostart.getOsTaskAppModeRefList()) == 1
313
+ assert autostart.getOsTaskAppModeRefList()[0].getValue() == "/Os/Os/OSDEFAULTAPPMODE"
314
+
315
+ task3 = tasks[2]
316
+ assert task3.getName() == "Task2"
317
+ assert task3.getOsTaskPriority() == 3
318
+ assert task3.getOsTaskActivation() == 2
319
+ assert task3.getOsTaskSchedule() == "NON"
320
+ assert task3.getOsTaskType() is None
321
+ assert task3.getOsStacksize() == 2048
322
+ assert len(task3.getOsTaskResourceRefList()) == 0
323
+ assert task3.getOsTaskAutostart() is None
324
+
325
+ '''
326
+ def test_read_os_applications(self):
327
+ # Create a mock XML element for testing
328
+ xml_content = """
329
+ <datamodel version="8.0"
330
+ xmlns="http://www.tresos.de/_projects/DataModel2/18/root.xsd"
331
+ xmlns:a="http://www.tresos.de/_projects/DataModel2/18/attribute.xsd"
332
+ xmlns:v="http://www.tresos.de/_projects/DataModel2/06/schema.xsd"
333
+ xmlns:d="http://www.tresos.de/_projects/DataModel2/06/data.xsd">
334
+ <d:lst name="OsApplication" type="MAP">
335
+ <d:ctr name="App1">
336
+ <d:var name="OsTrusted" type="BOOLEAN" value="true"/>
337
+ <d:lst name="OsAppResourceRef">
338
+ <d:ref type="REFERENCE" value="/Os/OsResource1"/>
339
+ <d:ref type="REFERENCE" value="/Os/OsResource2"/>
340
+ </d:lst>
341
+ <d:lst name="OsAppTaskRef">
342
+ <d:ref type="REFERENCE" value="/Os/OsTask1"/>
343
+ </d:lst>
344
+ <d:lst name="OsAppIsrRef">
345
+ <d:ref type="REFERENCE" value="/Os/OsIsr1"/>
346
+ </d:lst>
347
+ </d:ctr>
348
+ <d:ctr name="App2">
349
+ <d:var name="OsTrusted" type="BOOLEAN" value="false"/>
350
+ <d:lst name="OsAppResourceRef"/>
351
+ <d:lst name="OsAppTaskRef"/>
352
+ <d:lst name="OsAppIsrRef"/>
353
+ </d:ctr>
354
+ </d:lst>
355
+ </datamodel>
356
+ """
357
+ element = ET.fromstring(xml_content)
358
+
359
+ # Mock Os object
360
+ model = EBModel.getInstance()
361
+ os = model.getOs()
362
+
363
+ # Create parser instance
364
+ parser = OsXdmParser()
365
+ parser.nsmap = {
366
+ '': "http://www.tresos.de/_projects/DataModel2/18/root.xsd",
367
+ 'a': "http://www.tresos.de/_projects/DataModel2/18/attribute.xsd",
368
+ 'v': "http://www.tresos.de/_projects/DataModel2/06/schema.xsd",
369
+ 'd': "http://www.tresos.de/_projects/DataModel2/06/data.xsd"
370
+ }
371
+
372
+ # Call the method
373
+ parser.read_os_applications(element, os)
374
+
375
+ # Assertions
376
+ applications = os.getOsApplicationList()
377
+ assert len(applications) == 2
378
+
379
+ app1 = applications[0]
380
+ assert app1.getName() == "App1"
381
+ assert app1.getOsTrusted() == "true"
382
+ assert len(app1.getOsAppResourceRefs()) == 2
383
+ assert app1.getOsAppResourceRefs()[0].getValue() == "/Os/OsResource1"
384
+ assert app1.getOsAppResourceRefs()[1].getValue() == "/Os/OsResource2"
385
+ assert len(app1.getOsAppTaskRefs()) == 1
386
+ assert app1.getOsAppTaskRefs()[0].getValue() == "/Os/OsTask1"
387
+ assert len(app1.getOsAppIsrRefs()) == 1
388
+ assert app1.getOsAppIsrRefs()[0].getValue() == "/Os/OsIsr1"
389
+
390
+ app2 = applications[1]
391
+ assert app2.getName() == "App2"
392
+ assert app2.getOsTrusted() == "false"
393
+ assert len(app2.getOsAppResourceRefs()) == 0
394
+ assert len(app2.getOsAppTaskRefs()) == 0
395
+ assert len(app2.getOsAppIsrRefs()) == 0
396
+ noqa: E501 '''
@@ -1,8 +1,8 @@
1
1
  import logging
2
2
  from typing import List
3
-
4
3
  from ..models.eb_doc import SystemDescriptionImporter
5
4
 
5
+
6
6
  class TextWriter:
7
7
  def __init__(self):
8
8
  self.logger = logging.getLogger()
@@ -12,11 +12,13 @@ class TextWriter:
12
12
  for line in lines:
13
13
  f_out.write("%s\n" % line)
14
14
 
15
+
15
16
  class TextPreferenceModelWriter(TextWriter):
16
17
  def __init__(self):
17
18
  super().__init__()
18
19
 
19
- def writer_import_files(self, filename: str, importer: SystemDescriptionImporter, params = {'base_path': None, 'wildcard': None, "tresos_output_base_dir": None}):
20
+ def writer_import_files(self, filename: str, importer: SystemDescriptionImporter,
21
+ params={'base_path': None, 'wildcard': None, "tresos_output_base_dir": None}):
20
22
  self.logger.info("Generate import files list <%s>" % filename)
21
23
  lines = []
22
24
  for file in sorted(importer.getParsedInputFiles(params)):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: py-eb-model
3
- Version: 1.1.6
3
+ Version: 1.1.8
4
4
  Summary: The parser for EB XDM file
5
5
  Home-page: UNKNOWN
6
6
  Author: melodypapa
@@ -222,3 +222,14 @@ PrefSystemImporter --base-path c:/EB/ACG-8_8_8_WIN32X86/workspace/simple_demo_rt
222
222
  * Os::addOsResource
223
223
  2. Read the NvMBlockDescriptor List
224
224
 
225
+ **Version 1.1.7**
226
+
227
+ 1. Solve the case issue of read_optional_value enables attribute.
228
+ 2. Support to read IMPORT_INFO for OsResource.
229
+ 3. Add the test cases for OsXdmParser.
230
+
231
+ **Version 1.1.8**
232
+
233
+ 1. Support to read NvM configuration from EB tresos Xdm file
234
+ 2. Export the NvM Configuration to excel file.
235
+
@@ -0,0 +1,48 @@
1
+ eb_model/__init__.py,sha256=oMw5xoAS-lHLxufQSlBIXhGZZMcPmwGFA3PYpTwaQTU,92
2
+ eb_model/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ eb_model/cli/nvm_xdm_2_xls_cli.py,sha256=9OxWkT7OdL2DZbG8N_2sE3y8T0GWyzpwYKWnpTm8lag,1742
4
+ eb_model/cli/os_xdm_2_xls_cli.py,sha256=zUnxJ4uHWRSjMmpSK5hXRAzVt-_YGEyiMXrexnJSk6g,1970
5
+ eb_model/cli/pref_system_importer_cli.py,sha256=PamE_UT8GzTn6qLfKZxYycHfAujGMu6O2Jf7EsYExUA,3540
6
+ eb_model/cli/rte_xdm_2_xls_cli.py,sha256=AQogqNfbcAtRYnJVj7gVvUQc9xsOlpZAZzvIulom7qw,2191
7
+ eb_model/models/__init__.py,sha256=Jn4oOg6CxbAvULNaVt0obDLGPZC2sLzeo6rQt4eTDQ0,245
8
+ eb_model/models/abstract.py,sha256=hYUffwaL_9Z_4kG3z8dQVBIlxWjODktmCTP1JZP5ecg,4449
9
+ eb_model/models/eb_doc.py,sha256=d_vNhWda7ZwpmLPiCmlq316G-C2hvWz5bJBss9P2y_A,2955
10
+ eb_model/models/eclipse_project.py,sha256=I1y4UUPJQqy8Bh77sJkufzcH9wXMN1Wk82er-m1Sxhc,155
11
+ eb_model/models/importer_xdm.py,sha256=4sUxuu2-CbASiadW7qGFvhWRtbEPOZlLtvAhQDEHuQs,4442
12
+ eb_model/models/nvm_xdm.py,sha256=_QF5d32KKDUPWPWjItU1vS5BnrxZmPKuUqIlCcb4pYo,21939
13
+ eb_model/models/os_xdm.py,sha256=xBJPXDaKIczkI5TuKCBM28Xiga5FV3j7WK-UqLK8Qks,42939
14
+ eb_model/models/rte_xdm.py,sha256=5z7m5zp4_eoMypKhB4tq65RHLLm8Tww_3P59MqxZ6ZQ,22067
15
+ eb_model/parser/__init__.py,sha256=K_sp7EVjS2KoWUCdX_0h2jIY8Gxhwqs6AtRP1Pgj1TU,214
16
+ eb_model/parser/eb_parser.py,sha256=l3oLb60GxlXiOYNmT0bLIGDfojS8gxa6YoXlak7fkiM,8434
17
+ eb_model/parser/eb_parser_factory.py,sha256=zqsqq52uImU4-WcS5dvHfhM95hiEPAGRtNzVik8i8wc,971
18
+ eb_model/parser/nvm_xdm_parser.py,sha256=r3awxfeNIqXoJlhD_t05ebsnfZNuQ_AYhCikhhZziWo,7860
19
+ eb_model/parser/os_xdm_parser.py,sha256=M44HAGBj98s2xyAIwzVdAwJQb_JBlN7xh7CjXrSh8Kw,14212
20
+ eb_model/parser/pref_xdm_parser.py,sha256=EjfR4vrnjRVLw_7wyPmMYlBj6lPXZbBZMEdWlYPj3uI,1539
21
+ eb_model/parser/rte_xdm_parser.py,sha256=zKs1vz0DxIt4zPi6yBvPjGvLkq-BR2z_Dz7Pv8LBuDA,5560
22
+ eb_model/reporter/__init__.py,sha256=p-sMv7gJkxe3u8la09SZJjiWPgGGjZSaX0WoBD-hn-0,77
23
+ eb_model/reporter/markdown.py,sha256=NhcJOFQ_BVbkgGe66uAT7KUPIchWU4kfVMtMLQtbK-w,1647
24
+ eb_model/reporter/excel_reporter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ eb_model/reporter/excel_reporter/abstract.py,sha256=iZKfuTBJRvvi7zcVBRZOeDw9pZCpwIKvhKu7P_clV3Q,2274
26
+ eb_model/reporter/excel_reporter/nvm_xdm.py,sha256=g8Fa1j_fPCUU6xz4CThjXVfKoGe92NcT2ObjBfrvOYc,6513
27
+ eb_model/reporter/excel_reporter/os_xdm.py,sha256=AHlM28djFoOznoxB8Qz188BxwQL5N0Uc2-qISbbgyfQ,12072
28
+ eb_model/reporter/excel_reporter/rte_xdm.py,sha256=ToU8ZQ7abG1qJyT2_TcND2cOq8YO2TBBzt3IAdl4qdI,4863
29
+ eb_model/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
+ eb_model/tests/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
+ eb_model/tests/models/test_abstract.py,sha256=P588Us1-Qjz28LEVFSnNTTS6zeNRS33kl-SuXRe8R-s,7283
32
+ eb_model/tests/models/test_eb_doc.py,sha256=zp5-JGGT6oKTPqef8cv10CayDGe3QJmadN37z8J_0uU,2360
33
+ eb_model/tests/models/test_eb_model.py,sha256=3fpIHhzQlf9KZjm4fZxcSTT4Zio6YhTrcn9UBvlhOfo,1632
34
+ eb_model/tests/models/test_eclipse_project.py,sha256=xvIhPXzqkrP7E3bLcVJFaN75Qx0yMrq6_gr_SG6g_sE,688
35
+ eb_model/tests/models/test_ecuc_container.py,sha256=-M_XZTSeWGVIJac6sj_an2-Ui65QVNXbfbETOD_Ipm8,758
36
+ eb_model/tests/models/test_importer_xdm.py,sha256=CG-kt8JrJa6MTnsotDEGCEymsu7OTxgpCVEOjkJeaCw,3415
37
+ eb_model/tests/parser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ eb_model/tests/parser/test_nvm_xdm_parser.py,sha256=SfWvAVqOQgLeZzogSJzBr9hNNsBD5KsufY7Wa2jwVO0,15238
39
+ eb_model/tests/parser/test_os_xdm_parser.py,sha256=nZdlaW4slLVdfpf4W04c35WbEvcjNJ571axoWL6-AgU,19745
40
+ eb_model/writer/__init__.py,sha256=CXvQAsNV1OvYClkHdKCG7Q300OVBzcl2TmoD68MyQOs,95
41
+ eb_model/writer/project_writer.py,sha256=9BQU1CJAktVxFvQk89Pj4IbizTJXnlQidt4eX_CIFXU,2800
42
+ eb_model/writer/text_writer.py,sha256=kvPKC265bvTZq2g1YEvLXDBh5XpTvSr0iPAsedicAOM,1020
43
+ py_eb_model-1.1.8.dist-info/LICENSE,sha256=I52rGS7W1IwAmYCUfqTpDaSHoFAdt7grcNiBhk-Z3eI,1088
44
+ py_eb_model-1.1.8.dist-info/METADATA,sha256=n2nW1XZkNgZitE9s5LGaaajEhA_ZTw7lVDFw8glSqH4,7172
45
+ py_eb_model-1.1.8.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
46
+ py_eb_model-1.1.8.dist-info/entry_points.txt,sha256=N7cHTMb7nGQXu2X5JvJo3JJQdRE11vRMlLyx27uarHg,234
47
+ py_eb_model-1.1.8.dist-info/top_level.txt,sha256=DGBNh6YW_x4RF_UoLKW3cKqb2SLnmfuEIZlkTewR66A,9
48
+ py_eb_model-1.1.8.dist-info/RECORD,,
@@ -1,42 +0,0 @@
1
- eb_model/__init__.py,sha256=oMw5xoAS-lHLxufQSlBIXhGZZMcPmwGFA3PYpTwaQTU,92
2
- eb_model/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- eb_model/cli/nvm_xdm_2_xls_cli.py,sha256=9OxWkT7OdL2DZbG8N_2sE3y8T0GWyzpwYKWnpTm8lag,1742
4
- eb_model/cli/os_xdm_2_xls_cli.py,sha256=zUnxJ4uHWRSjMmpSK5hXRAzVt-_YGEyiMXrexnJSk6g,1970
5
- eb_model/cli/pref_system_importer_cli.py,sha256=Cra-rVpgxruLLyWHRdYAgbwfcHVPV2L8Jk6ck0v4lJU,3361
6
- eb_model/cli/rte_xdm_2_xls_cli.py,sha256=83uzE2Vk0h267gWxF9mnWN3Bh69RJpYyKULFXpxTByY,2127
7
- eb_model/models/__init__.py,sha256=Jn4oOg6CxbAvULNaVt0obDLGPZC2sLzeo6rQt4eTDQ0,245
8
- eb_model/models/abstract.py,sha256=MSG0RYrrVbQtyWDqG1hlfpQa8nlvGdPsnLsBgU2NcxQ,4046
9
- eb_model/models/eb_doc.py,sha256=d_vNhWda7ZwpmLPiCmlq316G-C2hvWz5bJBss9P2y_A,2955
10
- eb_model/models/eclipse_project.py,sha256=I1y4UUPJQqy8Bh77sJkufzcH9wXMN1Wk82er-m1Sxhc,155
11
- eb_model/models/importer_xdm.py,sha256=wUdwZQ-uq75EkhU4nzrYeNR5UphaTJ41MjywOPcCHsE,4246
12
- eb_model/models/nvm_xdm.py,sha256=cFeAblxdSNlGP7yN2cPLMmvvJVMNB0LuYmuM_eRQOyQ,11956
13
- eb_model/models/os_xdm.py,sha256=0iQrMshsbibxaTYwhHpbQFP5Xz3VoxV5eWSyd19GGNY,35557
14
- eb_model/models/rte_xdm.py,sha256=dEsGhpnaG-VG5QfEPv6hxQdopzwMkHHz8kDHj_7MuYM,21851
15
- eb_model/parser/__init__.py,sha256=K_sp7EVjS2KoWUCdX_0h2jIY8Gxhwqs6AtRP1Pgj1TU,214
16
- eb_model/parser/eb_parser.py,sha256=6zYPYku30JfnLOV75k-MrfLc75sCkKdMwc11runqIbk,8248
17
- eb_model/parser/eb_parser_factory.py,sha256=zqsqq52uImU4-WcS5dvHfhM95hiEPAGRtNzVik8i8wc,971
18
- eb_model/parser/nvm_xdm_parser.py,sha256=UME7IRySnnkKvwHY1jehdraEatWTAxWWykxntWqadUk,2216
19
- eb_model/parser/os_xdm_parser.py,sha256=M_77-Gxhe101WXo-97CSTNEa-oJmWjDKYeweuL7Niy0,11083
20
- eb_model/parser/pref_xdm_parser.py,sha256=EjfR4vrnjRVLw_7wyPmMYlBj6lPXZbBZMEdWlYPj3uI,1539
21
- eb_model/parser/rte_xdm_parser.py,sha256=plUue0c4ejreE9w71_mT0JNzGSClf30cXhfC2NalrII,5471
22
- eb_model/reporter/__init__.py,sha256=p-sMv7gJkxe3u8la09SZJjiWPgGGjZSaX0WoBD-hn-0,77
23
- eb_model/reporter/markdown.py,sha256=NhcJOFQ_BVbkgGe66uAT7KUPIchWU4kfVMtMLQtbK-w,1647
24
- eb_model/reporter/excel_reporter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
- eb_model/reporter/excel_reporter/abstract.py,sha256=x_jW38GfyMGyHXsYQWRUUyRc6r6ywMo3zYoH_v79jto,1644
26
- eb_model/reporter/excel_reporter/nvm_xdm.py,sha256=OM_hKXcuFQyZUnia0kuZ03OSSrOMW0i2vIpUa5LTdEc,1698
27
- eb_model/reporter/excel_reporter/os_xdm.py,sha256=MG6-6qi7Dh1XXv4CR2I-iQpOvypso0dlfXt_ZQ3lO7I,6406
28
- eb_model/reporter/excel_reporter/rte_xdm.py,sha256=IeBAeVJYSSle6sR0K4FiPgQToTziHKjXxr68Er7bXyg,3941
29
- eb_model/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- eb_model/tests/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
- eb_model/tests/models/test_eb_model.py,sha256=3fpIHhzQlf9KZjm4fZxcSTT4Zio6YhTrcn9UBvlhOfo,1632
32
- eb_model/tests/models/test_ecuc_container.py,sha256=-M_XZTSeWGVIJac6sj_an2-Ui65QVNXbfbETOD_Ipm8,758
33
- eb_model/tests/models/test_importer_xdm.py,sha256=F80kO77jeyfCkLPRgRLjEj3UPcrACimR5LhBhFgX_m4,3372
34
- eb_model/writer/__init__.py,sha256=CXvQAsNV1OvYClkHdKCG7Q300OVBzcl2TmoD68MyQOs,95
35
- eb_model/writer/project_writer.py,sha256=9BQU1CJAktVxFvQk89Pj4IbizTJXnlQidt4eX_CIFXU,2800
36
- eb_model/writer/text_writer.py,sha256=7d4_PUTJk5Y6S_EQflAH3ACDnUw9VwJzP90GFDh0n0I,991
37
- py_eb_model-1.1.6.dist-info/LICENSE,sha256=I52rGS7W1IwAmYCUfqTpDaSHoFAdt7grcNiBhk-Z3eI,1088
38
- py_eb_model-1.1.6.dist-info/METADATA,sha256=t0LEDXkC1J778lrXQjCP0jA1UOgdqsReB4lY_AEDXAU,6861
39
- py_eb_model-1.1.6.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
40
- py_eb_model-1.1.6.dist-info/entry_points.txt,sha256=N7cHTMb7nGQXu2X5JvJo3JJQdRE11vRMlLyx27uarHg,234
41
- py_eb_model-1.1.6.dist-info/top_level.txt,sha256=DGBNh6YW_x4RF_UoLKW3cKqb2SLnmfuEIZlkTewR66A,9
42
- py_eb_model-1.1.6.dist-info/RECORD,,