aas-core-codegen 0.0.23__tar.gz → 0.0.24__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 (275) hide show
  1. {aas_core_codegen-0.0.23/aas_core_codegen.egg-info → aas_core_codegen-0.0.24}/PKG-INFO +1 -1
  2. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/__init__.py +1 -1
  3. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/lib/_generate_jsonization.py +11 -3
  4. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/lib/_generate_xmlization.py +1 -1
  5. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/tests/_generate_common.py +1 -1
  6. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/tests/_generate_test_descend_and_pass_through_visitor.py +1 -0
  7. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/tests/_generate_test_for_over_x_or_empty.py +1 -0
  8. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/tests/_generate_test_for_x_or_default.py +1 -0
  9. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/tests/_generate_test_jsonization_of_classes_with_descendants.py +1 -0
  10. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/tests/_generate_test_jsonization_of_concrete_classes.py +1 -0
  11. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/tests/_generate_test_xmlization_of_classes_with_descendants.py +1 -0
  12. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/tests/_generate_test_xmlization_of_concrete_classes.py +1 -0
  13. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/lib/_generate_xmlization.py +185 -113
  14. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/main.py +18 -0
  15. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/__init__.py +4 -0
  16. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_common_xmlization.py +1 -0
  17. aas_core_codegen-0.0.24/aas_core_codegen/typescript/tests/_generate_xmlization_common_spec.py +76 -0
  18. aas_core_codegen-0.0.24/aas_core_codegen/typescript/tests/_generate_xmlization_negative_spec.py +325 -0
  19. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24/aas_core_codegen.egg-info}/PKG-INFO +1 -1
  20. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen.egg-info/SOURCES.txt +2 -0
  21. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/pyproject.toml +1 -1
  22. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/AUTHORS +0 -0
  23. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/LICENSE +0 -0
  24. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/README.rst +0 -0
  25. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/__main__.py +0 -0
  26. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/common.py +0 -0
  27. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/__init__.py +0 -0
  28. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/common.py +0 -0
  29. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/description.py +0 -0
  30. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/lib/__init__.py +0 -0
  31. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/lib/_generate_common.py +0 -0
  32. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/lib/_generate_constants.py +0 -0
  33. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/lib/_generate_enhancing.py +0 -0
  34. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/lib/_generate_iteration.py +0 -0
  35. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/lib/_generate_jsonization.py +0 -0
  36. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/lib/_generate_pattern.py +0 -0
  37. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/lib/_generate_revm.py +0 -0
  38. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/lib/_generate_stringification.py +0 -0
  39. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/lib/_generate_types.py +0 -0
  40. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/lib/_generate_verification.py +0 -0
  41. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/lib/_generate_visitation.py +0 -0
  42. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/lib/_generate_wstringification.py +0 -0
  43. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/lib/_generate_xmlization.py +0 -0
  44. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/main.py +0 -0
  45. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/naming.py +0 -0
  46. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/optionaling.py +0 -0
  47. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/tests/__init__.py +0 -0
  48. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/tests/_generate_common.py +0 -0
  49. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/tests/_generate_common_examples.py +0 -0
  50. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/tests/_generate_common_jsonization.py +0 -0
  51. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/tests/_generate_common_xmlization.py +0 -0
  52. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/tests/_generate_test_descent_and_descent_once.py +0 -0
  53. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/tests/_generate_test_jsonization_dispatch.py +0 -0
  54. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/tests/_generate_test_jsonization_of_concrete_classes.py +0 -0
  55. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/tests/_generate_test_revm.py +0 -0
  56. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/tests/_generate_test_stringification_base64.py +0 -0
  57. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/tests/_generate_test_stringification_of_enums.py +0 -0
  58. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/tests/_generate_test_verification.py +0 -0
  59. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/tests/_generate_test_wstringification_of_enums.py +0 -0
  60. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/tests/_generate_test_x_or_default.py +0 -0
  61. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/tests/_generate_test_xmlization_dispatch.py +0 -0
  62. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/tests/_generate_test_xmlization_of_concrete_classes.py +0 -0
  63. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/transpilation.py +0 -0
  64. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/unrolling.py +0 -0
  65. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/cpp/yielding.py +0 -0
  66. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/__init__.py +0 -0
  67. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/common.py +0 -0
  68. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/description.py +0 -0
  69. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/lib/__init__.py +0 -0
  70. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/lib/_generate_constants.py +0 -0
  71. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/lib/_generate_copying.py +0 -0
  72. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/lib/_generate_enhancing.py +0 -0
  73. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/lib/_generate_jsonization.py +0 -0
  74. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/lib/_generate_reporting.py +0 -0
  75. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/lib/_generate_stringification.py +0 -0
  76. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/lib/_generate_types.py +0 -0
  77. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/lib/_generate_verification.py +0 -0
  78. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/lib/_generate_visitation.py +0 -0
  79. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/lib/_generate_xmlization.py +0 -0
  80. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/main.py +0 -0
  81. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/naming.py +0 -0
  82. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/tests/__init__.py +0 -0
  83. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/tests/_generate_common.py +0 -0
  84. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/tests/_generate_common_json.py +0 -0
  85. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/tests/_generate_common_jsonization.py +0 -0
  86. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/tests/_generate_test_copying.py +0 -0
  87. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/tests/_generate_test_descend_and_visitor_through.py +0 -0
  88. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/tests/_generate_test_descend_once.py +0 -0
  89. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/tests/_generate_test_enhancing.py +0 -0
  90. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/tests/_generate_test_jsonization_of_concrete_classes.py +0 -0
  91. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/tests/_generate_test_jsonization_of_enums.py +0 -0
  92. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/tests/_generate_test_jsonization_of_interfaces.py +0 -0
  93. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/tests/_generate_test_over_x_or_empty.py +0 -0
  94. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/tests/_generate_test_verification_of_enums.py +0 -0
  95. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/tests/_generate_test_x_or_default.py +0 -0
  96. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/tests/_generate_test_xmlization_errors.py +0 -0
  97. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/tests/_generate_test_xmlization_of_concrete_classes.py +0 -0
  98. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/tests/_generate_test_xmlization_of_interfaces.py +0 -0
  99. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/transpilation.py +0 -0
  100. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/csharp/unrolling.py +0 -0
  101. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/__init__.py +0 -0
  102. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/common.py +0 -0
  103. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/description.py +0 -0
  104. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/lib/__init__.py +0 -0
  105. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/lib/_generate_common.py +0 -0
  106. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/lib/_generate_constants.py +0 -0
  107. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/lib/_generate_enhancing.py +0 -0
  108. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/lib/_generate_jsonization.py +0 -0
  109. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/lib/_generate_reporting.py +0 -0
  110. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/lib/_generate_stringification.py +0 -0
  111. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/lib/_generate_types.py +0 -0
  112. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/lib/_generate_verification.py +0 -0
  113. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/lib/_generate_xmlization.py +0 -0
  114. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/main.py +0 -0
  115. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/naming.py +0 -0
  116. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/pointering.py +0 -0
  117. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/__init__.py +0 -0
  118. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_aastesting_common_jsonization.py +0 -0
  119. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_aastesting_constants.py +0 -0
  120. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_aastesting_deep_equal.py +0 -0
  121. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_aastesting_doc.py +0 -0
  122. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_aastesting_filesystem.py +0 -0
  123. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_aastesting_tracing.py +0 -0
  124. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_descend_test_common.py +0 -0
  125. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_descend_test_descend_once_test.py +0 -0
  126. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_descend_test_descend_test.py +0 -0
  127. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_enhancing_test.py +0 -0
  128. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_is_xxx_test.py +0 -0
  129. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_jsonization_test_classes_with_descendants_test.py +0 -0
  130. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_jsonization_test_common_test.py +0 -0
  131. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_jsonization_test_concrete_classes_test.py +0 -0
  132. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_jsonization_test_enums_test.py +0 -0
  133. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_verification_test.py +0 -0
  134. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_xmlization_test_common_test.py +0 -0
  135. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_xmlization_test_concrete_classes_test.py +0 -0
  136. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/tests/_generate_xxx_or_default_test.py +0 -0
  137. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/transpilation.py +0 -0
  138. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/golang/unrolling.py +0 -0
  139. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/infer_for_schema/__init__.py +0 -0
  140. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/infer_for_schema/_inline.py +0 -0
  141. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/infer_for_schema/_len.py +0 -0
  142. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/infer_for_schema/_pattern.py +0 -0
  143. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/infer_for_schema/_set.py +0 -0
  144. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/infer_for_schema/_stringify.py +0 -0
  145. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/infer_for_schema/_types.py +0 -0
  146. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/infer_for_schema/match.py +0 -0
  147. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/intermediate/__init__.py +0 -0
  148. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/intermediate/_hierarchy.py +0 -0
  149. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/intermediate/_stringify.py +0 -0
  150. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/intermediate/_translate.py +0 -0
  151. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/intermediate/_types.py +0 -0
  152. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/intermediate/construction.py +0 -0
  153. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/intermediate/doc.py +0 -0
  154. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/intermediate/pattern_verification.py +0 -0
  155. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/intermediate/revm.py +0 -0
  156. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/intermediate/type_inference.py +0 -0
  157. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/__init__.py +0 -0
  158. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/common.py +0 -0
  159. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/description.py +0 -0
  160. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/lib/__init__.py +0 -0
  161. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/lib/_generate_constants.py +0 -0
  162. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/lib/_generate_copying.py +0 -0
  163. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/lib/_generate_enhancing.py +0 -0
  164. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/lib/_generate_generation.py +0 -0
  165. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/lib/_generate_jsonization.py +0 -0
  166. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/lib/_generate_reporting.py +0 -0
  167. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/lib/_generate_stringification.py +0 -0
  168. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/lib/_generate_types.py +0 -0
  169. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/lib/_generate_verification.py +0 -0
  170. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/lib/_generate_visitation.py +0 -0
  171. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/lib/_generate_xmlization.py +0 -0
  172. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/main.py +0 -0
  173. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/naming.py +0 -0
  174. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/optional.py +0 -0
  175. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/tests/__init__.py +0 -0
  176. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/tests/_generate_common.py +0 -0
  177. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/tests/_generate_common_json.py +0 -0
  178. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/tests/_generate_common_jsonization.py +0 -0
  179. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/tests/_generate_test_copying.py +0 -0
  180. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/tests/_generate_test_descend_and_visitor_through.py +0 -0
  181. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/tests/_generate_test_descend_once.py +0 -0
  182. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/tests/_generate_test_enhancing.py +0 -0
  183. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/tests/_generate_test_jsonization_of_concrete_classes.py +0 -0
  184. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/tests/_generate_test_jsonization_of_enums.py +0 -0
  185. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/tests/_generate_test_jsonization_of_interfaces.py +0 -0
  186. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/tests/_generate_test_over_x_or_empty.py +0 -0
  187. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/tests/_generate_test_verification_of_enums.py +0 -0
  188. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/tests/_generate_test_x_or_default.py +0 -0
  189. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/tests/_generate_test_xmlization_of_concrete_classes.py +0 -0
  190. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/tests/_generate_test_xmlization_of_interfaces.py +0 -0
  191. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/java/transpilation.py +0 -0
  192. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/jsonschema/__init__.py +0 -0
  193. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/jsonschema/main.py +0 -0
  194. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/main.py +0 -0
  195. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/naming.py +0 -0
  196. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/parse/__init__.py +0 -0
  197. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/parse/_rules.py +0 -0
  198. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/parse/_stringify.py +0 -0
  199. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/parse/_translate.py +0 -0
  200. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/parse/_types.py +0 -0
  201. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/parse/retree/__init__.py +0 -0
  202. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/parse/retree/_fix.py +0 -0
  203. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/parse/retree/_parse.py +0 -0
  204. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/parse/retree/_render.py +0 -0
  205. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/parse/retree/_stringify.py +0 -0
  206. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/parse/retree/_types.py +0 -0
  207. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/parse/retree/_visitor.py +0 -0
  208. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/parse/tree.py +0 -0
  209. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/py.typed +0 -0
  210. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/__init__.py +0 -0
  211. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/common.py +0 -0
  212. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/description.py +0 -0
  213. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/lib/__init__.py +0 -0
  214. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/lib/_generate_common.py +0 -0
  215. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/lib/_generate_constants.py +0 -0
  216. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/lib/_generate_stringification.py +0 -0
  217. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/lib/_generate_types.py +0 -0
  218. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/lib/_generate_verification.py +0 -0
  219. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/main.py +0 -0
  220. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/naming.py +0 -0
  221. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/tests/__init__.py +0 -0
  222. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/tests/_generate_common_jsonization.py +0 -0
  223. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/tests/_generate_common_xmlization.py +0 -0
  224. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/tests/_generate_test_descend_once.py +0 -0
  225. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/tests/_generate_test_jsonization_of_enums.py +0 -0
  226. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/transpilation.py +0 -0
  227. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/python/unrolling.py +0 -0
  228. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/run.py +0 -0
  229. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/smoke/__init__.py +0 -0
  230. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/smoke/main.py +0 -0
  231. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/specific_implementations.py +0 -0
  232. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/stringify.py +0 -0
  233. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/__init__.py +0 -0
  234. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/common.py +0 -0
  235. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/description.py +0 -0
  236. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/lib/__init__.py +0 -0
  237. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/lib/_generate_common.py +0 -0
  238. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/lib/_generate_constants.py +0 -0
  239. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/lib/_generate_index.py +0 -0
  240. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/lib/_generate_jsonization.py +0 -0
  241. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/lib/_generate_stringification.py +0 -0
  242. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/lib/_generate_types.py +0 -0
  243. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/lib/_generate_verification.py +0 -0
  244. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/naming.py +0 -0
  245. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_common.py +0 -0
  246. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_common_base64_spec.py +0 -0
  247. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_common_base64url_spec.py +0 -0
  248. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_common_jsonization.py +0 -0
  249. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_jsonization_concrete_classes_spec.py +0 -0
  250. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_jsonization_enums_spec.py +0 -0
  251. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_jsonization_interfaces_spec.py +0 -0
  252. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_types_casts_spec.py +0 -0
  253. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_types_descend_and_pass_through_visitor_spec.py +0 -0
  254. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_types_descend_once_spec.py +0 -0
  255. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_types_model_type_spec.py +0 -0
  256. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_types_over_enum_spec.py +0 -0
  257. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_types_over_x_or_empty_spec.py +0 -0
  258. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_types_type_matches_spec.py +0 -0
  259. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_types_x_or_default_spec.py +0 -0
  260. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_xmlization_concrete_classes_spec.py +0 -0
  261. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_xmlization_enums_spec.py +0 -0
  262. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/tests/_generate_xmlization_interfaces_spec.py +0 -0
  263. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/transpilation.py +0 -0
  264. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/typescript/unrolling.py +0 -0
  265. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/xsd/__init__.py +0 -0
  266. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/xsd/main.py +0 -0
  267. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/xsd/naming.py +0 -0
  268. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/yielding/__init__.py +0 -0
  269. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/yielding/flow.py +0 -0
  270. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen/yielding/linear.py +0 -0
  271. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen.egg-info/dependency_links.txt +0 -0
  272. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen.egg-info/entry_points.txt +0 -0
  273. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen.egg-info/requires.txt +0 -0
  274. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/aas_core_codegen.egg-info/top_level.txt +0 -0
  275. {aas_core_codegen-0.0.23 → aas_core_codegen-0.0.24}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aas-core-codegen
3
- Version: 0.0.23
3
+ Version: 0.0.24
4
4
  Summary: Generate implementations and schemas based on an AAS meta-model.
5
5
  Author-email: Marko Ristin <marko@ristin.ch>, Nico Braunisch <nico.braunisch@tu-dresden.de>
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  """Generate implementations and schemas based on an AAS meta-model."""
2
2
 
3
- __version__ = "0.0.23"
3
+ __version__ = "0.0.24"
4
4
  __author__ = "Marko Ristin, Nico Braunisch"
5
5
  __license__ = "License :: OSI Approved :: MIT License"
6
6
  __status__ = "Production/Stable"
@@ -1001,13 +1001,21 @@ jsonable[{key_literal}] = (
1001
1001
  access_expression=Stripped("item"), type_anno=type_anno.items
1002
1002
  )
1003
1003
 
1004
- block = Stripped(
1005
- f"""\
1004
+ # NOTE (mristin):
1005
+ # We optimize here to avoid unnecessary comprehension.
1006
+ if transformation_expression == "item":
1007
+ block = Stripped(
1008
+ f"""\
1009
+ jsonable[{key_literal}] = list(that.{prop_name})"""
1010
+ )
1011
+ else:
1012
+ block = Stripped(
1013
+ f"""\
1006
1014
  jsonable[{key_literal}] = [
1007
1015
  {I}{transformation_expression}
1008
1016
  {I}for item in that.{prop_name}
1009
1017
  ]"""
1010
- )
1018
+ )
1011
1019
 
1012
1020
  else:
1013
1021
  assert_never(type_anno)
@@ -964,7 +964,7 @@ self.{prop_name} = {read_prop_cls_as_sequence}(
964
964
  read_item_cls_as_element = Identifier(
965
965
  _READ_FUNCTION_BY_PRIMITIVE_TYPE[type_anno.items.a_type]
966
966
  )
967
- items_type = Stripped(str(type_anno.items.a_type))
967
+ items_type = python_common.PRIMITIVE_TYPE_MAP[type_anno.items.a_type]
968
968
  else:
969
969
  raise AssertionError(
970
970
  "(mristin, 2022-10-09) We handle only lists of classes and primitive types"
@@ -55,7 +55,7 @@ import {qualified_module_name}.types as aas_types"""
55
55
  ),
56
56
  Stripped(
57
57
  """\
58
- _REPO_ROOT = pathlib.Path(os.path.realpath(__file__)).parent.parent"""
58
+ _REPO_ROOT = pathlib.Path(os.path.realpath(__file__)).parent.parent.parent"""
59
59
  ),
60
60
  Stripped(
61
61
  '''\
@@ -51,6 +51,7 @@ import {qualified_module_name}.types as aas_types"""
51
51
  ),
52
52
  Stripped(
53
53
  """\
54
+ import tests.common
54
55
  import tests.common_xmlization"""
55
56
  ),
56
57
  Stripped(
@@ -133,6 +133,7 @@ import {qualified_module_name}.types as aas_types"""
133
133
  ),
134
134
  Stripped(
135
135
  """\
136
+ import tests.common
136
137
  import tests.common_xmlization"""
137
138
  ),
138
139
  ]
@@ -127,6 +127,7 @@ import {qualified_module_name}.types as aas_types"""
127
127
  ),
128
128
  Stripped(
129
129
  """\
130
+ import tests.common
130
131
  import tests.common_xmlization"""
131
132
  ),
132
133
  ]
@@ -124,6 +124,7 @@ import {qualified_module_name}.jsonization as aas_jsonization"""
124
124
  ),
125
125
  Stripped(
126
126
  """\
127
+ import tests.common
127
128
  import tests.common_jsonization"""
128
129
  ),
129
130
  _generate_test_case(symbol_table=symbol_table),
@@ -105,6 +105,7 @@ import {qualified_module_name}.jsonization as aas_jsonization"""
105
105
  ),
106
106
  Stripped(
107
107
  """\
108
+ import tests.common
108
109
  import tests.common_jsonization"""
109
110
  ),
110
111
  _generate_test_case(symbol_table=symbol_table),
@@ -149,6 +149,7 @@ import {qualified_module_name}.xmlization as aas_xmlization"""
149
149
  ),
150
150
  Stripped(
151
151
  """\
152
+ import tests.common
152
153
  import tests.common_xmlization"""
153
154
  ),
154
155
  _generate_test_case(symbol_table=symbol_table),
@@ -151,6 +151,7 @@ import {qualified_module_name}.xmlization as aas_xmlization"""
151
151
  ),
152
152
  Stripped(
153
153
  """\
154
+ import tests.common
154
155
  import tests.common_xmlization"""
155
156
  ),
156
157
  _generate_test_case(symbol_table=symbol_table),
@@ -38,6 +38,113 @@ _PARSE_FUNCTION_BY_PRIMITIVE_TYPE = {
38
38
  }
39
39
 
40
40
 
41
+ def _generate_parse_text_for_primitive_type(
42
+ primitive_type: intermediate.PrimitiveType,
43
+ ) -> Stripped:
44
+ """Generate parser for a primitive XML text representation."""
45
+ if primitive_type is intermediate.PrimitiveType.BOOL:
46
+ return Stripped(
47
+ f"""\
48
+ function parseBooleanText(
49
+ {I}text: string
50
+ ): AasCommon.Either<boolean, DeserializationError> {{
51
+ {I}if (text === "true" || text === "1") {{
52
+ {II}return new AasCommon.Either<boolean, DeserializationError>(true, null);
53
+ {I}}}
54
+ {I}if (text === "false" || text === "0") {{
55
+ {II}return new AasCommon.Either<boolean, DeserializationError>(false, null);
56
+ {I}}}
57
+
58
+ {I}return newDeserializationError<boolean>(
59
+ {II}`Expected xs:boolean text, but got: ${{text}}`
60
+ {I});
61
+ }}"""
62
+ )
63
+
64
+ elif primitive_type is intermediate.PrimitiveType.INT:
65
+ return Stripped(
66
+ f"""\
67
+ function parseIntegerText(
68
+ {I}text: string
69
+ ): AasCommon.Either<number, DeserializationError> {{
70
+ {I}if (!/^[+-]?\\d+$/.test(text)) {{
71
+ {II}return newDeserializationError<number>(
72
+ {III}`Expected integer text, but got: ${{text}}`
73
+ {II});
74
+ {I}}}
75
+
76
+ {I}const value = Number(text);
77
+ {I}if (!Number.isInteger(value)) {{
78
+ {II}return newDeserializationError<number>(
79
+ {III}`Expected integer text, but got: ${{text}}`
80
+ {II});
81
+ {I}}}
82
+
83
+ {I}return new AasCommon.Either<number, DeserializationError>(value, null);
84
+ }}"""
85
+ )
86
+
87
+ elif primitive_type is intermediate.PrimitiveType.FLOAT:
88
+ return Stripped(
89
+ f"""\
90
+ function parseFloatText(
91
+ {I}text: string
92
+ ): AasCommon.Either<number, DeserializationError> {{
93
+ {I}if (text === "INF") {{
94
+ {II}return new AasCommon.Either<number, DeserializationError>(Infinity, null);
95
+ {I}}}
96
+ {I}if (text === "-INF") {{
97
+ {II}return new AasCommon.Either<number, DeserializationError>(-Infinity, null);
98
+ {I}}}
99
+ {I}if (text === "NaN") {{
100
+ {II}return new AasCommon.Either<number, DeserializationError>(NaN, null);
101
+ {I}}}
102
+
103
+ {I}const value = Number(text);
104
+ {I}if (Number.isNaN(value)) {{
105
+ {II}return newDeserializationError<number>(
106
+ {III}`Expected xs:double text, but got: ${{text}}`
107
+ {II});
108
+ {I}}}
109
+
110
+ {I}return new AasCommon.Either<number, DeserializationError>(value, null);
111
+ }}"""
112
+ )
113
+
114
+ elif primitive_type is intermediate.PrimitiveType.STR:
115
+ return Stripped(
116
+ f"""\
117
+ function parseStringText(
118
+ {I}text: string
119
+ ): AasCommon.Either<string, DeserializationError> {{
120
+ {I}return new AasCommon.Either<string, DeserializationError>(text, null);
121
+ }}"""
122
+ )
123
+
124
+ elif primitive_type is intermediate.PrimitiveType.BYTEARRAY:
125
+ return Stripped(
126
+ f"""\
127
+ function parseBase64EncodedBytesText(
128
+ {I}text: string
129
+ ): AasCommon.Either<Uint8Array, DeserializationError> {{
130
+ {I}const decodedOrError = AasCommon.base64Decode(text);
131
+ {I}if (decodedOrError.error !== null) {{
132
+ {II}return newDeserializationError<Uint8Array>(
133
+ {III}decodedOrError.error
134
+ {II});
135
+ {I}}}
136
+
137
+ {I}return new AasCommon.Either<Uint8Array, DeserializationError>(
138
+ {II}decodedOrError.mustValue(),
139
+ {II}null
140
+ {I});
141
+ }}"""
142
+ )
143
+
144
+ else:
145
+ assert_never(primitive_type)
146
+
147
+
41
148
  def _parse_function_for_atomic_type(
42
149
  type_annotation: intermediate.AtomicTypeAnnotation,
43
150
  ) -> Identifier:
@@ -242,6 +349,7 @@ const parsedItems = new Array<{list_items_type}>();
242
349
  let itemIndex = 0;
243
350
 
244
351
  cursor.skipIgnorable();
352
+ // eslint-disable-next-line no-constant-condition
245
353
  while (true) {{
246
354
  {I}const itemOrClose = cursor.current();
247
355
  {I}if (itemOrClose === null) {{
@@ -332,6 +440,7 @@ const parsedItems = new Array<{list_items_type}>();
332
440
  let itemIndex = 0;
333
441
 
334
442
  cursor.skipIgnorable();
443
+ // eslint-disable-next-line no-constant-condition
335
444
  while (true) {{
336
445
  {I}const itemOrClose = cursor.current();
337
446
  {I}if (itemOrClose === null) {{
@@ -537,6 +646,7 @@ function {function_name}(
537
646
  {I}{indent_but_first_line(declarations, I)}
538
647
 
539
648
  {I}cursor.skipIgnorable();
649
+ {I}// eslint-disable-next-line no-constant-condition
540
650
  {I}while (true) {{
541
651
  {II}const token = cursor.current();
542
652
  {II}if (token === null) {{
@@ -674,6 +784,68 @@ function {serialize_function_name}(
674
784
  )
675
785
 
676
786
 
787
+ def _generate_serialize_text_for_primitive_type(
788
+ primitive_type: intermediate.PrimitiveType,
789
+ ) -> Stripped:
790
+ """Generate serializer for a primitive XML text representation."""
791
+ if primitive_type is intermediate.PrimitiveType.BOOL:
792
+ return Stripped(
793
+ f"""\
794
+ function serializeBooleanText(value: boolean): string {{
795
+ {I}return value ? "true" : "false";
796
+ }}"""
797
+ )
798
+
799
+ elif primitive_type is intermediate.PrimitiveType.INT:
800
+ return Stripped(
801
+ f"""\
802
+ function serializeIntegerText(value: number): string {{
803
+ {I}if (!Number.isInteger(value)) {{
804
+ {II}throw new Error(`Expected an integer, but got: ${{value}}`);
805
+ {I}}}
806
+
807
+ {I}return `${{value}}`;
808
+ }}"""
809
+ )
810
+
811
+ elif primitive_type is intermediate.PrimitiveType.FLOAT:
812
+ return Stripped(
813
+ f"""\
814
+ function serializeFloatText(value: number): string {{
815
+ {I}if (Number.isNaN(value)) {{
816
+ {II}return "NaN";
817
+ {I}}}
818
+ {I}if (value === Infinity) {{
819
+ {II}return "INF";
820
+ {I}}}
821
+ {I}if (value === -Infinity) {{
822
+ {II}return "-INF";
823
+ {I}}}
824
+
825
+ {I}return `${{value}}`;
826
+ }}"""
827
+ )
828
+
829
+ elif primitive_type is intermediate.PrimitiveType.STR:
830
+ return Stripped(
831
+ f"""\
832
+ function serializeStringText(value: string): string {{
833
+ {I}return escapeXmlText(value);
834
+ }}"""
835
+ )
836
+
837
+ elif primitive_type is intermediate.PrimitiveType.BYTEARRAY:
838
+ return Stripped(
839
+ f"""\
840
+ function serializeBase64EncodedBytesText(value: Uint8Array): string {{
841
+ {I}return escapeXmlText(AasCommon.base64Encode(value));
842
+ }}"""
843
+ )
844
+
845
+ else:
846
+ assert_never(primitive_type)
847
+
848
+
677
849
  def _generate_serialize_block_for_property(
678
850
  cls: intermediate.ConcreteClass,
679
851
  prop: intermediate.Property,
@@ -1183,6 +1355,7 @@ class XmlCursor {{
1183
1355
  {I}}}
1184
1356
 
1185
1357
  {I}skipIgnorable(): void {{
1358
+ {II}// eslint-disable-next-line no-constant-condition
1186
1359
  {II}while (true) {{
1187
1360
  {III}const token = this.current();
1188
1361
  {III}if (token === null) {{
@@ -1306,85 +1479,6 @@ function readTextContentAndConsumeEndTag(
1306
1479
  {I});
1307
1480
  }}
1308
1481
 
1309
- function parseBooleanText(
1310
- {I}text: string
1311
- ): AasCommon.Either<boolean, DeserializationError> {{
1312
- {I}if (text === "true" || text === "1") {{
1313
- {II}return new AasCommon.Either<boolean, DeserializationError>(true, null);
1314
- {I}}}
1315
- {I}if (text === "false" || text === "0") {{
1316
- {II}return new AasCommon.Either<boolean, DeserializationError>(false, null);
1317
- {I}}}
1318
-
1319
- {I}return newDeserializationError<boolean>(
1320
- {II}`Expected xs:boolean text, but got: ${{text}}`
1321
- {I});
1322
- }}
1323
-
1324
- function parseIntegerText(
1325
- {I}text: string
1326
- ): AasCommon.Either<number, DeserializationError> {{
1327
- {I}if (!/^[+-]?\\d+$/.test(text)) {{
1328
- {II}return newDeserializationError<number>(
1329
- {III}`Expected integer text, but got: ${{text}}`
1330
- {II});
1331
- {I}}}
1332
-
1333
- {I}const value = Number(text);
1334
- {I}if (!Number.isInteger(value)) {{
1335
- {II}return newDeserializationError<number>(
1336
- {III}`Expected integer text, but got: ${{text}}`
1337
- {II});
1338
- {I}}}
1339
-
1340
- {I}return new AasCommon.Either<number, DeserializationError>(value, null);
1341
- }}
1342
-
1343
- function parseFloatText(
1344
- {I}text: string
1345
- ): AasCommon.Either<number, DeserializationError> {{
1346
- {I}if (text === "INF") {{
1347
- {II}return new AasCommon.Either<number, DeserializationError>(Infinity, null);
1348
- {I}}}
1349
- {I}if (text === "-INF") {{
1350
- {II}return new AasCommon.Either<number, DeserializationError>(-Infinity, null);
1351
- {I}}}
1352
- {I}if (text === "NaN") {{
1353
- {II}return new AasCommon.Either<number, DeserializationError>(NaN, null);
1354
- {I}}}
1355
-
1356
- {I}const value = Number(text);
1357
- {I}if (Number.isNaN(value)) {{
1358
- {II}return newDeserializationError<number>(
1359
- {III}`Expected xs:double text, but got: ${{text}}`
1360
- {II});
1361
- {I}}}
1362
-
1363
- {I}return new AasCommon.Either<number, DeserializationError>(value, null);
1364
- }}
1365
-
1366
- function parseStringText(
1367
- {I}text: string
1368
- ): AasCommon.Either<string, DeserializationError> {{
1369
- {I}return new AasCommon.Either<string, DeserializationError>(text, null);
1370
- }}
1371
-
1372
- function parseBase64EncodedBytesText(
1373
- {I}text: string
1374
- ): AasCommon.Either<Uint8Array, DeserializationError> {{
1375
- {I}const decodedOrError = AasCommon.base64Decode(text);
1376
- {I}if (decodedOrError.error !== null) {{
1377
- {II}return newDeserializationError<Uint8Array>(
1378
- {III}decodedOrError.error
1379
- {II});
1380
- {I}}}
1381
-
1382
- {I}return new AasCommon.Either<Uint8Array, DeserializationError>(
1383
- {II}decodedOrError.mustValue(),
1384
- {II}null
1385
- {I});
1386
- }}
1387
-
1388
1482
  function parsePropertyAsClassInstance(
1389
1483
  {I}cursor: XmlCursor,
1390
1484
  {I}propertyStartTag: OpenTagToken
@@ -1449,6 +1543,9 @@ function parsePropertyAsClassInstance(
1449
1543
  ),
1450
1544
  ] # type: List[Stripped]
1451
1545
 
1546
+ for primitive_type in intermediate.PrimitiveType:
1547
+ blocks.append(_generate_parse_text_for_primitive_type(primitive_type))
1548
+
1452
1549
  for enumeration in symbol_table.enumerations:
1453
1550
  blocks.append(_generate_parse_text_as_enumeration(enumeration))
1454
1551
 
@@ -1572,42 +1669,16 @@ function escapeXmlText(text: string): string {{
1572
1669
  {II}.replace(/>/g, "&gt;")
1573
1670
  {II}.replace(/\"/g, "&quot;")
1574
1671
  {II}.replace(/'/g, "&apos;");
1575
- }}
1576
-
1577
- function serializeBooleanText(value: boolean): string {{
1578
- {I}return value ? "true" : "false";
1579
- }}
1580
-
1581
- function serializeIntegerText(value: number): string {{
1582
- {I}if (!Number.isInteger(value)) {{
1583
- {II}throw new Error(`Expected an integer, but got: ${{value}}`);
1584
- {I}}}
1585
-
1586
- {I}return `${{value}}`;
1587
- }}
1588
-
1589
- function serializeFloatText(value: number): string {{
1590
- {I}if (Number.isNaN(value)) {{
1591
- {II}return "NaN";
1592
- {I}}}
1593
- {I}if (value === Infinity) {{
1594
- {II}return "INF";
1595
- {I}}}
1596
- {I}if (value === -Infinity) {{
1597
- {II}return "-INF";
1598
- {I}}}
1599
-
1600
- {I}return `${{value}}`;
1601
- }}
1602
-
1603
- function serializeStringText(value: string): string {{
1604
- {I}return escapeXmlText(value);
1605
- }}
1606
-
1607
- function serializeBase64EncodedBytesText(value: Uint8Array): string {{
1608
- {I}return escapeXmlText(AasCommon.base64Encode(value));
1609
1672
  }}"""
1610
1673
  ),
1674
+ ]
1675
+ )
1676
+
1677
+ for primitive_type in intermediate.PrimitiveType:
1678
+ blocks.append(_generate_serialize_text_for_primitive_type(primitive_type))
1679
+
1680
+ blocks.extend(
1681
+ [
1611
1682
  _generate_serializer(symbol_table=symbol_table),
1612
1683
  Stripped("const SERIALIZER = new Serializer();"),
1613
1684
  Stripped(
@@ -1644,4 +1715,5 @@ export function toXmlString(that: AasTypes.Class): string {{
1644
1715
 
1645
1716
 
1646
1717
  assert generate.__doc__ is not None
1718
+ assert __doc__ is not None
1647
1719
  assert generate.__doc__.strip().startswith(__doc__.strip())
@@ -209,6 +209,15 @@ def execute(context: run.Context, stdout: TextIO, stderr: TextIO) -> int:
209
209
  None,
210
210
  ),
211
211
  ),
212
+ (
213
+ test_rel_path / "xmlization.common.spec.ts",
214
+ lambda: (
215
+ typescript_tests.generate_xmlization_common_spec(
216
+ symbol_table=verified_ir_table,
217
+ ),
218
+ None,
219
+ ),
220
+ ),
212
221
  (
213
222
  test_rel_path / "xmlization.enums.spec.ts",
214
223
  lambda: (
@@ -227,6 +236,15 @@ def execute(context: run.Context, stdout: TextIO, stderr: TextIO) -> int:
227
236
  None,
228
237
  ),
229
238
  ),
239
+ (
240
+ test_rel_path / "xmlization.negative.spec.ts",
241
+ lambda: (
242
+ typescript_tests.generate_xmlization_negative_spec(
243
+ symbol_table=verified_ir_table,
244
+ ),
245
+ None,
246
+ ),
247
+ ),
230
248
  (
231
249
  test_rel_path / "types.casts.spec.ts",
232
250
  lambda: (
@@ -10,8 +10,10 @@ from aas_core_codegen.typescript.tests import (
10
10
  _generate_jsonization_enums_spec,
11
11
  _generate_jsonization_interfaces_spec,
12
12
  _generate_xmlization_concrete_classes_spec,
13
+ _generate_xmlization_common_spec,
13
14
  _generate_xmlization_enums_spec,
14
15
  _generate_xmlization_interfaces_spec,
16
+ _generate_xmlization_negative_spec,
15
17
  _generate_types_casts_spec,
16
18
  _generate_types_descend_and_pass_through_visitor_spec,
17
19
  _generate_types_descend_once_spec,
@@ -35,8 +37,10 @@ generate_jsonization_interfaces_spec = _generate_jsonization_interfaces_spec.gen
35
37
  generate_xmlization_concrete_classes_spec = (
36
38
  _generate_xmlization_concrete_classes_spec.generate
37
39
  )
40
+ generate_xmlization_common_spec = _generate_xmlization_common_spec.generate
38
41
  generate_xmlization_enums_spec = _generate_xmlization_enums_spec.generate
39
42
  generate_xmlization_interfaces_spec = _generate_xmlization_interfaces_spec.generate
43
+ generate_xmlization_negative_spec = _generate_xmlization_negative_spec.generate
40
44
  generate_types_casts_spec = _generate_types_casts_spec.generate
41
45
  generate_types_descend_and_pass_through_visitor_spec = (
42
46
  _generate_types_descend_and_pass_through_visitor_spec.generate
@@ -151,4 +151,5 @@ export function {load_minimal_name}(
151
151
 
152
152
 
153
153
  assert generate.__doc__ is not None
154
+ assert __doc__ is not None
154
155
  assert generate.__doc__.strip().startswith(__doc__.strip())
@@ -0,0 +1,76 @@
1
+ """Generate code to execute all common XMLization loader functions once."""
2
+
3
+ import io
4
+ from typing import List
5
+
6
+ from icontract import ensure
7
+
8
+ from aas_core_codegen import intermediate
9
+ from aas_core_codegen.common import Stripped, Identifier
10
+ from aas_core_codegen.typescript import (
11
+ common as typescript_common,
12
+ naming as typescript_naming,
13
+ )
14
+ from aas_core_codegen.typescript.common import (
15
+ INDENT as I,
16
+ )
17
+
18
+
19
+ # fmt: off
20
+ @ensure(
21
+ lambda result: result.endswith('\n'),
22
+ "Trailing newline mandatory for valid end-of-files"
23
+ )
24
+ # fmt: on
25
+ def generate(symbol_table: intermediate.SymbolTable) -> str:
26
+ """Generate code to execute all common XMLization loader functions once."""
27
+ blocks = [
28
+ Stripped(
29
+ """\
30
+ /**
31
+ * Execute all common XMLization loader helpers once.
32
+ */"""
33
+ ),
34
+ typescript_common.WARNING,
35
+ Stripped(
36
+ """\
37
+ import * as TestCommonXmlization from "./commonXmlization";"""
38
+ ),
39
+ ] # type: List[Stripped]
40
+
41
+ for concrete_cls in symbol_table.concrete_classes:
42
+ load_maximal_name = typescript_naming.function_name(
43
+ Identifier(f"load_maximal_{concrete_cls.name}")
44
+ )
45
+ load_minimal_name = typescript_naming.function_name(
46
+ Identifier(f"load_minimal_{concrete_cls.name}")
47
+ )
48
+ cls_name_typescript = typescript_naming.class_name(concrete_cls.name)
49
+
50
+ blocks.append(
51
+ Stripped(
52
+ f"""\
53
+ test("commonXmlization loaders for {cls_name_typescript}", () => {{
54
+ {I}expect(TestCommonXmlization.{load_minimal_name}()).not.toBeNull();
55
+ {I}expect(TestCommonXmlization.{load_maximal_name}()).not.toBeNull();
56
+ }});"""
57
+ )
58
+ )
59
+
60
+ blocks.append(typescript_common.WARNING)
61
+
62
+ writer = io.StringIO()
63
+ for i, block in enumerate(blocks):
64
+ if i > 0:
65
+ writer.write("\n\n")
66
+
67
+ writer.write(block)
68
+
69
+ writer.write("\n")
70
+
71
+ return writer.getvalue()
72
+
73
+
74
+ assert generate.__doc__ is not None
75
+ assert __doc__ is not None
76
+ assert generate.__doc__.strip().startswith(__doc__.strip())