strictdoc 0.9.0__tar.gz → 0.9.1__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 (575) hide show
  1. {strictdoc-0.9.0 → strictdoc-0.9.1}/PKG-INFO +1 -1
  2. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/__init__.py +1 -1
  3. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/errors/document_tree_error.py +11 -7
  4. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/models/type_system.py +1 -1
  5. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/cli/cli_arg_parser.py +3 -9
  6. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/project_config.py +38 -5
  7. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/transforms/update_requirement.py +1 -0
  8. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/tree_cycle_detector.py +26 -12
  9. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/form_objects/requirement_form_object.py +94 -84
  10. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/rst/rst_to_html_fragment_writer.py +4 -2
  11. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/mid.py +1 -1
  12. strictdoc-0.9.1/strictdoc/server/error_object.py +18 -0
  13. strictdoc-0.9.0/strictdoc/server/error_object.py +0 -16
  14. {strictdoc-0.9.0 → strictdoc-0.9.1}/.gitignore +0 -0
  15. {strictdoc-0.9.0 → strictdoc-0.9.1}/LICENSE +0 -0
  16. {strictdoc-0.9.0 → strictdoc-0.9.1}/NOTICE +0 -0
  17. {strictdoc-0.9.0 → strictdoc-0.9.1}/README.md +0 -0
  18. {strictdoc-0.9.0 → strictdoc-0.9.1}/pyproject.toml +0 -0
  19. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/__init__.py +0 -0
  20. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/excel/__init__.py +0 -0
  21. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/excel/excel_import.py +0 -0
  22. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/excel/export/__init__.py +0 -0
  23. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/excel/export/excel_generator.py +0 -0
  24. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/excel/import_/__init__.py +0 -0
  25. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/excel/import_/excel_sheet_proxy.py +0 -0
  26. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/excel/import_/excel_to_sdoc_converter.py +0 -0
  27. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/reqif/__init__.py +0 -0
  28. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/reqif/p01_sdoc/__init__.py +0 -0
  29. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/reqif/p01_sdoc/reqif_to_sdoc_converter.py +0 -0
  30. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/reqif/p01_sdoc/sdoc_to_reqif_converter.py +0 -0
  31. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/reqif/reqif_export.py +0 -0
  32. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/reqif/reqif_import.py +0 -0
  33. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/reqif/sdoc_reqif_fields.py +0 -0
  34. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/__init__.py +0 -0
  35. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/constants.py +0 -0
  36. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/document_reference.py +0 -0
  37. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/error_handling.py +0 -0
  38. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/errors/__init__.py +0 -0
  39. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/free_text_reader.py +0 -0
  40. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/grammar/__init__.py +0 -0
  41. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/grammar/grammar.py +0 -0
  42. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/grammar/grammar_builder.py +0 -0
  43. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/grammar/grammar_grammar.py +0 -0
  44. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/grammar/type_system.py +0 -0
  45. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/grammar_reader.py +0 -0
  46. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/models/__init__.py +0 -0
  47. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/models/anchor.py +0 -0
  48. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/models/constants.py +0 -0
  49. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/models/document.py +0 -0
  50. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/models/document_config.py +0 -0
  51. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/models/document_from_file.py +0 -0
  52. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/models/document_grammar.py +0 -0
  53. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/models/document_view.py +0 -0
  54. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/models/free_text.py +0 -0
  55. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/models/inline_link.py +0 -0
  56. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/models/model.py +0 -0
  57. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/models/node.py +0 -0
  58. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/models/object_factory.py +0 -0
  59. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/models/reference.py +0 -0
  60. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/models/section.py +0 -0
  61. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/pickle_cache.py +0 -0
  62. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/processor.py +0 -0
  63. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/reader.py +0 -0
  64. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/validations/__init__.py +0 -0
  65. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/validations/sdoc_validator.py +0 -0
  66. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc/writer.py +0 -0
  67. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/__init__.py +0 -0
  68. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/caching_reader.py +0 -0
  69. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/comment_parser/marker_lexer.py +0 -0
  70. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/constants.py +0 -0
  71. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/coverage_reports/gcov.py +0 -0
  72. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/grammar.py +0 -0
  73. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/helpers/comment_preprocessor.py +0 -0
  74. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/marker_parser.py +0 -0
  75. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/models/__init__.py +0 -0
  76. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/models/function.py +0 -0
  77. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/models/function_range_marker.py +0 -0
  78. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/models/range_marker.py +0 -0
  79. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/models/requirement_marker.py +0 -0
  80. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/models/source_file_info.py +0 -0
  81. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/models/source_node.py +0 -0
  82. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/parse_context.py +0 -0
  83. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/processors/general_language_marker_processors.py +0 -0
  84. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/reader.py +0 -0
  85. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/reader_c.py +0 -0
  86. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/reader_python.py +0 -0
  87. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/reader_robot.py +0 -0
  88. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/test_reports/junit_xml_reader.py +0 -0
  89. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/test_reports/robot_xml_reader.py +0 -0
  90. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/backend/sdoc_source_code/tree_sitter_helpers.py +0 -0
  91. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/cli/__init__.py +0 -0
  92. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/cli/argument_int_range.py +0 -0
  93. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/cli/command_parser_builder.py +0 -0
  94. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/cli/main.py +0 -0
  95. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/commands/__init__.py +0 -0
  96. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/commands/about_command.py +0 -0
  97. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/commands/diff_command.py +0 -0
  98. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/commands/dump_grammar_command.py +0 -0
  99. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/commands/manage_autouid_command.py +0 -0
  100. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/commands/version_command.py +0 -0
  101. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/__init__.py +0 -0
  102. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/actions/__init__.py +0 -0
  103. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/actions/export_action.py +0 -0
  104. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/actions/import_action.py +0 -0
  105. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/analyzers/document_stats.py +0 -0
  106. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/analyzers/document_uid_analyzer.py +0 -0
  107. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/asset_manager.py +0 -0
  108. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/constants.py +0 -0
  109. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/document_finder.py +0 -0
  110. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/document_iterator.py +0 -0
  111. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/document_meta.py +0 -0
  112. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/document_tree.py +0 -0
  113. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/document_tree_iterator.py +0 -0
  114. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/environment.py +0 -0
  115. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/file_dependency_manager.py +0 -0
  116. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/file_traceability_index.py +0 -0
  117. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/file_tree.py +0 -0
  118. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/finders/__init__.py +0 -0
  119. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/finders/source_files_finder.py +0 -0
  120. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/graph/abstract_bucket.py +0 -0
  121. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/graph/many_to_many_set.py +0 -0
  122. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/graph/one_to_one_dictionary.py +0 -0
  123. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/graph/validations.py +0 -0
  124. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/graph_database.py +0 -0
  125. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/query_engine/grammar.py +0 -0
  126. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/query_engine/query_object.py +0 -0
  127. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/query_engine/query_reader.py +0 -0
  128. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/source_tree.py +0 -0
  129. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/traceability_index.py +0 -0
  130. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/traceability_index_builder.py +0 -0
  131. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/transforms/constants.py +0 -0
  132. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/transforms/delete_requirement.py +0 -0
  133. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/transforms/delete_section.py +0 -0
  134. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/transforms/section.py +0 -0
  135. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/transforms/update_document_config.py +0 -0
  136. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/transforms/update_grammar.py +0 -0
  137. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/transforms/update_grammar_element.py +0 -0
  138. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/transforms/update_included_document.py +0 -0
  139. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/core/transforms/validation_error.py +0 -0
  140. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/__init__.py +0 -0
  141. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/doxygen/doxygen_generator.py +0 -0
  142. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/autogen.css +0 -0
  143. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/base.css +0 -0
  144. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/collapsible_list.js +0 -0
  145. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/collapsible_toc.js +0 -0
  146. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/collapsible_tree.js +0 -0
  147. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/content.css +0 -0
  148. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/controllers/anchor_controller.js +0 -0
  149. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/controllers/autocompletable_field_controller.js +0 -0
  150. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/controllers/copy_stable_link_button_controller.js +0 -0
  151. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/controllers/copy_to_clipboard_controller.js +0 -0
  152. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/controllers/deletable_field_controller.js +0 -0
  153. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/controllers/draggable_list_controller.js +0 -0
  154. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/controllers/dropdown_menu_controller.js +0 -0
  155. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/controllers/editable_field_controller.js +0 -0
  156. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/controllers/modal_controller.js +0 -0
  157. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/controllers/movable_field_controller.js +0 -0
  158. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/controllers/scroll_into_view_controller.js +0 -0
  159. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/controllers/tabs_controller.js +0 -0
  160. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/diff.css +0 -0
  161. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/diff.js +0 -0
  162. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/element.css +0 -0
  163. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/favicon.ico +0 -0
  164. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/fonts/NotoSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  165. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/fonts/NotoSans-VariableFont_wdth,wght.ttf +0 -0
  166. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/fonts/NotoSansMono-VariableFont_wdth,wght.ttf +0 -0
  167. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/form.css +0 -0
  168. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/html2pdf4doc.css +0 -0
  169. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/layout.css +0 -0
  170. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/node.css +0 -0
  171. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/node_content.css +0 -0
  172. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/pan_with_space.js +0 -0
  173. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/project_coverage.css +0 -0
  174. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/project_coverage.js +0 -0
  175. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/project_tree.css +0 -0
  176. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/project_tree.js +0 -0
  177. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/requirement-tree.css +0 -0
  178. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/requirement__temporary.css +0 -0
  179. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/requirements-coverage.js +0 -0
  180. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/resizable_bar.js +0 -0
  181. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/source-code-coverage.js +0 -0
  182. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/source.css +0 -0
  183. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/stable_uri_forwarder.js +0 -0
  184. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/stimulus_umd.min.js +0 -0
  185. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/table_vew.css +0 -0
  186. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/toc_highlighting.js +0 -0
  187. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/traceability_matrix.css +0 -0
  188. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/tree(not_in_use).css +0 -0
  189. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/turbo.min.js +0 -0
  190. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/viewtype_menu.js +0 -0
  191. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static/zoomable.js +0 -0
  192. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/LICENSE-MATHJAX +0 -0
  193. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/tex.js +0 -0
  194. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff +0 -0
  195. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff +0 -0
  196. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff +0 -0
  197. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff +0 -0
  198. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff +0 -0
  199. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff +0 -0
  200. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff +0 -0
  201. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +0 -0
  202. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff +0 -0
  203. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +0 -0
  204. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff +0 -0
  205. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff +0 -0
  206. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff +0 -0
  207. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff +0 -0
  208. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff +0 -0
  209. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff +0 -0
  210. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +0 -0
  211. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +0 -0
  212. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff +0 -0
  213. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff +0 -0
  214. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff +0 -0
  215. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff +0 -0
  216. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff +0 -0
  217. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mathjax/tex-mml-chtml.js +0 -0
  218. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/mermaid/mermaid.min.js +0 -0
  219. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/nestor/bundle.umd.js +0 -0
  220. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/_static_extra/rapidoc/rapidoc-min.js +0 -0
  221. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/document_type.py +0 -0
  222. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/form_objects/document_config_form_object.py +0 -0
  223. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/form_objects/form_object.py +0 -0
  224. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/form_objects/grammar_element_form_object.py +0 -0
  225. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/form_objects/grammar_form_object.py +0 -0
  226. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/form_objects/included_document_form_object.py +0 -0
  227. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/form_objects/rows/row_with_grammar_element_form_object.py +0 -0
  228. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/form_objects/section_form_object.py +0 -0
  229. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/__init__.py +0 -0
  230. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/document.py +0 -0
  231. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/document_deep_trace.py +0 -0
  232. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/document_pdf.py +0 -0
  233. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/document_table.py +0 -0
  234. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/document_trace.py +0 -0
  235. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/document_tree.py +0 -0
  236. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/project_map.py +0 -0
  237. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/project_statistics.py +0 -0
  238. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/source_file_coverage.py +0 -0
  239. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/source_file_view_generator.py +0 -0
  240. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/traceability_matrix.py +0 -0
  241. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/view_objects/diff_screen_results_view_object.py +0 -0
  242. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/view_objects/diff_screen_view_object.py +0 -0
  243. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/view_objects/document_screen_view_object.py +0 -0
  244. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/view_objects/helpers.py +0 -0
  245. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/view_objects/nestor_view_object.py +0 -0
  246. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/view_objects/project_statistics_view_object.py +0 -0
  247. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/view_objects/project_tree_stats.py +0 -0
  248. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/view_objects/project_tree_view_object.py +0 -0
  249. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/view_objects/search_screen_view_object.py +0 -0
  250. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/view_objects/source_file_view_object.py +0 -0
  251. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/generators/view_objects/traceability_matrix_view_object.py +0 -0
  252. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/html_generator.py +0 -0
  253. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/html_templates.py +0 -0
  254. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/renderers/__init__.py +0 -0
  255. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/renderers/html_fragment_writer.py +0 -0
  256. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/renderers/link_renderer.py +0 -0
  257. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/renderers/markup_renderer.py +0 -0
  258. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/renderers/text_to_html_writer.py +0 -0
  259. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg__separator.jinja.html +0 -0
  260. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_add.jinja.html +0 -0
  261. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_add_above.jinja +0 -0
  262. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_add_below.jinja +0 -0
  263. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_add_child.jinja +0 -0
  264. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_anchor.jinja +0 -0
  265. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_back.jinja.html +0 -0
  266. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_book.jinja.html +0 -0
  267. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_close.jinja +0 -0
  268. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_code.jinja.html +0 -0
  269. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_copy.jinja +0 -0
  270. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_delete.jinja.html +0 -0
  271. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_diff.jinja +0 -0
  272. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_document.jinja.html +0 -0
  273. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_done.jinja +0 -0
  274. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_edit.jinja.html +0 -0
  275. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_expand.jinja.html +0 -0
  276. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_file.jinja +0 -0
  277. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_folder.jinja +0 -0
  278. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_folder_collapse.jinja +0 -0
  279. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_folder_sm.jinja +0 -0
  280. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_fragment.jinja +0 -0
  281. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_fragment_draft.jinja +0 -0
  282. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_gear.jinja.html +0 -0
  283. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_go_to_doc.jinja +0 -0
  284. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_index.jinja.html +0 -0
  285. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_link.jinja +0 -0
  286. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_list.jinja.html +0 -0
  287. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_maximize.jinja +0 -0
  288. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_minimize.jinja +0 -0
  289. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_minusminus.jinja.html +0 -0
  290. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_move_down.jinja.html +0 -0
  291. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_move_up.jinja.html +0 -0
  292. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_plusplus.jinja.html +0 -0
  293. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_project.jinja.html +0 -0
  294. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_requirement.jinja.html +0 -0
  295. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_reset.jinja +0 -0
  296. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_search.jinja +0 -0
  297. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_section_collapse.jinja +0 -0
  298. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_source.jinja.html +0 -0
  299. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_source_pointer_in.jinja +0 -0
  300. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_source_pointer_out.jinja +0 -0
  301. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_stat.jinja +0 -0
  302. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_sync.jinja +0 -0
  303. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_toc.jinja.html +0 -0
  304. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_res/svg_ico16_tree.jinja +0 -0
  305. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_shared/nav.jinja.html +0 -0
  306. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_shared/requirement_tree_left.jinja.html +0 -0
  307. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_shared/requirement_tree_right.jinja.html +0 -0
  308. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/_shared/tags.jinja.html +0 -0
  309. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/_shared/stream_refresh_document.jinja.html +0 -0
  310. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/_shared/stream_updated_toc.jinja.html +0 -0
  311. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/add_document_metadata/stream_add_document_metadata.jinja.html +0 -0
  312. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/add_requirement_comment/stream_add_requirement_comment.jinja.html +0 -0
  313. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/add_requirement_relation/stream_add_requirement_relation.jinja.html +0 -0
  314. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/create_requirement/stream_cancel_new_requirement.jinja.html +0 -0
  315. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/create_requirement/stream_created_requirement.jinja.html +0 -0
  316. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/create_requirement/stream_new_requirement.jinja.html +0 -0
  317. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/create_section/stream_cancel_new_section.jinja.html +0 -0
  318. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/create_section/stream_created_section.jinja.html +0 -0
  319. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/create_section/stream_new_section.jinja.html +0 -0
  320. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_confirm_delete_requirement.jinja +0 -0
  321. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_delete_requirement.jinja.html +0 -0
  322. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/delete_section/stream_confirm_delete_section.jinja +0 -0
  323. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/delete_section/stream_delete_section.jinja.html +0 -0
  324. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_cancel_edit_document_config.jinja.html +0 -0
  325. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_edit_document_config.jinja.html +0 -0
  326. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_save_document_config.jinja.html +0 -0
  327. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/edit_requirement/stream_edit_requirement.jinja.html +0 -0
  328. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/edit_section/stream_edit_section.jinja.html +0 -0
  329. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/document/edit_section/stream_updated_section.jinja.html +0 -0
  330. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_node.jinja +0 -0
  331. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_section.jinja +0 -0
  332. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_form_import_reqif_document.jinja.html +0 -0
  333. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_refresh_with_imported_reqif_document.jinja.html +0 -0
  334. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/project_index/stream_create_document.jinja.html +0 -0
  335. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/actions/project_index/stream_new_document.jinja.html +0 -0
  336. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/autocomplete/field/stream_autocomplete_field.jinja.html +0 -0
  337. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/autocomplete/uid/stream_autocomplete_uid.jinja.html +0 -0
  338. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/base.jinja.html +0 -0
  339. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/anchor/index.jinja +0 -0
  340. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/badge/index.jinja +0 -0
  341. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/button/cancel.jinja +0 -0
  342. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/button/confirm.jinja +0 -0
  343. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/button/delete.jinja +0 -0
  344. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/button/diff.jinja +0 -0
  345. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/button/search.jinja +0 -0
  346. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/button/submit.jinja +0 -0
  347. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/confirm/_usage_example.jinja +0 -0
  348. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/confirm/index.jinja +0 -0
  349. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/field/index.jinja +0 -0
  350. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/form/field/autocompletable/index.jinja +0 -0
  351. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/form/field/contenteditable/index.jinja +0 -0
  352. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/form/field/file/index.jinja +0 -0
  353. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/form/field/text/index.jinja +0 -0
  354. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/form/field_action_button/index.jinja +0 -0
  355. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/form/index.jinja +0 -0
  356. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/form/row/index.jinja +0 -0
  357. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/example.jinja.html +0 -0
  358. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/frame.jinja +0 -0
  359. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/stream.jinja +0 -0
  360. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/form/row/row_with_comment.jinja +0 -0
  361. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/form/row/row_with_metadata.jinja +0 -0
  362. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/form/row/row_with_relation.jinja +0 -0
  363. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/form/row/row_with_text_field.jinja +0 -0
  364. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/form/search.jinja +0 -0
  365. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/grammar_form/index.jinja +0 -0
  366. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/grammar_form/row_with_grammar_element/index.jinja +0 -0
  367. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/grammar_form/row_with_new_grammar_element/index.jinja +0 -0
  368. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/grammar_form_element/index.jinja +0 -0
  369. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/grammar_form_element/row_with_custom_field/index.jinja +0 -0
  370. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/grammar_form_element/row_with_relation/index.jinja +0 -0
  371. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/grammar_form_element/row_with_reserved_field/index.jinja +0 -0
  372. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/header/_usage_example.jinja +0 -0
  373. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/header/header_pagetype.jinja +0 -0
  374. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/header/index.jinja +0 -0
  375. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/included_document_form/index.jinja +0 -0
  376. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/issue/banner.jinja +0 -0
  377. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/issue/index.jinja +0 -0
  378. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/modal/_usage_example.jinja +0 -0
  379. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/modal/form.jinja +0 -0
  380. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/modal/index.jinja +0 -0
  381. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node/card.jinja +0 -0
  382. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node/copy_stable_link_button.jinja +0 -0
  383. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node/index.jinja +0 -0
  384. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node/node_controls/card.jinja +0 -0
  385. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node/node_controls/index.jinja +0 -0
  386. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node/readonly.jinja +0 -0
  387. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node/root.jinja +0 -0
  388. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_content/card.jinja +0 -0
  389. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_content/card_extends_card.jinja +0 -0
  390. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_content/index.jinja +0 -0
  391. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_content/index_extends_node.jinja +0 -0
  392. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_content/index_extends_readonly.jinja +0 -0
  393. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_content/tiny.jinja +0 -0
  394. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_content/tiny_extends_card.jinja +0 -0
  395. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_field/README.txt +0 -0
  396. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_field/comments/index.jinja +0 -0
  397. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_field/document_meta/index.jinja +0 -0
  398. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_field/document_title/index.jinja +0 -0
  399. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_field/files/index.jinja +0 -0
  400. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_field/links/index.jinja +0 -0
  401. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_field/meta/index.jinja +0 -0
  402. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_field/multiline/index.jinja +0 -0
  403. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_field/rationale/index.jinja +0 -0
  404. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_field/section_h/index.jinja +0 -0
  405. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_field/section_h/pdf.jinja +0 -0
  406. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_field/section_title/index.jinja +0 -0
  407. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_field/statement/index.jinja +0 -0
  408. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_field/text/index.jinja +0 -0
  409. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_field/title/index.jinja +0 -0
  410. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_field/uid/index.jinja +0 -0
  411. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/node_field/uid_standalone/index.jinja +0 -0
  412. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/resizable_bar/index.jinja +0 -0
  413. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/section/card.jinja +0 -0
  414. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/section/card_extends_card.jinja +0 -0
  415. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/section/index.jinja +0 -0
  416. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/section/index_extends_node.jinja +0 -0
  417. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/section/pdf.jinja +0 -0
  418. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/section/tiny.jinja +0 -0
  419. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/section/tiny_extends_card.jinja +0 -0
  420. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/table_key_value/index.jinja +0 -0
  421. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/text_node/card.jinja +0 -0
  422. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/text_node/card_extends_card.jinja +0 -0
  423. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/text_node/index.jinja +0 -0
  424. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/text_node/index_extends_node.jinja +0 -0
  425. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/text_node/pdf.jinja +0 -0
  426. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/text_node/tiny.jinja +0 -0
  427. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/components/text_node/tiny_extends_card.jinja +0 -0
  428. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/rst/anchor.jinja +0 -0
  429. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/_shared/frame_header_document_title.jinja +0 -0
  430. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_node.jinja +0 -0
  431. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_section.jinja +0 -0
  432. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/_shared/frame_toc.jinja +0 -0
  433. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/_shared/project_tree.jinja +0 -0
  434. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/_shared/project_tree_child_documents.jinja +0 -0
  435. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_project_tree.jinja +0 -0
  436. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_toc.jinja +0 -0
  437. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/_shared/toc.jinja +0 -0
  438. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/_shared/viewtype_menu.jinja +0 -0
  439. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/document/actions.jinja +0 -0
  440. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/document/frame_document_config.jinja.html +0 -0
  441. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/document/frame_document_config_edit.jinja.html +0 -0
  442. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/document/frame_document_content.jinja.html +0 -0
  443. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/document/frame_document_issues.jinja +0 -0
  444. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/document/frame_requirement_form.jinja +0 -0
  445. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/document/frame_section_form.jinja +0 -0
  446. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/document/index.jinja +0 -0
  447. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/document/main.jinja +0 -0
  448. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/pdf/index.jinja +0 -0
  449. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/pdf/main.jinja +0 -0
  450. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/pdf/template/footer.jinja +0 -0
  451. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/pdf/template/frontpage.jinja +0 -0
  452. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/pdf/template/header.jinja +0 -0
  453. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/pdf/toc.jinja +0 -0
  454. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/table/index.jinja +0 -0
  455. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/table/main.jinja +0 -0
  456. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/traceability/index.jinja +0 -0
  457. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/traceability/main.jinja +0 -0
  458. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/traceability_deep/index.jinja +0 -0
  459. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/document/traceability_deep/main.jinja +0 -0
  460. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/git/changelog_content.jinja +0 -0
  461. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/git/diff_content.jinja +0 -0
  462. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/git/diff_controls.jinja +0 -0
  463. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/git/fields/document_fields.jinja +0 -0
  464. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/git/fields/requirement_fields.jinja +0 -0
  465. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/git/fields/section_fields.jinja +0 -0
  466. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/git/form.jinja +0 -0
  467. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/git/frame_changelog_result.jinja +0 -0
  468. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/git/frame_diff_result.jinja +0 -0
  469. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/git/index.jinja +0 -0
  470. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/git/legend.jinja +0 -0
  471. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/git/main.jinja +0 -0
  472. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/git/nav_tabs.jinja +0 -0
  473. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/git/node/requirement.jinja +0 -0
  474. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/git/node/section.jinja +0 -0
  475. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/git/skeleton.jinja +0 -0
  476. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/git/sync/button.jinja +0 -0
  477. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/nestor/index.jinja +0 -0
  478. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/project_index/actions.jinja +0 -0
  479. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/project_index/frame_form_import_reqif.jinja.html +0 -0
  480. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/project_index/frame_form_new_document.jinja.html +0 -0
  481. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/project_index/frame_project_tree.jinja.html +0 -0
  482. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/project_index/index.jinja +0 -0
  483. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/project_index/main.jinja +0 -0
  484. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/project_index/project_map.jinja.js +0 -0
  485. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/project_index/project_map_file.jinja +0 -0
  486. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/project_index/project_map_folder.jinja +0 -0
  487. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/project_index/project_map_node.jinja +0 -0
  488. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/project_index/project_map_section.jinja +0 -0
  489. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/project_index/project_tree.jinja +0 -0
  490. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/project_index/project_tree_file.jinja +0 -0
  491. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/project_index/project_tree_folder.jinja +0 -0
  492. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/project_statistics/index.jinja +0 -0
  493. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/project_statistics/main.jinja +0 -0
  494. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/search/index.jinja +0 -0
  495. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/search/legend.jinja +0 -0
  496. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/search/main.jinja +0 -0
  497. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/source_file_coverage/file.jinja +0 -0
  498. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/source_file_coverage/folder.jinja +0 -0
  499. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/source_file_coverage/index.jinja +0 -0
  500. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/source_file_coverage/main.jinja +0 -0
  501. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/source_file_coverage/thead.jinja +0 -0
  502. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/source_file_coverage/value_bar.jinja +0 -0
  503. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/source_file_view/aside.jinja +0 -0
  504. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/source_file_view/file_stats.jinja +0 -0
  505. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/source_file_view/header__actions.jinja +0 -0
  506. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/source_file_view/header__source_file_name.jinja +0 -0
  507. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/source_file_view/index.jinja +0 -0
  508. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/source_file_view/main.jinja +0 -0
  509. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/source_file_view/node_title_for_banner_header.jinja +0 -0
  510. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/source_file_view/range_button.jinja +0 -0
  511. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/source_file_view/requirement.jinja +0 -0
  512. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/traceability_matrix/file.jinja +0 -0
  513. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/traceability_matrix/index.jinja +0 -0
  514. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/traceability_matrix/main.jinja +0 -0
  515. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/traceability_matrix/project_tree_flat_anchor_list.jinja +0 -0
  516. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/traceability_matrix/requirement.jinja.html +0 -0
  517. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/screens/traceability_matrix/resizable_bar_with_project_tree.jinja +0 -0
  518. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/website/document/index.jinja +0 -0
  519. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/templates/websocket.jinja.html +0 -0
  520. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/tools/__init__.py +0 -0
  521. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html/tools/html_embedded.py +0 -0
  522. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html2pdf/html2pdf_generator.py +0 -0
  523. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/html2pdf/pdf_print_driver.py +0 -0
  524. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/json/json_generator.py +0 -0
  525. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/rst/__init__.py +0 -0
  526. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/rst/directives/raw_html_role.py +0 -0
  527. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/rst/directives/wildcard_enhanced_image.py +0 -0
  528. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/rst/document_rst_generator.py +0 -0
  529. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/rst/rst_templates.py +0 -0
  530. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/rst/templates/requirement.jinja.rst +0 -0
  531. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/rst/writer.py +0 -0
  532. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/spdx/spdx_generator.py +0 -0
  533. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/spdx/spdx_sdoc_container.py +0 -0
  534. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/export/spdx/spdx_to_sdoc_converter.py +0 -0
  535. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/git/change.py +0 -0
  536. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/git/change_generator.py +0 -0
  537. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/git/git_client.py +0 -0
  538. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/git/project_diff_analyzer.py +0 -0
  539. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/__init__.py +0 -0
  540. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/auto_described.py +0 -0
  541. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/cast.py +0 -0
  542. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/coverage.py +0 -0
  543. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/deprecation_engine.py +0 -0
  544. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/diff.py +0 -0
  545. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/exception.py +0 -0
  546. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/file_modification_time.py +0 -0
  547. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/file_stats.py +0 -0
  548. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/file_system.py +0 -0
  549. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/form_data.py +0 -0
  550. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/git_client.py +0 -0
  551. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/google_test.py +0 -0
  552. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/math.py +0 -0
  553. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/md5.py +0 -0
  554. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/net.py +0 -0
  555. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/ordered_set.py +0 -0
  556. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/parallelizer.py +0 -0
  557. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/path_filter.py +0 -0
  558. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/paths.py +0 -0
  559. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/pickle.py +0 -0
  560. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/rst.py +0 -0
  561. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/sha256.py +0 -0
  562. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/shard.py +0 -0
  563. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/sorting.py +0 -0
  564. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/string.py +0 -0
  565. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/textx.py +0 -0
  566. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/helpers/timing.py +0 -0
  567. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/server/__init__.py +0 -0
  568. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/server/app.py +0 -0
  569. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/server/config.py +0 -0
  570. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/server/helpers/turbo.py +0 -0
  571. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/server/reload_config.py +0 -0
  572. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/server/routers/main_router.py +0 -0
  573. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/server/routers/other_router.py +0 -0
  574. {strictdoc-0.9.0 → strictdoc-0.9.1}/strictdoc/server/server.py +0 -0
  575. {strictdoc-0.9.0 → strictdoc-0.9.1}/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.0
3
+ Version: 0.9.1
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.0"
3
+ __version__ = "0.9.1"
4
4
 
5
5
 
6
6
  environment = SDocRuntimeEnvironment(__file__)
@@ -1,15 +1,19 @@
1
- # mypy: disable-error-code="no-untyped-call,no-untyped-def"
1
+ from typing import List
2
+
3
+
2
4
  class DocumentTreeError(Exception):
3
- def __init__(self, problem_uid, cycled_uids):
5
+ def __init__(self, problem_uid: str, cycled_uids: List[str]) -> None:
4
6
  super().__init__()
5
- self.problem_uid = problem_uid
6
- self.cycled_uids = cycled_uids
7
+ self.problem_uid: str = problem_uid
8
+ self.cycled_uids: List[str] = cycled_uids
7
9
 
8
10
  @staticmethod
9
- def cycle_error(problem_uid, cycled_uids):
11
+ def cycle_error(
12
+ problem_uid: str, cycled_uids: List[str]
13
+ ) -> "DocumentTreeError":
10
14
  return DocumentTreeError(problem_uid, cycled_uids)
11
15
 
12
- def to_print_message(self):
16
+ def to_print_message(self) -> str:
13
17
  cycled_uids = ", ".join(self.cycled_uids)
14
18
  message = (
15
19
  "error: document tree: "
@@ -19,7 +23,7 @@ class DocumentTreeError(Exception):
19
23
  )
20
24
  return message
21
25
 
22
- def to_validation_message(self):
26
+ def to_validation_message(self) -> str:
23
27
  return (
24
28
  "A cycle detected: requirements in the document tree must not "
25
29
  "reference each other. "
@@ -204,7 +204,7 @@ class GrammarElementRelationParent:
204
204
  ):
205
205
  assert relation_type == "Parent"
206
206
  self.parent = parent
207
- self.relation_type = relation_type
207
+ self.relation_type: str = relation_type
208
208
  self.relation_role: Optional[str] = (
209
209
  relation_role
210
210
  if relation_role is not None and len(relation_role) > 0
@@ -122,7 +122,7 @@ class ExportCommandConfig:
122
122
  def __init__(
123
123
  self,
124
124
  input_paths,
125
- output_dir: str,
125
+ output_dir: Optional[str],
126
126
  config_path: Optional[str],
127
127
  project_title: Optional[str],
128
128
  formats,
@@ -141,7 +141,7 @@ class ExportCommandConfig:
141
141
  ):
142
142
  assert isinstance(input_paths, list), f"{input_paths}"
143
143
  self.input_paths: List[str] = input_paths
144
- self.output_dir: str = output_dir
144
+ self.output_dir: Optional[str] = output_dir
145
145
  self._config_path: Optional[str] = config_path
146
146
  self.project_title: Optional[str] = project_title
147
147
  self.formats = formats
@@ -156,7 +156,6 @@ class ExportCommandConfig:
156
156
  self.reqif_multiline_is_xhtml: bool = reqif_multiline_is_xhtml
157
157
  self.reqif_enable_mid: bool = reqif_enable_mid
158
158
  self.view: Optional[str] = view
159
- self.output_html_root: str = os.path.join(output_dir, "html")
160
159
  self.chromedriver: Optional[str] = chromedriver
161
160
 
162
161
  def get_path_to_config(self) -> str:
@@ -259,14 +258,9 @@ class SDocArgsParser:
259
258
  def get_export_config(self) -> ExportCommandConfig:
260
259
  project_title: Optional[str] = self.args.project_title
261
260
 
262
- output_dir = self.args.output_dir if self.args.output_dir else "output"
263
- if not os.path.isabs(output_dir):
264
- cwd = os.getcwd()
265
- output_dir = os.path.join(cwd, output_dir)
266
-
267
261
  return ExportCommandConfig(
268
262
  self.args.input_paths,
269
- output_dir,
263
+ self.args.output_dir,
270
264
  self.args.config,
271
265
  project_title,
272
266
  self.args.formats,
@@ -9,7 +9,7 @@ from typing import Any, Dict, List, Optional, Tuple
9
9
 
10
10
  import toml
11
11
 
12
- from strictdoc import SDocRuntimeEnvironment
12
+ from strictdoc import SDocRuntimeEnvironment, __version__
13
13
  from strictdoc.backend.reqif.sdoc_reqif_fields import ReqIFProfile
14
14
  from strictdoc.backend.sdoc.constants import SDocMarkup
15
15
  from strictdoc.cli.cli_arg_parser import (
@@ -67,7 +67,7 @@ class ProjectFeature(str, Enum):
67
67
  class ProjectConfig:
68
68
  DEFAULT_PROJECT_TITLE = "Untitled Project"
69
69
  DEFAULT_DIR_FOR_SDOC_ASSETS = "_static"
70
- DEFAULT_DIR_FOR_SDOC_CACHE = "$TMPDIR"
70
+ DEFAULT_DIR_FOR_SDOC_CACHE = "output/_cache"
71
71
 
72
72
  DEFAULT_FEATURES: List[str] = [
73
73
  ProjectFeature.TABLE_SCREEN,
@@ -125,7 +125,7 @@ class ProjectConfig:
125
125
  if env_cache_dir := os.environ.get("STRICTDOC_CACHE_DIR"):
126
126
  # The only use case for STRICTDOC_CACHE_DIR is to make the cache
127
127
  # local to an itest folder.
128
- assert env_cache_dir == "Output/cache", env_cache_dir
128
+ assert env_cache_dir == "Output/_cache", env_cache_dir
129
129
  dir_for_sdoc_cache = env_cache_dir
130
130
  elif dir_for_sdoc_cache == "$TMPDIR":
131
131
  dir_for_sdoc_cache = os.path.join(
@@ -134,6 +134,12 @@ class ProjectConfig:
134
134
  get_md5(os.getcwd()),
135
135
  )
136
136
 
137
+ # Adding a __version__ part to the cache directory improves traceability
138
+ # by indicating which StrictDoc version the cache belongs to.
139
+ # This helps prevent issues when switching between versions that may use
140
+ # incompatible cache schemas.
141
+ dir_for_sdoc_cache = os.path.join(dir_for_sdoc_cache, __version__)
142
+
137
143
  self.dir_for_sdoc_cache: str = dir_for_sdoc_cache
138
144
 
139
145
  self.project_features: List[str] = project_features
@@ -251,6 +257,14 @@ class ProjectConfig:
251
257
  if (output_dir_ := server_config.output_path) is not None:
252
258
  self.output_dir = output_dir_
253
259
  self.export_output_html_root = os.path.join(output_dir_, "html")
260
+ # If a custom cache folder is not specified in the config, adjust the
261
+ # cache folder to be located in the output folder.
262
+ if self.dir_for_sdoc_cache.startswith(
263
+ ProjectConfig.DEFAULT_DIR_FOR_SDOC_CACHE
264
+ ):
265
+ self.dir_for_sdoc_cache = os.path.join(
266
+ output_dir_, "_cache", __version__
267
+ )
254
268
 
255
269
  self.export_formats = ["html"]
256
270
  self.generate_bundle_document = False
@@ -270,8 +284,27 @@ class ProjectConfig:
270
284
  source_root_path = source_root_path.rstrip("/")
271
285
  self.source_root_path = source_root_path
272
286
 
273
- self.output_dir = export_config.output_dir
274
- self.export_output_html_root = export_config.output_html_root
287
+ #
288
+ # Adjust the default output dir to the user-provided dir if needed.
289
+ #
290
+ output_dir = self.output_dir
291
+ if export_config.output_dir is not None:
292
+ output_dir = export_config.output_dir
293
+ if not os.path.isabs(output_dir):
294
+ cwd = os.getcwd()
295
+ output_dir = os.path.join(cwd, output_dir)
296
+ self.output_dir = output_dir
297
+
298
+ # If a custom cache folder is not specified in the config, adjust the
299
+ # cache folder to be located in the output folder.
300
+ if self.dir_for_sdoc_cache.startswith(
301
+ ProjectConfig.DEFAULT_DIR_FOR_SDOC_CACHE
302
+ ):
303
+ self.dir_for_sdoc_cache = os.path.join(
304
+ output_dir, "_cache", __version__
305
+ )
306
+
307
+ self.export_output_html_root = os.path.join(self.output_dir, "html")
275
308
  self.export_formats = export_config.formats
276
309
  self.export_included_documents = export_config.included_documents
277
310
  self.generate_bundle_document = export_config.generate_bundle_document
@@ -121,6 +121,7 @@ class CreateOrUpdateNodeCommand:
121
121
  context_document=self.context_document,
122
122
  ).write_with_validation(field_.field_value)
123
123
  if parsed_html is None:
124
+ assert rst_error is not None
124
125
  form_object.add_error(field_.field_name, rst_error)
125
126
  else:
126
127
  try:
@@ -1,30 +1,30 @@
1
- # mypy: disable-error-code="no-untyped-call,no-untyped-def"
2
1
  from collections import deque
3
- from typing import Deque, Tuple
2
+ from typing import Callable, Deque, List, Set, Tuple
4
3
 
5
4
  from strictdoc.backend.sdoc.errors.document_tree_error import DocumentTreeError
6
- from strictdoc.backend.sdoc.models.model import SDocNodeIF
7
5
 
8
6
  BEFORE = 1
9
7
  AFTER = 2
10
8
 
11
9
 
12
10
  class TreeCycleDetector:
13
- def __init__(self):
14
- self.checked = set()
11
+ def __init__(self) -> None:
12
+ self.checked: Set[str] = set()
15
13
 
16
- def check_node(self, node: SDocNodeIF, links_function):
14
+ def check_node(
15
+ self, node: str, links_function: Callable[[str], List[str]]
16
+ ) -> None:
17
17
  if node in self.checked:
18
18
  return
19
- stack: Deque[Tuple[SDocNodeIF, int]] = deque()
19
+ stack: Deque[Tuple[str, int]] = deque()
20
20
  stack.append((node, BEFORE))
21
- visited = set()
21
+ visited: Set[str] = set()
22
22
  while stack:
23
23
  current_node, token = stack[-1]
24
24
  if token == BEFORE:
25
25
  visited.add(current_node)
26
26
  stack[-1] = (current_node, AFTER)
27
- node_links = links_function(current_node)
27
+ node_links: List[str] = links_function(current_node)
28
28
  for node_link in reversed(node_links):
29
29
  if node_link in visited:
30
30
  cycled_nodes = []
@@ -45,10 +45,24 @@ class TreeCycleDetector:
45
45
 
46
46
 
47
47
  class SingleShotTreeCycleDetector:
48
- def check_node(self, new_uid, node, links_function):
49
- checked = set()
48
+ def check_node(
49
+ self,
50
+ new_uid: str,
51
+ node: str,
52
+ links_function: Callable[[str], List[str]],
53
+ ) -> None:
54
+ """
55
+ Detect if a newly added node would cause a link/relation cycle in the
56
+ traceability index.
57
+
58
+ FIXME: Both cycle detector classes are very similar. Find a way to merge
59
+ them. The added value of this 'single shot' detector is that it
60
+ checks for cycles possibly added by a new node.
61
+ """
62
+
63
+ checked: Set[str] = set()
50
64
 
51
- stack: Deque[Tuple[SDocNodeIF, int]] = deque()
65
+ stack: Deque[Tuple[str, int]] = deque()
52
66
  stack.append((node, BEFORE))
53
67
  visited = {new_uid}
54
68
  while stack:
@@ -1,7 +1,6 @@
1
- # mypy: disable-error-code="arg-type,attr-defined,no-untyped-call,no-untyped-def,union-attr"
2
1
  from collections import defaultdict
3
2
  from enum import Enum
4
- from typing import Dict, Iterable, List, Optional, Set, Union
3
+ from typing import Dict, Iterator, List, Optional, Set, Tuple, Union
5
4
 
6
5
  from starlette.datastructures import FormData
7
6
 
@@ -27,10 +26,10 @@ from strictdoc.backend.sdoc.models.type_system import (
27
26
  GrammarElementFieldSingleChoice,
28
27
  RequirementFieldType,
29
28
  )
29
+ from strictdoc.core.constants import GraphLinkType
30
30
  from strictdoc.core.graph.abstract_bucket import ALL_EDGES
31
31
  from strictdoc.core.project_config import ProjectConfig
32
32
  from strictdoc.core.traceability_index import (
33
- GraphLinkType,
34
33
  TraceabilityIndex,
35
34
  )
36
35
  from strictdoc.core.tree_cycle_detector import SingleShotTreeCycleDetector
@@ -59,7 +58,7 @@ class RequirementFormField:
59
58
  field_type: RequirementFormFieldType,
60
59
  field_value: str,
61
60
  field_gef_type: str = RequirementFieldType.STRING,
62
- ):
61
+ ) -> None:
63
62
  assert isinstance(field_value, str)
64
63
  self.field_mid: str = field_mid
65
64
  self.field_name: str = field_name
@@ -86,10 +85,10 @@ class RequirementFormField:
86
85
  RequirementFieldType.TAG,
87
86
  )
88
87
 
89
- def get_input_field_name(self):
88
+ def get_input_field_name(self) -> str:
90
89
  return f"requirement[fields][{self.field_mid}][value]"
91
90
 
92
- def get_input_field_type_name(self):
91
+ def get_input_field_type_name(self) -> str:
93
92
  return f"requirement[fields][{self.field_mid}][name]"
94
93
 
95
94
  @staticmethod
@@ -173,7 +172,7 @@ class RequirementReferenceFormField:
173
172
  field_type: FieldType,
174
173
  field_value: str,
175
174
  field_role: Optional[str],
176
- ):
175
+ ) -> None:
177
176
  assert isinstance(field_mid, str), field_mid
178
177
  assert isinstance(field_value, str), field_value
179
178
  self.field_mid: str = field_mid
@@ -184,13 +183,13 @@ class RequirementReferenceFormField:
184
183
  )
185
184
  self.validation_messages: List[str] = []
186
185
 
187
- def get_input_field_name(self):
186
+ def get_input_field_name(self) -> str:
188
187
  return "requirement_relation"
189
188
 
190
- def get_value_field_name(self):
189
+ def get_value_field_name(self) -> str:
191
190
  return f"requirement[relations][{self.field_mid}][value]"
192
191
 
193
- def get_type_field_name(self):
192
+ def get_type_field_name(self) -> str:
194
193
  return f"requirement[relations][{self.field_mid}][typerole]"
195
194
 
196
195
 
@@ -217,7 +216,7 @@ class RequirementFormObject(ErrorObject):
217
216
  grammar: DocumentGrammar,
218
217
  # FIXME: Better name.
219
218
  relation_types: List[str],
220
- ):
219
+ ) -> None:
221
220
  super().__init__()
222
221
  assert isinstance(element_type, str), element_type
223
222
  self.is_new: bool = is_new
@@ -256,7 +255,9 @@ class RequirementFormObject(ErrorObject):
256
255
  requirement_fields = defaultdict(list)
257
256
  form_ref_fields: List[RequirementReferenceFormField] = []
258
257
 
259
- context_document_mid = request_form_dict["context_document_mid"]
258
+ context_document_mid = assert_cast(
259
+ request_form_dict["context_document_mid"], str
260
+ )
260
261
  requirement_dict = assert_cast(request_form_dict["requirement"], dict)
261
262
 
262
263
  element_type = assert_cast(request_form_dict["element_type"], str)
@@ -282,24 +283,13 @@ class RequirementFormObject(ErrorObject):
282
283
  relation_role = None
283
284
  else:
284
285
  raise AssertionError("Must not reach here") # pragma: no cover
285
- field_type = (
286
- RequirementReferenceFormField.FieldType.PARENT
287
- if relation_type == "Parent"
288
- else (
289
- RequirementReferenceFormField.FieldType.CHILD
290
- if relation_type == "Child"
291
- else (
292
- RequirementReferenceFormField.FieldType.FILE
293
- if relation_type == "File"
294
- else ""
295
- )
296
- )
297
- )
298
- assert field_type in (
299
- RequirementReferenceFormField.FieldType.PARENT,
300
- RequirementReferenceFormField.FieldType.CHILD,
301
- RequirementReferenceFormField.FieldType.FILE,
302
- )
286
+
287
+ field_type = {
288
+ "Parent": RequirementReferenceFormField.FieldType.PARENT,
289
+ "Child": RequirementReferenceFormField.FieldType.CHILD,
290
+ "File": RequirementReferenceFormField.FieldType.FILE,
291
+ }[relation_type]
292
+
303
293
  relation_value = relation_dict["value"].strip()
304
294
 
305
295
  form_ref_fields.append(
@@ -517,7 +507,7 @@ class RequirementFormObject(ErrorObject):
517
507
 
518
508
  return form_object
519
509
 
520
- def any_errors(self):
510
+ def any_errors(self) -> bool:
521
511
  if super().any_errors():
522
512
  return True
523
513
  for reference_field in self.reference_fields:
@@ -565,7 +555,9 @@ class RequirementFormObject(ErrorObject):
565
555
  raise NotImplementedError(ref_type)
566
556
  return references
567
557
 
568
- def enumerate_fields(self, multiline: bool):
558
+ def enumerate_fields(
559
+ self, multiline: bool
560
+ ) -> Iterator[List[RequirementFormField]]:
569
561
  for field_name_, field in self.fields.items():
570
562
  try:
571
563
  requirement_field: RequirementFormField = field[0]
@@ -582,12 +574,14 @@ class RequirementFormObject(ErrorObject):
582
574
  continue
583
575
  yield field
584
576
 
585
- def enumerate_reference_fields(self):
577
+ def enumerate_reference_fields(
578
+ self,
579
+ ) -> Iterator[List[RequirementReferenceFormField]]:
586
580
  yield from self.reference_fields
587
581
 
588
582
  def enumerate_relation_roles(
589
583
  self, relation_field: RequirementReferenceFormField
590
- ):
584
+ ) -> Iterator[Tuple[str, Optional[str], bool]]:
591
585
  requirement_element = self.grammar.elements_by_type[self.element_type]
592
586
  for relation_ in requirement_element.relations:
593
587
  is_current = (
@@ -608,7 +602,7 @@ class RequirementFormObject(ErrorObject):
608
602
  traceability_index: TraceabilityIndex,
609
603
  context_document: SDocDocument,
610
604
  config: ProjectConfig,
611
- ):
605
+ ) -> None:
612
606
  assert isinstance(traceability_index, TraceabilityIndex)
613
607
  assert isinstance(context_document, SDocDocument)
614
608
 
@@ -723,6 +717,7 @@ class RequirementFormObject(ErrorObject):
723
717
  context_document=context_document,
724
718
  ).write_with_validation(field_value)
725
719
  if parsed_html is None:
720
+ assert rst_error is not None
726
721
  self.add_error(
727
722
  grammar_element_field_.title, rst_error
728
723
  )
@@ -834,60 +829,75 @@ class RequirementFormObject(ErrorObject):
834
829
  reference_field.field_type, field_role_or_none
835
830
  )
836
831
 
837
- # Check if the relation forms a cycle.
838
- ref_uid = reference_field.field_value
832
+ self._validate_no_cycle_by_new_node(
833
+ traceability_index, reference_field, requirement_uid
834
+ )
839
835
 
840
- def parent_lambda(node_id):
841
- node = traceability_index.graph_database.get_link_value(
842
- link_type=GraphLinkType.UID_TO_NODE,
843
- lhs_node=node_id,
844
- )
845
- return list(
846
- map(
847
- lambda node_: node_.reserved_uid,
848
- traceability_index.graph_database.get_link_values(
849
- link_type=GraphLinkType.NODE_TO_PARENT_NODES,
850
- lhs_node=node,
851
- edge=ALL_EDGES,
852
- ),
853
- )
854
- )
836
+ @staticmethod
837
+ def _validate_no_cycle_by_new_node(
838
+ traceability_index: TraceabilityIndex,
839
+ reference_field: RequirementReferenceFormField,
840
+ requirement_uid: str,
841
+ ) -> None:
842
+ """
843
+ Check if a relation being added by a new node would form a cycle.
844
+ """
855
845
 
856
- def child_lambda(node_id) -> Iterable[str]:
857
- node = traceability_index.graph_database.get_link_value(
858
- link_type=GraphLinkType.UID_TO_NODE,
859
- lhs_node=node_id,
860
- )
861
- return list(
862
- map(
863
- lambda node_: node_.reserved_uid,
864
- traceability_index.graph_database.get_link_values(
865
- link_type=GraphLinkType.NODE_TO_CHILD_NODES,
866
- lhs_node=node,
867
- edge=ALL_EDGES,
868
- ),
869
- )
870
- )
846
+ ref_uid = reference_field.field_value
871
847
 
872
- relations_lambda = (
873
- parent_lambda
874
- if reference_field.field_type == "Parent"
875
- else child_lambda
876
- )
848
+ def parent_lambda(node_id: str) -> List[str]:
849
+ node = traceability_index.graph_database.get_link_value(
850
+ link_type=GraphLinkType.UID_TO_NODE,
851
+ lhs_node=node_id,
852
+ )
853
+ return list(
854
+ map(
855
+ lambda node_: node_.reserved_uid,
856
+ traceability_index.graph_database.get_link_values(
857
+ link_type=GraphLinkType.NODE_TO_PARENT_NODES,
858
+ lhs_node=node,
859
+ edge=ALL_EDGES,
860
+ ),
861
+ )
862
+ )
877
863
 
878
- cycle_detector = SingleShotTreeCycleDetector()
879
- try:
880
- cycle_detector.check_node(
881
- requirement_uid,
882
- ref_uid,
883
- relations_lambda,
884
- )
885
- except DocumentTreeError as error_:
886
- reference_field.validation_messages.append(
887
- error_.to_validation_message()
888
- )
864
+ def child_lambda(node_id: str) -> List[str]:
865
+ node = traceability_index.graph_database.get_link_value(
866
+ link_type=GraphLinkType.UID_TO_NODE,
867
+ lhs_node=node_id,
868
+ )
869
+ return list(
870
+ map(
871
+ lambda node_: node_.reserved_uid,
872
+ traceability_index.graph_database.get_link_values(
873
+ link_type=GraphLinkType.NODE_TO_CHILD_NODES,
874
+ lhs_node=node,
875
+ edge=ALL_EDGES,
876
+ ),
877
+ )
878
+ )
879
+
880
+ relations_lambda = (
881
+ parent_lambda
882
+ if reference_field.field_type == "Parent"
883
+ else child_lambda
884
+ )
885
+
886
+ cycle_detector = SingleShotTreeCycleDetector()
887
+ try:
888
+ cycle_detector.check_node(
889
+ requirement_uid,
890
+ ref_uid,
891
+ relations_lambda,
892
+ )
893
+ except DocumentTreeError as error_:
894
+ reference_field.validation_messages.append(
895
+ error_.to_validation_message()
896
+ )
889
897
 
890
- def _validate_choice(self, grammar_element_field: GrammarElementField):
898
+ def _validate_choice(
899
+ self, grammar_element_field: GrammarElementField
900
+ ) -> None:
891
901
  field_0 = self.fields[grammar_element_field.title][0]
892
902
  if len(field_0.field_value) == 0 and not grammar_element_field.required:
893
903
  # The empty choice fields are allowed if the field is not REQUIRED.
@@ -5,7 +5,7 @@ import os
5
5
  import re
6
6
  import sys
7
7
  from pathlib import Path
8
- from typing import Optional
8
+ from typing import Optional, Tuple
9
9
 
10
10
  from docutils.core import publish_parts
11
11
  from docutils.parsers.rst import directives, roles
@@ -145,7 +145,9 @@ class RstToHtmlFragmentWriter:
145
145
 
146
146
  return html
147
147
 
148
- def write_with_validation(self, rst_fragment):
148
+ def write_with_validation(
149
+ self, rst_fragment
150
+ ) -> Tuple[Optional[str], Optional[str]]:
149
151
  # How do I convert a docutils document tree into an HTML string?
150
152
  # https://stackoverflow.com/a/32168938/598057
151
153
  # Use a io.StringIO as the warning stream to prevent warnings from
@@ -11,5 +11,5 @@ class MID(str):
11
11
  def create() -> "MID":
12
12
  return MID(uuid.uuid4().hex)
13
13
 
14
- def get_string_value(self):
14
+ def get_string_value(self) -> str:
15
15
  return str(self)
@@ -0,0 +1,18 @@
1
+ from typing import Dict, List
2
+
3
+
4
+ class ErrorObject:
5
+ def __init__(self) -> None:
6
+ self.errors: Dict[str, List[str]] = {}
7
+
8
+ def any_errors(self) -> bool:
9
+ return len(self.errors) > 0
10
+
11
+ def get_errors(self, field_name: str) -> List[str]:
12
+ if field_name not in self.errors:
13
+ return []
14
+ return self.errors[field_name]
15
+
16
+ def add_error(self, field_name: str, error: str) -> None:
17
+ error_container = self.errors.setdefault(field_name, [])
18
+ error_container.append(error)
@@ -1,16 +0,0 @@
1
- # mypy: disable-error-code="no-untyped-def"
2
- class ErrorObject:
3
- def __init__(self):
4
- self.errors = {}
5
-
6
- def any_errors(self):
7
- return len(self.errors)
8
-
9
- def get_errors(self, field_name):
10
- if field_name not in self.errors:
11
- return []
12
- return self.errors[field_name]
13
-
14
- def add_error(self, field_name, error):
15
- error_container = self.errors.setdefault(field_name, [])
16
- error_container.append(error)
File without changes
File without changes
File without changes
File without changes
File without changes