pya2ldb 1.0.331__tar.gz → 1.0.332__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 (239) hide show
  1. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/PKG-INFO +1 -1
  2. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml/aml_parser.hpp +71 -9
  3. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml/ifdata_parser.py +6 -2
  4. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/version.py +1 -1
  5. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pyproject.toml +2 -2
  6. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/LICENSE +0 -0
  7. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/build_ext.py +0 -0
  8. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/docs/README.rst +0 -0
  9. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/__init__.py +0 -0
  10. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/a2l_listener.py +0 -0
  11. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/a2llg.g4 +0 -0
  12. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/a2lparser.py +0 -0
  13. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/a2lparser_wrapper.cpp +0 -0
  14. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml/__init__.py +0 -0
  15. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml/aml_lexer.hpp +0 -0
  16. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml/aml_visitor.cpp +0 -0
  17. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml/aml_visitor.h +0 -0
  18. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml/classes.py +0 -0
  19. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml/db.py +0 -0
  20. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml/ifdata_lexer.py +0 -0
  21. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml/klasses.hpp +0 -0
  22. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml/listener.py +0 -0
  23. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml/marshal.cpp +0 -0
  24. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml/parser.cpp +0 -0
  25. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml/parser.hpp +0 -0
  26. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml/types.hpp +0 -0
  27. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml/unmarshal.cpp +0 -0
  28. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml/unmarshal.hpp +0 -0
  29. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml.g4 +0 -0
  30. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/aml_parser.cpp +0 -0
  31. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/amlparser_wrapper.cpp +0 -0
  32. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/api/__init__.py +0 -0
  33. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/api/create.py +0 -0
  34. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/api/inspect.py +0 -0
  35. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/api/validate.py +0 -0
  36. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/build/README.rst +0 -0
  37. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/build/__init__.py +0 -0
  38. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/buildGrammar.bat +0 -0
  39. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/buildGrammars.cmd +0 -0
  40. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/cgen/__init__.py +0 -0
  41. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/cgen/templates/__init__.py +0 -0
  42. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/cgen/templates/a2l.tmpl +0 -0
  43. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/classes.py +0 -0
  44. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/cse_units.py +0 -0
  45. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/examples/ASAP2_Demo_V161.a2l +0 -0
  46. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/examples/etas.aml +0 -0
  47. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/examples/ex01.py +0 -0
  48. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/examples/ex02.py +0 -0
  49. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/examples/ex03.py +0 -0
  50. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/examples/ex04.py +0 -0
  51. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/examples/ex_variants.py +0 -0
  52. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/examples/ifdata_tester.py +0 -0
  53. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/examples/parse_aml_tst.py +0 -0
  54. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/examples/variants.a2l +0 -0
  55. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/examples/vector.aml +0 -0
  56. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/exceptions.py +0 -0
  57. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/FreeA2LParser/FreeA2LParser.sln +0 -0
  58. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/FreeA2LParser/FreeA2LParser.vcxproj +0 -0
  59. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/FreeA2LParser/FreeA2LParser.vcxproj.filters +0 -0
  60. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/FreeA2LParser/FreeA2LParser.vcxproj.user +0 -0
  61. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/FreeA2LParser/packages.config +0 -0
  62. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/a2l.tokens +0 -0
  63. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/a2lparser.hpp +0 -0
  64. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/a2ltoken.hpp +0 -0
  65. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/asam_types.hpp +0 -0
  66. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/cmake/.FindANTLR.cmake.swp +0 -0
  67. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/cmake/Antlr4Package.md +0 -0
  68. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/cmake/ExternalAntlr4Cpp.cmake +0 -0
  69. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/cmake/FindANTLR.cmake +0 -0
  70. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/cmake/antlr4-generator.cmake.in +0 -0
  71. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/cmake/antlr4-runtime.cmake.in +0 -0
  72. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/ctre.hpp +0 -0
  73. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/exceptions.cpp +0 -0
  74. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/exceptions.hpp +0 -0
  75. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/gen_token_files.py +0 -0
  76. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/generator.hpp +0 -0
  77. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/generator.txt +0 -0
  78. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/ifdata.hpp +0 -0
  79. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/keyword.hpp +0 -0
  80. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/line_map.hpp +0 -0
  81. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/line_numbers.hpp +0 -0
  82. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/logger.hpp +0 -0
  83. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/parameter.hpp +0 -0
  84. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/parser_table.hpp +0 -0
  85. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/preprocessor.hpp +0 -0
  86. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/regex.hpp +0 -0
  87. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/async.h +0 -0
  88. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/async_logger-inl.h +0 -0
  89. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/async_logger.h +0 -0
  90. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/cfg/argv.h +0 -0
  91. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/cfg/env.h +0 -0
  92. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/cfg/helpers-inl.h +0 -0
  93. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/cfg/helpers.h +0 -0
  94. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/common-inl.h +0 -0
  95. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/common.h +0 -0
  96. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/backtracer-inl.h +0 -0
  97. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/backtracer.h +0 -0
  98. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/circular_q.h +0 -0
  99. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/console_globals.h +0 -0
  100. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/file_helper-inl.h +0 -0
  101. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/file_helper.h +0 -0
  102. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/fmt_helper.h +0 -0
  103. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/log_msg-inl.h +0 -0
  104. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/log_msg.h +0 -0
  105. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/log_msg_buffer-inl.h +0 -0
  106. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/log_msg_buffer.h +0 -0
  107. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/mpmc_blocking_q.h +0 -0
  108. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/null_mutex.h +0 -0
  109. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/os-inl.h +0 -0
  110. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/os.h +0 -0
  111. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/periodic_worker-inl.h +0 -0
  112. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/periodic_worker.h +0 -0
  113. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/registry-inl.h +0 -0
  114. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/registry.h +0 -0
  115. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/synchronous_factory.h +0 -0
  116. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/tcp_client-windows.h +0 -0
  117. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/tcp_client.h +0 -0
  118. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/thread_pool-inl.h +0 -0
  119. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/thread_pool.h +0 -0
  120. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/udp_client-windows.h +0 -0
  121. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/udp_client.h +0 -0
  122. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/details/windows_include.h +0 -0
  123. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/bin_to_hex.h +0 -0
  124. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/bundled/args.h +0 -0
  125. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/bundled/base.h +0 -0
  126. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/bundled/chrono.h +0 -0
  127. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/bundled/color.h +0 -0
  128. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/bundled/compile.h +0 -0
  129. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/bundled/core.h +0 -0
  130. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/bundled/fmt.license.rst +0 -0
  131. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/bundled/format-inl.h +0 -0
  132. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/bundled/format.h +0 -0
  133. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/bundled/locale.h +0 -0
  134. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/bundled/os.h +0 -0
  135. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/bundled/ostream.h +0 -0
  136. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/bundled/printf.h +0 -0
  137. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/bundled/ranges.h +0 -0
  138. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/bundled/std.h +0 -0
  139. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/bundled/xchar.h +0 -0
  140. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/chrono.h +0 -0
  141. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/compile.h +0 -0
  142. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/fmt.h +0 -0
  143. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/ostr.h +0 -0
  144. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/ranges.h +0 -0
  145. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/std.h +0 -0
  146. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fmt/xchar.h +0 -0
  147. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/formatter.h +0 -0
  148. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/fwd.h +0 -0
  149. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/logger-inl.h +0 -0
  150. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/logger.h +0 -0
  151. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/mdc.h +0 -0
  152. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/pattern_formatter-inl.h +0 -0
  153. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/pattern_formatter.h +0 -0
  154. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/android_sink.h +0 -0
  155. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/ansicolor_sink-inl.h +0 -0
  156. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/ansicolor_sink.h +0 -0
  157. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/base_sink-inl.h +0 -0
  158. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/base_sink.h +0 -0
  159. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/basic_file_sink-inl.h +0 -0
  160. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/basic_file_sink.h +0 -0
  161. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/callback_sink.h +0 -0
  162. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/daily_file_sink.h +0 -0
  163. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/dist_sink.h +0 -0
  164. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/dup_filter_sink.h +0 -0
  165. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/hourly_file_sink.h +0 -0
  166. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/kafka_sink.h +0 -0
  167. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/mongo_sink.h +0 -0
  168. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/msvc_sink.h +0 -0
  169. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/null_sink.h +0 -0
  170. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/ostream_sink.h +0 -0
  171. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/qt_sinks.h +0 -0
  172. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/ringbuffer_sink.h +0 -0
  173. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/rotating_file_sink-inl.h +0 -0
  174. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/rotating_file_sink.h +0 -0
  175. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/sink-inl.h +0 -0
  176. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/sink.h +0 -0
  177. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/stdout_color_sinks-inl.h +0 -0
  178. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/stdout_color_sinks.h +0 -0
  179. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/stdout_sinks-inl.h +0 -0
  180. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/stdout_sinks.h +0 -0
  181. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/syslog_sink.h +0 -0
  182. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/systemd_sink.h +0 -0
  183. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/tcp_sink.h +0 -0
  184. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/udp_sink.h +0 -0
  185. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/win_eventlog_sink.h +0 -0
  186. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/wincolor_sink-inl.h +0 -0
  187. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/sinks/wincolor_sink.h +0 -0
  188. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/spdlog-inl.h +0 -0
  189. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/spdlog.h +0 -0
  190. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/stopwatch.h +0 -0
  191. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/tweakme.h +0 -0
  192. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/spdlog/version.h +0 -0
  193. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/sysconsts.hpp +0 -0
  194. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/tempfile.hpp +0 -0
  195. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/token_stream.cpp +0 -0
  196. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/token_stream.hpp +0 -0
  197. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/token_type.hpp +0 -0
  198. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/tokenizer.cpp +0 -0
  199. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/tokenizer.hpp +0 -0
  200. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/tokenstream_wrapper.cpp +0 -0
  201. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/utils.hpp +0 -0
  202. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/extensions/valuecontainer.hpp +0 -0
  203. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/functions.py +0 -0
  204. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/if_data_parser.cpp +0 -0
  205. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/if_data_parser.py +0 -0
  206. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/imex/__init__.py +0 -0
  207. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/imex/a2l_exporter.py +0 -0
  208. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/imex/json_exporter.py +0 -0
  209. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/logger.py +0 -0
  210. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/model/__init__.py +0 -0
  211. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/model/mixins.py +0 -0
  212. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/parserlib.py +0 -0
  213. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/parsers.py +0 -0
  214. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/preprocessor_wrapper.cpp +0 -0
  215. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/scripts/a2ldb_imex.py +0 -0
  216. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/scripts/benchmark.py +0 -0
  217. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/templates.py +0 -0
  218. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/__init__.py +0 -0
  219. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/clean_ifdata.a2l +0 -0
  220. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/multiple_ifdatas_per_line.a2l +0 -0
  221. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/notso_clean_ifdata.a2l +0 -0
  222. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/notso_clean_ifdata2.a2l +0 -0
  223. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/singleline_ifdata.a2l +0 -0
  224. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/testCygpath.py +0 -0
  225. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/test_a2l_parser.py +0 -0
  226. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/test_api_create.py +0 -0
  227. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/test_api_inspect.py +0 -0
  228. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/test_cache_session.py +0 -0
  229. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/test_cse_units.py +0 -0
  230. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/test_cse_units_extra.py +0 -0
  231. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/test_exceptions.py +0 -0
  232. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/test_export_concurrency.py +0 -0
  233. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/test_export_symbol_link.py +0 -0
  234. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/test_formula_modes.py +0 -0
  235. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/test_functions.py +0 -0
  236. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/test_inspect_utils.py +0 -0
  237. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/test_utils.py +0 -0
  238. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/tests/test_various.py +0 -0
  239. {pya2ldb-1.0.331 → pya2ldb-1.0.332}/pya2l/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pya2ldb
3
- Version: 1.0.331
3
+ Version: 1.0.332
4
4
  Summary: A2L for Python
5
5
  License: GPLv2
6
6
  License-File: LICENSE
@@ -8,7 +8,11 @@
8
8
  class AMLParser {
9
9
  public:
10
10
 
11
- explicit AMLParser(const std::vector<AmlToken>& tokens) : m_tokens(tokens), m_pos(0) {
11
+ explicit AMLParser(const std::vector<AmlToken>& tokens) : m_tokens(tokens), m_pos(0), m_error_count(0) {
12
+ }
13
+
14
+ std::size_t get_error_count() const noexcept {
15
+ return m_error_count;
12
16
  }
13
17
 
14
18
  const AmlToken& current_token() const {
@@ -150,7 +154,11 @@ class AMLParser {
150
154
  std::cerr << "[WARNING (pya2l.AMLParser)] Empty AML section - no tokens to parse." << std::endl;
151
155
  return {};
152
156
  }
153
- return aml_file();
157
+ auto result = aml_file();
158
+ if (m_error_count > 0) {
159
+ std::cerr << "[WARNING (pya2l.AMLParser)] AML parsing completed with " << m_error_count << " error(s) - some definitions were skipped." << std::endl;
160
+ }
161
+ return result;
154
162
  }
155
163
 
156
164
  auto aml_file() -> AmlFile {
@@ -171,10 +179,17 @@ class AMLParser {
171
179
  if (token.type == AmlTokenType::END) {
172
180
  break;
173
181
  }
174
- if (token.type == AmlTokenType::BLOCK) {
175
- decls.emplace_back(nullptr, std::make_shared<BlockDefinition>(block_definition()));
176
- } else {
177
- decls.emplace_back(std::make_shared<TypeDefinition>(type_definition()), nullptr);
182
+ try {
183
+ if (token.type == AmlTokenType::BLOCK) {
184
+ decls.emplace_back(nullptr, std::make_shared<BlockDefinition>(block_definition()));
185
+ } else {
186
+ decls.emplace_back(std::make_shared<TypeDefinition>(type_definition()), nullptr);
187
+ }
188
+ } catch (const std::runtime_error& e) {
189
+ m_error_count++;
190
+ std::cerr << "[WARNING (pya2l.AMLParser)] Skipping declaration: " << e.what() << std::endl;
191
+ skip_to_next_member();
192
+ continue;
178
193
  }
179
194
  token = current_token();
180
195
  if (token.type == AmlTokenType::SEMI) {
@@ -264,7 +279,13 @@ class AMLParser {
264
279
  if (token.type == AmlTokenType::RBRACE) {
265
280
  break;
266
281
  }
267
- members.emplace_back(struct_member());
282
+ try {
283
+ members.emplace_back(struct_member());
284
+ } catch (const std::runtime_error& e) {
285
+ m_error_count++;
286
+ std::cerr << "[WARNING (pya2l.AMLParser)] Skipping struct member: " << e.what() << std::endl;
287
+ skip_to_next_member();
288
+ }
268
289
  }
269
290
  match(AmlTokenType::RBRACE);
270
291
  return Struct(name, members);
@@ -303,7 +324,13 @@ class AMLParser {
303
324
  if (token.type == AmlTokenType::RBRACE) {
304
325
  break;
305
326
  }
306
- members.emplace_back(tagged_struct_member());
327
+ try {
328
+ members.emplace_back(tagged_struct_member());
329
+ } catch (const std::runtime_error& e) {
330
+ m_error_count++;
331
+ std::cerr << "[WARNING (pya2l.AMLParser)] Skipping tagged struct member: " << e.what() << std::endl;
332
+ skip_to_next_member();
333
+ }
307
334
  }
308
335
  match(AmlTokenType::RBRACE);
309
336
  } else {
@@ -403,7 +430,13 @@ class AMLParser {
403
430
  if (token.type == AmlTokenType::RBRACE) {
404
431
  break;
405
432
  }
406
- members.emplace_back(tagged_union_member());
433
+ try {
434
+ members.emplace_back(tagged_union_member());
435
+ } catch (const std::runtime_error& e) {
436
+ m_error_count++;
437
+ std::cerr << "[WARNING (pya2l.AMLParser)] Skipping tagged union member: " << e.what() << std::endl;
438
+ skip_to_next_member();
439
+ }
407
440
  }
408
441
  match(AmlTokenType::RBRACE);
409
442
  return TaggedUnion(name, std::move(members));
@@ -517,8 +550,37 @@ class AMLParser {
517
550
 
518
551
  private:
519
552
 
553
+ void skip_to_next_member() {
554
+ int brace_depth = 0;
555
+ int paren_depth = 0;
556
+ while (m_pos < std::size(m_tokens)) {
557
+ auto& token = m_tokens[m_pos];
558
+ if (token.type == AmlTokenType::LBRACE) {
559
+ brace_depth++;
560
+ } else if (token.type == AmlTokenType::RBRACE) {
561
+ if (brace_depth == 0) {
562
+ return; // End of containing block — don't consume
563
+ }
564
+ brace_depth--;
565
+ } else if (token.type == AmlTokenType::LPARAN) {
566
+ paren_depth++;
567
+ } else if (token.type == AmlTokenType::RPARAN) {
568
+ if (paren_depth > 0) {
569
+ paren_depth--;
570
+ }
571
+ } else if (token.type == AmlTokenType::SEMI && brace_depth == 0 && paren_depth == 0) {
572
+ m_pos++; // Consume the semicolon
573
+ return; // Ready for next member
574
+ } else if (token.type == AmlTokenType::END && brace_depth == 0) {
575
+ return; // End of AML block
576
+ }
577
+ m_pos++;
578
+ }
579
+ }
580
+
520
581
  std::vector<AmlToken> m_tokens;
521
582
  std::size_t m_pos;
583
+ std::size_t m_error_count;
522
584
  };
523
585
 
524
586
  // }; // namespace Aml
@@ -259,8 +259,12 @@ class IfDataParser:
259
259
 
260
260
  # Initialize from session
261
261
  aml_section = session.query(model.AMLSection).first()
262
- if aml_section:
263
- aml_root = unmarshal(aml_section.parsed)
262
+ if aml_section and aml_section.parsed:
263
+ try:
264
+ aml_root = unmarshal(aml_section.parsed)
265
+ except (RuntimeError, Exception) as e:
266
+ self.logger.error(f"Failed to unmarshal AML section: {e}")
267
+ return
264
268
  self.root = self.traverse(aml_root)
265
269
  if self.root and self.root.members:
266
270
  try:
@@ -1,3 +1,3 @@
1
1
  """pya2l version module"""
2
2
 
3
- __version__ = "1.0.331"
3
+ __version__ = "1.0.332"
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pya2ldb"
3
- version = "1.0.331"
3
+ version = "1.0.332"
4
4
  description = "A2L for Python"
5
5
  authors = ["Christoph Schueler <cpu12.gems@googlemail.com>"]
6
6
  license = "GPLv2"
@@ -54,7 +54,7 @@ pyupgrade = "^3.16.0"
54
54
  bumpver = "^2024.1130"
55
55
 
56
56
  [tool.bumpver]
57
- current_version = "1.0.331"
57
+ current_version = "1.0.332"
58
58
  version_pattern = "MAJOR.MINOR.PATCH"
59
59
  commit_message = "bump version {old_version} -> {new_version}"
60
60
  commit = true
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes