powertrain-build 1.5.2.dev1__tar.gz → 1.5.3.dev2__tar.gz

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 (141) hide show
  1. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/ChangeLog +7 -1
  2. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/NOTICE +109 -42
  3. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/PKG-INFO +1 -1
  4. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/build_proj_config.py +1 -0
  5. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/zone_controller.py +10 -18
  6. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/sched_funcs.py +29 -6
  7. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/zone_controller/composition_yaml.py +4 -20
  8. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build.egg-info/PKG-INFO +1 -1
  9. powertrain_build-1.5.3.dev2/powertrain_build.egg-info/pbr.json +1 -0
  10. powertrain_build-1.5.2.dev1/powertrain_build.egg-info/pbr.json +0 -1
  11. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/AUTHORS +0 -0
  12. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/LICENSE +0 -0
  13. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/MANIFEST.in +0 -0
  14. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/README.md +0 -0
  15. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/__init__.py +0 -0
  16. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/__main__.py +0 -0
  17. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/a2l.py +0 -0
  18. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/a2l_merge.py +0 -0
  19. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/a2l_templates.py +0 -0
  20. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/build.py +0 -0
  21. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/build_defs.py +0 -0
  22. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/check_interface.py +0 -0
  23. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/cli.py +0 -0
  24. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/config.py +0 -0
  25. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/core.py +0 -0
  26. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/core_dummy.py +0 -0
  27. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/create_conversion_table.py +0 -0
  28. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/dids.py +0 -0
  29. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/dummy.py +0 -0
  30. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/dummy_spm.py +0 -0
  31. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/environmentcheck.py +0 -0
  32. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/ext_dbg.py +0 -0
  33. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/ext_var.py +0 -0
  34. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/feature_configs.py +0 -0
  35. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/gen_allsysteminfo.py +0 -0
  36. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/gen_label_split.py +0 -0
  37. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/handcode_replacer.py +0 -0
  38. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/html_report.py +0 -0
  39. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/__init__.py +0 -0
  40. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/application.py +0 -0
  41. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/base.py +0 -0
  42. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/csp_api.py +0 -0
  43. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/device_proxy.py +0 -0
  44. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/ems.py +0 -0
  45. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/export_global_vars.py +0 -0
  46. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/generate_adapters.py +0 -0
  47. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/generate_hi_interface.py +0 -0
  48. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/generate_service.py +0 -0
  49. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/generate_wrappers.py +0 -0
  50. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/generation_utils.py +0 -0
  51. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/hal.py +0 -0
  52. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/model_yaml_verification.py +0 -0
  53. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/service.py +0 -0
  54. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/simulink.py +0 -0
  55. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/update_call_sources.py +0 -0
  56. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/interface/update_model_yaml.py +0 -0
  57. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/lib/__init__.py +0 -0
  58. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/lib/helper_functions.py +0 -0
  59. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/lib/logger.py +0 -0
  60. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/CodeGen/BuildAutomationPyBuild.m +0 -0
  61. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/CodeGen/Generate_A2L.m +0 -0
  62. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/CodeGen/generateTLUnit.m +0 -0
  63. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/CodeGen/getAsilClassification.m +0 -0
  64. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/CodeGen/modelConfiguredForTL.m +0 -0
  65. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/CodeGen/moveDefOutports.m +0 -0
  66. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/CodeGen/parseCalMeasData.m +0 -0
  67. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/CodeGen/parseCoreIdentifiers.m +0 -0
  68. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/CodeGen/parseDIDs.m +0 -0
  69. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/CodeGen/parseInPorts.m +0 -0
  70. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/CodeGen/parseIncludeConfigs.m +0 -0
  71. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/CodeGen/parseModelInfo.m +0 -0
  72. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/CodeGen/parseNVM.m +0 -0
  73. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/CodeGen/parseOutPorts.m +0 -0
  74. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/CodeGen/parsePreProcBlks.m +0 -0
  75. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/CodeGen/struct2JSON.m +0 -0
  76. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/CodeGen/updateCodeSwConfig.m +0 -0
  77. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/Init_PyBuild.m +0 -0
  78. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/__init__.py +0 -0
  79. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/Get_Full_Name.m +0 -0
  80. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/Get_SrcLines.m +0 -0
  81. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/Init_Models.m +0 -0
  82. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/Init_Projects.m +0 -0
  83. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/Read_Units.m +0 -0
  84. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/SetProjectTimeSamples.m +0 -0
  85. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/Strip_Suffix.m +0 -0
  86. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/followLink.m +0 -0
  87. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/getCodeSwitches.m +0 -0
  88. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/getConsumerBlocks.m +0 -0
  89. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/getDefBlock.m +0 -0
  90. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/getDefOutport.m +0 -0
  91. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/getDstBlocks.m +0 -0
  92. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/getDstLines.m +0 -0
  93. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/getInterfaceSignals.m +0 -0
  94. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/getName.m +0 -0
  95. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/getPath.m +0 -0
  96. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/getProperValue.m +0 -0
  97. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/getSrcBlocks.m +0 -0
  98. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/getSrcLines.m +0 -0
  99. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/loadLibraries.m +0 -0
  100. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/loadjson.m +0 -0
  101. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/modifyEnumStructField.m +0 -0
  102. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/removeConfigDuplicates.m +0 -0
  103. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/sortSystemByClass.m +0 -0
  104. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/tl_getfast.m +0 -0
  105. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/topLevelSystem.m +0 -0
  106. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/matlab_scripts/helperFunctions/updateModels.m +0 -0
  107. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/memory_section.py +0 -0
  108. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/nvm_def.py +0 -0
  109. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/problem_logger.py +0 -0
  110. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/pt_matlab.py +0 -0
  111. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/pt_win32.py +0 -0
  112. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/replace_compu_tab_ref.py +0 -0
  113. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/rte_dummy.py +0 -0
  114. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/signal.py +0 -0
  115. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/signal_if_html_rep.py +0 -0
  116. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/signal_if_html_rep_all.py +0 -0
  117. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/signal_incons_html_rep.py +0 -0
  118. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/signal_incons_html_rep_all.py +0 -0
  119. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/signal_incons_html_rep_base.py +0 -0
  120. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/signal_inconsistency_check.py +0 -0
  121. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/signal_interfaces.py +0 -0
  122. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/templates/Index_SigCheck_All.html +0 -0
  123. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/templates/Index_SigIf_All.html +0 -0
  124. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/types.py +0 -0
  125. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/unit_configs.py +0 -0
  126. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/user_defined_types.py +0 -0
  127. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/versioncheck.py +0 -0
  128. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/wrapper.py +0 -0
  129. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/xlrd_csv.py +0 -0
  130. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/zone_controller/__init__.py +0 -0
  131. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build/zone_controller/calibration.py +0 -0
  132. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build.egg-info/SOURCES.txt +0 -0
  133. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build.egg-info/dependency_links.txt +0 -0
  134. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build.egg-info/entry_points.txt +0 -0
  135. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build.egg-info/not-zip-safe +0 -0
  136. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build.egg-info/requires.txt +0 -0
  137. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/powertrain_build.egg-info/top_level.txt +0 -0
  138. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/requirements.txt +0 -0
  139. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/setup.cfg +0 -0
  140. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/setup.py +0 -0
  141. {powertrain_build-1.5.2.dev1 → powertrain_build-1.5.3.dev2}/test-requirements.txt +0 -0
@@ -1,7 +1,13 @@
1
1
  CHANGES
2
2
  =======
3
3
 
4
- * Add ports to runnables/reads and writes key
4
+ * Continuation of new RTE checkpoint interface
5
+ * New RTE checkpoint interface
6
+
7
+ 1.5.2
8
+ -----
9
+
10
+ * Revert "Set error\_handling true for e2eStatus signals"
5
11
 
6
12
  1.5.1
7
13
  -----
@@ -13,7 +13,7 @@ Notices Report Content
13
13
  Components:
14
14
 
15
15
  Coverage 7.8.0: http://nedbatchelder.com/code/modules/coverage.html : Apache License 2.0
16
- exceptiongroup 1.2.2: https://github.com/python-trio/exceptiongroup : MIT License
16
+ exceptiongroup 1.3.0: https://github.com/python-trio/exceptiongroup : MIT License
17
17
  flake8 7.2.0: https://gitlab.com/pycqa/flake8 : MIT License
18
18
  gitdb 4.0.12: http://github.com/gitpython-developers/gitdb : BSD 3-clause "New" or "Revised" License
19
19
  GitPython 3.1.44: https://github.com/gitpython-developers/GitPython : BSD 3-clause "New" or "Revised" License
@@ -28,9 +28,10 @@ pycodestyle 2.13.0: https://pypi.python.org/pypi/pycodestyle : MIT License
28
28
  Pyflakes 3.3.2: https://github.com/pyflakes/pyflakes : MIT License
29
29
  pypi/setuptools 59.6.0: https://pypi.org/project/setuptools/ : MIT License
30
30
  pytest 8.3.5: http://pytest.org : MIT License
31
- python3-charset-normalizer 3.4.1: https://github.com/ousret/charset_normalizer : MIT License
31
+ python3-charset-normalizer 3.4.2: https://github.com/ousret/charset_normalizer : MIT License
32
32
  python-certifi 2024.7.4: https://certifiio.readthedocs.io/en/latest/ : Mozilla Public License 2.0
33
- python-pluggy 1.5.0: https://pypi.python.org/pypi/pluggy : MIT License
33
+ python-pluggy 1.6.0: https://pypi.python.org/pypi/pluggy : MIT License
34
+ python-typing-extensions 4.13.2 : Python Software Foundation License 2.0
34
35
  RonnyPfannschmidt/iniconfig 2.1.0: https://github.com/RonnyPfannschmidt/iniconfig : MIT License
35
36
  ruamel-yaml 0.18.6: https://pypi.org/project/ruamel.yaml/ : MIT License
36
37
  ruamel.yaml.clib 0.2.12: https://sourceforge.net/p/ruamel-yaml-clib/code/ci/default/tree/ : MIT License
@@ -105,11 +106,8 @@ def human_sorted(strings: Iterable[str]) -> list[str]:
105
106
 
106
107
  ©�*��{ǰ(���2
107
108
 
108
- exceptiongroup 1.2.2 pypi:exceptiongroup/1.2.2: https://github.com/python-trio/exceptiongroup
109
- Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
110
-
111
- Copyright (c) 2022 Alex Gr
112
-
109
+ exceptiongroup 1.3.0 pypi:exceptiongroup/1.3.0: https://github.com/python-trio/exceptiongroup
110
+ No Copyrights found
113
111
  flake8 7.2.0 pypi:flake8/7.2.0: https://gitlab.com/pycqa/flake8
114
112
  Copyright (C) 2011-2013 Tarek Ziade <tarek@ziade.org>
115
113
 
@@ -2844,45 +2842,55 @@ pytest 8.3.5 pypi:pytest/8.3.5: http://pytest.org
2844
2842
 
2845
2843
  Copyright Holger Krekel and others, 2004.
2846
2844
 
2847
- python3-charset-normalizer 3.4.1 pypi:charset-normalizer/3.4.1: https://github.com/ousret/charset_normalizer
2848
- (c) https://stackoverflow.com/questions/3041986/apt-command-line-interface-like-yes-no-input
2849
- """
2850
- valid = {"yes": True, "y": True, "ye": True, "no": False, "n": False}
2851
- if default is None:
2852
-
2853
- (c) https://stackoverflow.com/questions/3041986/apt-command-line-interface-like-yes-no-input
2854
- """
2855
- valid = {"yes": True, "y": True, "ye": True, "no": False, "n": False}
2856
- if default is None:
2857
-
2858
- Copyright (c) 2025 TAHRI Ahmed R.
2859
-
2860
- Copyright (c) 2025 TAHRI Ahmed R.
2861
-
2862
- copyright = '2023, Ahmed TAHRI
2863
- author = 'Ahmed TAHRI'
2845
+ python3-charset-normalizer 3.4.2 pypi:charset-normalizer/3.4.2: https://github.com/ousret/charset_normalizer
2846
+ No Copyrights found
2847
+ python-certifi 2024.7.4 pypi:certifi/2024.7.4: https://certifiio.readthedocs.io/en/latest/
2848
+ No Copyrights found
2849
+ python-pluggy 1.6.0 pypi:pluggy/1.6.0: https://pypi.python.org/pypi/pluggy
2850
+ No Copyrights found
2851
+ python-typing-extensions 4.13.2 pypi:typing-extensions/4.13.2
2852
+ (C)
2853
+
2854
+ with self.assertRaisesRegex(TypeError, non_callable_members_illegal):
2855
+ issubclass(C, PNonCall)
2864
2856
 
2865
- # The version info for the project you're documenting, acts as replacement for
2866
- # |version| and |release|, also used in various other places throughout the
2867
- # built documents.
2857
+ self.assertIsInstance(C(), PNonCall)
2868
2858
 
2869
- copyright: (c) 2021 by Ahmed TAHRI
2859
+ (C)
2860
+ P.register(C)
2861
+ self.assertIsInstance(C(), P)
2862
+ self.assertIsInstance(C(), D)
2863
+
2864
+ def test_none_on_non_callable_doesnt_block_implementation(self):
2870
2865
 
2871
- copyright: (c) 2021 by Ahmed TAHRI
2866
+ (C)
2867
+ self.assertIsSubclass(C, A)
2868
+ self.assertNotIsSubclass(C, B)
2869
+
2870
+ class D: ...
2871
+ B.register(D)
2872
+ self.assertIsSubclass(D, A)
2873
+ self.assertIsSubclass(D, B)
2872
2874
 
2873
- © 2012
2875
+ (C)
2876
+ self.assertIsSubclass(C, D)
2877
+ self.assertIsInstance(C(), D)
2874
2878
 
2875
- ## 💼 For Enterprise
2879
+ with self.assertRaisesRegex(TypeError, non_callable_members_illegal):
2876
2880
 
2877
- © [Ahmed TAHRI @Ousret
2881
+ Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
2882
+ The Netherlands. All rights reserved.
2883
+
2884
+ Permission to use, copy, modify, and distribute this software and its
2885
+ documentation for any purpose and without fee is hereby granted,
2886
+ provided that the above copyright notice appear in all copies and that
2887
+ both that copyright notice and this permission notice appear in
2888
+ supporting documentation, and that the name of Stichting Mathematisch
2889
+ Centrum or CWI not be used in advertising or publicity pertaining to
2890
+ distribution of the software without specific, written prior
2891
+ permission.
2878
2892
 
2879
- ©����-�52
2880
- �C�Ufw
2893
+ �u*gG@"��4�TW �]愅�$Q����aRL
2881
- p�� �G���Ei���6엽�\�X�y�1�i��
2882
- python-certifi 2024.7.4 pypi:certifi/2024.7.4: https://certifiio.readthedocs.io/en/latest/
2883
- No Copyrights found
2884
- python-pluggy 1.5.0 pypi:pluggy/1.5.0: https://pypi.python.org/pypi/pluggy
2885
- Copyright (c) 2015 holger krekel (rather uses bitbucket/hpk42)
2894
+ Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2886
2895
 
2887
2896
  RonnyPfannschmidt/iniconfig 2.1.0 pypi:iniconfig/2.1.0: https://github.com/RonnyPfannschmidt/iniconfig
2888
2897
  (C) Ronny Pfannschmidt, Holger Krekel -- MIT licensed
@@ -2905,7 +2913,7 @@ from typing import (
2905
2913
  Copyright (c) 2010 - 2023 Holger Krekel and others
2906
2914
 
2907
2915
  ruamel-yaml 0.18.6 pypi:ruamel.yaml/0.18.6: https://pypi.org/project/ruamel.yaml/
2908
- No Copyrights found
2916
+ N/A
2909
2917
  ruamel.yaml.clib 0.2.12 pypi:ruamel.yaml.clib/0.2.12: https://sourceforge.net/p/ruamel-yaml-clib/code/ci/default/tree/
2910
2918
  (c) ((unsigned char)c)
2911
2919
  #define __Pyx_long_cast(x) ((long)x)
@@ -14024,7 +14032,7 @@ IN THE SOFTWARE
14024
14032
  ---
14025
14033
 
14026
14034
  MIT License
14027
- (exceptiongroup 1.2.2, flake8 7.2.0, pycodestyle 2.13.0, Pyflakes 3.3.2, pytest 8.3.5, python-pluggy 1.5.0, python3-charset-normalizer 3.4.1, RonnyPfannschmidt/iniconfig 2.1.0, ruamel-yaml 0.18.6, ruamel.yaml.clib 0.2.12, tomli 2.2.1, urllib3 2.4.0)
14035
+ (exceptiongroup 1.3.0, flake8 7.2.0, pycodestyle 2.13.0, Pyflakes 3.3.2, pytest 8.3.5, python-pluggy 1.6.0, python3-charset-normalizer 3.4.2, RonnyPfannschmidt/iniconfig 2.1.0, ruamel-yaml 0.18.6, ruamel.yaml.clib 0.2.12, tomli 2.2.1, urllib3 2.4.0)
14028
14036
 
14029
14037
  The MIT License
14030
14038
  ===============
@@ -14464,3 +14472,61 @@ Exhibit B - "Incompatible With Secondary Licenses" Notice
14464
14472
 
14465
14473
  ---
14466
14474
 
14475
+ Python Software Foundation License 2.0
14476
+ (python-typing-extensions 4.13.2)
14477
+
14478
+ This license was approved as the official PSF License Version 2 on October 22,
14479
+ 2004. The only differences between this and version 1 of the PSF license consist
14480
+ of removing Python version numbers (like 2.1.1 or 2.3).
14481
+
14482
+
14483
+
14484
+ PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
14485
+ ============================================
14486
+
14487
+ --------------------------------------------
14488
+
14489
+ 1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"),
14490
+ and the Individual or Organization ("Licensee") accessing and otherwise using
14491
+ this software ("Python") in source or binary form and its associated
14492
+ documentation.
14493
+
14494
+ 2. Subject to the terms and conditions of this License Agreement, PSF hereby
14495
+ grants Licensee a nonexclusive, royalty-free, world-wide license to
14496
+ reproduce, analyze, test, perform and/or display publicly, prepare derivative
14497
+ works, distribute, and otherwise use Python alone or in any derivative
14498
+ version, provided, however, that PSF's License Agreement and PSF's notice of
14499
+ copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004 Python Software
14500
+ Foundation; All Rights Reserved" are retained in Python alone or in any
14501
+ derivative version prepared by Licensee.
14502
+
14503
+ 3. In the event Licensee prepares a derivative work that is based on or
14504
+ incorporates Python or any part thereof, and wants to make the derivative
14505
+ work available to others as provided herein, then Licensee hereby agrees to
14506
+ include in any such work a brief summary of the changes made to Python.
14507
+
14508
+ 4. PSF is making Python available to Licensee on an "AS IS" basis. PSF MAKES
14509
+ NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT
14510
+ NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF
14511
+ MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF
14512
+ PYTHON WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
14513
+
14514
+ 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON FOR ANY
14515
+ INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF
14516
+ MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR ANY DERIVATIVE
14517
+ THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
14518
+
14519
+ 6. This License Agreement will automatically terminate upon a material breach
14520
+ of its terms and conditions.
14521
+
14522
+ 7. Nothing in this License Agreement shall be deemed to create any
14523
+ relationship of agency, partnership, or joint venture between PSF and
14524
+ Licensee. This License Agreement does not grant permission to use PSF
14525
+ trademarks or trade name in a trademark sense to endorse or promote products
14526
+ or services of Licensee, or any third party.
14527
+
14528
+ 8. By copying, installing or otherwise using Python, Licensee agrees to be
14529
+ bound by the terms and conditions of this License Agreement.
14530
+
14531
+ ---
14532
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: powertrain-build
3
- Version: 1.5.2.dev1
3
+ Version: 1.5.3.dev2
4
4
  Summary: A Continuous Integration (CI) build system testing all configurations where a Simulink model is used.
5
5
  Home-page: https://opendev.org/volvocars/powertrain-build
6
6
  Download-URL: https://pypi.org/project/powertrain-build/
@@ -72,6 +72,7 @@ class BuildProjConfig:
72
72
  'generateDummyVar': False,
73
73
  'generateInterfaceHeaders': False,
74
74
  'generateRteCheckpointIds': False,
75
+ 'rteCheckpointIdSize': None,
75
76
  'generateYamlInterfaceFile': False,
76
77
  'includeAllEnums': False,
77
78
  'mapToRteEnums': False,
@@ -3,10 +3,8 @@
3
3
 
4
4
  """Python module used for handling zone controller specifications"""
5
5
  from ruamel.yaml import YAML
6
-
7
- from powertrain_build.interface.base import BaseApplication
8
6
  from powertrain_build.lib import logger
9
- from powertrain_build.lib.helper_functions import deep_dict_update
7
+ from powertrain_build.interface.base import BaseApplication
10
8
 
11
9
  LOGGER = logger.create_logger("base")
12
10
 
@@ -154,7 +152,7 @@ class ZCAL(BaseApplication):
154
152
  for element_name, element_data in signal_struct.items():
155
153
  self.populate_signal_translations(port_name, element_name, element_data)
156
154
  # Loop inside function to make sure direction is consistent
157
- deep_dict_update(ports_info[port_name], self.get_port_info(port_name, direction, signal_struct))
155
+ ports_info[port_name].update(self.get_port_info(port_name, direction, signal_struct))
158
156
  self.composition_spec["ports"] = ports_info
159
157
 
160
158
  @staticmethod
@@ -167,42 +165,36 @@ class ZCAL(BaseApplication):
167
165
  direction (str): Direction of the port.
168
166
  signal_struct (dict): Signal dict containing list of signal elements.
169
167
  Returns:
170
- port_info (dict): Dict containing port information.
168
+ port_info (dict): Dict containing information if any elements
169
+ should have an update bit associated with them.
171
170
  """
172
171
  if direction is None:
173
172
  raise BadYamlFormat(f'Port {port_name} is missing required property "direction".')
174
173
 
175
- port_info = {}
176
174
  supported_directions = {
177
175
  "IN": "IN",
178
176
  "OUT": "OUT",
179
177
  "CLIENT": "IN",
180
178
  "SERVER": "OUT",
181
179
  }
182
- supported_direction = supported_directions[direction]
183
- api_options = {}
180
+ direction = supported_directions[direction]
184
181
  update_elements = set()
185
182
  for element_name, element_data in signal_struct.items():
186
183
  for element in element_data:
187
184
  if "insignal" in element:
188
- tmp_direction = "IN"
185
+ temp_dir = "IN"
189
186
  elif "outsignal" in element:
190
- tmp_direction = "OUT"
187
+ temp_dir = "OUT"
191
188
  else:
192
189
  raise BadYamlFormat(f"in-/out-signal for element in { element_name } is missing.")
193
- if supported_direction != tmp_direction:
190
+ if direction != temp_dir:
194
191
  raise BadYamlFormat(f"Signal { element_name } has both in and out elements.")
195
192
  if element.get("updateBit", False):
196
193
  update_elements.add(element_name)
197
- if element.get("e2eStatus", False):
198
- api_options["error_handling"] = True
199
194
 
200
195
  if update_elements:
201
- port_info["enable_update"] = list(update_elements)
202
- if api_options:
203
- port_info["api_options"] = api_options
204
-
205
- return port_info
196
+ return {"enable_update": list(update_elements)}
197
+ return {}
206
198
 
207
199
  def populate_signal_translations(self, port_name, element_name, element_data):
208
200
  """Populate class translations data.
@@ -57,19 +57,25 @@ class SchedFuncs(ProblemLogger):
57
57
  Args:
58
58
  generate_rte_checkpoint_calls (bool): Generate RTE function checkpoint calls.
59
59
  """
60
+ dst_dir = self._prj_cfg.get_src_code_dst_dir()
61
+ unit_raster_cfg = self._prj_cfg.get_units_raster_cfg()
62
+ per_unit_cfg = self._unit_cfg.get_per_unit_cfg()
63
+ prefix = self._prj_cfg.get_scheduler_prefix()
64
+ unit_counter = 1
60
65
  generate_rte_checkpoint_ids = self._prj_cfg.get_code_generation_config("generateRteCheckpointIds")
66
+ rte_checkpoint_id_size = self._prj_cfg.get_code_generation_config("rteCheckpointIdSize")
67
+ if rte_checkpoint_id_size is None:
68
+ if generate_rte_checkpoint_calls:
69
+ self.warning("RTE checkpoint ID size not set, assuming size is the same as the number of units.")
70
+ rte_checkpoint_id_size = len(per_unit_cfg)
61
71
  include_name = self._prj_cfg.get_composition_config("softwareComponentName")
62
72
  function_name = self._prj_cfg.get_composition_config("compositionName")
63
73
  if function_name is None:
64
74
  function_name = include_name
65
- dst_dir = self._prj_cfg.get_src_code_dst_dir()
66
- unit_raster_cfg = self._prj_cfg.get_units_raster_cfg()
67
- per_unit_cfg = self._unit_cfg.get_per_unit_cfg()
68
- prefix = self._prj_cfg.get_scheduler_prefix()
75
+
69
76
  init_ext_def_s = ""
70
77
  init_call_s = f'#include "{build_defs.CVC_CODE_START}"\n\n'
71
78
  init_call_s += f'void {prefix}VcExtINI(void)\n{{\n'
72
-
73
79
  for raster in unit_raster_cfg['SampleTimes']:
74
80
  if raster == "init":
75
81
  for unit in unit_raster_cfg['Rasters'][raster]:
@@ -101,6 +107,8 @@ class SchedFuncs(ProblemLogger):
101
107
  call_str = f'#include "{build_defs.CVC_CODE_START}"\n'
102
108
  call_str += f'void {prefix}{raster}(void)\n{{\n'
103
109
  for unit in unit_raster_cfg['Rasters'][raster]:
110
+ if unit_counter > rte_checkpoint_id_size:
111
+ self.critical('RTE checkpoint ID size %d is smaller than the number of units.', rte_checkpoint_id_size)
104
112
  if unit not in SchedFuncs.RESTART_FNC_EXCLUDE and 'code_generator' in per_unit_cfg[unit]:
105
113
  code_generator = per_unit_cfg[unit]['code_generator']
106
114
  else:
@@ -116,15 +124,30 @@ class SchedFuncs(ProblemLogger):
116
124
  else:
117
125
  ext_def_str += f'extern void {unit_name}(void);\n'
118
126
  if generate_rte_checkpoint_calls:
127
+ # Add both calls during transition period
128
+ # old
119
129
  call_str += (
120
130
  f' Rte_Call_{function_name}_'
121
131
  f'{function_name}LogicalCheckpointReached_CddPFMC_ASILD_'
122
132
  f'{function_name}_LogicalCheckpointReached(ID_{unit_name});\n'
123
- )
133
+ )
134
+ # new
135
+ call_str += (
136
+ ' Rte_Call_alive_WdgMSupervisedEntity_'
137
+ f'AR_{raster}_CheckpointReached({unit_counter});\n'
138
+ )
124
139
  call_str += f' {unit_name}();\n'
125
140
  if unit_name not in SchedFuncs.RESTART_FNC_EXCLUDE:
126
141
  init_ext_def_s += f'extern void RESTART_{unit_name}(void);\n'
127
142
  init_call_s += f' RESTART_{unit_name}();\n'
143
+ unit_counter += 1
144
+ if generate_rte_checkpoint_calls:
145
+ # Also call remaining dummy IDs, "new way" only
146
+ for i in range(unit_counter, rte_checkpoint_id_size + 1):
147
+ call_str += (
148
+ ' Rte_Call_alive_WdgMSupervisedEntity_'
149
+ f'AR_{raster}_CheckpointReached({i});\n'
150
+ )
128
151
  ext_def_str += '\n'
129
152
  call_str += '}\n'
130
153
  call_str += f'#include "{build_defs.CVC_CODE_END}"\n\n'
@@ -449,33 +449,25 @@ class CompositionYaml(ProblemLogger):
449
449
  Returns:
450
450
  dict: Dict containing runnables information.
451
451
  """
452
+ swc_name = self.build_cfg.get_composition_config("softwareComponentName")
452
453
  autosar_prefix = "AR_"
453
454
  swc_prefix = self.build_cfg.get_scheduler_prefix()
454
455
  custom_step_function = self.build_cfg.get_composition_config("customYamlStepFunctionName")
455
456
  custom_init_function = self.build_cfg.get_composition_config("customYamlInitFunctionName")
456
457
  standard_init_function = autosar_prefix + swc_prefix + "VcExtINI"
457
458
  init_function = custom_init_function if custom_init_function is not None else standard_init_function
459
+ call_dict = self._get_runnable_calls_info()
460
+ mode_switch_points_dict = self.composition_spec.get("mode_switch_points", {})
461
+ runnables = self.build_cfg.get_units_raster_cfg()["SampleTimes"]
458
462
  calibration_variables = list(self.cal_class_info["autosar"]["class_info"].keys())
459
463
  swc_content = {init_function: {"type": "INIT", "accesses": calibration_variables}}
460
464
 
461
465
  if self.include_calibration_interface_files:
462
- swc_name = self.build_cfg.get_composition_config("softwareComponentName")
463
466
  cal_init_function = autosar_prefix + ZCC.calibration_function_init_template.format(swc_name=swc_name)
464
467
  cal_step_function = autosar_prefix + ZCC.calibration_function_step_template.format(swc_name=swc_name)
465
468
  swc_content[cal_init_function] = {"type": "INIT", "accesses": calibration_variables}
466
469
  swc_content[cal_step_function] = {"type": "PERIODIC", "period": 0.1, "accesses": calibration_variables}
467
470
 
468
- call_dict = self._get_runnable_calls_info()
469
- mode_switch_points_dict = self.composition_spec.get("mode_switch_points", {})
470
- reads = []
471
- writes = []
472
- for port, port_data in self._get_ports_info().items():
473
- if port_data["direction"] in ["IN", "CLIENT"]:
474
- reads.append(port)
475
- else:
476
- writes.append(port)
477
- runnables = self.build_cfg.get_units_raster_cfg()["SampleTimes"]
478
-
479
471
  if len(runnables) == 1 and custom_step_function is not None:
480
472
  swc_content[custom_step_function] = {
481
473
  "type": "PERIODIC",
@@ -486,10 +478,6 @@ class CompositionYaml(ProblemLogger):
486
478
  swc_content[custom_step_function]["calls"] = call_dict
487
479
  if mode_switch_points_dict:
488
480
  swc_content[custom_step_function]["mode_switch_points"] = mode_switch_points_dict
489
- if reads:
490
- swc_content[custom_step_function]["reads"] = reads
491
- if writes:
492
- swc_content[custom_step_function]["writes"] = writes
493
481
  return swc_content
494
482
 
495
483
  if custom_step_function is not None:
@@ -508,10 +496,6 @@ class CompositionYaml(ProblemLogger):
508
496
  swc_content[key]["calls"] = call_dict
509
497
  if mode_switch_points_dict:
510
498
  swc_content[key]["mode_switch_points"] = mode_switch_points_dict
511
- if reads:
512
- swc_content[key]["reads"] = reads
513
- if writes:
514
- swc_content[key]["writes"] = writes
515
499
 
516
500
  return swc_content
517
501
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: powertrain-build
3
- Version: 1.5.2.dev1
3
+ Version: 1.5.3.dev2
4
4
  Summary: A Continuous Integration (CI) build system testing all configurations where a Simulink model is used.
5
5
  Home-page: https://opendev.org/volvocars/powertrain-build
6
6
  Download-URL: https://pypi.org/project/powertrain-build/
@@ -0,0 +1 @@
1
+ {"git_version": "da8cd01", "is_release": false}
@@ -1 +0,0 @@
1
- {"git_version": "8783e08", "is_release": false}