strictdoc 0.9.1__tar.gz → 0.9.2__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 (578) hide show
  1. {strictdoc-0.9.1 → strictdoc-0.9.2}/PKG-INFO +1 -1
  2. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/__init__.py +1 -1
  3. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/excel/export/excel_generator.py +2 -6
  4. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/excel/import_/excel_sheet_proxy.py +18 -23
  5. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/excel/import_/excel_to_sdoc_converter.py +1 -1
  6. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/reqif/p01_sdoc/reqif_to_sdoc_converter.py +3 -3
  7. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/reqif/p01_sdoc/sdoc_to_reqif_converter.py +1 -1
  8. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/models/document.py +6 -6
  9. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/models/document_from_file.py +4 -3
  10. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/models/document_grammar.py +2 -2
  11. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/models/document_view.py +1 -1
  12. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/models/model.py +32 -35
  13. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/models/node.py +5 -3
  14. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/models/section.py +2 -2
  15. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/models/type_system.py +5 -4
  16. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/reader.py +1 -2
  17. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/validations/sdoc_validator.py +3 -2
  18. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/caching_reader.py +2 -1
  19. strictdoc-0.9.2/strictdoc/backend/sdoc_source_code/comment_parser/marker_lexer.py +87 -0
  20. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/marker_parser.py +4 -1
  21. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/models/function.py +1 -3
  22. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/models/source_file_info.py +14 -12
  23. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/processors/general_language_marker_processors.py +1 -1
  24. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/reader.py +1 -1
  25. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/reader_c.py +14 -4
  26. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/reader_python.py +2 -1
  27. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/cli/main.py +1 -1
  28. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/document_finder.py +1 -1
  29. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/document_iterator.py +1 -17
  30. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/document_meta.py +37 -34
  31. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/document_tree_iterator.py +1 -1
  32. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/file_traceability_index.py +6 -9
  33. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/graph/abstract_bucket.py +11 -11
  34. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/graph/many_to_many_set.py +2 -2
  35. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/graph_database.py +1 -1
  36. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/project_config.py +22 -8
  37. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/query_engine/query_object.py +2 -2
  38. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/query_engine/query_reader.py +4 -2
  39. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/source_tree.py +0 -3
  40. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/traceability_index.py +25 -17
  41. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/traceability_index_builder.py +0 -5
  42. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/transforms/constants.py +1 -2
  43. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/transforms/delete_requirement.py +0 -1
  44. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/transforms/delete_section.py +3 -4
  45. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/transforms/section.py +4 -4
  46. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/transforms/update_document_config.py +3 -3
  47. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/transforms/update_requirement.py +3 -3
  48. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/tree_cycle_detector.py +1 -2
  49. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/doxygen/doxygen_generator.py +0 -1
  50. strictdoc-0.9.2/strictdoc/export/html/document_type.py +48 -0
  51. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/form_objects/grammar_element_form_object.py +3 -2
  52. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/form_objects/grammar_form_object.py +1 -1
  53. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/form_objects/included_document_form_object.py +3 -2
  54. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/form_objects/requirement_form_object.py +4 -0
  55. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/document.py +1 -1
  56. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/document_deep_trace.py +1 -1
  57. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/document_pdf.py +1 -1
  58. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/document_table.py +1 -1
  59. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/document_trace.py +1 -1
  60. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/project_statistics.py +1 -3
  61. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/view_objects/document_screen_view_object.py +10 -10
  62. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/view_objects/helpers.py +4 -0
  63. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/view_objects/nestor_view_object.py +3 -2
  64. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/view_objects/project_tree_stats.py +3 -3
  65. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/view_objects/search_screen_view_object.py +3 -3
  66. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/view_objects/source_file_view_object.py +4 -4
  67. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/html_generator.py +3 -4
  68. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/html_templates.py +3 -67
  69. strictdoc-0.9.2/strictdoc/export/html/jinja/assert_extension.py +52 -0
  70. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/renderers/link_renderer.py +7 -3
  71. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/renderers/markup_renderer.py +2 -2
  72. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_shared/requirement_tree_left.jinja.html +1 -1
  73. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_shared/requirement_tree_right.jinja.html +1 -1
  74. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node/root.jinja +1 -1
  75. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/_shared/viewtype_menu.jinja +5 -5
  76. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/git/diff_content.jinja +1 -1
  77. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/traceability_matrix/main.jinja +1 -1
  78. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/json/json_generator.py +1 -1
  79. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/rst/writer.py +1 -1
  80. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/spdx/spdx_generator.py +10 -1
  81. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/spdx/spdx_to_sdoc_converter.py +7 -0
  82. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/git/project_diff_analyzer.py +4 -10
  83. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/coverage.py +1 -1
  84. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/file_system.py +6 -5
  85. strictdoc-0.9.2/strictdoc/helpers/git_client.py +73 -0
  86. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/google_test.py +2 -0
  87. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/parallelizer.py +65 -21
  88. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/paths.py +7 -2
  89. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/sorting.py +4 -1
  90. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/server/reload_config.py +4 -0
  91. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/server/routers/main_router.py +175 -116
  92. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/server/routers/other_router.py +2 -2
  93. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/server/server.py +2 -2
  94. strictdoc-0.9.1/strictdoc/backend/sdoc_source_code/comment_parser/marker_lexer.py +0 -59
  95. strictdoc-0.9.1/strictdoc/core/graph/validations.py +0 -44
  96. strictdoc-0.9.1/strictdoc/export/html/document_type.py +0 -71
  97. strictdoc-0.9.1/strictdoc/helpers/git_client.py +0 -102
  98. {strictdoc-0.9.1 → strictdoc-0.9.2}/.gitignore +0 -0
  99. {strictdoc-0.9.1 → strictdoc-0.9.2}/LICENSE +0 -0
  100. {strictdoc-0.9.1 → strictdoc-0.9.2}/NOTICE +0 -0
  101. {strictdoc-0.9.1 → strictdoc-0.9.2}/README.md +0 -0
  102. {strictdoc-0.9.1 → strictdoc-0.9.2}/pyproject.toml +0 -0
  103. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/__init__.py +0 -0
  104. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/excel/__init__.py +0 -0
  105. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/excel/excel_import.py +0 -0
  106. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/excel/export/__init__.py +0 -0
  107. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/excel/import_/__init__.py +0 -0
  108. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/reqif/__init__.py +0 -0
  109. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/reqif/p01_sdoc/__init__.py +0 -0
  110. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/reqif/reqif_export.py +0 -0
  111. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/reqif/reqif_import.py +0 -0
  112. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/reqif/sdoc_reqif_fields.py +0 -0
  113. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/__init__.py +0 -0
  114. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/constants.py +0 -0
  115. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/document_reference.py +0 -0
  116. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/error_handling.py +0 -0
  117. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/errors/__init__.py +0 -0
  118. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/errors/document_tree_error.py +0 -0
  119. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/free_text_reader.py +0 -0
  120. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/grammar/__init__.py +0 -0
  121. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/grammar/grammar.py +0 -0
  122. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/grammar/grammar_builder.py +0 -0
  123. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/grammar/grammar_grammar.py +0 -0
  124. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/grammar/type_system.py +0 -0
  125. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/grammar_reader.py +0 -0
  126. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/models/__init__.py +0 -0
  127. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/models/anchor.py +0 -0
  128. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/models/constants.py +0 -0
  129. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/models/document_config.py +0 -0
  130. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/models/free_text.py +0 -0
  131. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/models/inline_link.py +0 -0
  132. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/models/object_factory.py +0 -0
  133. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/models/reference.py +0 -0
  134. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/pickle_cache.py +0 -0
  135. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/processor.py +0 -0
  136. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/validations/__init__.py +0 -0
  137. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc/writer.py +0 -0
  138. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/__init__.py +0 -0
  139. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/constants.py +0 -0
  140. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/coverage_reports/gcov.py +0 -0
  141. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/grammar.py +0 -0
  142. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/helpers/comment_preprocessor.py +0 -0
  143. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/models/__init__.py +0 -0
  144. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/models/function_range_marker.py +0 -0
  145. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/models/range_marker.py +0 -0
  146. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/models/requirement_marker.py +0 -0
  147. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/models/source_node.py +0 -0
  148. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/parse_context.py +0 -0
  149. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/reader_robot.py +0 -0
  150. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/test_reports/junit_xml_reader.py +0 -0
  151. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/test_reports/robot_xml_reader.py +0 -0
  152. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/backend/sdoc_source_code/tree_sitter_helpers.py +0 -0
  153. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/cli/__init__.py +0 -0
  154. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/cli/argument_int_range.py +0 -0
  155. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/cli/cli_arg_parser.py +0 -0
  156. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/cli/command_parser_builder.py +0 -0
  157. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/commands/__init__.py +0 -0
  158. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/commands/about_command.py +0 -0
  159. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/commands/diff_command.py +0 -0
  160. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/commands/dump_grammar_command.py +0 -0
  161. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/commands/manage_autouid_command.py +0 -0
  162. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/commands/version_command.py +0 -0
  163. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/__init__.py +0 -0
  164. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/actions/__init__.py +0 -0
  165. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/actions/export_action.py +0 -0
  166. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/actions/import_action.py +0 -0
  167. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/analyzers/document_stats.py +0 -0
  168. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/analyzers/document_uid_analyzer.py +0 -0
  169. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/asset_manager.py +0 -0
  170. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/constants.py +0 -0
  171. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/document_tree.py +0 -0
  172. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/environment.py +0 -0
  173. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/file_dependency_manager.py +0 -0
  174. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/file_tree.py +0 -0
  175. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/finders/__init__.py +0 -0
  176. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/finders/source_files_finder.py +0 -0
  177. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/graph/one_to_one_dictionary.py +0 -0
  178. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/query_engine/grammar.py +0 -0
  179. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/transforms/update_grammar.py +0 -0
  180. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/transforms/update_grammar_element.py +0 -0
  181. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/transforms/update_included_document.py +0 -0
  182. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/core/transforms/validation_error.py +0 -0
  183. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/__init__.py +0 -0
  184. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/autogen.css +0 -0
  185. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/base.css +0 -0
  186. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/collapsible_list.js +0 -0
  187. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/collapsible_toc.js +0 -0
  188. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/collapsible_tree.js +0 -0
  189. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/content.css +0 -0
  190. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/controllers/anchor_controller.js +0 -0
  191. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/controllers/autocompletable_field_controller.js +0 -0
  192. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/controllers/copy_stable_link_button_controller.js +0 -0
  193. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/controllers/copy_to_clipboard_controller.js +0 -0
  194. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/controllers/deletable_field_controller.js +0 -0
  195. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/controllers/draggable_list_controller.js +0 -0
  196. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/controllers/dropdown_menu_controller.js +0 -0
  197. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/controllers/editable_field_controller.js +0 -0
  198. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/controllers/modal_controller.js +0 -0
  199. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/controllers/movable_field_controller.js +0 -0
  200. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/controllers/scroll_into_view_controller.js +0 -0
  201. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/controllers/tabs_controller.js +0 -0
  202. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/diff.css +0 -0
  203. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/diff.js +0 -0
  204. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/element.css +0 -0
  205. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/favicon.ico +0 -0
  206. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/fonts/NotoSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  207. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/fonts/NotoSans-VariableFont_wdth,wght.ttf +0 -0
  208. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/fonts/NotoSansMono-VariableFont_wdth,wght.ttf +0 -0
  209. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/form.css +0 -0
  210. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/html2pdf4doc.css +0 -0
  211. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/layout.css +0 -0
  212. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/node.css +0 -0
  213. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/node_content.css +0 -0
  214. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/pan_with_space.js +0 -0
  215. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/project_coverage.css +0 -0
  216. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/project_coverage.js +0 -0
  217. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/project_tree.css +0 -0
  218. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/project_tree.js +0 -0
  219. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/requirement-tree.css +0 -0
  220. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/requirement__temporary.css +0 -0
  221. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/requirements-coverage.js +0 -0
  222. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/resizable_bar.js +0 -0
  223. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/source-code-coverage.js +0 -0
  224. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/source.css +0 -0
  225. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/stable_uri_forwarder.js +0 -0
  226. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/stimulus_umd.min.js +0 -0
  227. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/table_vew.css +0 -0
  228. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/toc_highlighting.js +0 -0
  229. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/traceability_matrix.css +0 -0
  230. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/tree(not_in_use).css +0 -0
  231. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/turbo.min.js +0 -0
  232. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/viewtype_menu.js +0 -0
  233. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static/zoomable.js +0 -0
  234. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/LICENSE-MATHJAX +0 -0
  235. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/tex.js +0 -0
  236. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff +0 -0
  237. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff +0 -0
  238. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff +0 -0
  239. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff +0 -0
  240. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff +0 -0
  241. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff +0 -0
  242. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff +0 -0
  243. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +0 -0
  244. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff +0 -0
  245. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +0 -0
  246. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff +0 -0
  247. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff +0 -0
  248. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff +0 -0
  249. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff +0 -0
  250. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff +0 -0
  251. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff +0 -0
  252. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +0 -0
  253. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +0 -0
  254. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff +0 -0
  255. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff +0 -0
  256. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff +0 -0
  257. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff +0 -0
  258. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff +0 -0
  259. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mathjax/tex-mml-chtml.js +0 -0
  260. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/mermaid/mermaid.min.js +0 -0
  261. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/nestor/bundle.umd.js +0 -0
  262. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/_static_extra/rapidoc/rapidoc-min.js +0 -0
  263. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/form_objects/document_config_form_object.py +0 -0
  264. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/form_objects/form_object.py +0 -0
  265. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/form_objects/rows/row_with_grammar_element_form_object.py +0 -0
  266. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/form_objects/section_form_object.py +0 -0
  267. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/__init__.py +0 -0
  268. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/document_tree.py +0 -0
  269. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/project_map.py +0 -0
  270. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/source_file_coverage.py +0 -0
  271. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/source_file_view_generator.py +0 -0
  272. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/traceability_matrix.py +0 -0
  273. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/view_objects/diff_screen_results_view_object.py +0 -0
  274. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/view_objects/diff_screen_view_object.py +0 -0
  275. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/view_objects/project_statistics_view_object.py +0 -0
  276. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/view_objects/project_tree_view_object.py +0 -0
  277. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/generators/view_objects/traceability_matrix_view_object.py +0 -0
  278. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/renderers/__init__.py +0 -0
  279. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/renderers/html_fragment_writer.py +0 -0
  280. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/renderers/text_to_html_writer.py +0 -0
  281. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg__separator.jinja.html +0 -0
  282. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_add.jinja.html +0 -0
  283. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_add_above.jinja +0 -0
  284. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_add_below.jinja +0 -0
  285. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_add_child.jinja +0 -0
  286. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_anchor.jinja +0 -0
  287. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_back.jinja.html +0 -0
  288. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_book.jinja.html +0 -0
  289. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_close.jinja +0 -0
  290. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_code.jinja.html +0 -0
  291. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_copy.jinja +0 -0
  292. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_delete.jinja.html +0 -0
  293. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_diff.jinja +0 -0
  294. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_document.jinja.html +0 -0
  295. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_done.jinja +0 -0
  296. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_edit.jinja.html +0 -0
  297. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_expand.jinja.html +0 -0
  298. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_file.jinja +0 -0
  299. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_folder.jinja +0 -0
  300. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_folder_collapse.jinja +0 -0
  301. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_folder_sm.jinja +0 -0
  302. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_fragment.jinja +0 -0
  303. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_fragment_draft.jinja +0 -0
  304. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_gear.jinja.html +0 -0
  305. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_go_to_doc.jinja +0 -0
  306. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_index.jinja.html +0 -0
  307. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_link.jinja +0 -0
  308. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_list.jinja.html +0 -0
  309. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_maximize.jinja +0 -0
  310. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_minimize.jinja +0 -0
  311. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_minusminus.jinja.html +0 -0
  312. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_move_down.jinja.html +0 -0
  313. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_move_up.jinja.html +0 -0
  314. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_plusplus.jinja.html +0 -0
  315. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_project.jinja.html +0 -0
  316. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_requirement.jinja.html +0 -0
  317. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_reset.jinja +0 -0
  318. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_search.jinja +0 -0
  319. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_section_collapse.jinja +0 -0
  320. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_source.jinja.html +0 -0
  321. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_source_pointer_in.jinja +0 -0
  322. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_source_pointer_out.jinja +0 -0
  323. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_stat.jinja +0 -0
  324. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_sync.jinja +0 -0
  325. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_toc.jinja.html +0 -0
  326. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_res/svg_ico16_tree.jinja +0 -0
  327. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_shared/nav.jinja.html +0 -0
  328. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/_shared/tags.jinja.html +0 -0
  329. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/_shared/stream_refresh_document.jinja.html +0 -0
  330. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/_shared/stream_updated_toc.jinja.html +0 -0
  331. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/add_document_metadata/stream_add_document_metadata.jinja.html +0 -0
  332. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/add_requirement_comment/stream_add_requirement_comment.jinja.html +0 -0
  333. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/add_requirement_relation/stream_add_requirement_relation.jinja.html +0 -0
  334. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/create_requirement/stream_cancel_new_requirement.jinja.html +0 -0
  335. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/create_requirement/stream_created_requirement.jinja.html +0 -0
  336. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/create_requirement/stream_new_requirement.jinja.html +0 -0
  337. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/create_section/stream_cancel_new_section.jinja.html +0 -0
  338. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/create_section/stream_created_section.jinja.html +0 -0
  339. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/create_section/stream_new_section.jinja.html +0 -0
  340. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_confirm_delete_requirement.jinja +0 -0
  341. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_delete_requirement.jinja.html +0 -0
  342. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/delete_section/stream_confirm_delete_section.jinja +0 -0
  343. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/delete_section/stream_delete_section.jinja.html +0 -0
  344. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_cancel_edit_document_config.jinja.html +0 -0
  345. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_edit_document_config.jinja.html +0 -0
  346. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_save_document_config.jinja.html +0 -0
  347. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/edit_requirement/stream_edit_requirement.jinja.html +0 -0
  348. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/edit_section/stream_edit_section.jinja.html +0 -0
  349. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/document/edit_section/stream_updated_section.jinja.html +0 -0
  350. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_node.jinja +0 -0
  351. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_section.jinja +0 -0
  352. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_form_import_reqif_document.jinja.html +0 -0
  353. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_refresh_with_imported_reqif_document.jinja.html +0 -0
  354. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/project_index/stream_create_document.jinja.html +0 -0
  355. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/actions/project_index/stream_new_document.jinja.html +0 -0
  356. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/autocomplete/field/stream_autocomplete_field.jinja.html +0 -0
  357. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/autocomplete/uid/stream_autocomplete_uid.jinja.html +0 -0
  358. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/base.jinja.html +0 -0
  359. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/anchor/index.jinja +0 -0
  360. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/badge/index.jinja +0 -0
  361. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/button/cancel.jinja +0 -0
  362. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/button/confirm.jinja +0 -0
  363. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/button/delete.jinja +0 -0
  364. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/button/diff.jinja +0 -0
  365. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/button/search.jinja +0 -0
  366. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/button/submit.jinja +0 -0
  367. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/confirm/_usage_example.jinja +0 -0
  368. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/confirm/index.jinja +0 -0
  369. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/field/index.jinja +0 -0
  370. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/form/field/autocompletable/index.jinja +0 -0
  371. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/form/field/contenteditable/index.jinja +0 -0
  372. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/form/field/file/index.jinja +0 -0
  373. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/form/field/text/index.jinja +0 -0
  374. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/form/field_action_button/index.jinja +0 -0
  375. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/form/index.jinja +0 -0
  376. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/form/row/index.jinja +0 -0
  377. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/example.jinja.html +0 -0
  378. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/frame.jinja +0 -0
  379. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/stream.jinja +0 -0
  380. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/form/row/row_with_comment.jinja +0 -0
  381. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/form/row/row_with_metadata.jinja +0 -0
  382. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/form/row/row_with_relation.jinja +0 -0
  383. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/form/row/row_with_text_field.jinja +0 -0
  384. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/form/search.jinja +0 -0
  385. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/grammar_form/index.jinja +0 -0
  386. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/grammar_form/row_with_grammar_element/index.jinja +0 -0
  387. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/grammar_form/row_with_new_grammar_element/index.jinja +0 -0
  388. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/grammar_form_element/index.jinja +0 -0
  389. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/grammar_form_element/row_with_custom_field/index.jinja +0 -0
  390. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/grammar_form_element/row_with_relation/index.jinja +0 -0
  391. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/grammar_form_element/row_with_reserved_field/index.jinja +0 -0
  392. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/header/_usage_example.jinja +0 -0
  393. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/header/header_pagetype.jinja +0 -0
  394. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/header/index.jinja +0 -0
  395. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/included_document_form/index.jinja +0 -0
  396. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/issue/banner.jinja +0 -0
  397. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/issue/index.jinja +0 -0
  398. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/modal/_usage_example.jinja +0 -0
  399. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/modal/form.jinja +0 -0
  400. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/modal/index.jinja +0 -0
  401. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node/card.jinja +0 -0
  402. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node/copy_stable_link_button.jinja +0 -0
  403. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node/index.jinja +0 -0
  404. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node/node_controls/card.jinja +0 -0
  405. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node/node_controls/index.jinja +0 -0
  406. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node/readonly.jinja +0 -0
  407. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_content/card.jinja +0 -0
  408. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_content/card_extends_card.jinja +0 -0
  409. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_content/index.jinja +0 -0
  410. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_content/index_extends_node.jinja +0 -0
  411. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_content/index_extends_readonly.jinja +0 -0
  412. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_content/tiny.jinja +0 -0
  413. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_content/tiny_extends_card.jinja +0 -0
  414. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_field/README.txt +0 -0
  415. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_field/comments/index.jinja +0 -0
  416. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_field/document_meta/index.jinja +0 -0
  417. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_field/document_title/index.jinja +0 -0
  418. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_field/files/index.jinja +0 -0
  419. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_field/links/index.jinja +0 -0
  420. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_field/meta/index.jinja +0 -0
  421. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_field/multiline/index.jinja +0 -0
  422. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_field/rationale/index.jinja +0 -0
  423. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_field/section_h/index.jinja +0 -0
  424. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_field/section_h/pdf.jinja +0 -0
  425. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_field/section_title/index.jinja +0 -0
  426. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_field/statement/index.jinja +0 -0
  427. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_field/text/index.jinja +0 -0
  428. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_field/title/index.jinja +0 -0
  429. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_field/uid/index.jinja +0 -0
  430. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/node_field/uid_standalone/index.jinja +0 -0
  431. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/resizable_bar/index.jinja +0 -0
  432. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/section/card.jinja +0 -0
  433. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/section/card_extends_card.jinja +0 -0
  434. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/section/index.jinja +0 -0
  435. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/section/index_extends_node.jinja +0 -0
  436. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/section/pdf.jinja +0 -0
  437. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/section/tiny.jinja +0 -0
  438. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/section/tiny_extends_card.jinja +0 -0
  439. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/table_key_value/index.jinja +0 -0
  440. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/text_node/card.jinja +0 -0
  441. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/text_node/card_extends_card.jinja +0 -0
  442. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/text_node/index.jinja +0 -0
  443. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/text_node/index_extends_node.jinja +0 -0
  444. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/text_node/pdf.jinja +0 -0
  445. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/text_node/tiny.jinja +0 -0
  446. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/components/text_node/tiny_extends_card.jinja +0 -0
  447. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/rst/anchor.jinja +0 -0
  448. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/_shared/frame_header_document_title.jinja +0 -0
  449. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_node.jinja +0 -0
  450. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_section.jinja +0 -0
  451. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/_shared/frame_toc.jinja +0 -0
  452. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/_shared/project_tree.jinja +0 -0
  453. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/_shared/project_tree_child_documents.jinja +0 -0
  454. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_project_tree.jinja +0 -0
  455. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_toc.jinja +0 -0
  456. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/_shared/toc.jinja +0 -0
  457. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/document/actions.jinja +0 -0
  458. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/document/frame_document_config.jinja.html +0 -0
  459. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/document/frame_document_config_edit.jinja.html +0 -0
  460. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/document/frame_document_content.jinja.html +0 -0
  461. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/document/frame_document_issues.jinja +0 -0
  462. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/document/frame_requirement_form.jinja +0 -0
  463. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/document/frame_section_form.jinja +0 -0
  464. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/document/index.jinja +0 -0
  465. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/document/main.jinja +0 -0
  466. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/pdf/index.jinja +0 -0
  467. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/pdf/main.jinja +0 -0
  468. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/pdf/template/footer.jinja +0 -0
  469. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/pdf/template/frontpage.jinja +0 -0
  470. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/pdf/template/header.jinja +0 -0
  471. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/pdf/toc.jinja +0 -0
  472. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/table/index.jinja +0 -0
  473. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/table/main.jinja +0 -0
  474. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/traceability/index.jinja +0 -0
  475. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/traceability/main.jinja +0 -0
  476. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/traceability_deep/index.jinja +0 -0
  477. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/document/traceability_deep/main.jinja +0 -0
  478. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/git/changelog_content.jinja +0 -0
  479. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/git/diff_controls.jinja +0 -0
  480. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/git/fields/document_fields.jinja +0 -0
  481. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/git/fields/requirement_fields.jinja +0 -0
  482. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/git/fields/section_fields.jinja +0 -0
  483. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/git/form.jinja +0 -0
  484. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/git/frame_changelog_result.jinja +0 -0
  485. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/git/frame_diff_result.jinja +0 -0
  486. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/git/index.jinja +0 -0
  487. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/git/legend.jinja +0 -0
  488. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/git/main.jinja +0 -0
  489. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/git/nav_tabs.jinja +0 -0
  490. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/git/node/requirement.jinja +0 -0
  491. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/git/node/section.jinja +0 -0
  492. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/git/skeleton.jinja +0 -0
  493. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/git/sync/button.jinja +0 -0
  494. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/nestor/index.jinja +0 -0
  495. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/project_index/actions.jinja +0 -0
  496. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/project_index/frame_form_import_reqif.jinja.html +0 -0
  497. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/project_index/frame_form_new_document.jinja.html +0 -0
  498. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/project_index/frame_project_tree.jinja.html +0 -0
  499. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/project_index/index.jinja +0 -0
  500. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/project_index/main.jinja +0 -0
  501. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/project_index/project_map.jinja.js +0 -0
  502. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/project_index/project_map_file.jinja +0 -0
  503. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/project_index/project_map_folder.jinja +0 -0
  504. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/project_index/project_map_node.jinja +0 -0
  505. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/project_index/project_map_section.jinja +0 -0
  506. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/project_index/project_tree.jinja +0 -0
  507. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/project_index/project_tree_file.jinja +0 -0
  508. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/project_index/project_tree_folder.jinja +0 -0
  509. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/project_statistics/index.jinja +0 -0
  510. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/project_statistics/main.jinja +0 -0
  511. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/search/index.jinja +0 -0
  512. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/search/legend.jinja +0 -0
  513. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/search/main.jinja +0 -0
  514. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/source_file_coverage/file.jinja +0 -0
  515. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/source_file_coverage/folder.jinja +0 -0
  516. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/source_file_coverage/index.jinja +0 -0
  517. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/source_file_coverage/main.jinja +0 -0
  518. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/source_file_coverage/thead.jinja +0 -0
  519. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/source_file_coverage/value_bar.jinja +0 -0
  520. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/source_file_view/aside.jinja +0 -0
  521. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/source_file_view/file_stats.jinja +0 -0
  522. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/source_file_view/header__actions.jinja +0 -0
  523. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/source_file_view/header__source_file_name.jinja +0 -0
  524. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/source_file_view/index.jinja +0 -0
  525. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/source_file_view/main.jinja +0 -0
  526. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/source_file_view/node_title_for_banner_header.jinja +0 -0
  527. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/source_file_view/range_button.jinja +0 -0
  528. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/source_file_view/requirement.jinja +0 -0
  529. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/traceability_matrix/file.jinja +0 -0
  530. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/traceability_matrix/index.jinja +0 -0
  531. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/traceability_matrix/project_tree_flat_anchor_list.jinja +0 -0
  532. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/traceability_matrix/requirement.jinja.html +0 -0
  533. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/screens/traceability_matrix/resizable_bar_with_project_tree.jinja +0 -0
  534. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/website/document/index.jinja +0 -0
  535. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/templates/websocket.jinja.html +0 -0
  536. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/tools/__init__.py +0 -0
  537. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html/tools/html_embedded.py +0 -0
  538. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html2pdf/html2pdf_generator.py +0 -0
  539. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/html2pdf/pdf_print_driver.py +0 -0
  540. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/rst/__init__.py +0 -0
  541. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/rst/directives/raw_html_role.py +0 -0
  542. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/rst/directives/wildcard_enhanced_image.py +0 -0
  543. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/rst/document_rst_generator.py +0 -0
  544. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/rst/rst_templates.py +0 -0
  545. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/rst/rst_to_html_fragment_writer.py +0 -0
  546. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/rst/templates/requirement.jinja.rst +0 -0
  547. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/export/spdx/spdx_sdoc_container.py +0 -0
  548. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/git/change.py +0 -0
  549. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/git/change_generator.py +0 -0
  550. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/git/git_client.py +0 -0
  551. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/__init__.py +0 -0
  552. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/auto_described.py +0 -0
  553. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/cast.py +0 -0
  554. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/deprecation_engine.py +0 -0
  555. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/diff.py +0 -0
  556. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/exception.py +0 -0
  557. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/file_modification_time.py +0 -0
  558. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/file_stats.py +0 -0
  559. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/form_data.py +0 -0
  560. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/math.py +0 -0
  561. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/md5.py +0 -0
  562. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/mid.py +0 -0
  563. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/net.py +0 -0
  564. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/ordered_set.py +0 -0
  565. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/path_filter.py +0 -0
  566. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/pickle.py +0 -0
  567. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/rst.py +0 -0
  568. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/sha256.py +0 -0
  569. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/shard.py +0 -0
  570. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/string.py +0 -0
  571. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/textx.py +0 -0
  572. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/helpers/timing.py +0 -0
  573. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/server/__init__.py +0 -0
  574. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/server/app.py +0 -0
  575. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/server/config.py +0 -0
  576. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/server/error_object.py +0 -0
  577. {strictdoc-0.9.1 → strictdoc-0.9.2}/strictdoc/server/helpers/turbo.py +0 -0
  578. {strictdoc-0.9.1 → strictdoc-0.9.2}/tests/integration/scripting_examples/questionnaires/02_user_provided_example/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: strictdoc
3
- Version: 0.9.1
3
+ Version: 0.9.2
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/
@@ -1,6 +1,6 @@
1
1
  from strictdoc.core.environment import SDocRuntimeEnvironment
2
2
 
3
- __version__ = "0.9.1"
3
+ __version__ = "0.9.2"
4
4
 
5
5
 
6
6
  environment = SDocRuntimeEnvironment(__file__)
@@ -88,9 +88,7 @@ class ExcelGenerator:
88
88
  all_nodes = list(
89
89
  map(
90
90
  lambda node_with_context_: node_with_context_[0],
91
- document_iterator.all_content(
92
- print_fragments=False, print_fragments_from_files=False
93
- ),
91
+ document_iterator.all_content(print_fragments=False),
94
92
  )
95
93
  )
96
94
  req_uid_rows = ExcelGenerator._lookup_refs(all_nodes)
@@ -98,9 +96,7 @@ class ExcelGenerator:
98
96
  if len(req_uid_rows):
99
97
  for node, _ in traceability_index.get_document_iterator(
100
98
  document
101
- ).all_content(
102
- print_fragments=False, print_fragments_from_files=False
103
- ):
99
+ ).all_content(print_fragments=False):
104
100
  if not node.is_requirement() or not node.reserved_uid:
105
101
  # Only export the requirements with UID.
106
102
  continue
@@ -5,6 +5,7 @@ import openpyxl
5
5
  import xlrd
6
6
 
7
7
  from strictdoc.helpers.auto_described import auto_described
8
+ from strictdoc.helpers.cast import assert_cast
8
9
 
9
10
 
10
11
  class ExcelLibType(Enum):
@@ -15,7 +16,7 @@ class ExcelLibType(Enum):
15
16
  @auto_described
16
17
  class ExcelSheetProxy:
17
18
  """
18
- This proxy class allows to open either xls(xlrd) or xlsx(openpyxl) with the same interface.
19
+ An adapter class to open xls(xlrd) or xlsx(openpyxl) with the same interface.
19
20
  """
20
21
 
21
22
  def __init__(self, file: str):
@@ -23,7 +24,7 @@ class ExcelSheetProxy:
23
24
  if file.endswith(".xlsx"):
24
25
  self.workbook = openpyxl.load_workbook(file)
25
26
  self.sheet = self.workbook.active
26
- if self.sheet is None:
27
+ if self.sheet is None: # pragma: no cover
27
28
  raise RuntimeError(
28
29
  "Couldn't open the first sheet of the workbook"
29
30
  )
@@ -32,8 +33,8 @@ class ExcelSheetProxy:
32
33
  self.workbook = xlrd.open_workbook(file, on_demand=True)
33
34
  self.sheet = self.workbook.sheet_by_index(0)
34
35
  self.lib = ExcelLibType.XLRD
35
- else:
36
- raise ValueError("Unsupported file format")
36
+ else: # pragma: no cover
37
+ raise AssertionError("Unsupported file format")
37
38
 
38
39
  @property
39
40
  def name(self) -> str:
@@ -44,52 +45,46 @@ class ExcelSheetProxy:
44
45
  return str(self.sheet.title)
45
46
  elif self.lib == ExcelLibType.XLRD:
46
47
  return str(self.sheet.name)
47
- return ""
48
+ raise AssertionError
48
49
 
49
50
  @property
50
51
  def ncols(self) -> int:
51
52
  """
52
53
  The number of columns.
53
54
  """
54
- ncols: int = 0
55
55
  if self.lib == ExcelLibType.OPENPYXL:
56
- ncols = self.sheet.max_column
56
+ return assert_cast(self.sheet.max_column, int)
57
57
  elif self.lib == ExcelLibType.XLRD:
58
- ncols = self.sheet.ncols
59
- return ncols
58
+ return assert_cast(self.sheet.ncols, int)
59
+ raise AssertionError
60
60
 
61
61
  @property
62
62
  def nrows(self) -> int:
63
63
  """
64
64
  The number of rows.
65
65
  """
66
- nrows: int = 0
67
66
  if self.lib == ExcelLibType.OPENPYXL:
68
- nrows = self.sheet.max_row
67
+ return assert_cast(self.sheet.max_row, int)
69
68
  elif self.lib == ExcelLibType.XLRD:
70
- nrows = self.sheet.nrows
71
- return nrows
69
+ return assert_cast(self.sheet.nrows, int)
70
+ raise AssertionError
72
71
 
73
72
  def get_cell_value(self, row: int, col: int) -> str:
74
73
  """
75
74
  Returns the value at row/col as string.
76
75
  """
77
- cell_value: str = ""
78
76
  if self.lib == ExcelLibType.OPENPYXL:
79
- cell_value = (
80
- self.sheet.cell(row=row + 1, column=col + 1).value or ""
81
- )
77
+ return self.sheet.cell(row=row + 1, column=col + 1).value or ""
82
78
  elif self.lib == ExcelLibType.XLRD:
83
- cell_value = self.sheet.cell_value(row, col)
84
- return cell_value
79
+ return assert_cast(self.sheet.cell_value(row, col), str)
80
+ raise AssertionError
85
81
 
86
82
  def row_values(self, row: int) -> List[str]:
87
83
  """
88
84
  Returns a full row as list.
89
85
  """
90
- row_values: List[str] = []
91
86
  if self.lib == ExcelLibType.OPENPYXL:
92
- row_values = [(cell.value or "") for cell in self.sheet[row + 1]]
87
+ return [(cell.value or "") for cell in self.sheet[row + 1]]
93
88
  elif self.lib == ExcelLibType.XLRD:
94
- row_values = self.sheet.row_values(row)
95
- return row_values
89
+ return assert_cast(self.sheet.row_values(row), list)
90
+ raise AssertionError
@@ -62,7 +62,7 @@ class ExcelToSDocConverter:
62
62
  header_row_idx = i
63
63
  break
64
64
  else:
65
- raise NotImplementedError # pragma: no cover
65
+ raise NotImplementedError
66
66
 
67
67
  header_row = sheet.row_values(header_row_idx)
68
68
  safe_header_row = [safe_name(x) for x in header_row]
@@ -66,7 +66,7 @@ class P01_ReqIFToSDocConverter:
66
66
  def convert_reqif_bundle(
67
67
  reqif_bundle: ReqIFBundle,
68
68
  enable_mid: bool,
69
- import_markup: str,
69
+ import_markup: Optional[str],
70
70
  ) -> List[SDocDocument]:
71
71
  context = P01_ReqIFToSDocBuildContext(
72
72
  enable_mid=enable_mid, import_markup=import_markup
@@ -361,7 +361,7 @@ class P01_ReqIFToSDocConverter:
361
361
  attribute.definition_ref
362
362
  ].long_name
363
363
  if long_name_or_none is None:
364
- raise NotImplementedError # pragma: no cover
364
+ raise NotImplementedError
365
365
  field_name: str = long_name_or_none
366
366
  if attribute.attribute_type == SpecObjectAttributeType.ENUMERATION:
367
367
  sdoc_field_name = P01_ReqIFToSDocConverter.convert_requirement_field_from_reqif(
@@ -393,7 +393,7 @@ class P01_ReqIFToSDocConverter:
393
393
 
394
394
  break
395
395
  else:
396
- raise NotImplementedError # pragma: no cover
396
+ raise NotImplementedError
397
397
 
398
398
  enum_values = ", ".join(enum_values_resolved)
399
399
  fields.append(
@@ -245,7 +245,7 @@ class P01_SDocToReqIFObjectConverter:
245
245
 
246
246
  # FIXME: ReqIF must export complete documents including fragments.
247
247
  for node_, _ in document_iterator.all_content(
248
- print_fragments=False, print_fragments_from_files=False
248
+ print_fragments=False
249
249
  ):
250
250
  if isinstance(node_, SDocSection):
251
251
  raise AssertionError(
@@ -12,7 +12,6 @@ from strictdoc.backend.sdoc.models.document_grammar import (
12
12
  )
13
13
  from strictdoc.backend.sdoc.models.document_view import DocumentView
14
14
  from strictdoc.backend.sdoc.models.model import (
15
- SDocDocumentContentIF,
16
15
  SDocDocumentFromFileIF,
17
16
  SDocDocumentIF,
18
17
  SDocElementIF,
@@ -47,7 +46,7 @@ class SDocDocument(SDocDocumentIF):
47
46
  config: Optional[DocumentConfig],
48
47
  view: Optional[DocumentView],
49
48
  grammar: Optional[DocumentGrammar],
50
- section_contents: List[SDocDocumentContentIF],
49
+ section_contents: List[SDocElementIF],
51
50
  is_bundle_document: bool = False,
52
51
  ) -> None:
53
52
  self.title: str = title
@@ -61,7 +60,7 @@ class SDocDocument(SDocDocumentIF):
61
60
  view if view is not None else DocumentView.create_default(self)
62
61
  )
63
62
  self.grammar: Optional[DocumentGrammar] = grammar
64
- self.section_contents: List[SDocDocumentContentIF] = section_contents
63
+ self.section_contents: List[SDocElementIF] = section_contents
65
64
 
66
65
  self.is_bundle_document: bool = is_bundle_document
67
66
 
@@ -86,9 +85,10 @@ class SDocDocument(SDocDocumentIF):
86
85
  self, element_type: Optional[str] = None
87
86
  ) -> Generator[SDocNodeIF, None, None]:
88
87
  """
89
- Iterates over all non-[TEXT] nodes in the document. If element_type
90
- is given, then only nodes of type `element_type` are returned.
91
- Otherwise, all element types are returned.
88
+ Iterate over all non-[TEXT] nodes in the document.
89
+
90
+ If element_type is given, then only nodes of type `element_type` are
91
+ returned. Otherwise, all element types are returned.
92
92
  """
93
93
  task_list: List[SDocElementIF] = list(self.section_contents)
94
94
  while task_list:
@@ -38,9 +38,10 @@ class DocumentFromFile(SDocDocumentFromFileIF):
38
38
  self, element_type: Optional[str] = None
39
39
  ) -> Generator[SDocNodeIF, None, None]:
40
40
  """
41
- Iterates over all non-[TEXT] nodes in the document. If element_type
42
- is given, then only nodes of type `element_type` are returned.
43
- Otherwise, all element types are returned.
41
+ Iterate over all non-[TEXT] nodes in the document.
42
+
43
+ If element_type is given, then only nodes of type `element_type` are
44
+ returned. Otherwise, all element types are returned.
44
45
  """
45
46
 
46
47
  task_list: List[SDocElementIF] = list(self.section_contents)
@@ -279,8 +279,8 @@ class DocumentGrammar(SDocGrammarIF):
279
279
 
280
280
  self.update_with_elements(elements)
281
281
 
282
- # textX passes an empty string instead of None when import_from_file is
283
- # not provided in input.
282
+ # The textX parser passes an empty string instead of None when
283
+ # import_from_file is not provided in input.
284
284
  if import_from_file is not None and len(import_from_file) == 0:
285
285
  import_from_file = None
286
286
  self.import_from_file: Optional[str] = import_from_file
@@ -88,4 +88,4 @@ class DocumentView:
88
88
  for view_element_ in self.views:
89
89
  if view_element_.view_id == view_id:
90
90
  return view_element_
91
- raise NotImplementedError # pragma: no cover
91
+ raise NotImplementedError
@@ -3,6 +3,7 @@ from typing import Generator, List, Optional, Union
3
3
 
4
4
  from strictdoc.backend.sdoc.models.document_config import DocumentConfig
5
5
  from strictdoc.core.document_meta import DocumentMeta
6
+ from strictdoc.helpers.mid import MID
6
7
 
7
8
 
8
9
  class SDocNodeFieldIF(ABC):
@@ -10,61 +11,71 @@ class SDocNodeFieldIF(ABC):
10
11
 
11
12
 
12
13
  class SDocNodeIF(ABC):
14
+ reserved_mid: MID
13
15
  node_type: str
14
16
  ng_level: Optional[int]
15
17
  ng_resolved_custom_level: Optional[str]
16
- section_contents: List["SDocSectionContentIF"]
18
+ section_contents: List["SDocElementIF"]
19
+
20
+ # FIXME: Get rid of @property everywhere.
21
+ @property
22
+ def reserved_uid(self) -> Optional[str]:
23
+ raise NotImplementedError
24
+
25
+ @property
26
+ def reserved_title(self) -> Optional[str]:
27
+ raise NotImplementedError
17
28
 
18
29
  @abstractmethod
19
30
  def is_normative_node(self) -> bool:
20
- raise NotImplementedError # pragma: no cover
31
+ raise NotImplementedError
21
32
 
22
33
  @abstractmethod
23
34
  def is_text_node(self) -> bool:
24
- raise NotImplementedError # pragma: no cover
35
+ raise NotImplementedError
25
36
 
26
37
  @abstractmethod
27
38
  def get_debug_info(self) -> str:
28
- raise NotImplementedError # pragma: no cover
39
+ raise NotImplementedError
29
40
 
30
41
  @abstractmethod
31
42
  def get_document(self) -> Optional["SDocDocumentIF"]:
32
- raise NotImplementedError # pragma: no cover
43
+ raise NotImplementedError
33
44
 
34
45
  @abstractmethod
35
46
  def get_including_document(self) -> Optional["SDocDocumentIF"]:
36
- raise NotImplementedError # pragma: no cover
47
+ raise NotImplementedError
37
48
 
38
49
  @abstractmethod
39
50
  def get_parent_or_including_document(self) -> "SDocDocumentIF":
40
- raise NotImplementedError # pragma: no cover
51
+ raise NotImplementedError
41
52
 
42
53
  @abstractmethod
43
54
  def get_prefix(self) -> Optional[str]:
44
- raise NotImplementedError # pragma: no cover
55
+ raise NotImplementedError
45
56
 
46
57
 
47
58
  class SDocSectionIF(ABC):
48
59
  parent: Union["SDocDocumentIF", "SDocSectionIF"]
49
60
  ng_level: Optional[int]
50
61
  ng_resolved_custom_level: Optional[str]
51
- section_contents: List["SDocSectionContentIF"]
62
+ section_contents: List["SDocElementIF"]
52
63
 
53
64
  @abstractmethod
54
65
  def get_document(self) -> Optional["SDocDocumentIF"]:
55
- raise NotImplementedError # pragma: no cover
66
+ raise NotImplementedError
56
67
 
57
68
  @abstractmethod
58
69
  def get_prefix(self) -> str:
59
- raise NotImplementedError # pragma: no cover
70
+ raise NotImplementedError
60
71
 
61
72
  @abstractmethod
62
73
  def get_debug_info(self) -> str:
63
- raise NotImplementedError # pragma: no cover
74
+ raise NotImplementedError
64
75
 
65
76
  @abstractmethod
66
77
  def get_display_title(self, include_toc_number: bool = True) -> str:
67
- raise NotImplementedError # pragma: no cover
78
+ raise NotImplementedError
68
79
 
69
80
 
70
81
  class SDocGrammarIF:
@@ -75,32 +86,32 @@ class SDocDocumentIF(ABC):
75
86
  config: DocumentConfig
76
87
  grammar: Optional[SDocGrammarIF]
77
88
  meta: Optional[DocumentMeta]
78
- section_contents: List["SDocSectionContentIF"]
89
+ section_contents: List["SDocElementIF"]
79
90
  included_documents: List["SDocDocumentIF"]
80
91
  is_bundle_document: bool
81
92
  ng_level: Optional[int]
82
93
 
83
94
  @abstractmethod
84
95
  def get_prefix(self) -> str:
85
- raise NotImplementedError # pragma: no cover
96
+ raise NotImplementedError
86
97
 
87
98
  @abstractmethod
88
99
  def get_debug_info(self) -> str:
89
- raise NotImplementedError # pragma: no cover
100
+ raise NotImplementedError
90
101
 
91
102
  @abstractmethod
92
103
  def iterate_included_documents_depth_first(
93
104
  self,
94
105
  ) -> Generator["SDocDocumentIF", None, None]:
95
- raise NotImplementedError # pragma: no cover
106
+ raise NotImplementedError
96
107
 
97
108
  @abstractmethod
98
109
  def get_display_title(self, include_toc_number: bool = True) -> str:
99
- raise NotImplementedError # pragma: no cover
110
+ raise NotImplementedError
100
111
 
101
112
  @property
102
113
  def ng_resolved_custom_level(self) -> Optional[str]:
103
- raise NotImplementedError # pragma: no cover
114
+ raise NotImplementedError
104
115
 
105
116
 
106
117
  class SDocDocumentFromFileIF(ABC):
@@ -112,25 +123,11 @@ class SDocDocumentFromFileIF(ABC):
112
123
  self,
113
124
  element_type: Optional[str] = None,
114
125
  ) -> Generator[SDocNodeIF, None, None]:
115
- raise NotImplementedError # pragma: no cover
126
+ raise NotImplementedError
116
127
 
117
128
  @property
118
129
  def section_contents(self) -> List[SDocDocumentIF]:
119
- raise NotImplementedError # pragma: no cover
120
-
121
-
122
- SDocSectionContentIF = Union[
123
- SDocNodeIF,
124
- SDocSectionIF,
125
- SDocDocumentFromFileIF,
126
- ]
127
-
128
-
129
- SDocDocumentContentIF = Union[
130
- SDocDocumentFromFileIF,
131
- SDocNodeIF,
132
- SDocSectionIF,
133
- ]
130
+ raise NotImplementedError
134
131
 
135
132
 
136
133
  SDocElementIF = Union[
@@ -14,8 +14,8 @@ from strictdoc.backend.sdoc.models.document_grammar import (
14
14
  from strictdoc.backend.sdoc.models.inline_link import InlineLink
15
15
  from strictdoc.backend.sdoc.models.model import (
16
16
  SDocDocumentIF,
17
+ SDocElementIF,
17
18
  SDocNodeIF,
18
- SDocSectionContentIF,
19
19
  SDocSectionIF,
20
20
  )
21
21
  from strictdoc.backend.sdoc.models.reference import (
@@ -108,7 +108,7 @@ class SDocNode(SDocNodeIF):
108
108
  fields: List[SDocNodeField],
109
109
  relations: List[Reference],
110
110
  is_composite: bool = False,
111
- section_contents: Optional[List[SDocSectionContentIF]] = None,
111
+ section_contents: Optional[List[SDocElementIF]] = None,
112
112
  node_type_close: Optional[str] = None,
113
113
  ) -> None:
114
114
  assert parent
@@ -142,7 +142,7 @@ class SDocNode(SDocNodeIF):
142
142
  has_meta = True
143
143
  ordered_fields_lookup.setdefault(field.field_name, []).append(field)
144
144
 
145
- self.section_contents: List[SDocSectionContentIF] = (
145
+ self.section_contents: List[SDocElementIF] = (
146
146
  section_contents if section_contents is not None else []
147
147
  )
148
148
 
@@ -624,6 +624,8 @@ class SDocNode(SDocNodeIF):
624
624
  value: Optional[Union[str, SDocNodeField]],
625
625
  ) -> None:
626
626
  """
627
+ Create or update a field by name with the given value.
628
+
627
629
  The purpose of this purpose is to provide a single-method API for
628
630
  updating any field of a requirement. A requirement might use only some
629
631
  fields of a document grammar, so an extra exercise done by the method is
@@ -12,7 +12,7 @@ from strictdoc.backend.sdoc.models.document_grammar import (
12
12
  )
13
13
  from strictdoc.backend.sdoc.models.model import (
14
14
  SDocDocumentIF,
15
- SDocSectionContentIF,
15
+ SDocElementIF,
16
16
  SDocSectionIF,
17
17
  )
18
18
  from strictdoc.helpers.auto_described import auto_described
@@ -36,7 +36,7 @@ class SDocSection(SDocSectionIF):
36
36
  custom_level: Optional[str],
37
37
  title: str,
38
38
  requirement_prefix: Optional[str],
39
- section_contents: List[SDocSectionContentIF],
39
+ section_contents: List[SDocElementIF],
40
40
  ):
41
41
  self.parent: Union[SDocDocumentIF, SDocSectionIF] = parent
42
42
 
@@ -70,8 +70,8 @@ class FileEntry:
70
70
  file_path_posix = g_file_path.replace("\\", "/")
71
71
  self.file_path_posix = file_path_posix
72
72
 
73
- # textX passes an empty string even if there is no LINE_RANGE provided
74
- # in the SDoc source.
73
+ # The textX parser passes an empty string even if there is no LINE_RANGE
74
+ # provided in the SDoc source.
75
75
  g_line_range = (
76
76
  g_line_range
77
77
  if g_line_range is not None and len(g_line_range) > 0
@@ -88,7 +88,8 @@ class FileEntry:
88
88
  int(range_components_str[1]),
89
89
  )
90
90
 
91
- # textX parses an optional element as an empty string. We make it to None ourselves.
91
+ # The textX parser parses an optional element as an empty string. We
92
+ # make it to None ourselves.
92
93
  self.function: Optional[str] = (
93
94
  function if function is not None and len(function) > 0 else None
94
95
  )
@@ -198,7 +199,7 @@ class GrammarElementFieldTag(GrammarElementField):
198
199
 
199
200
 
200
201
  @auto_described
201
- class GrammarElementRelationParent:
202
+ class GrammarElementRelationParent: # noqa: PLW1641
202
203
  def __init__(
203
204
  self, parent, relation_type: str, relation_role: Optional[str]
204
205
  ):
@@ -77,8 +77,7 @@ class SDReader:
77
77
  self, file_path: str, project_config: ProjectConfig
78
78
  ) -> SDocDocument:
79
79
  """
80
- This function parses the provided .sdoc file and returns a Document
81
- object.
80
+ Parse a provided .sdoc file and convert it into a Document object.
82
81
  """
83
82
 
84
83
  unpickled_content = PickleCache.read_from_cache(
@@ -29,6 +29,7 @@ MULTIPLE_CHOICE_FIELD_REGEX = re.compile(
29
29
  def multi_choice_regex_match(value: str) -> bool:
30
30
  """
31
31
  Validate MultipleChoice field value.
32
+
32
33
  Bug: Forward slashes in field values cause errors #2197,
33
34
  https://github.com/strictdoc-project/strictdoc/issues/2197
34
35
  """
@@ -39,8 +40,8 @@ def multi_choice_regex_match(value: str) -> bool:
39
40
 
40
41
  class SDocValidator:
41
42
  """
42
- This helper class is used for validating SDoc documents right after the
43
- textX parsing and processing steps have finished.
43
+ Class that validates SDoc after textX parsing and processing steps.
44
+
44
45
  FIXME: In the future, all processing validation steps could be moved to this
45
46
  class as well. This would remove the need in the ParseContext class
46
47
  and simplify several other implementation details.
@@ -73,7 +73,8 @@ class SourceFileTraceabilityCachingReader:
73
73
  or path_to_file.endswith(".hpp")
74
74
  or path_to_file.endswith(".cpp")
75
75
  ):
76
- return SourceFileTraceabilityReader_C()
76
+ parse_nodes = project_config.shall_parse_nodes(path_to_file)
77
+ return SourceFileTraceabilityReader_C(parse_nodes=parse_nodes)
77
78
  if path_to_file.endswith(".robot"):
78
79
  return SourceFileTraceabilityReader_Robot()
79
80
  return SourceFileTraceabilityReader()
@@ -0,0 +1,87 @@
1
+ from string import Template
2
+
3
+ from lark import Lark, ParseTree, UnexpectedToken
4
+
5
+ from strictdoc.backend.sdoc_source_code.constants import (
6
+ REGEX_REQ,
7
+ RESERVED_KEYWORDS,
8
+ )
9
+
10
+
11
+ class GrammarTemplate(Template):
12
+ delimiter = "##"
13
+
14
+
15
+ RELATION_MARKER_START = r"@relation[\(\{]"
16
+
17
+ GRAMMAR = GrammarTemplate("""
18
+ start: ##START
19
+
20
+ relation_marker: _RELATION_MARKER_START _WS? (relation_node_uid _SEP _WS)+ "scope=" relation_scope ("," _WS "role=" relation_role)? _WS? _BRACE_RIGHT
21
+
22
+ _RELATION_MARKER_START: /##RELATION_MARKER_START/
23
+ relation_node_uid: /##REGEX_REQ/
24
+ relation_scope: /file|class|function|line|range_start|range_end/
25
+ relation_role: ALPHANUMERIC_WORD
26
+
27
+ node_field: node_name ":" node_multiline_value
28
+ node_name: /(?!(##RESERVED_KEYWORDS))[A-Z_]+/
29
+ node_multiline_value: (_WS_INLINE | _NL) (NODE_FIRST_STRING_VALUE _NL) (NODE_STRING_VALUE _NL)*
30
+
31
+ NODE_FIRST_STRING_VALUE.2: /\\s*[^\n\r]+/x
32
+ NODE_STRING_VALUE.2: /(?![ ]*##RELATION_MARKER_START)(?!\\s*[A-Z_]+: )[^\n\r]+/x
33
+
34
+ _NORMAL_STRING_NO_MARKER_NO_NODE: /(?!\\s*##RELATION_MARKER_START)((?!\\s*[A-Z_]+: )|(##RESERVED_KEYWORDS)).+/
35
+
36
+ _NORMAL_STRING_NO_MARKER: /(?!\\s*##RELATION_MARKER_START).+/
37
+
38
+ _BRACE_LEFT: /[\\(\\{{]/
39
+ _BRACE_RIGHT: /[\\)\\}}]/
40
+
41
+ _SEP: ","
42
+
43
+ _NL : (CR? LF)
44
+
45
+ _WS : WS
46
+ _WS_INLINE : WS_INLINE
47
+
48
+ ALPHANUMERIC_WORD: /[a-zA-Z0-9_]+/
49
+
50
+ %import common.WS -> WS
51
+ %import common.CR -> CR
52
+ %import common.LF -> LF
53
+ %import common.WS_INLINE -> WS_INLINE
54
+ %import common.NEWLINE -> NEWLINE
55
+ """)
56
+
57
+
58
+ class MarkerLexer:
59
+ @staticmethod
60
+ def parse(source_input: str, parse_nodes: bool = False) -> ParseTree:
61
+ if parse_nodes:
62
+ start = "(relation_marker | node_field | _NORMAL_STRING_NO_MARKER_NO_NODE | _WS)*"
63
+ else:
64
+ start = "(relation_marker | _NORMAL_STRING_NO_MARKER | _WS)*"
65
+
66
+ grammar = GRAMMAR.substitute(
67
+ RELATION_MARKER_START=RELATION_MARKER_START,
68
+ RESERVED_KEYWORDS=RESERVED_KEYWORDS,
69
+ REGEX_REQ=REGEX_REQ,
70
+ START=start,
71
+ )
72
+ parser: Lark = Lark(
73
+ grammar, parser="lalr", cache=True, propagate_positions=True
74
+ )
75
+
76
+ try:
77
+ # FIXME: Without rstrip, there is an edge case where the parser
78
+ # breaks when resolving conflicts between multiline node
79
+ # fields and normal strings.
80
+ # See also test: test_31_single_node_field.
81
+ tree: ParseTree = parser.parse(source_input.rstrip() + "\n")
82
+ except UnexpectedToken as exception_: # pragma: no cover
83
+ print( # noqa: T201
84
+ "error: could not parse source comment:\n" + source_input
85
+ )
86
+ raise exception_
87
+ return tree
@@ -28,6 +28,7 @@ class MarkerParser:
28
28
  comment_line_start: int,
29
29
  entity_name: Optional[str] = None,
30
30
  col_offset: int = 0,
31
+ parse_nodes: bool = False,
31
32
  ) -> SourceNode:
32
33
  """
33
34
  Parse relation markers from source file comments.
@@ -48,7 +49,9 @@ class MarkerParser:
48
49
 
49
50
  input_string = preprocess_source_code_comment(input_string)
50
51
 
51
- tree: ParseTree = MarkerLexer.parse(input_string)
52
+ tree: ParseTree = MarkerLexer.parse(
53
+ input_string, parse_nodes=parse_nodes
54
+ )
52
55
 
53
56
  for element_ in tree.children:
54
57
  if not isinstance(element_, Tree):
@@ -40,6 +40,4 @@ class Function:
40
40
  return FunctionAttribute.DEFINITION in self.attributes
41
41
 
42
42
  def is_public(self) -> bool:
43
- if FunctionAttribute.STATIC in self.attributes:
44
- return False
45
- return True
43
+ return FunctionAttribute.STATIC not in self.attributes