strictdoc 0.3.0__tar.gz → 0.4.0__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 (534) hide show
  1. {strictdoc-0.3.0 → strictdoc-0.4.0}/.gitignore +0 -2
  2. {strictdoc-0.3.0 → strictdoc-0.4.0}/PKG-INFO +6 -4
  3. {strictdoc-0.3.0 → strictdoc-0.4.0}/pyproject.toml +1 -1
  4. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/__init__.py +1 -1
  5. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/grammar/grammar.py +1 -0
  6. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/models/document_config.py +3 -0
  7. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc_source_code/caching_reader.py +25 -9
  8. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc_source_code/marker_parser.py +5 -3
  9. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc_source_code/models/function.py +3 -0
  10. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc_source_code/models/source_file_info.py +3 -1
  11. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc_source_code/reader.py +3 -1
  12. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc_source_code/reader_c.py +136 -24
  13. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc_source_code/reader_python.py +5 -1
  14. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc_source_code/tree_sitter_helpers.py +8 -3
  15. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/cli/command_parser_builder.py +1 -0
  16. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/actions/export_action.py +13 -0
  17. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/document_tree.py +3 -2
  18. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/file_traceability_index.py +33 -17
  19. strictdoc-0.4.0/strictdoc/core/finders/source_files_finder.py +79 -0
  20. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/project_config.py +21 -0
  21. strictdoc-0.3.0/strictdoc/core/finders/source_files_finder.py → strictdoc-0.4.0/strictdoc/core/source_tree.py +16 -75
  22. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/traceability_index.py +20 -4
  23. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/traceability_index_builder.py +6 -6
  24. strictdoc-0.4.0/strictdoc/export/doxygen/doxygen_generator.py +63 -0
  25. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/document.py +3 -0
  26. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/document_deep_trace.py +3 -0
  27. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/document_pdf.py +3 -0
  28. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/document_table.py +3 -0
  29. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/document_trace.py +3 -0
  30. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/project_statistics.py +8 -2
  31. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/source_file_view_generator.py +1 -1
  32. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/view_objects/document_screen_view_object.py +32 -0
  33. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/view_objects/source_file_view_object.py +1 -1
  34. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/html_generator.py +11 -3
  35. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/renderers/link_renderer.py +18 -1
  36. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/document_meta/index.jinja +16 -2
  37. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/pdf/index.jinja +1 -1
  38. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html2pdf/html2pdf_generator.py +4 -0
  39. strictdoc-0.4.0/strictdoc/helpers/git_client.py +102 -0
  40. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/string.py +10 -0
  41. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/server/app.py +8 -1
  42. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/server/routers/main_router.py +17 -0
  43. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/server/server.py +13 -10
  44. strictdoc-0.4.0/tests/integration/scripting_examples/questionnaires/02_user_provided_example/LICENSE +21 -0
  45. strictdoc-0.3.0/strictdoc/core/source_tree.py +0 -13
  46. strictdoc-0.3.0/strictdoc/helpers/git_client.py +0 -29
  47. {strictdoc-0.3.0 → strictdoc-0.4.0}/LICENSE +0 -0
  48. {strictdoc-0.3.0 → strictdoc-0.4.0}/NOTICE +0 -0
  49. {strictdoc-0.3.0 → strictdoc-0.4.0}/README.md +0 -0
  50. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/__init__.py +0 -0
  51. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/excel/__init__.py +0 -0
  52. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/excel/excel_import.py +0 -0
  53. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/excel/export/__init__.py +0 -0
  54. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/excel/export/excel_generator.py +0 -0
  55. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/excel/import_/__init__.py +0 -0
  56. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/excel/import_/excel_to_sdoc_converter.py +0 -0
  57. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/reqif/__init__.py +0 -0
  58. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/reqif/p01_sdoc/__init__.py +0 -0
  59. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/reqif/p01_sdoc/reqif_to_sdoc_converter.py +0 -0
  60. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/reqif/p01_sdoc/sdoc_to_reqif_converter.py +0 -0
  61. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/reqif/reqif_export.py +0 -0
  62. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/reqif/reqif_import.py +0 -0
  63. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/reqif/sdoc_reqif_fields.py +0 -0
  64. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/__init__.py +0 -0
  65. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/constants.py +0 -0
  66. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/document_reference.py +0 -0
  67. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/error_handling.py +0 -0
  68. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/errors/__init__.py +0 -0
  69. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/errors/document_tree_error.py +0 -0
  70. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/free_text_reader.py +0 -0
  71. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/grammar/__init__.py +0 -0
  72. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/grammar/grammar_builder.py +0 -0
  73. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/grammar/grammar_grammar.py +0 -0
  74. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/grammar/type_system.py +0 -0
  75. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/grammar_reader.py +0 -0
  76. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/models/__init__.py +0 -0
  77. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/models/anchor.py +0 -0
  78. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/models/any_node.py +0 -0
  79. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/models/constants.py +0 -0
  80. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/models/document.py +0 -0
  81. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/models/document_from_file.py +0 -0
  82. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/models/document_grammar.py +0 -0
  83. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/models/document_view.py +0 -0
  84. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/models/free_text.py +0 -0
  85. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/models/inline_link.py +0 -0
  86. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/models/node.py +0 -0
  87. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/models/object.py +0 -0
  88. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/models/object_factory.py +0 -0
  89. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/models/reference.py +0 -0
  90. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/models/section.py +0 -0
  91. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/models/type_system.py +0 -0
  92. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/pickle_cache.py +0 -0
  93. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/processor.py +0 -0
  94. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/reader.py +0 -0
  95. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/validations/__init__.py +0 -0
  96. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/validations/sdoc_validator.py +0 -0
  97. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc/writer.py +0 -0
  98. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc_source_code/__init__.py +0 -0
  99. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc_source_code/constants.py +0 -0
  100. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc_source_code/grammar.py +0 -0
  101. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc_source_code/models/__init__.py +0 -0
  102. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc_source_code/models/function_range_marker.py +0 -0
  103. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc_source_code/models/range_marker.py +0 -0
  104. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc_source_code/models/requirement_marker.py +0 -0
  105. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc_source_code/parse_context.py +0 -0
  106. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/backend/sdoc_source_code/processors/general_language_marker_processors.py +0 -0
  107. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/cli/__init__.py +0 -0
  108. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/cli/argument_int_range.py +0 -0
  109. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/cli/cli_arg_parser.py +0 -0
  110. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/cli/main.py +0 -0
  111. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/commands/__init__.py +0 -0
  112. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/commands/about_command.py +0 -0
  113. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/commands/diff_command.py +0 -0
  114. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/commands/dump_grammar_command.py +0 -0
  115. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/commands/manage_autouid_command.py +0 -0
  116. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/commands/version_command.py +0 -0
  117. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/__init__.py +0 -0
  118. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/actions/__init__.py +0 -0
  119. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/actions/import_action.py +0 -0
  120. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/analyzers/document_stats.py +0 -0
  121. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/analyzers/document_uid_analyzer.py +0 -0
  122. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/asset_manager.py +0 -0
  123. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/document_finder.py +0 -0
  124. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/document_iterator.py +0 -0
  125. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/document_meta.py +0 -0
  126. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/document_tree_iterator.py +0 -0
  127. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/environment.py +0 -0
  128. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/file_tree.py +0 -0
  129. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/finders/__init__.py +0 -0
  130. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/graph/abstract_bucket.py +0 -0
  131. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/graph/many_to_many_set.py +0 -0
  132. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/graph/one_to_one_dictionary.py +0 -0
  133. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/graph/validations.py +0 -0
  134. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/graph_database.py +0 -0
  135. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/query_engine/grammar.py +0 -0
  136. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/query_engine/query_object.py +0 -0
  137. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/query_engine/query_reader.py +0 -0
  138. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/transforms/constants.py +0 -0
  139. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/transforms/create_requirement.py +0 -0
  140. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/transforms/delete_requirement.py +0 -0
  141. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/transforms/delete_section.py +0 -0
  142. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/transforms/section.py +0 -0
  143. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/transforms/update_document_config.py +0 -0
  144. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/transforms/update_grammar.py +0 -0
  145. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/transforms/update_grammar_element.py +0 -0
  146. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/transforms/update_included_document.py +0 -0
  147. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/transforms/update_requirement.py +0 -0
  148. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/transforms/validation_error.py +0 -0
  149. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/core/tree_cycle_detector.py +0 -0
  150. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/__init__.py +0 -0
  151. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/__init__.py +0 -0
  152. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/autogen.css +0 -0
  153. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/base.css +0 -0
  154. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/collapsible_list.js +0 -0
  155. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/collapsible_toc.js +0 -0
  156. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/collapsible_tree.js +0 -0
  157. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/content.css +0 -0
  158. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/controllers/anchor_controller.js +0 -0
  159. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/controllers/copy_to_clipboard_controller.js +0 -0
  160. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/controllers/deletable_field_controller.js +0 -0
  161. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/controllers/draggable_list_controller.js +0 -0
  162. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/controllers/dropdown_menu_controller.js +0 -0
  163. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/controllers/editable_field_controller.js +0 -0
  164. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/controllers/modal_controller.js +0 -0
  165. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/controllers/movable_field_controller.js +0 -0
  166. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/controllers/scroll_into_view_controller.js +0 -0
  167. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/controllers/tabs_controller.js +0 -0
  168. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/diff.css +0 -0
  169. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/diff.js +0 -0
  170. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/element.css +0 -0
  171. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/favicon.ico +0 -0
  172. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/fonts/NotoSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  173. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/fonts/NotoSans-VariableFont_wdth,wght.ttf +0 -0
  174. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/fonts/NotoSansMono-VariableFont_wdth,wght.ttf +0 -0
  175. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/form.css +0 -0
  176. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/html2pdf/bundle.js +0 -0
  177. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/layout.css +0 -0
  178. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/node.css +0 -0
  179. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/pan_with_space.js +0 -0
  180. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/project_tree.css +0 -0
  181. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/project_tree.js +0 -0
  182. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/requirement-tree.css +0 -0
  183. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/requirement.css +0 -0
  184. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/requirement__temporary.css +0 -0
  185. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/requirements-coverage.js +0 -0
  186. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/resizable_bar.js +0 -0
  187. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/source-code-coverage.js +0 -0
  188. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/source.css +0 -0
  189. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/stimulus.min.js +0 -0
  190. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/table_vew.css +0 -0
  191. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/toc_highlighting.js +0 -0
  192. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/traceability_matrix.css +0 -0
  193. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/tree(not_in_use).css +0 -0
  194. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/turbo.min.js +0 -0
  195. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/viewtype_menu.js +0 -0
  196. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static/zoomable.js +0 -0
  197. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/LICENSE-MATHJAX +0 -0
  198. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/tex.js +0 -0
  199. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff +0 -0
  200. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff +0 -0
  201. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff +0 -0
  202. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff +0 -0
  203. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff +0 -0
  204. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff +0 -0
  205. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff +0 -0
  206. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +0 -0
  207. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff +0 -0
  208. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +0 -0
  209. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff +0 -0
  210. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff +0 -0
  211. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff +0 -0
  212. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff +0 -0
  213. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff +0 -0
  214. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff +0 -0
  215. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +0 -0
  216. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +0 -0
  217. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff +0 -0
  218. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff +0 -0
  219. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff +0 -0
  220. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff +0 -0
  221. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff +0 -0
  222. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mathjax/tex-mml-chtml.js +0 -0
  223. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/mermaid/mermaid.min.js +0 -0
  224. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/nestor/bundle.umd.js +0 -0
  225. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/_static_extra/rapidoc/rapidoc-min.js +0 -0
  226. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/document_type.py +0 -0
  227. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/form_objects/document_config_form_object.py +0 -0
  228. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/form_objects/form_object.py +0 -0
  229. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/form_objects/grammar_element_form_object.py +0 -0
  230. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/form_objects/grammar_form_object.py +0 -0
  231. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/form_objects/included_document_form_object.py +0 -0
  232. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/form_objects/requirement_form_object.py +0 -0
  233. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/form_objects/rows/row_with_grammar_element_form_object.py +0 -0
  234. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/form_objects/section_form_object.py +0 -0
  235. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/__init__.py +0 -0
  236. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/document_tree.py +0 -0
  237. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/source_file_coverage.py +0 -0
  238. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/traceability_matrix.py +0 -0
  239. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/view_objects/diff_screen_results_view_object.py +0 -0
  240. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/view_objects/diff_screen_view_object.py +0 -0
  241. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/view_objects/nestor_view_object.py +0 -0
  242. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/view_objects/project_statistics_view_object.py +0 -0
  243. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/view_objects/project_tree_stats.py +0 -0
  244. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/view_objects/project_tree_view_object.py +0 -0
  245. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/view_objects/search_screen_view_object.py +0 -0
  246. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/generators/view_objects/traceability_matrix_view_object.py +0 -0
  247. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/html_templates.py +0 -0
  248. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/renderers/__init__.py +0 -0
  249. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/renderers/html_fragment_writer.py +0 -0
  250. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/renderers/markup_renderer.py +0 -0
  251. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/renderers/text_to_html_writer.py +0 -0
  252. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg__separator.jinja.html +0 -0
  253. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_add.jinja.html +0 -0
  254. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_add_above.jinja +0 -0
  255. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_add_below.jinja +0 -0
  256. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_add_child.jinja +0 -0
  257. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_anchor.jinja +0 -0
  258. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_back.jinja.html +0 -0
  259. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_book.jinja.html +0 -0
  260. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_close.jinja +0 -0
  261. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_code.jinja.html +0 -0
  262. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_copy.jinja +0 -0
  263. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_delete.jinja.html +0 -0
  264. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_diff.jinja +0 -0
  265. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_document.jinja.html +0 -0
  266. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_done.jinja +0 -0
  267. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_edit.jinja.html +0 -0
  268. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_expand.jinja.html +0 -0
  269. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_file.jinja +0 -0
  270. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_folder.jinja +0 -0
  271. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_folder_collapse.jinja +0 -0
  272. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_folder_sm.jinja +0 -0
  273. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_fragment.jinja +0 -0
  274. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_fragment_draft.jinja +0 -0
  275. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_gear.jinja.html +0 -0
  276. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_go_to_doc.jinja +0 -0
  277. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_index.jinja.html +0 -0
  278. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_list.jinja.html +0 -0
  279. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_maximize.jinja +0 -0
  280. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_minimize.jinja +0 -0
  281. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_minusminus.jinja.html +0 -0
  282. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_move_down.jinja.html +0 -0
  283. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_move_up.jinja.html +0 -0
  284. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_plusplus.jinja.html +0 -0
  285. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_project.jinja.html +0 -0
  286. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_requirement.jinja.html +0 -0
  287. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_reset.jinja +0 -0
  288. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_search.jinja +0 -0
  289. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_source.jinja.html +0 -0
  290. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_stat.jinja +0 -0
  291. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_sync.jinja +0 -0
  292. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_toc.jinja.html +0 -0
  293. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_res/svg_ico16_tree.jinja +0 -0
  294. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_shared/nav.jinja.html +0 -0
  295. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_shared/requirement_tree_left.jinja.html +0 -0
  296. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_shared/requirement_tree_right.jinja.html +0 -0
  297. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/_shared/tags.jinja.html +0 -0
  298. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/_shared/stream_refresh_document.jinja.html +0 -0
  299. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/_shared/stream_updated_toc.jinja.html +0 -0
  300. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/add_requirement_comment/stream_add_requirement_comment.jinja.html +0 -0
  301. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/add_requirement_relation/stream_add_requirement_relation.jinja.html +0 -0
  302. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/create_requirement/stream_cancel_new_requirement.jinja.html +0 -0
  303. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/create_requirement/stream_created_requirement.jinja.html +0 -0
  304. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/create_requirement/stream_new_requirement.jinja.html +0 -0
  305. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/create_section/stream_cancel_new_section.jinja.html +0 -0
  306. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/create_section/stream_created_section.jinja.html +0 -0
  307. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/create_section/stream_new_section.jinja.html +0 -0
  308. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_confirm_delete_requirement.jinja +0 -0
  309. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_delete_requirement.jinja.html +0 -0
  310. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/delete_section/stream_confirm_delete_section.jinja +0 -0
  311. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/delete_section/stream_delete_section.jinja.html +0 -0
  312. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_cancel_edit_document_config.jinja.html +0 -0
  313. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_edit_document_config.jinja.html +0 -0
  314. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_save_document_config.jinja.html +0 -0
  315. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/edit_requirement/stream_edit_requirement.jinja.html +0 -0
  316. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/edit_section/stream_edit_section.jinja.html +0 -0
  317. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/document/edit_section/stream_updated_section.jinja.html +0 -0
  318. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_requirement.jinja +0 -0
  319. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_section.jinja +0 -0
  320. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_form_import_reqif_document.jinja.html +0 -0
  321. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_refresh_with_imported_reqif_document.jinja.html +0 -0
  322. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/project_index/stream_create_document.jinja.html +0 -0
  323. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/actions/project_index/stream_new_document.jinja.html +0 -0
  324. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/base.jinja.html +0 -0
  325. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/anchor/index.jinja +0 -0
  326. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/badge/index.jinja +0 -0
  327. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/button/cancel.jinja +0 -0
  328. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/button/confirm.jinja +0 -0
  329. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/button/delete.jinja +0 -0
  330. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/button/diff.jinja +0 -0
  331. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/button/search.jinja +0 -0
  332. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/button/submit.jinja +0 -0
  333. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/confirm/_usage_example.jinja +0 -0
  334. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/confirm/index.jinja +0 -0
  335. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/field/index.jinja +0 -0
  336. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/form/field/contenteditable/index.jinja +0 -0
  337. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/form/field/file/index.jinja +0 -0
  338. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/form/field/text/index.jinja +0 -0
  339. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/form/field_action_button/index.jinja +0 -0
  340. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/form/index.jinja +0 -0
  341. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/form/row/index.jinja +0 -0
  342. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/example.jinja.html +0 -0
  343. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/frame.jinja +0 -0
  344. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/stream.jinja +0 -0
  345. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/form/row/row_with_comment.jinja +0 -0
  346. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/form/row/row_with_relation.jinja +0 -0
  347. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/form/row/row_with_text_field.jinja +0 -0
  348. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/form/search.jinja +0 -0
  349. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/grammar_form/index.jinja +0 -0
  350. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/grammar_form/row_with_grammar_element/index.jinja +0 -0
  351. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/grammar_form/row_with_new_grammar_element/index.jinja +0 -0
  352. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/grammar_form_element/index.jinja +0 -0
  353. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/grammar_form_element/row_with_custom_field/index.jinja +0 -0
  354. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/grammar_form_element/row_with_relation/index.jinja +0 -0
  355. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/grammar_form_element/row_with_reserved_field/index.jinja +0 -0
  356. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/header/_usage_example.jinja +0 -0
  357. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/header/header_pagetype.jinja +0 -0
  358. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/header/index.jinja +0 -0
  359. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/included_document_form/index.jinja +0 -0
  360. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/modal/_usage_example.jinja +0 -0
  361. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/modal/form.jinja +0 -0
  362. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/modal/index.jinja +0 -0
  363. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node/card.jinja +0 -0
  364. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node/index.jinja +0 -0
  365. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node/node_controls/card.jinja +0 -0
  366. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node/node_controls/index.jinja +0 -0
  367. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node/root.jinja +0 -0
  368. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/README.txt +0 -0
  369. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/comments/index.jinja +0 -0
  370. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/document_title/index.jinja +0 -0
  371. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/files/index.jinja +0 -0
  372. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/links/index.jinja +0 -0
  373. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/meta/index.jinja +0 -0
  374. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/multiline/index.jinja +0 -0
  375. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/rationale/index.jinja +0 -0
  376. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/section_h/index.jinja +0 -0
  377. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/section_h/pdf.jinja +0 -0
  378. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/section_title/index.jinja +0 -0
  379. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/statement/index.jinja +0 -0
  380. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/text/index.jinja +0 -0
  381. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/title/index.jinja +0 -0
  382. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/title/pdf.jinja +0 -0
  383. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/uid/index.jinja +0 -0
  384. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/node_field/uid_standalone/index.jinja +0 -0
  385. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/requirement/card.jinja +0 -0
  386. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/requirement/card_extends_card.jinja +0 -0
  387. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/requirement/index.jinja +0 -0
  388. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/requirement/index_extends_node.jinja +0 -0
  389. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/requirement/pdf.jinja +0 -0
  390. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/requirement/tiny.jinja +0 -0
  391. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/requirement/tiny_extends_card.jinja +0 -0
  392. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/resizable_bar/index.jinja +0 -0
  393. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/section/card.jinja +0 -0
  394. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/section/card_extends_card.jinja +0 -0
  395. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/section/index.jinja +0 -0
  396. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/section/index_extends_node.jinja +0 -0
  397. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/section/pdf.jinja +0 -0
  398. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/section/tiny.jinja +0 -0
  399. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/section/tiny_extends_card.jinja +0 -0
  400. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/table_key_value/index.jinja +0 -0
  401. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/text_node/card.jinja +0 -0
  402. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/text_node/card_extends_card.jinja +0 -0
  403. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/text_node/index.jinja +0 -0
  404. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/text_node/index_extends_node.jinja +0 -0
  405. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/text_node/pdf.jinja +0 -0
  406. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/text_node/tiny.jinja +0 -0
  407. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/components/text_node/tiny_extends_card.jinja +0 -0
  408. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/rst/anchor.jinja +0 -0
  409. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/_shared/frame_header_document_title.jinja +0 -0
  410. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_requirement.jinja +0 -0
  411. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_section.jinja +0 -0
  412. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/_shared/frame_toc.jinja +0 -0
  413. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/_shared/project_tree.jinja +0 -0
  414. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/_shared/project_tree_child_documents.jinja +0 -0
  415. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_project_tree.jinja +0 -0
  416. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_toc.jinja +0 -0
  417. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/_shared/toc.jinja +0 -0
  418. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/_shared/viewtype_menu.jinja +0 -0
  419. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/document/actions.jinja +0 -0
  420. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/document/frame_document_config.jinja.html +0 -0
  421. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/document/frame_document_config_edit.jinja.html +0 -0
  422. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/document/frame_document_content.jinja.html +0 -0
  423. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/document/frame_requirement_form.jinja +0 -0
  424. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/document/frame_section_form.jinja +0 -0
  425. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/document/index.jinja +0 -0
  426. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/document/main.jinja +0 -0
  427. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/pdf/main.jinja +0 -0
  428. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/pdf/template/footer.jinja +0 -0
  429. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/pdf/template/frontpage.jinja +0 -0
  430. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/pdf/template/header.jinja +0 -0
  431. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/pdf/toc.jinja +0 -0
  432. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/table/index.jinja +0 -0
  433. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/table/main.jinja +0 -0
  434. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/traceability/index.jinja +0 -0
  435. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/traceability/main.jinja +0 -0
  436. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/traceability_deep/index.jinja +0 -0
  437. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/document/traceability_deep/main.jinja +0 -0
  438. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/git/changelog_content.jinja +0 -0
  439. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/git/diff_content.jinja +0 -0
  440. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/git/diff_controls.jinja +0 -0
  441. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/git/fields/document_fields.jinja +0 -0
  442. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/git/fields/requirement_fields.jinja +0 -0
  443. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/git/fields/section_fields.jinja +0 -0
  444. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/git/form.jinja +0 -0
  445. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/git/frame_changelog_result.jinja +0 -0
  446. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/git/frame_diff_result.jinja +0 -0
  447. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/git/index.jinja +0 -0
  448. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/git/legend.jinja +0 -0
  449. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/git/main.jinja +0 -0
  450. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/git/nav_tabs.jinja +0 -0
  451. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/git/node/requirement.jinja +0 -0
  452. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/git/node/section.jinja +0 -0
  453. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/git/skeleton.jinja +0 -0
  454. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/git/sync/button.jinja +0 -0
  455. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/nestor/index.jinja +0 -0
  456. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/project_index/actions.jinja +0 -0
  457. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/project_index/frame_form_import_reqif.jinja.html +0 -0
  458. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/project_index/frame_form_new_document.jinja.html +0 -0
  459. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/project_index/frame_project_tree.jinja.html +0 -0
  460. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/project_index/index.jinja +0 -0
  461. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/project_index/main.jinja +0 -0
  462. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/project_index/project_tree.jinja +0 -0
  463. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/project_index/project_tree_file.jinja +0 -0
  464. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/project_index/project_tree_folder.jinja +0 -0
  465. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/project_statistics/index.jinja +0 -0
  466. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/project_statistics/main.jinja +0 -0
  467. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/search/index.jinja +0 -0
  468. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/search/legend.jinja +0 -0
  469. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/search/main.jinja +0 -0
  470. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/source_file_coverage/file.jinja +0 -0
  471. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/source_file_coverage/folder.jinja +0 -0
  472. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/source_file_coverage/index.jinja +0 -0
  473. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/source_file_coverage/main.jinja +0 -0
  474. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/source_file_view/aside.jinja +0 -0
  475. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/source_file_view/header__source_file_name.jinja +0 -0
  476. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/source_file_view/index.jinja +0 -0
  477. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/source_file_view/main.jinja +0 -0
  478. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/source_file_view/requirement.jinja +0 -0
  479. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/traceability_matrix/file.jinja +0 -0
  480. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/traceability_matrix/index.jinja +0 -0
  481. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/traceability_matrix/main.jinja +0 -0
  482. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/traceability_matrix/project_tree_flat_anchor_list.jinja +0 -0
  483. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/traceability_matrix/requirement.jinja.html +0 -0
  484. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/screens/traceability_matrix/resizable_bar_with_project_tree.jinja +0 -0
  485. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/website/document/index.jinja +0 -0
  486. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/templates/websocket.jinja.html +0 -0
  487. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/tools/__init__.py +0 -0
  488. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html/tools/html_embedded.py +0 -0
  489. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html2pdf/html2pdf.py +0 -0
  490. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/html2pdf/pdf_print_driver.py +0 -0
  491. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/json/json_generator.py +0 -0
  492. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/rst/__init__.py +0 -0
  493. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/rst/directives/raw_html_role.py +0 -0
  494. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/rst/directives/wildcard_enhanced_image.py +0 -0
  495. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/rst/document_rst_generator.py +0 -0
  496. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/rst/rst_templates.py +0 -0
  497. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/rst/rst_to_html_fragment_writer.py +0 -0
  498. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/rst/templates/requirement.jinja.rst +0 -0
  499. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/rst/writer.py +0 -0
  500. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/spdx/spdx_generator.py +0 -0
  501. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/spdx/spdx_sdoc_container.py +0 -0
  502. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/export/spdx/spdx_to_sdoc_converter.py +0 -0
  503. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/git/change.py +0 -0
  504. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/git/change_generator.py +0 -0
  505. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/git/git_client.py +0 -0
  506. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/git/project_diff_analyzer.py +0 -0
  507. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/__init__.py +0 -0
  508. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/auto_described.py +0 -0
  509. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/cast.py +0 -0
  510. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/diff.py +0 -0
  511. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/exception.py +0 -0
  512. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/file_modification_time.py +0 -0
  513. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/file_system.py +0 -0
  514. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/form_data.py +0 -0
  515. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/math.py +0 -0
  516. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/md5.py +0 -0
  517. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/mid.py +0 -0
  518. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/ordered_set.py +0 -0
  519. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/parallelizer.py +0 -0
  520. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/path_filter.py +0 -0
  521. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/paths.py +0 -0
  522. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/pickle.py +0 -0
  523. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/rst.py +0 -0
  524. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/sha256.py +0 -0
  525. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/shard.py +0 -0
  526. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/sorting.py +0 -0
  527. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/textx.py +0 -0
  528. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/helpers/timing.py +0 -0
  529. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/server/__init__.py +0 -0
  530. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/server/config.py +0 -0
  531. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/server/error_object.py +0 -0
  532. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/server/helpers/turbo.py +0 -0
  533. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/server/main.py +0 -0
  534. {strictdoc-0.3.0 → strictdoc-0.4.0}/strictdoc/server/routers/other_router.py +0 -0
@@ -43,8 +43,6 @@ latest_logs/
43
43
  # Files downloaded during tests are stored here.
44
44
  downloaded_files/
45
45
 
46
- ### StrictDoc's documentation ###
47
- strictdoc-project.github.io/
48
46
 
49
47
  ### StrictDoc's developer test ###
50
48
  __*.sdoc
@@ -1,12 +1,14 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: strictdoc
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Summary: StrictDoc is open-source software for technical documentation and requirements management.
5
5
  Project-URL: Changelog, https://github.com/strictdoc-project/strictdoc/blob/main/CHANGELOG.md
6
6
  Project-URL: Homepage, https://strictdoc.readthedocs.io/en/stable/
7
7
  Project-URL: Source, https://github.com/strictdoc-project/strictdoc
8
8
  Author-email: Stanislav Pankevich <s.pankevich@gmail.com>, Maryna Balioura <mettta@gmail.com>
9
- License: Apache-2.0
9
+ License-Expression: Apache-2.0
10
+ License-File: LICENSE
11
+ License-File: NOTICE
10
12
  Classifier: License :: OSI Approved :: BSD License
11
13
  Classifier: Operating System :: OS Independent
12
14
  Classifier: Programming Language :: Python :: 3
@@ -32,7 +34,7 @@ Requires-Dist: spdx-tools
32
34
  Requires-Dist: textx==3.*,>=3.0.0
33
35
  Requires-Dist: toml
34
36
  Requires-Dist: tree-sitter
35
- Requires-Dist: tree-sitter-c
37
+ Requires-Dist: tree-sitter-cpp
36
38
  Requires-Dist: tree-sitter-python
37
39
  Requires-Dist: uvicorn[standard]>=0.14.0
38
40
  Requires-Dist: webdriver-manager
@@ -58,7 +58,7 @@ dependencies = [
58
58
 
59
59
  # Tree Sitter is used for language/AST-aware parsing of Python, C and other files.
60
60
  "tree-sitter",
61
- "tree-sitter-c",
61
+ "tree_sitter_cpp",
62
62
  "tree-sitter-python",
63
63
 
64
64
  # Requirements-to-source traceability. Colored syntax for source files.
@@ -1,6 +1,6 @@
1
1
  from strictdoc.core.environment import SDocRuntimeEnvironment
2
2
 
3
- __version__ = "0.3.0"
3
+ __version__ = "0.4.0"
4
4
 
5
5
 
6
6
  environment = SDocRuntimeEnvironment(__file__)
@@ -70,6 +70,7 @@ SDocDocument[noskipws]:
70
70
  DocumentConfig[noskipws]:
71
71
  ('UID: ' uid = /{REGEX_UID}/ '\n')?
72
72
  ('VERSION: ' version = SingleLineString '\n')?
73
+ ('DATE: ' date = SingleLineString '\n')?
73
74
  ('CLASSIFICATION: ' classification = SingleLineString '\n')?
74
75
  ('REQ_PREFIX: ' requirement_prefix = SingleLineString '\n')?
75
76
  ('ROOT: ' (root = BooleanChoice) '\n')?
@@ -11,6 +11,7 @@ class DocumentConfig:
11
11
  return DocumentConfig(
12
12
  parent=document,
13
13
  version=None,
14
+ date=None,
14
15
  uid=None,
15
16
  classification=None,
16
17
  requirement_prefix=None,
@@ -29,6 +30,7 @@ class DocumentConfig:
29
30
  *,
30
31
  parent,
31
32
  version: Optional[str],
33
+ date: Optional[str],
32
34
  uid: Optional[str],
33
35
  classification: Optional[str],
34
36
  requirement_prefix: Optional[str],
@@ -43,6 +45,7 @@ class DocumentConfig:
43
45
  ) -> None:
44
46
  self.parent = parent
45
47
  self.version: Optional[str] = version
48
+ self.date: Optional[str] = date
46
49
 
47
50
  meaningful_uid: Optional[str] = None
48
51
  if uid is not None and len(uid) > 0:
@@ -1,4 +1,4 @@
1
- from typing import Union
1
+ from typing import Optional, Union
2
2
 
3
3
  from strictdoc.backend.sdoc.pickle_cache import PickleCache
4
4
  from strictdoc.backend.sdoc_source_code.models.source_file_info import (
@@ -20,7 +20,7 @@ class SourceFileTraceabilityCachingReader:
20
20
  @staticmethod
21
21
  def read_from_file(
22
22
  path_to_file: str, project_config: ProjectConfig
23
- ) -> SourceFileTraceabilityInfo:
23
+ ) -> Optional[SourceFileTraceabilityInfo]:
24
24
  unpickled_content = PickleCache.read_from_cache(
25
25
  path_to_file, project_config, "source_file"
26
26
  )
@@ -34,12 +34,21 @@ class SourceFileTraceabilityCachingReader:
34
34
  reader = SourceFileTraceabilityCachingReader._get_reader(
35
35
  path_to_file, project_config
36
36
  )
37
- traceability_info: SourceFileTraceabilityInfo = reader.read_from_file(
38
- path_to_file
39
- )
40
- PickleCache.save_to_cache(
41
- traceability_info, path_to_file, project_config, "source_file"
42
- )
37
+ try:
38
+ if (
39
+ traceability_info := reader.read_from_file(path_to_file)
40
+ ) is not None:
41
+ PickleCache.save_to_cache(
42
+ traceability_info,
43
+ path_to_file,
44
+ project_config,
45
+ "source_file",
46
+ )
47
+ except UnicodeDecodeError:
48
+ print( # noqa: T201
49
+ f"warning: Skip tracing binary file {path_to_file}."
50
+ )
51
+ return None
43
52
 
44
53
  return traceability_info
45
54
 
@@ -54,6 +63,13 @@ class SourceFileTraceabilityCachingReader:
54
63
  if project_config.is_activated_source_file_language_parsers():
55
64
  if path_to_file.endswith(".py"):
56
65
  return SourceFileTraceabilityReader_Python()
57
- if path_to_file.endswith(".c") or path_to_file.endswith(".h"):
66
+ if (
67
+ path_to_file.endswith(".c")
68
+ or path_to_file.endswith(".cc")
69
+ or path_to_file.endswith(".h")
70
+ or path_to_file.endswith(".hh")
71
+ or path_to_file.endswith(".hpp")
72
+ or path_to_file.endswith(".cpp")
73
+ ):
58
74
  return SourceFileTraceabilityReader_C()
59
75
  return SourceFileTraceabilityReader()
@@ -11,8 +11,10 @@ from strictdoc.backend.sdoc_source_code.models.range_marker import (
11
11
  from strictdoc.backend.sdoc_source_code.models.requirement_marker import Req
12
12
 
13
13
  REGEX_REQ = r"[A-Za-z][A-Za-z0-9\\-]+"
14
- # @relation(REQ-1, scope=function)
15
- REGEX_MARKER = rf"@relation\(({REGEX_REQ}(?:, {REGEX_REQ})*)\, scope=(file|class|function|line|range_start|range_end)\)"
14
+ # @relation(REQ-1, scope=function) or @relation{REQ-1, scope=function}
15
+ REGEX_MARKER = re.compile(
16
+ rf"@relation[({{]({REGEX_REQ}(?:, {REGEX_REQ})*), scope=(file|class|function|line|range_start|range_end)[)}}]"
17
+ )
16
18
 
17
19
 
18
20
  class MarkerParser:
@@ -29,7 +31,7 @@ class MarkerParser:
29
31
  for input_line_idx_, input_line_ in enumerate(
30
32
  input_string.splitlines()
31
33
  ):
32
- match = re.search(REGEX_MARKER, input_line_)
34
+ match = REGEX_MARKER.search(input_line_)
33
35
  if match is None:
34
36
  continue
35
37
 
@@ -13,6 +13,7 @@ class Function:
13
13
  self,
14
14
  parent: Any,
15
15
  name: str,
16
+ display_name: str,
16
17
  line_begin: int,
17
18
  line_end: int,
18
19
  child_functions: List[Any],
@@ -22,6 +23,8 @@ class Function:
22
23
  assert parent is not None
23
24
  self.parent = parent
24
25
  self.name = name
26
+ self.display_name = display_name
27
+
25
28
  # Child functions are supported in programming languages that can nest
26
29
  # functions, for example, Python.
27
30
  self.child_functions: List[Function] = child_functions
@@ -1,5 +1,5 @@
1
1
  # mypy: disable-error-code="no-untyped-def,type-arg,var-annotated"
2
- from typing import Dict, List, Union
2
+ from typing import Dict, List, Optional, Union
3
3
 
4
4
  from strictdoc.backend.sdoc_source_code.models.function import Function
5
5
  from strictdoc.backend.sdoc_source_code.models.function_range_marker import (
@@ -10,6 +10,7 @@ from strictdoc.backend.sdoc_source_code.models.range_marker import (
10
10
  LineMarker,
11
11
  RangeMarker,
12
12
  )
13
+ from strictdoc.core.source_tree import SourceFile
13
14
  from strictdoc.helpers.auto_described import auto_described
14
15
 
15
16
 
@@ -24,6 +25,7 @@ class SourceFileTraceabilityInfo:
24
25
  """
25
26
 
26
27
  self.g_parts: List = g_parts
28
+ self.source_file: Optional[SourceFile] = None
27
29
  self.functions: List[Function] = []
28
30
 
29
31
  """
@@ -305,12 +305,14 @@ class SourceFileTraceabilityReader:
305
305
  drop_textx_meta(source_file_traceability_info)
306
306
  return source_file_traceability_info
307
307
 
308
- def read_from_file(self, file_path) -> SourceFileTraceabilityInfo:
308
+ def read_from_file(self, file_path: str) -> SourceFileTraceabilityInfo:
309
309
  try:
310
310
  with open(file_path, encoding="utf-8") as file:
311
311
  sdoc_content = file.read()
312
312
  sdoc = self.read(sdoc_content, file_path=file_path)
313
313
  return sdoc
314
+ except UnicodeDecodeError:
315
+ raise
314
316
  except NotImplementedError:
315
317
  traceback.print_exc()
316
318
  sys.exit(1)
@@ -1,9 +1,9 @@
1
1
  # mypy: disable-error-code="no-redef,no-untyped-call,no-untyped-def,type-arg,var-annotated"
2
2
  import sys
3
3
  import traceback
4
- from typing import List, Optional, Union
4
+ from typing import List, Optional, Sequence, Union
5
5
 
6
- import tree_sitter_c
6
+ import tree_sitter_cpp
7
7
  from tree_sitter import Language, Node, Parser
8
8
 
9
9
  from strictdoc.backend.sdoc.error_handling import StrictDocSemanticError
@@ -12,6 +12,7 @@ from strictdoc.backend.sdoc_source_code.marker_parser import MarkerParser
12
12
  from strictdoc.backend.sdoc_source_code.models.function import Function
13
13
  from strictdoc.backend.sdoc_source_code.models.function_range_marker import (
14
14
  FunctionRangeMarker,
15
+ RangeMarkerType,
15
16
  )
16
17
  from strictdoc.backend.sdoc_source_code.models.range_marker import (
17
18
  LineMarker,
@@ -52,7 +53,7 @@ class SourceFileTraceabilityReader_C:
52
53
  parse_context = ParseContext(file_path, length)
53
54
 
54
55
  # Works since Python 3.9 but we also lint this with mypy from Python 3.8.
55
- language_arg = tree_sitter_c.language()
56
+ language_arg = tree_sitter_cpp.language()
56
57
  py_language = Language( # type: ignore[call-arg, unused-ignore]
57
58
  language_arg
58
59
  )
@@ -82,6 +83,12 @@ class SourceFileTraceabilityReader_C:
82
83
  node_.start_point[1] + 1,
83
84
  )
84
85
  for marker_ in markers:
86
+ if not isinstance(marker_, FunctionRangeMarker):
87
+ continue
88
+ # At the top level, only accept the scope=file markers.
89
+ # Everything else will be handled by functions and classes.
90
+ if marker_.scope != RangeMarkerType.FILE:
91
+ continue
85
92
  if isinstance(marker_, FunctionRangeMarker) and (
86
93
  function_range_marker_ := marker_
87
94
  ):
@@ -91,15 +98,34 @@ class SourceFileTraceabilityReader_C:
91
98
  traceability_info.markers.append(
92
99
  function_range_marker_
93
100
  )
94
- elif node_.type == "declaration":
101
+
102
+ elif node_.type in ("declaration", "field_declaration"):
95
103
  function_declarator_node = ts_find_child_node_by_type(
96
104
  node_, "function_declarator"
97
105
  )
106
+
107
+ # C++ reference declaration wrap the function declaration one time.
98
108
  if function_declarator_node is None:
99
- continue
109
+ # Example: TrkVertex& operator-=(const TrkVertex& c);
110
+ reference_declarator_node = ts_find_child_node_by_type(
111
+ node_, "reference_declarator"
112
+ )
113
+ if reference_declarator_node is None:
114
+ continue
100
115
 
101
- function_identifier_node = ts_find_child_node_by_type(
102
- function_declarator_node, "identifier"
116
+ function_declarator_node = ts_find_child_node_by_type(
117
+ reference_declarator_node, "function_declarator"
118
+ )
119
+ if function_declarator_node is None:
120
+ continue
121
+
122
+ # For normal C functions the identifier is "identifier".
123
+ # For C++, there are:
124
+ # Class function declarations: bool CanSend(const CanFrame &frame); # noqa: ERA001
125
+ # Operators: TrkVertex& operator-=(const TrkVertex& c); # noqa: ERA001
126
+ # Destructors: ~TrkVertex(); # noqa: ERA001
127
+ function_identifier_node = self._get_function_name_node(
128
+ function_declarator_node,
103
129
  )
104
130
  if function_identifier_node is None:
105
131
  continue
@@ -107,10 +133,25 @@ class SourceFileTraceabilityReader_C:
107
133
  if function_identifier_node.text is None:
108
134
  continue
109
135
 
110
- function_name: str = function_identifier_node.text.decode(
136
+ assert function_identifier_node.text is not None, node_.text
137
+ function_display_name = function_identifier_node.text.decode(
111
138
  "utf8"
112
139
  )
113
- assert function_name is not None, function_name
140
+
141
+ assert function_declarator_node.text is not None, node_.text
142
+ function_name: str = function_declarator_node.text.decode(
143
+ "utf8"
144
+ )
145
+ assert function_name is not None, node_.text
146
+
147
+ parent_names = self.get_node_ns(node_)
148
+ if len(parent_names) > 0:
149
+ function_name = (
150
+ f"{'::'.join(parent_names)}::{function_name}"
151
+ )
152
+ function_display_name = (
153
+ f"{'::'.join(parent_names)}::{function_display_name}"
154
+ )
114
155
 
115
156
  function_attributes = {FunctionAttribute.DECLARATION}
116
157
  for specifier_node_ in ts_find_child_nodes_by_type(
@@ -121,13 +162,12 @@ class SourceFileTraceabilityReader_C:
121
162
 
122
163
  function_markers: List[FunctionRangeMarker] = []
123
164
  function_comment_node: Optional[Node] = None
124
- function_comment_text = None
125
165
  if (
126
166
  node_.prev_sibling is not None
127
167
  and node_.prev_sibling.type == "comment"
128
168
  ):
129
169
  function_comment_node = node_.prev_sibling
130
- assert function_comment_node.text is not None
170
+ assert function_comment_node.text is not None, node_.text
131
171
  function_comment_text = function_comment_node.text.decode(
132
172
  "utf8"
133
173
  )
@@ -140,7 +180,7 @@ class SourceFileTraceabilityReader_C:
140
180
  function_last_line,
141
181
  function_comment_node.start_point[0] + 1,
142
182
  function_comment_node.start_point[1] + 1,
143
- entity_name=function_name,
183
+ entity_name=function_display_name,
144
184
  )
145
185
  for marker_ in markers:
146
186
  if isinstance(marker_, FunctionRangeMarker) and (
@@ -158,6 +198,7 @@ class SourceFileTraceabilityReader_C:
158
198
  new_function = Function(
159
199
  parent=traceability_info,
160
200
  name=function_name,
201
+ display_name=function_display_name,
161
202
  line_begin=function_comment_node.start_point[0] + 1
162
203
  if function_comment_node is not None
163
204
  else node_.range.start_point[0] + 1,
@@ -171,13 +212,47 @@ class SourceFileTraceabilityReader_C:
171
212
  elif node_.type == "function_definition":
172
213
  function_name: str = ""
173
214
 
174
- for child_ in node_.children:
175
- if child_.type == "function_declarator":
176
- assert child_.children[0].type == "identifier"
177
- assert child_.children[0].text
215
+ function_declarator_node = ts_find_child_node_by_type(
216
+ node_, "function_declarator"
217
+ )
218
+ # C++ reference declaration wrap the function declaration one time.
219
+ if function_declarator_node is None:
220
+ # Example: Foo& Foo::operator+(const Foo& c) { return *this; }
221
+ reference_declarator_node = ts_find_child_node_by_type(
222
+ node_, "reference_declarator"
223
+ )
224
+ if reference_declarator_node is None:
225
+ continue
226
+
227
+ function_declarator_node = ts_find_child_node_by_type(
228
+ reference_declarator_node, "function_declarator"
229
+ )
230
+ if function_declarator_node is None:
231
+ continue
232
+
233
+ assert function_declarator_node is not None, node_.text
234
+
235
+ assert function_declarator_node.text is not None, node_.text
236
+ function_name = function_declarator_node.text.decode("utf8")
178
237
 
179
- function_name = child_.children[0].text.decode("utf8")
180
- assert function_name is not None, "Function name"
238
+ identifier_node = self._get_function_name_node(
239
+ function_declarator_node
240
+ )
241
+ if identifier_node is None:
242
+ raise NotImplementedError(function_declarator_node)
243
+
244
+ assert identifier_node.text is not None, node_.text
245
+ function_display_name = identifier_node.text.decode("utf8")
246
+
247
+ assert function_name is not None, node_.text
248
+ parent_names = self.get_node_ns(node_)
249
+ if len(parent_names) > 0:
250
+ function_name = (
251
+ f"{'::'.join(parent_names)}::{function_name}"
252
+ )
253
+ function_display_name = (
254
+ f"{'::'.join(parent_names)}::{function_display_name}"
255
+ )
181
256
 
182
257
  function_markers: List[FunctionRangeMarker] = []
183
258
  function_comment_node: Optional[Node] = None
@@ -187,7 +262,7 @@ class SourceFileTraceabilityReader_C:
187
262
  and node_.prev_sibling.type == "comment"
188
263
  ):
189
264
  function_comment_node = node_.prev_sibling
190
- assert function_comment_node.text is not None
265
+ assert function_comment_node.text is not None, node_.text
191
266
  function_comment_text = function_comment_node.text.decode(
192
267
  "utf8"
193
268
  )
@@ -200,7 +275,7 @@ class SourceFileTraceabilityReader_C:
200
275
  function_last_line,
201
276
  function_comment_node.start_point[0] + 1,
202
277
  function_comment_node.start_point[1] + 1,
203
- entity_name=function_name,
278
+ entity_name=function_display_name,
204
279
  )
205
280
  for marker_ in markers:
206
281
  if isinstance(marker_, FunctionRangeMarker) and (
@@ -218,6 +293,7 @@ class SourceFileTraceabilityReader_C:
218
293
  new_function = Function(
219
294
  parent=traceability_info,
220
295
  name=function_name,
296
+ display_name=function_display_name,
221
297
  line_begin=function_comment_node.start_point[0] + 1
222
298
  if function_comment_node is not None
223
299
  else node_.range.start_point[0] + 1,
@@ -273,12 +349,14 @@ class SourceFileTraceabilityReader_C:
273
349
 
274
350
  return traceability_info
275
351
 
276
- def read_from_file(self, file_path):
352
+ def read_from_file(self, file_path: str) -> SourceFileTraceabilityInfo:
277
353
  try:
278
354
  with open(file_path, "rb") as file:
279
355
  sdoc_content = file.read()
280
356
  sdoc = self.read(sdoc_content, file_path=file_path)
281
357
  return sdoc
358
+ except UnicodeDecodeError:
359
+ raise
282
360
  except NotImplementedError:
283
361
  traceback.print_exc()
284
362
  sys.exit(1)
@@ -287,9 +365,43 @@ class SourceFileTraceabilityReader_C:
287
365
  sys.exit(1)
288
366
  except Exception as exc: # pylint: disable=broad-except
289
367
  print( # noqa: T201
290
- f"error: SourceFileTraceabilityReader_Python: could not parse file: "
368
+ f"error: SourceFileTraceabilityReader_C: could not parse file: "
291
369
  f"{file_path}.\n{exc.__class__.__name__}: {exc}"
292
370
  )
293
- # TODO: when --debug is provided
294
- # traceback.print_exc() # noqa: ERA001
371
+ traceback.print_exc()
295
372
  sys.exit(1)
373
+
374
+ @staticmethod
375
+ def _get_function_name_node(function_declarator_node: Node):
376
+ assert function_declarator_node.type == "function_declarator"
377
+ function_identifier_node = ts_find_child_node_by_type(
378
+ function_declarator_node,
379
+ node_type=(
380
+ "identifier",
381
+ "field_identifier",
382
+ "operator_name",
383
+ "destructor_name",
384
+ "qualified_identifier",
385
+ ),
386
+ )
387
+ return function_identifier_node
388
+
389
+ @staticmethod
390
+ def get_node_ns(node: Node) -> Sequence[str]:
391
+ """Walk up the tree and find parent classes"""
392
+ parent_scopes = []
393
+ cursor: Optional[Node] = node
394
+ while cursor is not None:
395
+ if cursor.type == "class_specifier" and len(cursor.children) > 1:
396
+ second_node_or_none = cursor.children[1]
397
+ if (
398
+ second_node_or_none.type == "type_identifier"
399
+ and second_node_or_none.text is not None
400
+ ):
401
+ parent_class_name = second_node_or_none.text.decode("utf8")
402
+ parent_scopes.append(parent_class_name)
403
+
404
+ cursor = cursor.parent
405
+
406
+ parent_scopes.reverse()
407
+ return parent_scopes
@@ -64,6 +64,7 @@ class SourceFileTraceabilityReader_Python:
64
64
  function = Function(
65
65
  parent=traceability_info,
66
66
  name="module",
67
+ display_name="module",
67
68
  line_begin=node_.start_point[0] + 1,
68
69
  line_end=node_.end_point[0] + 1,
69
70
  child_functions=[],
@@ -187,6 +188,7 @@ class SourceFileTraceabilityReader_Python:
187
188
  new_function = Function(
188
189
  parent=traceability_info,
189
190
  name=function_name,
191
+ display_name=function_name,
190
192
  line_begin=node_.range.start_point[0] + 1,
191
193
  line_end=node_.range.end_point[0] + 1,
192
194
  child_functions=[],
@@ -242,12 +244,14 @@ class SourceFileTraceabilityReader_Python:
242
244
 
243
245
  return traceability_info
244
246
 
245
- def read_from_file(self, file_path):
247
+ def read_from_file(self, file_path: str) -> SourceFileTraceabilityInfo:
246
248
  try:
247
249
  with open(file_path, "rb") as file:
248
250
  sdoc_content = file.read()
249
251
  sdoc = self.read(sdoc_content, file_path=file_path)
250
252
  return sdoc
253
+ except UnicodeDecodeError:
254
+ raise
251
255
  except NotImplementedError:
252
256
  traceback.print_exc()
253
257
  sys.exit(1)
@@ -1,4 +1,4 @@
1
- from typing import Generator, Optional
1
+ from typing import Generator, Optional, Tuple, Union
2
2
 
3
3
  from tree_sitter import Node, Tree
4
4
 
@@ -18,9 +18,14 @@ def traverse_tree(tree: Tree) -> Generator[Node, None, None]:
18
18
  break
19
19
 
20
20
 
21
- def ts_find_child_node_by_type(node: Node, node_type: str) -> Optional[Node]:
21
+ def ts_find_child_node_by_type(
22
+ node: Node, node_type: Union[str, Tuple[str, ...], str]
23
+ ) -> Optional[Node]:
24
+ node_types: Tuple[str, ...] = (
25
+ node_type if isinstance(node_type, tuple) else (node_type,)
26
+ )
22
27
  for child_ in node.children:
23
- if child_.type == node_type:
28
+ if child_.type in node_types:
24
29
  return child_
25
30
  return None
26
31
 
@@ -16,6 +16,7 @@ EXPORT_FORMATS = [
16
16
  "reqif-sdoc",
17
17
  "reqifz-sdoc",
18
18
  "sdoc",
19
+ "doxygen",
19
20
  "spdx",
20
21
  ]
21
22
  EXCEL_PARSERS = ["basic"]
@@ -12,6 +12,7 @@ from strictdoc.backend.sdoc.writer import SDWriter
12
12
  from strictdoc.core.project_config import ProjectConfig
13
13
  from strictdoc.core.traceability_index import TraceabilityIndex
14
14
  from strictdoc.core.traceability_index_builder import TraceabilityIndexBuilder
15
+ from strictdoc.export.doxygen.doxygen_generator import DoxygenGenerator
15
16
  from strictdoc.export.html.document_type import DocumentType
16
17
  from strictdoc.export.html.html_generator import HTMLGenerator
17
18
  from strictdoc.export.html.html_templates import HTMLTemplates
@@ -153,6 +154,18 @@ class ExportAction:
153
154
  if "sdoc" in self.project_config.export_formats:
154
155
  self.export_sdoc()
155
156
 
157
+ if "doxygen" in self.project_config.export_formats:
158
+ output_doxygen_root = os.path.join(
159
+ self.project_config.output_dir, "doxygen"
160
+ )
161
+ doxygen_generator = DoxygenGenerator(
162
+ project_config=self.project_config
163
+ )
164
+ doxygen_generator.export(
165
+ traceability_index=self.traceability_index,
166
+ path_to_output_dir=output_doxygen_root,
167
+ )
168
+
156
169
  if "spdx" in self.project_config.export_formats:
157
170
  output_dot_root = os.path.join(
158
171
  self.project_config.output_dir, "spdx"
@@ -3,6 +3,7 @@ from typing import Dict, List, Optional
3
3
 
4
4
  from strictdoc.backend.sdoc.models.document import SDocDocument
5
5
  from strictdoc.backend.sdoc.models.document_grammar import DocumentGrammar
6
+ from strictdoc.core.source_tree import SourceTree
6
7
 
7
8
 
8
9
  class DocumentTree:
@@ -28,7 +29,7 @@ class DocumentTree:
28
29
  map_grammars_by_filenames
29
30
  )
30
31
 
31
- self.source_tree = None # attached later.
32
+ self.source_tree: Optional[SourceTree] = None # attached later.
32
33
 
33
34
  def __repr__(self):
34
35
  return (
@@ -53,5 +54,5 @@ class DocumentTree:
53
54
  ) -> Optional[DocumentGrammar]:
54
55
  return self.map_grammars_by_filenames.get(filename)
55
56
 
56
- def attach_source_tree(self, source_tree):
57
+ def attach_source_tree(self, source_tree: SourceTree):
57
58
  self.source_tree = source_tree