strictdoc 0.8.0__tar.gz → 0.9.0a1__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 (605) hide show
  1. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/NOTICE +5 -4
  2. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/PKG-INFO +7 -7
  3. strictdoc-0.9.0a1/README.md +4 -0
  4. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/pyproject.toml +20 -7
  5. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/__init__.py +1 -1
  6. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/excel/export/excel_generator.py +18 -10
  7. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/excel/import_/excel_sheet_proxy.py +18 -6
  8. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/excel/import_/excel_to_sdoc_converter.py +8 -2
  9. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/reqif/p01_sdoc/reqif_to_sdoc_converter.py +21 -22
  10. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/reqif/p01_sdoc/sdoc_to_reqif_converter.py +31 -25
  11. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/reqif/reqif_export.py +4 -7
  12. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/reqif/reqif_import.py +4 -3
  13. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/error_handling.py +72 -68
  14. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/grammar/grammar.py +36 -31
  15. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/grammar/grammar_grammar.py +6 -0
  16. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/models/constants.py +7 -1
  17. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/models/document.py +109 -37
  18. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/models/document_config.py +67 -7
  19. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/models/document_from_file.py +26 -15
  20. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/models/document_grammar.py +321 -111
  21. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/models/document_view.py +1 -1
  22. strictdoc-0.9.0a1/strictdoc/backend/sdoc/models/free_text.py +14 -0
  23. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/models/inline_link.py +0 -1
  24. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/models/model.py +35 -31
  25. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/models/node.py +123 -105
  26. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/models/object_factory.py +3 -1
  27. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/models/reference.py +0 -3
  28. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/models/section.py +40 -22
  29. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/models/type_system.py +4 -3
  30. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/processor.py +22 -58
  31. strictdoc-0.9.0a1/strictdoc/backend/sdoc/reader.py +236 -0
  32. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/validations/sdoc_validator.py +45 -49
  33. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/writer.py +98 -74
  34. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc_source_code/caching_reader.py +13 -9
  35. strictdoc-0.9.0a1/strictdoc/backend/sdoc_source_code/comment_parser/marker_lexer.py +59 -0
  36. strictdoc-0.9.0a1/strictdoc/backend/sdoc_source_code/constants.py +11 -0
  37. strictdoc-0.9.0a1/strictdoc/backend/sdoc_source_code/coverage_reports/gcov.py +262 -0
  38. strictdoc-0.9.0a1/strictdoc/backend/sdoc_source_code/helpers/comment_preprocessor.py +30 -0
  39. strictdoc-0.9.0a1/strictdoc/backend/sdoc_source_code/marker_parser.py +212 -0
  40. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc_source_code/models/function_range_marker.py +1 -1
  41. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc_source_code/models/range_marker.py +10 -6
  42. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc_source_code/models/source_file_info.py +25 -17
  43. strictdoc-0.9.0a1/strictdoc/backend/sdoc_source_code/models/source_node.py +19 -0
  44. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc_source_code/processors/general_language_marker_processors.py +1 -1
  45. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc_source_code/reader.py +13 -14
  46. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc_source_code/reader_c.py +49 -36
  47. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc_source_code/reader_python.py +45 -52
  48. strictdoc-0.9.0a1/strictdoc/backend/sdoc_source_code/reader_robot.py +202 -0
  49. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc_source_code/test_reports/junit_xml_reader.py +33 -16
  50. strictdoc-0.9.0a1/strictdoc/backend/sdoc_source_code/test_reports/robot_xml_reader.py +236 -0
  51. strictdoc-0.9.0a1/strictdoc/cli/argument_int_range.py +25 -0
  52. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/cli/command_parser_builder.py +2 -2
  53. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/cli/main.py +11 -7
  54. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/commands/diff_command.py +3 -0
  55. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/commands/manage_autouid_command.py +6 -2
  56. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/actions/export_action.py +3 -2
  57. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/actions/import_action.py +1 -1
  58. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/analyzers/document_stats.py +10 -3
  59. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/analyzers/document_uid_analyzer.py +14 -17
  60. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/document_finder.py +29 -7
  61. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/document_iterator.py +81 -77
  62. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/document_meta.py +5 -5
  63. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/document_tree_iterator.py +7 -26
  64. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/environment.py +14 -23
  65. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/file_dependency_manager.py +2 -2
  66. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/file_traceability_index.py +152 -15
  67. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/file_tree.py +36 -95
  68. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/finders/source_files_finder.py +6 -6
  69. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/graph/abstract_bucket.py +14 -16
  70. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/graph/many_to_many_set.py +4 -26
  71. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/graph/one_to_one_dictionary.py +9 -10
  72. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/graph_database.py +2 -11
  73. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/project_config.py +71 -18
  74. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/query_engine/query_object.py +109 -73
  75. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/query_engine/query_reader.py +0 -3
  76. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/source_tree.py +2 -9
  77. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/traceability_index.py +65 -88
  78. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/traceability_index_builder.py +67 -35
  79. strictdoc-0.9.0a1/strictdoc/core/transforms/delete_requirement.py +63 -0
  80. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/transforms/section.py +1 -1
  81. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/transforms/update_document_config.py +43 -4
  82. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/transforms/update_grammar_element.py +8 -8
  83. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/transforms/update_requirement.py +9 -1
  84. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/tree_cycle_detector.py +6 -4
  85. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/doxygen/doxygen_generator.py +1 -1
  86. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/base.css +27 -19
  87. strictdoc-0.9.0a1/strictdoc/export/html/_static/controllers/anchor_controller.js +174 -0
  88. strictdoc-0.9.0a1/strictdoc/export/html/_static/controllers/autocompletable_field_controller.js +372 -0
  89. strictdoc-0.9.0a1/strictdoc/export/html/_static/controllers/copy_stable_link_button_controller.js +82 -0
  90. strictdoc-0.9.0a1/strictdoc/export/html/_static/controllers/copy_to_clipboard_controller.js +70 -0
  91. strictdoc-0.9.0a1/strictdoc/export/html/_static/controllers/deletable_field_controller.js +19 -0
  92. strictdoc-0.9.0a1/strictdoc/export/html/_static/controllers/draggable_list_controller.js +334 -0
  93. strictdoc-0.9.0a1/strictdoc/export/html/_static/controllers/dropdown_menu_controller.js +46 -0
  94. strictdoc-0.9.0a1/strictdoc/export/html/_static/controllers/editable_field_controller.js +52 -0
  95. strictdoc-0.9.0a1/strictdoc/export/html/_static/controllers/modal_controller.js +47 -0
  96. strictdoc-0.9.0a1/strictdoc/export/html/_static/controllers/movable_field_controller.js +67 -0
  97. strictdoc-0.9.0a1/strictdoc/export/html/_static/controllers/scroll_into_view_controller.js +11 -0
  98. strictdoc-0.9.0a1/strictdoc/export/html/_static/controllers/tabs_controller.js +71 -0
  99. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/element.css +126 -31
  100. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/form.css +7 -8
  101. strictdoc-0.9.0a1/strictdoc/export/html/_static/html2pdf4doc.css +4 -0
  102. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/node.css +21 -15
  103. strictdoc-0.8.0/strictdoc/export/html/_static/requirement.css → strictdoc-0.9.0a1/strictdoc/export/html/_static/node_content.css +186 -78
  104. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/project_coverage.css +143 -8
  105. strictdoc-0.9.0a1/strictdoc/export/html/_static/project_coverage.js +71 -0
  106. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/requirement__temporary.css +1 -1
  107. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/source.css +2 -2
  108. strictdoc-0.9.0a1/strictdoc/export/html/_static/stable_uri_forwarder.js +85 -0
  109. strictdoc-0.9.0a1/strictdoc/export/html/_static/stimulus_umd.min.js +5 -0
  110. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/document_type.py +7 -10
  111. strictdoc-0.9.0a1/strictdoc/export/html/form_objects/document_config_form_object.py +190 -0
  112. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/form_objects/grammar_element_form_object.py +17 -4
  113. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/form_objects/grammar_form_object.py +17 -5
  114. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/form_objects/included_document_form_object.py +7 -5
  115. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/form_objects/requirement_form_object.py +107 -70
  116. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/form_objects/rows/row_with_grammar_element_form_object.py +6 -4
  117. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/form_objects/section_form_object.py +7 -6
  118. strictdoc-0.9.0a1/strictdoc/export/html/generators/project_map.py +24 -0
  119. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/project_statistics.py +16 -16
  120. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/source_file_coverage.py +0 -6
  121. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/source_file_view_generator.py +6 -3
  122. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/traceability_matrix.py +17 -17
  123. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/view_objects/diff_screen_results_view_object.py +31 -9
  124. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/view_objects/diff_screen_view_object.py +1 -5
  125. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/view_objects/document_screen_view_object.py +51 -26
  126. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/view_objects/helpers.py +6 -2
  127. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/view_objects/nestor_view_object.py +5 -1
  128. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/view_objects/project_statistics_view_object.py +10 -8
  129. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/view_objects/project_tree_stats.py +13 -11
  130. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/view_objects/project_tree_view_object.py +16 -6
  131. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/view_objects/search_screen_view_object.py +6 -11
  132. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/view_objects/source_file_view_object.py +7 -19
  133. strictdoc-0.9.0a1/strictdoc/export/html/generators/view_objects/traceability_matrix_view_object.py +55 -0
  134. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/html_generator.py +42 -2
  135. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/html_templates.py +2 -2
  136. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/renderers/link_renderer.py +14 -10
  137. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/renderers/markup_renderer.py +1 -1
  138. strictdoc-0.9.0a1/strictdoc/export/html/templates/_res/svg_ico16_link.jinja +4 -0
  139. strictdoc-0.9.0a1/strictdoc/export/html/templates/actions/document/add_document_metadata/stream_add_document_metadata.jinja.html +11 -0
  140. strictdoc-0.8.0/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_requirement.jinja → strictdoc-0.9.0a1/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_node.jinja +1 -1
  141. strictdoc-0.9.0a1/strictdoc/export/html/templates/autocomplete/field/stream_autocomplete_field.jinja.html +2 -0
  142. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/base.jinja.html +6 -1
  143. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/anchor/index.jinja +1 -4
  144. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/field/index.jinja +1 -1
  145. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/form/field/autocompletable/index.jinja +8 -2
  146. strictdoc-0.9.0a1/strictdoc/export/html/templates/components/form/row/row_with_metadata.jinja +89 -0
  147. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/form/row/row_with_relation.jinja +3 -1
  148. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/form/row/row_with_text_field.jinja +14 -2
  149. strictdoc-0.9.0a1/strictdoc/export/html/templates/components/issue/banner.jinja +26 -0
  150. strictdoc-0.9.0a1/strictdoc/export/html/templates/components/issue/index.jinja +12 -0
  151. strictdoc-0.9.0a1/strictdoc/export/html/templates/components/node/copy_stable_link_button.jinja +18 -0
  152. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node/index.jinja +13 -13
  153. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node/node_controls/card.jinja +3 -3
  154. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node/node_controls/index.jinja +32 -7
  155. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node/readonly.jinja +9 -0
  156. {strictdoc-0.8.0/strictdoc/export/html/templates/components/requirement → strictdoc-0.9.0a1/strictdoc/export/html/templates/components/node_content}/card.jinja +1 -1
  157. {strictdoc-0.8.0/strictdoc/export/html/templates/components/requirement → strictdoc-0.9.0a1/strictdoc/export/html/templates/components/node_content}/card_extends_card.jinja +1 -1
  158. strictdoc-0.9.0a1/strictdoc/export/html/templates/components/node_content/index.jinja +68 -0
  159. {strictdoc-0.8.0/strictdoc/export/html/templates/components/requirement → strictdoc-0.9.0a1/strictdoc/export/html/templates/components/node_content}/index_extends_node.jinja +1 -1
  160. {strictdoc-0.8.0/strictdoc/export/html/templates/components/requirement → strictdoc-0.9.0a1/strictdoc/export/html/templates/components/node_content}/index_extends_readonly.jinja +2 -2
  161. {strictdoc-0.8.0/strictdoc/export/html/templates/components/requirement → strictdoc-0.9.0a1/strictdoc/export/html/templates/components/node_content}/tiny.jinja +3 -3
  162. {strictdoc-0.8.0/strictdoc/export/html/templates/components/requirement → strictdoc-0.9.0a1/strictdoc/export/html/templates/components/node_content}/tiny_extends_card.jinja +1 -1
  163. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node_field/comments/index.jinja +3 -3
  164. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node_field/document_meta/index.jinja +20 -3
  165. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node_field/files/index.jinja +4 -4
  166. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node_field/links/index.jinja +6 -6
  167. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node_field/meta/index.jinja +3 -3
  168. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node_field/multiline/index.jinja +3 -3
  169. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node_field/rationale/index.jinja +3 -3
  170. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node_field/section_h/index.jinja +1 -1
  171. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node_field/section_h/pdf.jinja +1 -1
  172. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node_field/section_title/index.jinja +1 -1
  173. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node_field/statement/index.jinja +5 -5
  174. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node_field/title/index.jinja +20 -2
  175. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node_field/uid/index.jinja +2 -2
  176. strictdoc-0.9.0a1/strictdoc/export/html/templates/components/table_key_value/index.jinja +16 -0
  177. strictdoc-0.8.0/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_requirement.jinja → strictdoc-0.9.0a1/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_node.jinja +2 -4
  178. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/_shared/project_tree.jinja +3 -3
  179. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/_shared/toc.jinja +5 -5
  180. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/document/frame_document_config_edit.jinja.html +48 -2
  181. strictdoc-0.9.0a1/strictdoc/export/html/templates/screens/document/document/frame_document_content.jinja.html +28 -0
  182. strictdoc-0.9.0a1/strictdoc/export/html/templates/screens/document/document/frame_document_issues.jinja +1 -0
  183. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/document/frame_requirement_form.jinja +17 -1
  184. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/document/index.jinja +25 -18
  185. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/pdf/index.jinja +8 -7
  186. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/pdf/main.jinja +8 -8
  187. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/pdf/toc.jinja +2 -2
  188. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/table/index.jinja +5 -5
  189. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/table/main.jinja +4 -6
  190. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/traceability/index.jinja +11 -9
  191. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/traceability/main.jinja +6 -6
  192. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/traceability_deep/index.jinja +12 -10
  193. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/traceability_deep/main.jinja +6 -6
  194. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/git/changelog_content.jinja +77 -36
  195. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/git/diff_content.jinja +4 -4
  196. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/git/fields/section_fields.jinja +2 -2
  197. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/git/form.jinja +2 -0
  198. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/git/index.jinja +7 -5
  199. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/git/nav_tabs.jinja +1 -0
  200. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/git/node/section.jinja +1 -1
  201. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/nestor/index.jinja +1 -1
  202. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/project_index/index.jinja +9 -6
  203. strictdoc-0.9.0a1/strictdoc/export/html/templates/screens/project_index/project_map.jinja.js +17 -0
  204. strictdoc-0.9.0a1/strictdoc/export/html/templates/screens/project_index/project_map_file.jinja +7 -0
  205. strictdoc-0.9.0a1/strictdoc/export/html/templates/screens/project_index/project_map_folder.jinja +15 -0
  206. strictdoc-0.9.0a1/strictdoc/export/html/templates/screens/project_index/project_map_node.jinja +13 -0
  207. strictdoc-0.9.0a1/strictdoc/export/html/templates/screens/project_index/project_map_section.jinja +16 -0
  208. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/project_index/project_tree_file.jinja +2 -2
  209. strictdoc-0.9.0a1/strictdoc/export/html/templates/screens/project_statistics/main.jinja +195 -0
  210. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/search/index.jinja +6 -4
  211. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/search/main.jinja +3 -3
  212. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/source_file_coverage/file.jinja +20 -13
  213. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/source_file_coverage/folder.jinja +1 -1
  214. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/source_file_coverage/index.jinja +1 -1
  215. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/source_file_coverage/main.jinja +15 -0
  216. strictdoc-0.9.0a1/strictdoc/export/html/templates/screens/source_file_coverage/thead.jinja +47 -0
  217. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/source_file_view/index.jinja +1 -1
  218. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/traceability_matrix/index.jinja +3 -3
  219. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/traceability_matrix/main.jinja +2 -2
  220. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/tools/html_embedded.py +3 -2
  221. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html2pdf/pdf_print_driver.py +6 -3
  222. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/json/json_generator.py +133 -103
  223. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/rst/directives/wildcard_enhanced_image.py +30 -29
  224. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/rst/document_rst_generator.py +0 -5
  225. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/rst/rst_to_html_fragment_writer.py +6 -5
  226. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/rst/writer.py +8 -20
  227. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/spdx/spdx_generator.py +30 -28
  228. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/spdx/spdx_to_sdoc_converter.py +44 -35
  229. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/git/change.py +10 -4
  230. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/git/change_generator.py +4 -2
  231. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/git/git_client.py +3 -71
  232. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/git/project_diff_analyzer.py +149 -145
  233. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/auto_described.py +3 -1
  234. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/cast.py +20 -16
  235. strictdoc-0.9.0a1/strictdoc/helpers/coverage.py +45 -0
  236. strictdoc-0.9.0a1/strictdoc/helpers/deprecation_engine.py +40 -0
  237. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/diff.py +11 -5
  238. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/form_data.py +20 -5
  239. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/google_test.py +4 -2
  240. strictdoc-0.9.0a1/strictdoc/helpers/math.py +11 -0
  241. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/ordered_set.py +2 -1
  242. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/parallelizer.py +69 -38
  243. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/paths.py +2 -2
  244. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/rst.py +0 -10
  245. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/string.py +5 -12
  246. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/server/app.py +13 -13
  247. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/server/error_object.py +0 -3
  248. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/server/helpers/turbo.py +1 -2
  249. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/server/reload_config.py +1 -0
  250. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/server/routers/main_router.py +282 -129
  251. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/server/server.py +2 -2
  252. strictdoc-0.8.0/README.md +0 -8
  253. strictdoc-0.8.0/strictdoc/backend/sdoc/models/free_text.py +0 -64
  254. strictdoc-0.8.0/strictdoc/backend/sdoc/reader.py +0 -104
  255. strictdoc-0.8.0/strictdoc/backend/sdoc_source_code/constants.py +0 -7
  256. strictdoc-0.8.0/strictdoc/backend/sdoc_source_code/marker_parser.py +0 -104
  257. strictdoc-0.8.0/strictdoc/cli/argument_int_range.py +0 -36
  258. strictdoc-0.8.0/strictdoc/core/transforms/create_requirement.py +0 -291
  259. strictdoc-0.8.0/strictdoc/core/transforms/delete_requirement.py +0 -58
  260. strictdoc-0.8.0/strictdoc/export/html/_static/controllers/anchor_controller.js +0 -173
  261. strictdoc-0.8.0/strictdoc/export/html/_static/controllers/autocompletable_field_controller.js +0 -297
  262. strictdoc-0.8.0/strictdoc/export/html/_static/controllers/copy_to_clipboard_controller.js +0 -64
  263. strictdoc-0.8.0/strictdoc/export/html/_static/controllers/deletable_field_controller.js +0 -13
  264. strictdoc-0.8.0/strictdoc/export/html/_static/controllers/draggable_list_controller.js +0 -328
  265. strictdoc-0.8.0/strictdoc/export/html/_static/controllers/dropdown_menu_controller.js +0 -52
  266. strictdoc-0.8.0/strictdoc/export/html/_static/controllers/editable_field_controller.js +0 -46
  267. strictdoc-0.8.0/strictdoc/export/html/_static/controllers/modal_controller.js +0 -41
  268. strictdoc-0.8.0/strictdoc/export/html/_static/controllers/movable_field_controller.js +0 -60
  269. strictdoc-0.8.0/strictdoc/export/html/_static/controllers/scroll_into_view_controller.js +0 -5
  270. strictdoc-0.8.0/strictdoc/export/html/_static/controllers/tabs_controller.js +0 -65
  271. strictdoc-0.8.0/strictdoc/export/html/_static/project_coverage.js +0 -2
  272. strictdoc-0.8.0/strictdoc/export/html/_static/stimulus.min.js +0 -5
  273. strictdoc-0.8.0/strictdoc/export/html/form_objects/document_config_form_object.py +0 -102
  274. strictdoc-0.8.0/strictdoc/export/html/generators/view_objects/traceability_matrix_view_object.py +0 -151
  275. strictdoc-0.8.0/strictdoc/export/html/templates/components/node_field/title/pdf.jinja +0 -18
  276. strictdoc-0.8.0/strictdoc/export/html/templates/components/requirement/index.jinja +0 -32
  277. strictdoc-0.8.0/strictdoc/export/html/templates/components/requirement/pdf.jinja +0 -33
  278. strictdoc-0.8.0/strictdoc/export/html/templates/components/table_key_value/index.jinja +0 -22
  279. strictdoc-0.8.0/strictdoc/export/html/templates/screens/document/document/frame_document_content.jinja.html +0 -25
  280. strictdoc-0.8.0/strictdoc/export/html/templates/screens/project_statistics/main.jinja +0 -101
  281. strictdoc-0.8.0/strictdoc/export/html/templates/screens/source_file_coverage/thead.jinja +0 -29
  282. strictdoc-0.8.0/strictdoc/helpers/math.py +0 -14
  283. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/.gitignore +0 -0
  284. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/LICENSE +0 -0
  285. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/__init__.py +0 -0
  286. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/excel/__init__.py +0 -0
  287. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/excel/excel_import.py +0 -0
  288. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/excel/export/__init__.py +0 -0
  289. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/excel/import_/__init__.py +0 -0
  290. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/reqif/__init__.py +0 -0
  291. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/reqif/p01_sdoc/__init__.py +0 -0
  292. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/reqif/sdoc_reqif_fields.py +0 -0
  293. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/__init__.py +0 -0
  294. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/constants.py +0 -0
  295. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/document_reference.py +0 -0
  296. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/errors/__init__.py +0 -0
  297. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/errors/document_tree_error.py +0 -0
  298. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/free_text_reader.py +0 -0
  299. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/grammar/__init__.py +0 -0
  300. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/grammar/grammar_builder.py +0 -0
  301. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/grammar/type_system.py +0 -0
  302. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/grammar_reader.py +0 -0
  303. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/models/__init__.py +0 -0
  304. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/models/anchor.py +0 -0
  305. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/pickle_cache.py +0 -0
  306. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc/validations/__init__.py +0 -0
  307. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc_source_code/__init__.py +0 -0
  308. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc_source_code/grammar.py +0 -0
  309. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc_source_code/models/__init__.py +0 -0
  310. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc_source_code/models/function.py +0 -0
  311. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc_source_code/models/requirement_marker.py +0 -0
  312. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc_source_code/parse_context.py +0 -0
  313. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/backend/sdoc_source_code/tree_sitter_helpers.py +0 -0
  314. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/cli/__init__.py +0 -0
  315. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/cli/cli_arg_parser.py +0 -0
  316. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/commands/__init__.py +0 -0
  317. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/commands/about_command.py +0 -0
  318. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/commands/dump_grammar_command.py +0 -0
  319. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/commands/version_command.py +0 -0
  320. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/__init__.py +0 -0
  321. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/actions/__init__.py +0 -0
  322. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/asset_manager.py +0 -0
  323. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/constants.py +0 -0
  324. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/document_tree.py +0 -0
  325. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/finders/__init__.py +0 -0
  326. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/graph/validations.py +0 -0
  327. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/query_engine/grammar.py +0 -0
  328. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/transforms/constants.py +0 -0
  329. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/transforms/delete_section.py +0 -0
  330. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/transforms/update_grammar.py +0 -0
  331. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/transforms/update_included_document.py +0 -0
  332. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/core/transforms/validation_error.py +0 -0
  333. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/__init__.py +0 -0
  334. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/autogen.css +0 -0
  335. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/collapsible_list.js +0 -0
  336. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/collapsible_toc.js +0 -0
  337. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/collapsible_tree.js +0 -0
  338. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/content.css +0 -0
  339. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/diff.css +0 -0
  340. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/diff.js +0 -0
  341. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/favicon.ico +0 -0
  342. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/fonts/NotoSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  343. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/fonts/NotoSans-VariableFont_wdth,wght.ttf +0 -0
  344. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/fonts/NotoSansMono-VariableFont_wdth,wght.ttf +0 -0
  345. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/layout.css +0 -0
  346. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/pan_with_space.js +0 -0
  347. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/project_tree.css +0 -0
  348. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/project_tree.js +0 -0
  349. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/requirement-tree.css +0 -0
  350. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/requirements-coverage.js +0 -0
  351. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/resizable_bar.js +0 -0
  352. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/source-code-coverage.js +0 -0
  353. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/table_vew.css +0 -0
  354. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/toc_highlighting.js +0 -0
  355. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/traceability_matrix.css +0 -0
  356. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/tree(not_in_use).css +0 -0
  357. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/turbo.min.js +0 -0
  358. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/viewtype_menu.js +0 -0
  359. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static/zoomable.js +0 -0
  360. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/LICENSE-MATHJAX +0 -0
  361. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/tex.js +0 -0
  362. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff +0 -0
  363. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff +0 -0
  364. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff +0 -0
  365. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff +0 -0
  366. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff +0 -0
  367. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff +0 -0
  368. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff +0 -0
  369. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +0 -0
  370. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff +0 -0
  371. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +0 -0
  372. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff +0 -0
  373. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff +0 -0
  374. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff +0 -0
  375. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff +0 -0
  376. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff +0 -0
  377. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff +0 -0
  378. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +0 -0
  379. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +0 -0
  380. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff +0 -0
  381. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff +0 -0
  382. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff +0 -0
  383. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff +0 -0
  384. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff +0 -0
  385. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mathjax/tex-mml-chtml.js +0 -0
  386. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/mermaid/mermaid.min.js +0 -0
  387. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/nestor/bundle.umd.js +0 -0
  388. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/_static_extra/rapidoc/rapidoc-min.js +0 -0
  389. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/form_objects/form_object.py +0 -0
  390. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/__init__.py +0 -0
  391. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/document.py +0 -0
  392. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/document_deep_trace.py +0 -0
  393. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/document_pdf.py +0 -0
  394. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/document_table.py +0 -0
  395. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/document_trace.py +0 -0
  396. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/generators/document_tree.py +0 -0
  397. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/renderers/__init__.py +0 -0
  398. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/renderers/html_fragment_writer.py +0 -0
  399. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/renderers/text_to_html_writer.py +0 -0
  400. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg__separator.jinja.html +0 -0
  401. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_add.jinja.html +0 -0
  402. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_add_above.jinja +0 -0
  403. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_add_below.jinja +0 -0
  404. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_add_child.jinja +0 -0
  405. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_anchor.jinja +0 -0
  406. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_back.jinja.html +0 -0
  407. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_book.jinja.html +0 -0
  408. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_close.jinja +0 -0
  409. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_code.jinja.html +0 -0
  410. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_copy.jinja +0 -0
  411. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_delete.jinja.html +0 -0
  412. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_diff.jinja +0 -0
  413. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_document.jinja.html +0 -0
  414. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_done.jinja +0 -0
  415. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_edit.jinja.html +0 -0
  416. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_expand.jinja.html +0 -0
  417. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_file.jinja +0 -0
  418. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_folder.jinja +0 -0
  419. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_folder_collapse.jinja +0 -0
  420. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_folder_sm.jinja +0 -0
  421. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_fragment.jinja +0 -0
  422. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_fragment_draft.jinja +0 -0
  423. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_gear.jinja.html +0 -0
  424. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_go_to_doc.jinja +0 -0
  425. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_index.jinja.html +0 -0
  426. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_list.jinja.html +0 -0
  427. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_maximize.jinja +0 -0
  428. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_minimize.jinja +0 -0
  429. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_minusminus.jinja.html +0 -0
  430. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_move_down.jinja.html +0 -0
  431. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_move_up.jinja.html +0 -0
  432. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_plusplus.jinja.html +0 -0
  433. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_project.jinja.html +0 -0
  434. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_requirement.jinja.html +0 -0
  435. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_reset.jinja +0 -0
  436. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_search.jinja +0 -0
  437. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_section_collapse.jinja +0 -0
  438. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_source.jinja.html +0 -0
  439. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_source_pointer_in.jinja +0 -0
  440. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_source_pointer_out.jinja +0 -0
  441. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_stat.jinja +0 -0
  442. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_sync.jinja +0 -0
  443. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_toc.jinja.html +0 -0
  444. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_res/svg_ico16_tree.jinja +0 -0
  445. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_shared/nav.jinja.html +0 -0
  446. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_shared/requirement_tree_left.jinja.html +0 -0
  447. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_shared/requirement_tree_right.jinja.html +0 -0
  448. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/_shared/tags.jinja.html +0 -0
  449. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/_shared/stream_refresh_document.jinja.html +0 -0
  450. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/_shared/stream_updated_toc.jinja.html +0 -0
  451. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/add_requirement_comment/stream_add_requirement_comment.jinja.html +0 -0
  452. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/add_requirement_relation/stream_add_requirement_relation.jinja.html +0 -0
  453. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/create_requirement/stream_cancel_new_requirement.jinja.html +0 -0
  454. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/create_requirement/stream_created_requirement.jinja.html +0 -0
  455. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/create_requirement/stream_new_requirement.jinja.html +0 -0
  456. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/create_section/stream_cancel_new_section.jinja.html +0 -0
  457. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/create_section/stream_created_section.jinja.html +0 -0
  458. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/create_section/stream_new_section.jinja.html +0 -0
  459. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_confirm_delete_requirement.jinja +0 -0
  460. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_delete_requirement.jinja.html +0 -0
  461. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/delete_section/stream_confirm_delete_section.jinja +0 -0
  462. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/delete_section/stream_delete_section.jinja.html +0 -0
  463. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_cancel_edit_document_config.jinja.html +0 -0
  464. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_edit_document_config.jinja.html +0 -0
  465. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_save_document_config.jinja.html +0 -0
  466. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/edit_requirement/stream_edit_requirement.jinja.html +0 -0
  467. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/edit_section/stream_edit_section.jinja.html +0 -0
  468. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/document/edit_section/stream_updated_section.jinja.html +0 -0
  469. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_section.jinja +0 -0
  470. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_form_import_reqif_document.jinja.html +0 -0
  471. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_refresh_with_imported_reqif_document.jinja.html +0 -0
  472. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/project_index/stream_create_document.jinja.html +0 -0
  473. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/actions/project_index/stream_new_document.jinja.html +0 -0
  474. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/autocomplete/uid/stream_autocomplete_uid.jinja.html +0 -0
  475. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/badge/index.jinja +0 -0
  476. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/button/cancel.jinja +0 -0
  477. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/button/confirm.jinja +0 -0
  478. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/button/delete.jinja +0 -0
  479. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/button/diff.jinja +0 -0
  480. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/button/search.jinja +0 -0
  481. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/button/submit.jinja +0 -0
  482. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/confirm/_usage_example.jinja +0 -0
  483. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/confirm/index.jinja +0 -0
  484. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/form/field/contenteditable/index.jinja +0 -0
  485. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/form/field/file/index.jinja +0 -0
  486. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/form/field/text/index.jinja +0 -0
  487. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/form/field_action_button/index.jinja +0 -0
  488. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/form/index.jinja +0 -0
  489. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/form/row/index.jinja +0 -0
  490. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/example.jinja.html +0 -0
  491. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/frame.jinja +0 -0
  492. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/stream.jinja +0 -0
  493. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/form/row/row_with_comment.jinja +0 -0
  494. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/form/search.jinja +0 -0
  495. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/grammar_form/index.jinja +0 -0
  496. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/grammar_form/row_with_grammar_element/index.jinja +0 -0
  497. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/grammar_form/row_with_new_grammar_element/index.jinja +0 -0
  498. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/grammar_form_element/index.jinja +0 -0
  499. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/grammar_form_element/row_with_custom_field/index.jinja +0 -0
  500. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/grammar_form_element/row_with_relation/index.jinja +0 -0
  501. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/grammar_form_element/row_with_reserved_field/index.jinja +0 -0
  502. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/header/_usage_example.jinja +0 -0
  503. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/header/header_pagetype.jinja +0 -0
  504. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/header/index.jinja +0 -0
  505. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/included_document_form/index.jinja +0 -0
  506. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/modal/_usage_example.jinja +0 -0
  507. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/modal/form.jinja +0 -0
  508. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/modal/index.jinja +0 -0
  509. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node/card.jinja +0 -0
  510. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node/root.jinja +0 -0
  511. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node_field/README.txt +0 -0
  512. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node_field/document_title/index.jinja +0 -0
  513. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node_field/text/index.jinja +0 -0
  514. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/node_field/uid_standalone/index.jinja +0 -0
  515. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/resizable_bar/index.jinja +0 -0
  516. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/section/card.jinja +0 -0
  517. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/section/card_extends_card.jinja +0 -0
  518. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/section/index.jinja +0 -0
  519. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/section/index_extends_node.jinja +0 -0
  520. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/section/pdf.jinja +0 -0
  521. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/section/tiny.jinja +0 -0
  522. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/section/tiny_extends_card.jinja +0 -0
  523. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/text_node/card.jinja +0 -0
  524. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/text_node/card_extends_card.jinja +0 -0
  525. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/text_node/index.jinja +0 -0
  526. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/text_node/index_extends_node.jinja +0 -0
  527. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/text_node/pdf.jinja +0 -0
  528. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/text_node/tiny.jinja +0 -0
  529. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/components/text_node/tiny_extends_card.jinja +0 -0
  530. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/rst/anchor.jinja +0 -0
  531. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/_shared/frame_header_document_title.jinja +0 -0
  532. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_section.jinja +0 -0
  533. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/_shared/frame_toc.jinja +0 -0
  534. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/_shared/project_tree_child_documents.jinja +0 -0
  535. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_project_tree.jinja +0 -0
  536. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_toc.jinja +0 -0
  537. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/_shared/viewtype_menu.jinja +0 -0
  538. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/document/actions.jinja +0 -0
  539. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/document/frame_document_config.jinja.html +0 -0
  540. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/document/frame_section_form.jinja +0 -0
  541. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/document/main.jinja +0 -0
  542. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/pdf/template/footer.jinja +0 -0
  543. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/pdf/template/frontpage.jinja +0 -0
  544. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/document/pdf/template/header.jinja +0 -0
  545. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/git/diff_controls.jinja +0 -0
  546. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/git/fields/document_fields.jinja +0 -0
  547. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/git/fields/requirement_fields.jinja +0 -0
  548. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/git/frame_changelog_result.jinja +0 -0
  549. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/git/frame_diff_result.jinja +0 -0
  550. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/git/legend.jinja +0 -0
  551. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/git/main.jinja +0 -0
  552. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/git/node/requirement.jinja +0 -0
  553. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/git/skeleton.jinja +0 -0
  554. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/git/sync/button.jinja +0 -0
  555. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/project_index/actions.jinja +0 -0
  556. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/project_index/frame_form_import_reqif.jinja.html +0 -0
  557. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/project_index/frame_form_new_document.jinja.html +0 -0
  558. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/project_index/frame_project_tree.jinja.html +0 -0
  559. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/project_index/main.jinja +0 -0
  560. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/project_index/project_tree.jinja +0 -0
  561. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/project_index/project_tree_folder.jinja +0 -0
  562. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/project_statistics/index.jinja +0 -0
  563. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/search/legend.jinja +0 -0
  564. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/source_file_coverage/value_bar.jinja +0 -0
  565. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/source_file_view/aside.jinja +0 -0
  566. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/source_file_view/file_stats.jinja +0 -0
  567. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/source_file_view/header__actions.jinja +0 -0
  568. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/source_file_view/header__source_file_name.jinja +0 -0
  569. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/source_file_view/main.jinja +0 -0
  570. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/source_file_view/node_title_for_banner_header.jinja +0 -0
  571. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/source_file_view/range_button.jinja +0 -0
  572. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/source_file_view/requirement.jinja +0 -0
  573. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/traceability_matrix/file.jinja +0 -0
  574. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/traceability_matrix/project_tree_flat_anchor_list.jinja +0 -0
  575. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/traceability_matrix/requirement.jinja.html +0 -0
  576. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/screens/traceability_matrix/resizable_bar_with_project_tree.jinja +0 -0
  577. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/website/document/index.jinja +0 -0
  578. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/templates/websocket.jinja.html +0 -0
  579. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html/tools/__init__.py +0 -0
  580. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/html2pdf/html2pdf_generator.py +0 -0
  581. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/rst/__init__.py +0 -0
  582. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/rst/directives/raw_html_role.py +0 -0
  583. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/rst/rst_templates.py +0 -0
  584. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/rst/templates/requirement.jinja.rst +0 -0
  585. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/export/spdx/spdx_sdoc_container.py +0 -0
  586. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/__init__.py +0 -0
  587. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/exception.py +0 -0
  588. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/file_modification_time.py +0 -0
  589. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/file_stats.py +0 -0
  590. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/file_system.py +0 -0
  591. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/git_client.py +0 -0
  592. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/md5.py +0 -0
  593. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/mid.py +0 -0
  594. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/net.py +0 -0
  595. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/path_filter.py +0 -0
  596. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/pickle.py +0 -0
  597. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/sha256.py +0 -0
  598. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/shard.py +0 -0
  599. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/sorting.py +0 -0
  600. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/textx.py +0 -0
  601. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/helpers/timing.py +0 -0
  602. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/server/__init__.py +0 -0
  603. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/server/config.py +0 -0
  604. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/strictdoc/server/routers/other_router.py +0 -0
  605. {strictdoc-0.8.0 → strictdoc-0.9.0a1}/tests/integration/scripting_examples/questionnaires/02_user_provided_example/LICENSE +0 -0
@@ -21,26 +21,27 @@ LICENSE file for more information.
21
21
  Contributors
22
22
  ------------
23
23
 
24
- Please visit: https://strictdoc.readthedocs.io/en/latest/strictdoc_30_credits.html.
24
+ Please visit: https://strictdoc.readthedocs.io/en/latest/latest/docs/strictdoc_30_credits.html.
25
25
 
26
26
  Third-party libraries and tools used in this project
27
27
  ----------------------------------------------------
28
28
 
29
29
  - textX, MIT License, https://github.com/textX/textX/blob/master/LICENSE.txt
30
- - Sphinx, The 2-clause BSD License, https://github.com/sphinx-doc/sphinx/blob/master/LICENSE
30
+ - Sphinx, The 2-clause BSD License, https://github.com/sphinx-doc/sphinx/blob/master/LICENSE.rst
31
31
  - Docutils, Public Domain Dedication with exceptions, https://docutils.sourceforge.io/COPYING.html
32
32
  - reqif, Apache 2 License, https://github.com/strictdoc-project/reqif/blob/main/LICENSE
33
33
  - lxml, The 3-Clause BSD License, https://github.com/lxml/lxml/blob/master/doc/licenses/BSD.txt
34
34
  - FastAPI, MIT License, https://github.com/tiangolo/fastapi/blob/master/LICENSE
35
35
  - Turbo.js, MIT License, https://github.com/hotwired/turbo/blob/main/MIT-LICENSE
36
36
  - Stimulus.js, MIT License, https://github.com/hotwired/stimulus/blob/main/LICENSE.md
37
- - Jinja, BSD 3-Clause "New" or "Revised" License, https://github.com/pallets/jinja/blob/main/LICENSE.rst
37
+ - Jinja, BSD 3-Clause "New" or "Revised" License, https://github.com/pallets/jinja/blob/main/LICENSE.txt
38
38
  - Pygments, BSD 2-Clause "Simplified" License, https://github.com/pygments/pygments/blob/master/LICENSE
39
39
  - XlsxWriter, BSD 2-Clause "Simplified" License, https://github.com/jmcnamara/XlsxWriter/blob/main/LICENSE.txt
40
40
  - xlrd, The 3-Clause BSD License and another license for earlier work, https://github.com/python-excel/xlrd/blob/master/LICENSE
41
41
  - python-datauri, The Unlicense, https://github.com/fcurella/python-datauri/blob/master/LICENSE
42
+ - tree-sitter, MIT License, https://github.com/tree-sitter/tree-sitter/blob/master/LICENSE
42
43
 
43
- Please also visit: https://strictdoc.readthedocs.io/en/latest/strictdoc_30_credits.html.
44
+ Please also visit: https://strictdoc.readthedocs.io/en/latest/latest/docs/strictdoc_30_credits.html.
44
45
 
45
46
  Contact
46
47
  -------
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: strictdoc
3
- Version: 0.8.0
3
+ Version: 0.9.0a1
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/
@@ -9,27 +9,31 @@ Author-email: Stanislav Pankevich <s.pankevich@gmail.com>, Maryna Balioura <mett
9
9
  License-Expression: Apache-2.0
10
10
  License-File: LICENSE
11
11
  License-File: NOTICE
12
- Classifier: License :: OSI Approved :: BSD License
12
+ Classifier: License :: OSI Approved :: Apache Software License
13
13
  Classifier: Operating System :: OS Independent
14
14
  Classifier: Programming Language :: Python :: 3
15
15
  Classifier: Programming Language :: Python :: 3.8
16
16
  Classifier: Programming Language :: Python :: 3.9
17
17
  Classifier: Programming Language :: Python :: 3.10
18
18
  Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
19
21
  Classifier: Programming Language :: Python :: Implementation :: CPython
20
22
  Classifier: Programming Language :: Python :: Implementation :: PyPy
21
23
  Requires-Python: >=3.8
22
24
  Requires-Dist: beautifulsoup4==4.*,>=4.12.0
23
25
  Requires-Dist: docutils==0.*,>=0.16
24
26
  Requires-Dist: fastapi>=0.83.0
25
- Requires-Dist: html2print>=0.0.15
27
+ Requires-Dist: html2pdf4doc>=0.0.18
26
28
  Requires-Dist: html5lib>=1.1
27
29
  Requires-Dist: jinja2>=2.11.2
30
+ Requires-Dist: lark>=1.2.2
28
31
  Requires-Dist: openpyxl>=3.1.0
29
32
  Requires-Dist: pygments==2.*,>=2.10.0
30
33
  Requires-Dist: python-datauri==2.*,>=2.1.1
31
34
  Requires-Dist: python-multipart
32
35
  Requires-Dist: reqif==0.*,>=0.0.39
36
+ Requires-Dist: robotframework>=4.0.0
33
37
  Requires-Dist: spdx-tools
34
38
  Requires-Dist: textx==4.*,>=4.0.0
35
39
  Requires-Dist: toml
@@ -50,9 +54,5 @@ Description-Content-Type: text/markdown
50
54
 
51
55
  # StrictDoc
52
56
 
53
- ![](https://github.com/stanislaw/strictdoc/actions/workflows/ci-mac.yml/badge.svg)
54
- ![](https://github.com/stanislaw/strictdoc/actions/workflows/ci-linux-ubuntu-latest.yml/badge.svg)
55
- ![](https://github.com/stanislaw/strictdoc/actions/workflows/ci-windows.yml/badge.svg)
56
-
57
57
  The documentation is hosted on Read the Docs:
58
58
  [StrictDoc documentation](https://strictdoc.readthedocs.io/en/stable/).
@@ -0,0 +1,4 @@
1
+ # StrictDoc
2
+
3
+ The documentation is hosted on Read the Docs:
4
+ [StrictDoc documentation](https://strictdoc.readthedocs.io/en/stable/).
@@ -31,24 +31,24 @@ authors = [
31
31
  { name = "Maryna Balioura", email = "mettta@gmail.com" },
32
32
  ]
33
33
  classifiers = [
34
- # "Development Status :: 4 - Beta",
35
- # "Environment :: Web Environment",
36
- # "Intended Audience :: Developers",
37
- "License :: OSI Approved :: BSD License",
34
+ "License :: OSI Approved :: Apache Software License",
38
35
  "Operating System :: OS Independent",
39
36
  "Programming Language :: Python :: 3",
40
37
  "Programming Language :: Python :: 3.8",
41
38
  "Programming Language :: Python :: 3.9",
42
39
  "Programming Language :: Python :: 3.10",
43
40
  "Programming Language :: Python :: 3.11",
41
+ "Programming Language :: Python :: 3.12",
42
+ "Programming Language :: Python :: 3.13",
44
43
  "Programming Language :: Python :: Implementation :: CPython",
45
44
  "Programming Language :: Python :: Implementation :: PyPy",
46
- # "Topic :: Internet :: WWW/HTTP",
47
45
  ]
48
46
 
49
47
  # @sdoc[SDOC-SRS-89]
50
48
  dependencies = [
51
49
  "textx >= 4.0.0, == 4.*",
50
+ "lark >= 1.2.2",
51
+
52
52
  "jinja2 >= 2.11.2",
53
53
  # Reading project config from strictdoc.toml file.
54
54
  "toml",
@@ -88,7 +88,10 @@ dependencies = [
88
88
  "WebSockets",
89
89
 
90
90
  # HTML2PDF dependencies
91
- "html2print >= 0.0.15",
91
+ "html2pdf4doc >= 0.0.18",
92
+
93
+ # Robot Framework dependencies
94
+ "robotframework >= 4.0.0",
92
95
  ]
93
96
  # @sdoc[/SDOC-SRS-89]
94
97
 
@@ -110,7 +113,6 @@ strictdoc = "strictdoc.cli.main:main"
110
113
 
111
114
  [project.urls]
112
115
  Changelog = "https://github.com/strictdoc-project/strictdoc/blob/main/CHANGELOG.md"
113
- # Funding = "https://..."
114
116
  Homepage = "https://strictdoc.readthedocs.io/en/stable/"
115
117
  Source = "https://github.com/strictdoc-project/strictdoc"
116
118
 
@@ -119,3 +121,14 @@ addopts = "--import-mode=importlib"
119
121
  pythonpath = [
120
122
  "."
121
123
  ]
124
+
125
+ [tool.fixit]
126
+ enable = [
127
+ ".developer.fixit.check_comments",
128
+ ".developer.fixit.check_docstrings",
129
+ ]
130
+
131
+ # FIXME: Remove disable.
132
+ disable = [
133
+ "fixit.rules"
134
+ ]
@@ -1,6 +1,6 @@
1
1
  from strictdoc.core.environment import SDocRuntimeEnvironment
2
2
 
3
- __version__ = "0.8.0"
3
+ __version__ = "0.9.0a1"
4
4
 
5
5
 
6
6
  environment = SDocRuntimeEnvironment(__file__)
@@ -1,4 +1,4 @@
1
- # mypy: disable-error-code="arg-type,no-untyped-def,type-arg,union-attr,var-annotated"
1
+ # mypy: disable-error-code="arg-type,no-untyped-def,union-attr"
2
2
  import os
3
3
  from pathlib import Path
4
4
  from typing import Dict, List
@@ -8,6 +8,7 @@ from xlsxwriter.workbook import Workbook
8
8
  from xlsxwriter.worksheet import Worksheet
9
9
 
10
10
  from strictdoc.backend.sdoc.models.document import SDocDocument
11
+ from strictdoc.backend.sdoc.models.model import SDocElementIF
11
12
  from strictdoc.backend.sdoc.models.node import SDocNode
12
13
  from strictdoc.backend.sdoc.models.reference import (
13
14
  FileReference,
@@ -78,19 +79,26 @@ class ExcelGenerator:
78
79
  # TODO: Check if all fields are defined by the DocumentGrammar
79
80
  columns = ExcelGenerator._init_columns_width(fields)
80
81
 
81
- req_uid_rows = ExcelGenerator._lookup_refs(
82
- traceability_index.get_document_iterator(document).all_content(
83
- print_fragments=False, print_fragments_from_files=False
82
+ document_iterator = traceability_index.get_document_iterator(
83
+ document
84
+ )
85
+ all_nodes = list(
86
+ map(
87
+ lambda node_with_context_: node_with_context_[0],
88
+ document_iterator.all_content(
89
+ print_fragments=False, print_fragments_from_files=False
90
+ ),
84
91
  )
85
92
  )
93
+ req_uid_rows = ExcelGenerator._lookup_refs(all_nodes)
86
94
 
87
95
  if len(req_uid_rows):
88
- for node in traceability_index.get_document_iterator(
96
+ for node, _ in traceability_index.get_document_iterator(
89
97
  document
90
98
  ).all_content(
91
99
  print_fragments=False, print_fragments_from_files=False
92
100
  ):
93
- if not node.is_requirement or not node.reserved_uid:
101
+ if not node.is_requirement() or not node.reserved_uid:
94
102
  # only export the requirements with uid
95
103
  continue
96
104
 
@@ -224,7 +232,7 @@ class ExcelGenerator:
224
232
  os.unlink(document_out_file)
225
233
 
226
234
  @staticmethod
227
- def _lookup_refs(document_contents: List) -> Dict[str, int]:
235
+ def _lookup_refs(document_contents: List[SDocElementIF]) -> Dict[str, int]:
228
236
  refs: Dict[str, int] = {}
229
237
  row = 1
230
238
 
@@ -239,7 +247,7 @@ class ExcelGenerator:
239
247
 
240
248
  @staticmethod
241
249
  def _init_columns_width(fields: List[str]):
242
- columns = {}
250
+ columns: Dict[str, Dict[str, int]] = {}
243
251
 
244
252
  for field in fields:
245
253
  columns[field] = {}
@@ -260,8 +268,8 @@ class ExcelGenerator:
260
268
  worksheet.set_column(idx, idx, columns[field][MAX_WIDTH_KEY])
261
269
 
262
270
  @staticmethod
263
- def _init_headers(fields: List[str]) -> List:
264
- headers: List = []
271
+ def _init_headers(fields: List[str]) -> List[str]:
272
+ headers: List[str] = []
265
273
 
266
274
  for field in fields:
267
275
  headers.append({"header": field.upper()})
@@ -14,7 +14,9 @@ class ExcelLibType(Enum):
14
14
 
15
15
  @auto_described
16
16
  class ExcelSheetProxy:
17
- """This proxy class allows to open either xls(xlrd) or xlsx(openpyxl) with the same interface"""
17
+ """
18
+ This proxy class allows to open either xls(xlrd) or xlsx(openpyxl) with the same interface.
19
+ """
18
20
 
19
21
  def __init__(self, file: str):
20
22
  self.file = file
@@ -35,7 +37,9 @@ class ExcelSheetProxy:
35
37
 
36
38
  @property
37
39
  def name(self) -> str:
38
- """returns the name of the first sheet"""
40
+ """
41
+ Returns the name of the first sheet.
42
+ """
39
43
  if self.lib == ExcelLibType.OPENPYXL:
40
44
  return str(self.sheet.title)
41
45
  elif self.lib == ExcelLibType.XLRD:
@@ -44,7 +48,9 @@ class ExcelSheetProxy:
44
48
 
45
49
  @property
46
50
  def ncols(self) -> int:
47
- """the number of columns"""
51
+ """
52
+ The number of columns.
53
+ """
48
54
  ncols: int = 0
49
55
  if self.lib == ExcelLibType.OPENPYXL:
50
56
  ncols = self.sheet.max_column
@@ -54,7 +60,9 @@ class ExcelSheetProxy:
54
60
 
55
61
  @property
56
62
  def nrows(self) -> int:
57
- """the number of rows"""
63
+ """
64
+ The number of rows.
65
+ """
58
66
  nrows: int = 0
59
67
  if self.lib == ExcelLibType.OPENPYXL:
60
68
  nrows = self.sheet.max_row
@@ -63,7 +71,9 @@ class ExcelSheetProxy:
63
71
  return nrows
64
72
 
65
73
  def get_cell_value(self, row: int, col: int) -> str:
66
- """returns the value at row/col as string"""
74
+ """
75
+ Returns the value at row/col as string.
76
+ """
67
77
  cell_value: str = ""
68
78
  if self.lib == ExcelLibType.OPENPYXL:
69
79
  cell_value = (
@@ -74,7 +84,9 @@ class ExcelSheetProxy:
74
84
  return cell_value
75
85
 
76
86
  def row_values(self, row: int) -> List[str]:
77
- """returns a full row as list"""
87
+ """
88
+ Returns a full row as list.
89
+ """
78
90
  row_values: List[str] = []
79
91
  if self.lib == ExcelLibType.OPENPYXL:
80
92
  row_values = [(cell.value or "") for cell in self.sheet[row + 1]]
@@ -57,7 +57,7 @@ class ExcelToSDocConverter:
57
57
  header_row_idx = i
58
58
  break
59
59
  else:
60
- raise NotImplementedError
60
+ raise NotImplementedError # pragma: no cover
61
61
 
62
62
  header_row = sheet.row_values(header_row_idx)
63
63
  safe_header_row = [safe_name(x) for x in header_row]
@@ -149,7 +149,13 @@ class ExcelToSDocConverter:
149
149
  )
150
150
 
151
151
  requirements_element = GrammarElement(
152
- parent=None, tag="REQUIREMENT", fields=fields, relations=[]
152
+ parent=None,
153
+ tag="REQUIREMENT",
154
+ property_is_composite="",
155
+ property_prefix="",
156
+ property_view_style="",
157
+ fields=fields,
158
+ relations=[],
153
159
  )
154
160
  elements = [requirements_element]
155
161
  grammar = DocumentGrammar(parent=document, elements=elements)
@@ -21,9 +21,7 @@ from strictdoc.backend.sdoc.models.document_config import DocumentConfig
21
21
  from strictdoc.backend.sdoc.models.document_grammar import (
22
22
  DocumentGrammar,
23
23
  GrammarElement,
24
- create_default_relations,
25
24
  )
26
- from strictdoc.backend.sdoc.models.free_text import FreeText
27
25
  from strictdoc.backend.sdoc.models.node import SDocNode, SDocNodeField
28
26
  from strictdoc.backend.sdoc.models.reference import (
29
27
  ParentReqReference,
@@ -136,6 +134,10 @@ class P01_ReqIFToSDocConverter:
136
134
  if not isinstance(spec_object_type_, ReqIFSpecObjectType):
137
135
  continue
138
136
 
137
+ # FIXME: [[NODE]]
138
+ if spec_object_type_.long_name == "SECTION":
139
+ continue
140
+
139
141
  grammar_element: GrammarElement = P01_ReqIFToSDocConverter.create_grammar_element_from_spec_object_type(
140
142
  spec_object_type=spec_object_type_,
141
143
  reqif_bundle=reqif_bundle,
@@ -208,7 +210,7 @@ class P01_ReqIFToSDocConverter:
208
210
  spec_object_type_identifier_
209
211
  )
210
212
  )
211
- if spec_object_type.long_name in ("SECTION", "FREETEXT"):
213
+ if spec_object_type.long_name == "SECTION":
212
214
  continue
213
215
  grammar_element = (
214
216
  context.map_spec_object_type_identifier_to_grammar_node_tags[
@@ -216,8 +218,8 @@ class P01_ReqIFToSDocConverter:
216
218
  ]
217
219
  )
218
220
  if len(grammar_element.relations) == 0:
219
- grammar_element.relations = create_default_relations(
220
- grammar_element
221
+ grammar_element.relations = (
222
+ GrammarElement.create_default_relations(grammar_element)
221
223
  )
222
224
 
223
225
  elements.append(grammar_element)
@@ -307,11 +309,18 @@ class P01_ReqIFToSDocConverter:
307
309
  # fields.
308
310
  pass
309
311
  else:
310
- raise NotImplementedError(attribute) from None
312
+ raise NotImplementedError( # pragma: no cover
313
+ attribute
314
+ ) from None
311
315
 
312
316
  requirement_element = GrammarElement(
313
317
  parent=None,
314
318
  tag=create_safe_requirement_tag_string(spec_object_type.long_name),
319
+ # FIXME: MERGE NODES
320
+ # When the migration is done, make the nodes to be always recursive.
321
+ property_is_composite="",
322
+ property_prefix="",
323
+ property_view_style="",
315
324
  fields=fields,
316
325
  relations=[],
317
326
  )
@@ -364,13 +373,15 @@ class P01_ReqIFToSDocConverter:
364
373
  attribute.definition_ref
365
374
  ].long_name
366
375
  if field_name_or_none is None:
367
- raise NotImplementedError
376
+ raise NotImplementedError # pragma: no cover
368
377
  field_name: str = field_name_or_none
369
378
  if field_name == ReqIFChapterField.CHAPTER_NAME:
370
379
  section_title = attribute.value
371
380
  break
372
381
  else:
373
- raise NotImplementedError(spec_object, attribute_map)
382
+ raise NotImplementedError( # pragma: no cover
383
+ spec_object, attribute_map
384
+ )
374
385
 
375
386
  # Sanitize the title. Titles can also come from XHTML attributes with
376
387
  # custom newlines such as:
@@ -436,7 +447,7 @@ class P01_ReqIFToSDocConverter:
436
447
  attribute.definition_ref
437
448
  ].long_name
438
449
  if long_name_or_none is None:
439
- raise NotImplementedError
450
+ raise NotImplementedError # pragma: no cover
440
451
  field_name: str = long_name_or_none
441
452
  if attribute.attribute_type == SpecObjectAttributeType.ENUMERATION:
442
453
  sdoc_field_name = P01_ReqIFToSDocConverter.convert_requirement_field_from_reqif(
@@ -468,7 +479,7 @@ class P01_ReqIFToSDocConverter:
468
479
 
469
480
  break
470
481
  else:
471
- raise NotImplementedError
482
+ raise NotImplementedError # pragma: no cover
472
483
 
473
484
  enum_values = ", ".join(enum_values_resolved)
474
485
  fields.append(
@@ -604,15 +615,3 @@ class P01_ReqIFToSDocConverter:
604
615
  if len(parent_refs) > 0:
605
616
  requirement.relations = parent_refs
606
617
  return requirement
607
-
608
- @staticmethod
609
- def create_free_text_from_spec_object(
610
- spec_object: ReqIFSpecObject,
611
- ) -> FreeText:
612
- free_text = unescape(
613
- spec_object.attribute_map[ReqIFChapterField.TEXT].value
614
- )
615
- return FreeText(
616
- parent=None,
617
- parts=[free_text],
618
- )
@@ -1,4 +1,4 @@
1
- # mypy: disable-error-code="no-untyped-call,no-untyped-def,type-arg,union-attr"
1
+ # mypy: disable-error-code="no-untyped-call,no-untyped-def,union-attr"
2
2
  import datetime
3
3
  import uuid
4
4
  from collections import defaultdict
@@ -102,11 +102,11 @@ class P01_SDocToReqIFObjectConverter:
102
102
  multiline_is_xhtml=multiline_is_xhtml, enable_mid=enable_mid
103
103
  )
104
104
 
105
- spec_types: List = []
105
+ spec_types: List[ReqIFSpecificationType] = []
106
106
  spec_objects: List[ReqIFSpecObject] = []
107
107
  spec_relations: List[ReqIFSpecRelation] = []
108
108
  specifications: List[ReqIFSpecification] = []
109
- data_types: List = []
109
+ data_types: List[ReqIFDataTypeDefinitionString] = []
110
110
  data_types_lookup = {}
111
111
 
112
112
  specification_type = ReqIFSpecificationType(
@@ -214,7 +214,9 @@ class P01_SDocToReqIFObjectConverter:
214
214
  data_types.append(data_type)
215
215
  data_types_lookup[field.title] = data_type.identifier
216
216
  else:
217
- raise NotImplementedError(field) from None
217
+ raise NotImplementedError( # pragma: no cover
218
+ field
219
+ ) from None
218
220
 
219
221
  document_spec_types = cls._convert_document_grammar_to_spec_types(
220
222
  grammar=assert_cast(document.grammar, DocumentGrammar),
@@ -244,16 +246,10 @@ class P01_SDocToReqIFObjectConverter:
244
246
  current_hierarchy = root_hierarchy
245
247
 
246
248
  # FIXME: ReqIF must export complete documents including fragments.
247
- for node_ in document_iterator.all_content(
249
+ for node_, _ in document_iterator.all_content(
248
250
  print_fragments=False, print_fragments_from_files=False
249
251
  ):
250
- if node_.is_composite_requirement:
251
- raise NotImplementedError(
252
- "Exporting composite requirements is not "
253
- "supported yet.",
254
- node_,
255
- )
256
- if node_.is_section:
252
+ if node_.is_section():
257
253
  section: SDocSection = assert_cast(node_, SDocSection)
258
254
  # fmt: off
259
255
  spec_object = (
@@ -292,7 +288,7 @@ class P01_SDocToReqIFObjectConverter:
292
288
  parents[hierarchy] = current_hierarchy_parent
293
289
  current_hierarchy = hierarchy
294
290
 
295
- elif node_.is_requirement:
291
+ elif node_.is_requirement():
296
292
  requirement = assert_cast(node_, SDocNode)
297
293
  spec_object = cls._convert_requirement_to_spec_object(
298
294
  requirement=requirement,
@@ -443,10 +439,10 @@ class P01_SDocToReqIFObjectConverter:
443
439
  )
444
440
  attributes.append(title_attribute)
445
441
 
446
- """
447
- If MIDs is enabled and this section has an MID, use it for
448
- SPEC-OBJECT IDENTIFIER.
449
- """
442
+ #
443
+ # If MIDs is enabled and this section has an MID, use it for
444
+ # SPEC-OBJECT IDENTIFIER.
445
+ #
450
446
  enable_mid = context.enable_mid and parent_document.config.enable_mid
451
447
  section_identifier: str
452
448
  if enable_mid and section.reserved_mid is not None:
@@ -476,7 +472,7 @@ class P01_SDocToReqIFObjectConverter:
476
472
  requirement: SDocNode,
477
473
  grammar: DocumentGrammar,
478
474
  context: P01_SDocToReqIFBuildContext,
479
- data_types: List,
475
+ data_types: List[ReqIFDataTypeDefinitionString],
480
476
  data_types_lookup: Dict[str, str],
481
477
  ) -> ReqIFSpecObject:
482
478
  node_document = assert_cast(requirement.get_document(), SDocDocument)
@@ -566,7 +562,9 @@ class P01_SDocToReqIFObjectConverter:
566
562
  value=field_value,
567
563
  )
568
564
  else:
569
- raise NotImplementedError(grammar_field) from None
565
+ raise NotImplementedError( # pragma: no cover
566
+ grammar_field
567
+ ) from None
570
568
  attributes.append(attribute)
571
569
 
572
570
  if requirement.reserved_uid is not None:
@@ -598,7 +596,11 @@ class P01_SDocToReqIFObjectConverter:
598
596
  data_types_lookup,
599
597
  context: P01_SDocToReqIFBuildContext,
600
598
  ):
601
- spec_object_types: List = []
599
+ spec_object_types: List[ReqIFSpecificationType] = []
600
+
601
+ grammar_document: SDocDocument = assert_cast(
602
+ grammar.parent, SDocDocument
603
+ )
602
604
 
603
605
  for element in grammar.elements:
604
606
  fields_names = element.get_field_titles()
@@ -654,7 +656,9 @@ class P01_SDocToReqIFObjectConverter:
654
656
  multi_valued=True,
655
657
  )
656
658
  else:
657
- raise NotImplementedError(field) from None
659
+ raise NotImplementedError( # pragma: no cover
660
+ field
661
+ ) from None
658
662
  attribute_definitions.append(attribute)
659
663
 
660
664
  # Extra chapter name attribute.
@@ -675,7 +679,7 @@ class P01_SDocToReqIFObjectConverter:
675
679
  attribute_definitions=attribute_definitions,
676
680
  )
677
681
  spec_object_types.append(spec_object_type)
678
- context.map_grammar_node_tags_to_spec_object_type[grammar.parent][
682
+ context.map_grammar_node_tags_to_spec_object_type[grammar_document][
679
683
  element.tag
680
684
  ] = spec_object_type
681
685
 
@@ -683,20 +687,22 @@ class P01_SDocToReqIFObjectConverter:
683
687
  section_spec_type = (
684
688
  P01_SDocToReqIFObjectConverter._create_section_spec_object_type()
685
689
  )
686
- context.map_grammar_node_tags_to_spec_object_type[grammar.parent][
690
+ context.map_grammar_node_tags_to_spec_object_type[grammar_document][
687
691
  "SECTION"
688
692
  ] = section_spec_type
689
693
  spec_object_types.append(section_spec_type)
690
694
 
691
695
  # Using dict as an ordered set.
692
- spec_relation_tuples: OrderedSet = OrderedSet()
696
+ spec_relation_tuples: OrderedSet[Tuple[str, Optional[str]]] = (
697
+ OrderedSet()
698
+ )
693
699
  for element_ in grammar.elements:
694
700
  for relation_ in element_.relations:
695
701
  spec_relation_tuples.add(
696
702
  (relation_.relation_type, relation_.relation_role)
697
703
  )
698
704
 
699
- spec_relation_types: List = []
705
+ spec_relation_types: List[ReqIFSpecRelationType] = []
700
706
  for spec_relation_tuple_ in spec_relation_tuples:
701
707
  spec_relation_type_name = (
702
708
  spec_relation_tuple_[1]
@@ -1,4 +1,4 @@
1
- # mypy: disable-error-code="arg-type,no-redef,no-untyped-def"
1
+ # mypy: disable-error-code="arg-type,no-untyped-def"
2
2
  import os
3
3
  from pathlib import Path
4
4
 
@@ -35,17 +35,14 @@ class ReqIFExport:
35
35
  f"{project_config.reqif_profile}."
36
36
  )
37
37
 
38
+ output_file_path: str
38
39
  if not reqifz:
39
- output_file_path: str = os.path.join(
40
- output_reqif_root, "output.reqif"
41
- )
40
+ output_file_path = os.path.join(output_reqif_root, "output.reqif")
42
41
  reqif_content: str = ReqIFUnparser.unparse(reqif_bundle)
43
42
  with open(output_file_path, "w", encoding="utf8") as output_file:
44
43
  output_file.write(reqif_content)
45
44
  else:
46
- output_file_path: str = os.path.join(
47
- output_reqif_root, "output.reqifz"
48
- )
45
+ output_file_path = os.path.join(output_reqif_root, "output.reqifz")
49
46
  reqifz_bundle = ReqIFZBundle(
50
47
  reqif_bundles={"document_tree.reqif": reqif_bundle},
51
48
  attachments={},
@@ -1,4 +1,4 @@
1
- # mypy: disable-error-code="no-redef,no-untyped-def"
1
+ # mypy: disable-error-code="no-untyped-def"
2
2
  import os.path
3
3
  from typing import List
4
4
 
@@ -25,12 +25,13 @@ class ReqIFImport:
25
25
  import_config.input_path
26
26
  )
27
27
 
28
+ documents: List[SDocDocument]
28
29
  if import_config.input_path.endswith(".reqifz"):
29
30
  reqifz_bundle: ReqIFZBundle = ReqIFZParser.parse(
30
31
  import_config.input_path
31
32
  )
32
33
  assert len(reqifz_bundle.reqif_bundles) > 0
33
- documents: List[SDocDocument] = converter.convert_reqif_bundle(
34
+ documents = converter.convert_reqif_bundle(
34
35
  next(iter(reqifz_bundle.reqif_bundles.values())),
35
36
  enable_mid=import_config.reqif_enable_mid
36
37
  or project_config.reqif_enable_mid,
@@ -42,7 +43,7 @@ class ReqIFImport:
42
43
  reqif_bundle: ReqIFBundle = ReqIFParser.parse(
43
44
  import_config.input_path
44
45
  )
45
- documents: List[SDocDocument] = converter.convert_reqif_bundle(
46
+ documents = converter.convert_reqif_bundle(
46
47
  reqif_bundle,
47
48
  enable_mid=import_config.reqif_enable_mid
48
49
  or project_config.reqif_enable_mid,