strictdoc 0.0.58a1__tar.gz → 0.0.59__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 (544) hide show
  1. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/PKG-INFO +3 -4
  2. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/docs_extra/DO178_requirements.sdoc +11 -0
  3. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/docs_extra/Zephyr_requirements.sdoc +37 -0
  4. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/pyproject.toml +1 -2
  5. strictdoc-0.0.59/requirements.bootstrap.txt +5 -0
  6. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/requirements.check.txt +1 -1
  7. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/__init__.py +1 -1
  8. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/excel/export/excel_generator.py +10 -11
  9. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/excel/import_/excel_to_sdoc_converter.py +2 -3
  10. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/reqif/p01_sdoc/reqif_to_sdoc_converter.py +87 -17
  11. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/reqif/p01_sdoc/sdoc_to_reqif_converter.py +81 -38
  12. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/reqif/sdoc_reqif_fields.py +0 -4
  13. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/error_handling.py +31 -14
  14. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/grammar/grammar.py +9 -7
  15. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/grammar_reader.py +1 -1
  16. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/models/anchor.py +5 -2
  17. strictdoc-0.0.59/strictdoc/backend/sdoc/models/any_node.py +12 -0
  18. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/models/document.py +5 -2
  19. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/models/document_config.py +4 -5
  20. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/models/document_grammar.py +7 -4
  21. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/models/document_view.py +3 -3
  22. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/models/free_text.py +0 -4
  23. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/models/node.py +22 -30
  24. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/models/object_factory.py +3 -4
  25. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/models/section.py +1 -1
  26. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/models/type_system.py +1 -0
  27. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/processor.py +3 -8
  28. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/validations/sdoc_validator.py +24 -7
  29. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/writer.py +24 -17
  30. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/cli/cli_arg_parser.py +9 -25
  31. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/cli/command_parser_builder.py +97 -2
  32. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/cli/main.py +7 -23
  33. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/commands/diff_command.py +2 -2
  34. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/commands/manage_autouid_command.py +1 -1
  35. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/actions/export_action.py +91 -7
  36. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/actions/import_action.py +2 -2
  37. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/analyzers/document_uid_analyzer.py +1 -1
  38. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/document_finder.py +8 -8
  39. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/document_iterator.py +43 -34
  40. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/document_meta.py +46 -29
  41. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/file_tree.py +3 -8
  42. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/finders/source_files_finder.py +2 -2
  43. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/project_config.py +24 -19
  44. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/query_engine/query_object.py +2 -3
  45. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/traceability_index.py +52 -0
  46. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/traceability_index_builder.py +11 -9
  47. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/transforms/create_requirement.py +6 -6
  48. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/transforms/section.py +1 -1
  49. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/transforms/update_grammar_element.py +1 -1
  50. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/transforms/update_requirement.py +6 -6
  51. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/document_type.py +3 -2
  52. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/form_objects/form_object.py +16 -16
  53. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/form_objects/grammar_element_form_object.py +8 -8
  54. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/form_objects/grammar_form_object.py +7 -8
  55. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/form_objects/included_document_form_object.py +7 -8
  56. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/form_objects/requirement_form_object.py +51 -120
  57. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/form_objects/rows/row_with_grammar_element_form_object.py +9 -9
  58. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/form_objects/section_form_object.py +8 -18
  59. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/source_file_coverage.py +4 -6
  60. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/source_file_view_generator.py +33 -17
  61. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/view_objects/diff_screen_results_view_object.py +5 -4
  62. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/view_objects/diff_screen_view_object.py +5 -5
  63. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/view_objects/document_screen_view_object.py +96 -67
  64. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/view_objects/nestor_view_object.py +5 -6
  65. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/view_objects/project_statistics_view_object.py +4 -6
  66. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/view_objects/project_tree_view_object.py +4 -6
  67. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/view_objects/search_screen_view_object.py +8 -11
  68. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/view_objects/source_file_view_object.py +27 -13
  69. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/view_objects/traceability_matrix_view_object.py +4 -7
  70. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/html_generator.py +21 -2
  71. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/html_templates.py +41 -13
  72. strictdoc-0.0.59/strictdoc/export/html/renderers/html_fragment_writer.py +11 -0
  73. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/renderers/link_renderer.py +24 -15
  74. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/renderers/markup_renderer.py +46 -60
  75. strictdoc-0.0.59/strictdoc/export/html/renderers/text_to_html_writer.py +11 -0
  76. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/example.jinja.html +1 -1
  77. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/frame.jinja +1 -1
  78. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/form/row/row_with_comment.jinja +1 -1
  79. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/form/row/row_with_text_field.jinja +1 -1
  80. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/comments/index.jinja +1 -1
  81. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/meta/index.jinja +1 -13
  82. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/multiline/index.jinja +1 -1
  83. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/rationale/index.jinja +1 -1
  84. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/section_h/index.jinja +1 -1
  85. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/section_title/index.jinja +1 -1
  86. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/statement/index.jinja +1 -1
  87. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/title/index.jinja +1 -1
  88. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/rst/anchor.jinja +3 -2
  89. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/_shared/toc.jinja +2 -2
  90. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/_shared/viewtype_menu.jinja +6 -6
  91. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/document/frame_requirement_form.jinja +2 -11
  92. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/document/frame_section_form.jinja +1 -1
  93. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/pdf/toc.jinja +1 -1
  94. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/table/main.jinja +0 -22
  95. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/git/fields/requirement_fields.jinja +1 -1
  96. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/git/node/requirement.jinja +1 -1
  97. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/git/node/section.jinja +1 -1
  98. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/project_index/main.jinja +2 -2
  99. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/project_index/project_tree_file.jinja +1 -1
  100. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/source_file_view/index.jinja +1 -1
  101. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/source_file_view/main.jinja +1 -1
  102. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/source_file_view/requirement.jinja +3 -3
  103. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html2pdf/html2pdf.py +22 -12
  104. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html2pdf/html2pdf_generator.py +6 -1
  105. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html2pdf/pdf_print_driver.py +16 -9
  106. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/json/json_generator.py +2 -2
  107. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/rst/rst_to_html_fragment_writer.py +9 -7
  108. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/rst/templates/requirement.jinja.rst +5 -5
  109. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/rst/writer.py +23 -16
  110. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/spdx/spdx_generator.py +1 -1
  111. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/spdx/spdx_to_sdoc_converter.py +4 -8
  112. strictdoc-0.0.59/strictdoc/helpers/rst.py +22 -0
  113. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/server/helpers/turbo.py +4 -1
  114. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/server/routers/main_router.py +185 -241
  115. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/server/routers/other_router.py +6 -6
  116. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/tasks.py +10 -6
  117. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/tools/confluence_html_table_import.py +5 -2
  118. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/tox.ini +2 -0
  119. strictdoc-0.0.58a1/requirements.bootstrap.txt +0 -6
  120. strictdoc-0.0.58a1/strictdoc/core/actions/passthrough_action.py +0 -63
  121. strictdoc-0.0.58a1/strictdoc/export/html/renderers/html_fragment_writer.py +0 -9
  122. strictdoc-0.0.58a1/strictdoc/export/html/renderers/text_to_html_writer.py +0 -12
  123. strictdoc-0.0.58a1/strictdoc/helpers/rst.py +0 -10
  124. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/.gitignore +0 -0
  125. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/CHANGELOG.md +0 -0
  126. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/CONTRIBUTING.md +0 -0
  127. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/Dockerfile +0 -0
  128. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/LICENSE +0 -0
  129. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/NOTICE +0 -0
  130. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/README.md +0 -0
  131. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/drafts/requirements/strictdoc.toml +0 -0
  132. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/drafts/rst_examples.sdoc +0 -0
  133. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/drafts/strictdoc_low_level_requirements.sdoc_.sdoc +0 -0
  134. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/mypy.ini +0 -0
  135. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/ruff.toml +0 -0
  136. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/__init__.py +0 -0
  137. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/excel/__init__.py +0 -0
  138. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/excel/excel_import.py +0 -0
  139. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/excel/export/__init__.py +0 -0
  140. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/excel/import_/__init__.py +0 -0
  141. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/reqif/__init__.py +0 -0
  142. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/reqif/p01_sdoc/__init__.py +0 -0
  143. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/reqif/reqif_export.py +0 -0
  144. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/reqif/reqif_import.py +0 -0
  145. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/__init__.py +0 -0
  146. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/constants.py +0 -0
  147. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/document_reference.py +0 -0
  148. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/errors/__init__.py +0 -0
  149. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/errors/document_tree_error.py +0 -0
  150. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/free_text_reader.py +0 -0
  151. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/grammar/__init__.py +0 -0
  152. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/grammar/grammar_builder.py +0 -0
  153. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/grammar/grammar_grammar.py +0 -0
  154. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/grammar/type_system.py +0 -0
  155. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/models/__init__.py +0 -0
  156. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/models/constants.py +0 -0
  157. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/models/document_from_file.py +0 -0
  158. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/models/inline_link.py +0 -0
  159. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/models/object.py +0 -0
  160. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/models/reference.py +0 -0
  161. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/pickle_cache.py +0 -0
  162. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/reader.py +0 -0
  163. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc/validations/__init__.py +0 -0
  164. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc_source_code/__init__.py +0 -0
  165. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc_source_code/grammar.py +0 -0
  166. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc_source_code/models/__init__.py +0 -0
  167. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc_source_code/models/range_marker.py +0 -0
  168. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc_source_code/models/requirement_marker.py +0 -0
  169. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc_source_code/models/source_file_info.py +0 -0
  170. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/backend/sdoc_source_code/reader.py +0 -0
  171. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/cli/__init__.py +0 -0
  172. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/cli/argument_int_range.py +0 -0
  173. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/commands/__init__.py +0 -0
  174. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/commands/about_command.py +0 -0
  175. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/commands/dump_grammar_command.py +0 -0
  176. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/commands/version_command.py +0 -0
  177. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/__init__.py +0 -0
  178. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/actions/__init__.py +0 -0
  179. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/analyzers/document_stats.py +0 -0
  180. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/asset_manager.py +0 -0
  181. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/document_tree.py +0 -0
  182. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/document_tree_iterator.py +0 -0
  183. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/environment.py +0 -0
  184. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/file_traceability_index.py +0 -0
  185. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/finders/__init__.py +0 -0
  186. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/graph/abstract_bucket.py +0 -0
  187. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/graph/many_to_many_set.py +0 -0
  188. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/graph/one_to_one_dictionary.py +0 -0
  189. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/graph/validations.py +0 -0
  190. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/graph_database.py +0 -0
  191. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/query_engine/grammar.py +0 -0
  192. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/query_engine/query_reader.py +0 -0
  193. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/source_tree.py +0 -0
  194. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/transforms/constants.py +0 -0
  195. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/transforms/delete_requirement.py +0 -0
  196. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/transforms/delete_section.py +0 -0
  197. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/transforms/update_document_config.py +0 -0
  198. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/transforms/update_grammar.py +0 -0
  199. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/transforms/update_included_document.py +0 -0
  200. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/transforms/validation_error.py +0 -0
  201. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/core/tree_cycle_detector.py +0 -0
  202. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/__init__.py +0 -0
  203. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/__init__.py +0 -0
  204. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/autogen.css +0 -0
  205. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/base.css +0 -0
  206. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/collapsible_list.js +0 -0
  207. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/collapsible_toc.js +0 -0
  208. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/collapsible_tree.js +0 -0
  209. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/content.css +0 -0
  210. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/controllers/anchor_controller.js +0 -0
  211. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/controllers/copy_to_clipboard_controller.js +0 -0
  212. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/controllers/deletable_field_controller.js +0 -0
  213. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/controllers/draggable_list_controller.js +0 -0
  214. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/controllers/dropdown_menu_controller.js +0 -0
  215. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/controllers/editable_field_controller.js +0 -0
  216. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/controllers/modal_controller.js +0 -0
  217. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/controllers/movable_field_controller.js +0 -0
  218. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/controllers/scroll_into_view_controller.js +0 -0
  219. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/controllers/tabs_controller.js +0 -0
  220. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/diff.css +0 -0
  221. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/diff.js +0 -0
  222. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/element.css +0 -0
  223. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/favicon.ico +0 -0
  224. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/fonts/NotoSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  225. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/fonts/NotoSans-VariableFont_wdth,wght.ttf +0 -0
  226. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/fonts/NotoSansMono-VariableFont_wdth,wght.ttf +0 -0
  227. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/form.css +0 -0
  228. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/html2pdf/bundle.js +0 -0
  229. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/layout.css +0 -0
  230. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/node.css +0 -0
  231. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/pan_with_space.js +0 -0
  232. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/project_tree.css +0 -0
  233. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/project_tree.js +0 -0
  234. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/requirement-tree.css +0 -0
  235. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/requirement.css +0 -0
  236. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/requirement__temporary.css +0 -0
  237. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/requirements-coverage.js +0 -0
  238. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/resizable_bar.js +0 -0
  239. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/source-code-coverage.js +0 -0
  240. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/source.css +0 -0
  241. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/stimulus.min.js +0 -0
  242. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/table_vew.css +0 -0
  243. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/toc_highlighting.js +0 -0
  244. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/traceability_matrix.css +0 -0
  245. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/tree(not_in_use).css +0 -0
  246. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/turbo.min.js +0 -0
  247. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/viewtype_menu.js +0 -0
  248. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static/zoomable.js +0 -0
  249. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/LICENSE-MATHJAX +0 -0
  250. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/tex.js +0 -0
  251. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff +0 -0
  252. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff +0 -0
  253. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff +0 -0
  254. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff +0 -0
  255. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff +0 -0
  256. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff +0 -0
  257. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff +0 -0
  258. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +0 -0
  259. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff +0 -0
  260. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +0 -0
  261. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff +0 -0
  262. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff +0 -0
  263. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff +0 -0
  264. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff +0 -0
  265. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff +0 -0
  266. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff +0 -0
  267. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +0 -0
  268. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +0 -0
  269. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff +0 -0
  270. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff +0 -0
  271. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff +0 -0
  272. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff +0 -0
  273. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff +0 -0
  274. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mathjax/tex-mml-chtml.js +0 -0
  275. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/mermaid/mermaid.min.js +0 -0
  276. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/nestor/bundle.umd.js +0 -0
  277. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/_static_extra/rapidoc/rapidoc-min.js +0 -0
  278. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/form_objects/document_config_form_object.py +0 -0
  279. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/__init__.py +0 -0
  280. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/document.py +0 -0
  281. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/document_deep_trace.py +0 -0
  282. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/document_pdf.py +0 -0
  283. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/document_table.py +0 -0
  284. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/document_trace.py +0 -0
  285. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/document_tree.py +0 -0
  286. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/project_statistics.py +0 -0
  287. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/traceability_matrix.py +0 -0
  288. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/generators/view_objects/project_tree_stats.py +0 -0
  289. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/renderers/__init__.py +0 -0
  290. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg__separator.jinja.html +0 -0
  291. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_add.jinja.html +0 -0
  292. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_add_above.jinja +0 -0
  293. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_add_below.jinja +0 -0
  294. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_add_child.jinja +0 -0
  295. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_anchor.jinja +0 -0
  296. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_back.jinja.html +0 -0
  297. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_book.jinja.html +0 -0
  298. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_close.jinja +0 -0
  299. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_code.jinja.html +0 -0
  300. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_copy.jinja +0 -0
  301. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_delete.jinja.html +0 -0
  302. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_diff.jinja +0 -0
  303. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_document.jinja.html +0 -0
  304. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_done.jinja +0 -0
  305. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_edit.jinja.html +0 -0
  306. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_expand.jinja.html +0 -0
  307. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_file.jinja +0 -0
  308. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_folder.jinja +0 -0
  309. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_folder_collapse.jinja +0 -0
  310. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_folder_sm.jinja +0 -0
  311. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_fragment.jinja +0 -0
  312. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_fragment_draft.jinja +0 -0
  313. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_gear.jinja.html +0 -0
  314. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_go_to_doc.jinja +0 -0
  315. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_index.jinja.html +0 -0
  316. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_list.jinja.html +0 -0
  317. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_maximize.jinja +0 -0
  318. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_minimize.jinja +0 -0
  319. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_minusminus.jinja.html +0 -0
  320. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_move_down.jinja.html +0 -0
  321. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_move_up.jinja.html +0 -0
  322. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_plusplus.jinja.html +0 -0
  323. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_project.jinja.html +0 -0
  324. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_requirement.jinja.html +0 -0
  325. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_reset.jinja +0 -0
  326. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_search.jinja +0 -0
  327. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_source.jinja.html +0 -0
  328. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_stat.jinja +0 -0
  329. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_sync.jinja +0 -0
  330. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_toc.jinja.html +0 -0
  331. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_res/svg_ico16_tree.jinja +0 -0
  332. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_shared/nav.jinja.html +0 -0
  333. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_shared/requirement_block/files_tree.jinja.html +0 -0
  334. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_shared/requirement_tree_left.jinja.html +0 -0
  335. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_shared/requirement_tree_right.jinja.html +0 -0
  336. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/_shared/tags.jinja.html +0 -0
  337. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/_shared/stream_refresh_document.jinja.html +0 -0
  338. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/_shared/stream_updated_toc.jinja.html +0 -0
  339. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/add_requirement_comment/stream_add_requirement_comment.jinja.html +0 -0
  340. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/add_requirement_relation/stream_add_requirement_relation.jinja.html +0 -0
  341. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/create_requirement/stream_cancel_new_requirement.jinja.html +0 -0
  342. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/create_requirement/stream_created_requirement.jinja.html +0 -0
  343. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/create_requirement/stream_new_requirement.jinja.html +0 -0
  344. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/create_section/stream_cancel_new_section.jinja.html +0 -0
  345. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/create_section/stream_created_section.jinja.html +0 -0
  346. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/create_section/stream_new_section.jinja.html +0 -0
  347. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_confirm_delete_requirement.jinja +0 -0
  348. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_delete_requirement.jinja.html +0 -0
  349. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/delete_section/stream_confirm_delete_section.jinja +0 -0
  350. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/delete_section/stream_delete_section.jinja.html +0 -0
  351. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_cancel_edit_document_config.jinja.html +0 -0
  352. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_edit_document_config.jinja.html +0 -0
  353. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_save_document_config.jinja.html +0 -0
  354. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/edit_requirement/stream_edit_requirement.jinja.html +0 -0
  355. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/edit_section/stream_edit_section.jinja.html +0 -0
  356. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/document/edit_section/stream_updated_section.jinja.html +0 -0
  357. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_requirement.jinja +0 -0
  358. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_section.jinja +0 -0
  359. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_form_import_reqif_document.jinja.html +0 -0
  360. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_refresh_with_imported_reqif_document.jinja.html +0 -0
  361. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/project_index/stream_create_document.jinja.html +0 -0
  362. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/actions/project_index/stream_new_document.jinja.html +0 -0
  363. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/base.jinja.html +0 -0
  364. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/anchor/index.jinja +0 -0
  365. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/badge/index.jinja +0 -0
  366. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/button/cancel.jinja +0 -0
  367. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/button/confirm.jinja +0 -0
  368. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/button/delete.jinja +0 -0
  369. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/button/diff.jinja +0 -0
  370. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/button/search.jinja +0 -0
  371. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/button/submit.jinja +0 -0
  372. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/confirm/_usage_example.jinja +0 -0
  373. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/confirm/index.jinja +0 -0
  374. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/field/index.jinja +0 -0
  375. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/form/field/contenteditable/index.jinja +0 -0
  376. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/form/field/file/index.jinja +0 -0
  377. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/form/field/text/index.jinja +0 -0
  378. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/form/field_action_button/index.jinja +0 -0
  379. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/form/index.jinja +0 -0
  380. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/form/row/index.jinja +0 -0
  381. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/stream.jinja +0 -0
  382. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/form/row/row_with_relation.jinja +0 -0
  383. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/form/search.jinja +0 -0
  384. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/grammar_form/index.jinja +0 -0
  385. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/grammar_form/row_with_grammar_element/index.jinja +0 -0
  386. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/grammar_form/row_with_new_grammar_element/index.jinja +0 -0
  387. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/grammar_form_element/index.jinja +0 -0
  388. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/grammar_form_element/row_with_custom_field/index.jinja +0 -0
  389. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/grammar_form_element/row_with_relation/index.jinja +0 -0
  390. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/grammar_form_element/row_with_reserved_field/index.jinja +0 -0
  391. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/header/_usage_example.jinja +0 -0
  392. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/header/header_pagetype.jinja +0 -0
  393. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/header/index.jinja +0 -0
  394. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/included_document_form/index.jinja +0 -0
  395. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/modal/_usage_example.jinja +0 -0
  396. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/modal/form.jinja +0 -0
  397. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/modal/index.jinja +0 -0
  398. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node/card.jinja +0 -0
  399. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node/index.jinja +0 -0
  400. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node/node_controls/card.jinja +0 -0
  401. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node/node_controls/index.jinja +0 -0
  402. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node/root.jinja +0 -0
  403. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/README.txt +0 -0
  404. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/document_meta/index.jinja +0 -0
  405. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/document_title/index.jinja +0 -0
  406. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/files/index.jinja +0 -0
  407. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/links/index.jinja +0 -0
  408. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/section_h/pdf.jinja +0 -0
  409. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/text/index.jinja +0 -0
  410. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/title/pdf.jinja +0 -0
  411. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/uid/index.jinja +0 -0
  412. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/node_field/uid_standalone/index.jinja +0 -0
  413. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/requirement/card.jinja +0 -0
  414. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/requirement/card_extends_card.jinja +0 -0
  415. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/requirement/index.jinja +0 -0
  416. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/requirement/index_extends_node.jinja +0 -0
  417. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/requirement/pdf.jinja +0 -0
  418. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/requirement/tiny.jinja +0 -0
  419. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/requirement/tiny_extends_card.jinja +0 -0
  420. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/resizable_bar/index.jinja +0 -0
  421. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/section/card.jinja +0 -0
  422. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/section/card_extends_card.jinja +0 -0
  423. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/section/index.jinja +0 -0
  424. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/section/index_extends_node.jinja +0 -0
  425. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/section/pdf.jinja +0 -0
  426. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/section/tiny.jinja +0 -0
  427. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/section/tiny_extends_card.jinja +0 -0
  428. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/table_key_value/index.jinja +0 -0
  429. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/text_node/card.jinja +0 -0
  430. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/text_node/card_extends_card.jinja +0 -0
  431. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/text_node/index.jinja +0 -0
  432. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/text_node/index_extends_node.jinja +0 -0
  433. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/text_node/pdf.jinja +0 -0
  434. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/text_node/tiny.jinja +0 -0
  435. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/components/text_node/tiny_extends_card.jinja +0 -0
  436. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/_shared/frame_header_document_title.jinja +0 -0
  437. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_requirement.jinja +0 -0
  438. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_section.jinja +0 -0
  439. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/_shared/frame_toc.jinja +0 -0
  440. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/_shared/project_tree.jinja +0 -0
  441. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/_shared/project_tree_child_documents.jinja +0 -0
  442. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_project_tree.jinja +0 -0
  443. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_toc.jinja +0 -0
  444. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/document/actions.jinja +0 -0
  445. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/document/frame_document_config.jinja.html +0 -0
  446. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/document/frame_document_config_edit.jinja.html +0 -0
  447. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/document/frame_document_content.jinja.html +0 -0
  448. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/document/index.jinja +0 -0
  449. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/document/main.jinja +0 -0
  450. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/pdf/index.jinja +0 -0
  451. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/pdf/main.jinja +0 -0
  452. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/pdf/template/footer.jinja +0 -0
  453. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/pdf/template/frontpage.jinja +0 -0
  454. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/pdf/template/header.jinja +0 -0
  455. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/table/index.jinja +0 -0
  456. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/traceability/index.jinja +0 -0
  457. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/traceability/main.jinja +0 -0
  458. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/traceability_deep/index.jinja +0 -0
  459. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/document/traceability_deep/main.jinja +0 -0
  460. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/git/changelog_content.jinja +0 -0
  461. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/git/diff_content.jinja +0 -0
  462. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/git/diff_controls.jinja +0 -0
  463. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/git/fields/document_fields.jinja +0 -0
  464. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/git/fields/section_fields.jinja +0 -0
  465. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/git/form.jinja +0 -0
  466. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/git/frame_changelog_result.jinja +0 -0
  467. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/git/frame_diff_result.jinja +0 -0
  468. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/git/index.jinja +0 -0
  469. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/git/legend.jinja +0 -0
  470. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/git/main.jinja +0 -0
  471. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/git/nav_tabs.jinja +0 -0
  472. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/git/skeleton.jinja +0 -0
  473. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/git/sync/button.jinja +0 -0
  474. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/nestor/index.jinja +0 -0
  475. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/project_index/actions.jinja +0 -0
  476. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/project_index/frame_form_import_reqif.jinja.html +0 -0
  477. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/project_index/frame_form_new_document.jinja.html +0 -0
  478. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/project_index/frame_project_tree.jinja.html +0 -0
  479. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/project_index/index.jinja +0 -0
  480. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/project_index/project_tree.jinja +0 -0
  481. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/project_index/project_tree_folder.jinja +0 -0
  482. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/project_statistics/index.jinja +0 -0
  483. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/project_statistics/main.jinja +0 -0
  484. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/search/index.jinja +0 -0
  485. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/search/legend.jinja +0 -0
  486. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/search/main.jinja +0 -0
  487. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/source_file_coverage/file.jinja +0 -0
  488. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/source_file_coverage/folder.jinja +0 -0
  489. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/source_file_coverage/index.jinja +0 -0
  490. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/source_file_coverage/main.jinja +0 -0
  491. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/source_file_view/aside.jinja +0 -0
  492. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/source_file_view/header__source_file_name.jinja +0 -0
  493. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/traceability_matrix/file.jinja +0 -0
  494. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/traceability_matrix/index.jinja +0 -0
  495. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/traceability_matrix/main.jinja +0 -0
  496. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/traceability_matrix/project_tree_flat_anchor_list.jinja +0 -0
  497. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/traceability_matrix/requirement.jinja.html +0 -0
  498. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/screens/traceability_matrix/resizable_bar_with_project_tree.jinja +0 -0
  499. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/website/document/index.jinja +0 -0
  500. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/templates/websocket.jinja.html +0 -0
  501. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/tools/__init__.py +0 -0
  502. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/html/tools/html_embedded.py +0 -0
  503. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/rst/__init__.py +0 -0
  504. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/rst/directives/raw_html_role.py +0 -0
  505. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/rst/directives/wildcard_enhanced_image.py +0 -0
  506. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/rst/document_rst_generator.py +0 -0
  507. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/rst/rst_templates.py +0 -0
  508. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/export/spdx/spdx_sdoc_container.py +0 -0
  509. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/git/change.py +0 -0
  510. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/git/change_generator.py +0 -0
  511. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/git/git_client.py +0 -0
  512. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/git/project_diff_analyzer.py +0 -0
  513. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/__init__.py +0 -0
  514. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/auto_described.py +0 -0
  515. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/cast.py +0 -0
  516. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/diff.py +0 -0
  517. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/exception.py +0 -0
  518. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/file_modification_time.py +0 -0
  519. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/file_system.py +0 -0
  520. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/form_data.py +0 -0
  521. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/git_client.py +0 -0
  522. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/math.py +0 -0
  523. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/md5.py +0 -0
  524. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/mid.py +0 -0
  525. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/ordered_set.py +0 -0
  526. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/parallelizer.py +0 -0
  527. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/path_filter.py +0 -0
  528. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/paths.py +0 -0
  529. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/pickle.py +0 -0
  530. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/sha256.py +0 -0
  531. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/shard.py +0 -0
  532. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/sorting.py +0 -0
  533. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/string.py +0 -0
  534. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/textx.py +0 -0
  535. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/helpers/timing.py +0 -0
  536. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/server/__init__.py +0 -0
  537. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/server/app.py +0 -0
  538. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/server/config.py +0 -0
  539. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/server/error_object.py +0 -0
  540. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/server/main.py +0 -0
  541. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc/server/server.py +0 -0
  542. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/strictdoc.toml +0 -0
  543. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/tasks_wine.py +0 -0
  544. {strictdoc-0.0.58a1 → strictdoc-0.0.59}/tools/link_health.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: strictdoc
3
- Version: 0.0.58a1
3
+ Version: 0.0.59
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/
@@ -12,14 +12,13 @@ License-File: NOTICE
12
12
  Classifier: License :: OSI Approved :: BSD License
13
13
  Classifier: Operating System :: OS Independent
14
14
  Classifier: Programming Language :: Python :: 3
15
- Classifier: Programming Language :: Python :: 3.7
16
15
  Classifier: Programming Language :: Python :: 3.8
17
16
  Classifier: Programming Language :: Python :: 3.9
18
17
  Classifier: Programming Language :: Python :: 3.10
19
18
  Classifier: Programming Language :: Python :: 3.11
20
19
  Classifier: Programming Language :: Python :: Implementation :: CPython
21
20
  Classifier: Programming Language :: Python :: Implementation :: PyPy
22
- Requires-Python: >=3.7
21
+ Requires-Python: >=3.8
23
22
  Requires-Dist: beautifulsoup4==4.*,>=4.12.0
24
23
  Requires-Dist: docutils==0.*,>=0.16
25
24
  Requires-Dist: fastapi>=0.83.0
@@ -10,8 +10,19 @@ OPTIONS:
10
10
 
11
11
  [GRAMMAR]
12
12
  ELEMENTS:
13
+ - TAG: TEXT
14
+ FIELDS:
15
+ - TITLE: UID
16
+ TYPE: String
17
+ REQUIRED: False
18
+ - TITLE: STATEMENT
19
+ TYPE: String
20
+ REQUIRED: False
13
21
  - TAG: REQUIREMENT
14
22
  FIELDS:
23
+ - TITLE: MID
24
+ TYPE: String
25
+ REQUIRED: False
15
26
  - TITLE: UID
16
27
  TYPE: String
17
28
  REQUIRED: False
@@ -6,6 +6,43 @@ ROOT: True
6
6
  OPTIONS:
7
7
  ENABLE_MID: True
8
8
 
9
+ [GRAMMAR]
10
+ ELEMENTS:
11
+ - TAG: TEXT
12
+ FIELDS:
13
+ - TITLE: UID
14
+ TYPE: String
15
+ REQUIRED: False
16
+ - TITLE: STATEMENT
17
+ TYPE: String
18
+ REQUIRED: False
19
+ - TAG: REQUIREMENT
20
+ FIELDS:
21
+ - TITLE: MID
22
+ TYPE: String
23
+ REQUIRED: False
24
+ - TITLE: UID
25
+ TYPE: String
26
+ REQUIRED: False
27
+ - TITLE: STATUS
28
+ TYPE: String
29
+ REQUIRED: False
30
+ - TITLE: TITLE
31
+ TYPE: String
32
+ REQUIRED: False
33
+ - TITLE: STATEMENT
34
+ TYPE: String
35
+ REQUIRED: False
36
+ - TITLE: RATIONALE
37
+ TYPE: String
38
+ REQUIRED: False
39
+ - TITLE: COMMENT
40
+ TYPE: String
41
+ REQUIRED: False
42
+ RELATIONS:
43
+ - TYPE: Parent
44
+ - TYPE: File
45
+
9
46
  [REQUIREMENT]
10
47
  MID: 68e87901205c4b0dbb6a0071479330b5
11
48
  UID: ZEP-1
@@ -24,7 +24,7 @@ dynamic = ["version"]
24
24
  description = "StrictDoc is open-source software for technical documentation and requirements management."
25
25
  readme = "README.md"
26
26
  license = "Apache-2.0"
27
- requires-python = ">=3.7"
27
+ requires-python = ">=3.8"
28
28
  authors = [
29
29
  { name = "Stanislav Pankevich", email = "s.pankevich@gmail.com" },
30
30
  { name = "Maryna Balioura", email = "mettta@gmail.com" },
@@ -36,7 +36,6 @@ classifiers = [
36
36
  "License :: OSI Approved :: BSD License",
37
37
  "Operating System :: OS Independent",
38
38
  "Programming Language :: Python :: 3",
39
- "Programming Language :: Python :: 3.7",
40
39
  "Programming Language :: Python :: 3.8",
41
40
  "Programming Language :: Python :: 3.9",
42
41
  "Programming Language :: Python :: 3.10",
@@ -0,0 +1,5 @@
1
+ invoke
2
+ tox
3
+ toml
4
+ setuptools
5
+ packaging
@@ -15,7 +15,7 @@ httpx
15
15
 
16
16
  # Integration tests
17
17
  lit>=0.11.0.post1
18
- filecheck>=0.0.20
18
+ filecheck>=0.0.20,<1.0.0
19
19
  pytidylib>=0.3.2
20
20
  openpyxl>=3.0.5
21
21
 
@@ -1,6 +1,6 @@
1
1
  from strictdoc.core.environment import SDocRuntimeEnvironment
2
2
 
3
- __version__ = "0.0.58a1"
3
+ __version__ = "0.0.59"
4
4
 
5
5
 
6
6
  environment = SDocRuntimeEnvironment(__file__)
@@ -109,13 +109,10 @@ class ExcelGenerator:
109
109
  if len(parent_refs) > 0:
110
110
  # TODO Allow multiple parent refs
111
111
  ref = parent_refs[0]
112
- if (
113
- len(ref.ref_uid)
114
- > columns[field][MAX_WIDTH_KEY]
115
- ):
116
- columns[field][MAX_WIDTH_KEY] = len(
117
- ref.ref_uid
118
- )
112
+ columns[field][MAX_WIDTH_KEY] = max(
113
+ len(ref.ref_uid),
114
+ columns[field][MAX_WIDTH_KEY],
115
+ )
119
116
  if ref.ref_uid in req_uid_rows:
120
117
  worksheet.write_url(
121
118
  row,
@@ -171,15 +168,17 @@ class ExcelGenerator:
171
168
  )
172
169
  worksheet.write(row, idx, relations_row_value)
173
170
  value_len = len(relations_row_value)
174
- if value_len > columns[field][MAX_WIDTH_KEY]:
175
- columns[field][MAX_WIDTH_KEY] = value_len
171
+ columns[field][MAX_WIDTH_KEY] = max(
172
+ value_len, columns[field][MAX_WIDTH_KEY]
173
+ )
176
174
  elif field_uc in node.ordered_fields_lookup.keys():
177
175
  req_field = node.ordered_fields_lookup[field_uc][0]
178
176
  value: str = req_field.get_text_value()
179
177
  worksheet.write(row, idx, value)
180
178
  value_len = len(value)
181
- if value_len > columns[field][MAX_WIDTH_KEY]:
182
- columns[field][MAX_WIDTH_KEY] = value_len
179
+ columns[field][MAX_WIDTH_KEY] = max(
180
+ value_len, columns[field][MAX_WIDTH_KEY]
181
+ )
183
182
  elif hasattr(node, "special_fields"):
184
183
  if len(node.special_fields):
185
184
  for special_field in node.special_fields:
@@ -185,7 +185,7 @@ class ExcelToSDocConverter:
185
185
 
186
186
  template_requirement = SDocObjectFactory.create_requirement(
187
187
  document,
188
- requirement_type="REQUIREMENT",
188
+ node_type="REQUIREMENT",
189
189
  title=title,
190
190
  uid=uid,
191
191
  level=None,
@@ -214,8 +214,7 @@ class ExcelToSDocConverter:
214
214
  template_requirement.relations = [reference]
215
215
  requirement = SDocNode(
216
216
  parent=template_requirement.parent,
217
- requirement_type=template_requirement.requirement_type,
218
- mid=None,
217
+ node_type=template_requirement.node_type,
219
218
  fields=list(template_requirement.enumerate_fields()),
220
219
  relations=template_requirement.relations,
221
220
  )
@@ -1,5 +1,5 @@
1
1
  # mypy: disable-error-code="no-untyped-def,union-attr,operator"
2
- from typing import Dict, List, Optional, Union
2
+ from typing import Any, Dict, List, Optional, Tuple, Union
3
3
 
4
4
  from reqif.models.reqif_data_type import ReqIFDataTypeDefinitionEnumeration
5
5
  from reqif.models.reqif_spec_object import ReqIFSpecObject
@@ -34,7 +34,9 @@ from strictdoc.backend.sdoc.models.type_system import (
34
34
  GrammarElementFieldMultipleChoice,
35
35
  GrammarElementFieldSingleChoice,
36
36
  GrammarElementFieldString,
37
+ GrammarElementRelationParent,
37
38
  )
39
+ from strictdoc.helpers.ordered_set import OrderedSet
38
40
  from strictdoc.helpers.string import (
39
41
  create_safe_requirement_tag_string,
40
42
  ensure_newline,
@@ -49,6 +51,12 @@ class P01_ReqIFToSDocBuildContext:
49
51
  self.map_spec_object_type_identifier_to_grammar_node_tags: Dict[
50
52
  str, GrammarElement
51
53
  ] = {}
54
+ self.map_source_target_pairs_to_spec_relation_types: Dict[
55
+ Tuple[str, str], Any
56
+ ] = {}
57
+ self.unique_grammar_element_relations: Dict[
58
+ GrammarElement, OrderedSet[Tuple[str, Optional[str]]]
59
+ ] = {}
52
60
 
53
61
 
54
62
  class P01_ReqIFToSDocConverter:
@@ -69,6 +77,16 @@ class P01_ReqIFToSDocConverter:
69
77
  ):
70
78
  return []
71
79
 
80
+ for (
81
+ spec_relation_
82
+ ) in reqif_bundle.core_content.req_if_content.spec_relations:
83
+ spec_relation_type_ = reqif_bundle.lookup.get_spec_type_by_ref(
84
+ spec_relation_.relation_type_ref
85
+ )
86
+ context.map_source_target_pairs_to_spec_relation_types[
87
+ (spec_relation_.source, spec_relation_.target)
88
+ ] = spec_relation_type_
89
+
72
90
  documents: List[SDocDocument] = []
73
91
  for (
74
92
  specification
@@ -131,7 +149,9 @@ class P01_ReqIFToSDocConverter:
131
149
  # StrictDoc document is not created with irrelevant grammar elements that
132
150
  # actually belong to other Specifications in this ReqIF bundle.
133
151
  # Using Dict as an ordered set.
134
- spec_object_type_identifiers_used_by_this_document: Dict[str, None] = {}
152
+ spec_object_type_identifiers_used_by_this_document: OrderedSet[str] = (
153
+ OrderedSet()
154
+ )
135
155
 
136
156
  def node_converter_lambda(
137
157
  current_hierarchy_,
@@ -140,9 +160,9 @@ class P01_ReqIFToSDocConverter:
140
160
  spec_object = reqif_bundle.get_spec_object_by_ref(
141
161
  current_hierarchy_.spec_object
142
162
  )
143
- spec_object_type_identifiers_used_by_this_document[
163
+ spec_object_type_identifiers_used_by_this_document.add(
144
164
  spec_object.spec_object_type
145
- ] = None
165
+ )
146
166
 
147
167
  is_section = P01_ReqIFToSDocConverter.is_spec_object_section(
148
168
  spec_object,
@@ -181,7 +201,7 @@ class P01_ReqIFToSDocConverter:
181
201
  elements: List[GrammarElement] = []
182
202
  for (
183
203
  spec_object_type_identifier_
184
- ) in spec_object_type_identifiers_used_by_this_document.keys():
204
+ ) in spec_object_type_identifiers_used_by_this_document:
185
205
  spec_object_type: ReqIFSpecObjectType = (
186
206
  reqif_bundle.lookup.get_spec_type_by_ref(
187
207
  spec_object_type_identifier_
@@ -194,7 +214,13 @@ class P01_ReqIFToSDocConverter:
194
214
  spec_object_type_identifier_
195
215
  ]
196
216
  )
217
+ if len(grammar_element.relations) == 0:
218
+ grammar_element.relations = create_default_relations(
219
+ grammar_element
220
+ )
221
+
197
222
  elements.append(grammar_element)
223
+
198
224
  grammar: DocumentGrammar
199
225
  if len(elements) > 0:
200
226
  grammar = DocumentGrammar(parent=document, elements=elements)
@@ -288,9 +314,6 @@ class P01_ReqIFToSDocConverter:
288
314
  fields=fields,
289
315
  relations=[],
290
316
  )
291
- requirement_element.relations = create_default_relations(
292
- requirement_element
293
- )
294
317
  return requirement_element
295
318
 
296
319
  @staticmethod
@@ -381,8 +404,7 @@ class P01_ReqIFToSDocConverter:
381
404
  )
382
405
  node: SDocNode = SDocNode(
383
406
  parent=section,
384
- requirement_type="TEXT",
385
- mid=None,
407
+ node_type="TEXT",
386
408
  fields=[node_field],
387
409
  relations=[],
388
410
  )
@@ -465,8 +487,11 @@ class P01_ReqIFToSDocConverter:
465
487
  if (
466
488
  "\n" in attribute_value
467
489
  or attribute.attribute_type == SpecObjectAttributeType.XHTML
468
- or field_name == ReqIFRequirementReservedField.TEXT
469
- or field_name == ReqIFRequirementReservedField.COMMENT_NOTES
490
+ or field_name
491
+ in (
492
+ ReqIFRequirementReservedField.TEXT,
493
+ ReqIFRequirementReservedField.COMMENT_NOTES,
494
+ )
470
495
  ):
471
496
  attribute_value = attribute_value.lstrip()
472
497
  multiline = True
@@ -499,22 +524,67 @@ class P01_ReqIFToSDocConverter:
499
524
  spec_object_type.identifier
500
525
  ]
501
526
  )
502
-
527
+ if requirement_mid is not None:
528
+ fields.insert(
529
+ 0,
530
+ SDocNodeField.create_from_string(
531
+ None, "MID", requirement_mid, multiline=False
532
+ ),
533
+ )
503
534
  requirement = SDocNode(
504
535
  parent=parent_section,
505
- requirement_type=grammar_element.tag,
506
- mid=requirement_mid,
536
+ node_type=grammar_element.tag,
507
537
  fields=fields,
508
538
  relations=[],
509
539
  )
510
540
  requirement.ng_level = level
511
-
541
+ for field_ in fields:
542
+ field_.parent = requirement
512
543
  if foreign_key_id_or_none is not None:
513
544
  spec_object_parents = reqif_bundle.get_spec_object_parents(
514
545
  spec_object.identifier
515
546
  )
516
547
  parent_refs: List[Reference] = []
517
548
  for spec_object_parent in spec_object_parents:
549
+ spec_relation_type = (
550
+ context.map_source_target_pairs_to_spec_relation_types[
551
+ (spec_object.identifier, spec_object_parent)
552
+ ]
553
+ )
554
+
555
+ relation_role = (
556
+ spec_relation_type.long_name
557
+ if spec_relation_type.long_name is not None
558
+ else None
559
+ )
560
+ if relation_role == "Parent":
561
+ relation_role = None
562
+
563
+ if (
564
+ grammar_element
565
+ not in context.unique_grammar_element_relations
566
+ ):
567
+ context.unique_grammar_element_relations[
568
+ grammar_element
569
+ ] = OrderedSet()
570
+
571
+ if (
572
+ "Parent",
573
+ relation_role,
574
+ ) not in context.unique_grammar_element_relations[
575
+ grammar_element
576
+ ]:
577
+ context.unique_grammar_element_relations[
578
+ grammar_element
579
+ ].add(("Parent", relation_role))
580
+ grammar_element.relations.append(
581
+ GrammarElementRelationParent(
582
+ parent=grammar_element,
583
+ relation_type="Parent",
584
+ relation_role=relation_role,
585
+ )
586
+ )
587
+
518
588
  parent_spec_object_parent = (
519
589
  reqif_bundle.lookup.get_spec_object_by_ref(
520
590
  spec_object_parent
@@ -527,7 +597,7 @@ class P01_ReqIFToSDocConverter:
527
597
  parent_spec_object_parent.attribute_map[
528
598
  foreign_key_id_or_none
529
599
  ].value,
530
- role=None,
600
+ role=relation_role,
531
601
  )
532
602
  )
533
603
  if len(parent_refs) > 0:
@@ -3,7 +3,7 @@ import datetime
3
3
  import uuid
4
4
  from collections import defaultdict
5
5
  from enum import Enum
6
- from typing import Dict, List
6
+ from typing import Dict, List, Optional, Tuple
7
7
 
8
8
  from reqif.models.reqif_core_content import ReqIFCoreContent
9
9
  from reqif.models.reqif_data_type import (
@@ -22,6 +22,7 @@ from reqif.models.reqif_spec_object_type import (
22
22
  SpecAttributeDefinition,
23
23
  )
24
24
  from reqif.models.reqif_spec_relation import ReqIFSpecRelation
25
+ from reqif.models.reqif_spec_relation_type import ReqIFSpecRelationType
25
26
  from reqif.models.reqif_specification import ReqIFSpecification
26
27
  from reqif.models.reqif_specification_type import ReqIFSpecificationType
27
28
  from reqif.models.reqif_types import SpecObjectAttributeType
@@ -29,7 +30,6 @@ from reqif.object_lookup import ReqIFObjectLookup
29
30
  from reqif.reqif_bundle import ReqIFBundle
30
31
 
31
32
  from strictdoc.backend.reqif.sdoc_reqif_fields import (
32
- SDOC_SPEC_RELATION_PARENT_TYPE_SINGLETON,
33
33
  SDOC_SPECIFICATION_TYPE_SINGLETON,
34
34
  SDOC_TO_REQIF_FIELD_MAP,
35
35
  ReqIFChapterField,
@@ -38,18 +38,22 @@ from strictdoc.backend.reqif.sdoc_reqif_fields import (
38
38
  from strictdoc.backend.sdoc.models.document import SDocDocument
39
39
  from strictdoc.backend.sdoc.models.document_grammar import DocumentGrammar
40
40
  from strictdoc.backend.sdoc.models.node import SDocNode
41
- from strictdoc.backend.sdoc.models.reference import ParentReqReference
41
+ from strictdoc.backend.sdoc.models.reference import (
42
+ ChildReqReference,
43
+ ParentReqReference,
44
+ Reference,
45
+ )
42
46
  from strictdoc.backend.sdoc.models.section import SDocSection
43
47
  from strictdoc.backend.sdoc.models.type_system import (
44
48
  GrammarElementField,
45
49
  GrammarElementFieldMultipleChoice,
46
50
  GrammarElementFieldSingleChoice,
47
51
  GrammarElementFieldString,
48
- ReferenceType,
49
52
  )
50
53
  from strictdoc.core.document_iterator import DocumentCachingIterator
51
54
  from strictdoc.core.document_tree import DocumentTree
52
55
  from strictdoc.helpers.cast import assert_cast
56
+ from strictdoc.helpers.ordered_set import OrderedSet
53
57
  from strictdoc.helpers.string import escape
54
58
 
55
59
 
@@ -69,10 +73,15 @@ class P01_SDocToReqIFBuildContext:
69
73
  self.multiline_is_xhtml: bool = multiline_is_xhtml
70
74
  self.enable_mid: bool = enable_mid
71
75
  self.map_uid_to_spec_objects: Dict[str, ReqIFSpecObject] = {}
72
- self.map_uid_to_parent_uids: Dict[str, List[str]] = {}
76
+ self.map_node_uids_to_their_relations: Dict[str, List[Reference]] = (
77
+ defaultdict(list)
78
+ )
73
79
  self.map_grammar_node_tags_to_spec_object_type: Dict[
74
80
  SDocDocument, Dict[str, ReqIFSpecObjectType]
75
81
  ] = defaultdict(dict)
82
+ self.map_spec_relation_tuple_to_spec_relation_type: Dict[
83
+ Tuple[str, Optional[str]], ReqIFSpecRelationType
84
+ ] = {}
76
85
 
77
86
 
78
87
  class P01_SDocToReqIFObjectConverter:
@@ -235,21 +244,22 @@ class P01_SDocToReqIFObjectConverter:
235
244
  current_hierarchy = root_hierarchy
236
245
 
237
246
  # FIXME: ReqIF must export complete documents including fragments.
238
- for node in document_iterator.all_content(
247
+ for node_ in document_iterator.all_content(
239
248
  print_fragments=False, print_fragments_from_files=False
240
249
  ):
241
- if node.is_composite_requirement:
250
+ if node_.is_composite_requirement:
242
251
  raise NotImplementedError(
243
252
  "Exporting composite requirements is not "
244
253
  "supported yet.",
245
- node,
254
+ node_,
246
255
  )
247
- if node.is_section:
256
+ if node_.is_section:
257
+ section: SDocSection = assert_cast(node_, SDocSection)
248
258
  # fmt: off
249
259
  spec_object = (
250
260
  P01_SDocToReqIFObjectConverter
251
261
  ._convert_section_to_spec_object(
252
- section=node,
262
+ section=section,
253
263
  context=context,
254
264
  )
255
265
  )
@@ -264,14 +274,14 @@ class P01_SDocToReqIFObjectConverter:
264
274
  spec_object=spec_object.identifier,
265
275
  children=[],
266
276
  ref_then_children_order=True,
267
- level=node.ng_level,
277
+ level=section.ng_level,
268
278
  )
269
- if node.ng_level > current_hierarchy.level:
279
+ if section.ng_level > current_hierarchy.level:
270
280
  parents[hierarchy] = current_hierarchy
271
281
  current_hierarchy.add_child(hierarchy)
272
- elif node.ng_level < current_hierarchy.level:
282
+ elif section.ng_level < current_hierarchy.level:
273
283
  for _ in range(
274
- 0, (current_hierarchy.level - node.ng_level + 1)
284
+ 0, (current_hierarchy.level - section.ng_level + 1)
275
285
  ):
276
286
  current_hierarchy = parents[current_hierarchy]
277
287
  current_hierarchy.add_child(hierarchy)
@@ -282,9 +292,10 @@ class P01_SDocToReqIFObjectConverter:
282
292
  parents[hierarchy] = current_hierarchy_parent
283
293
  current_hierarchy = hierarchy
284
294
 
285
- elif node.is_requirement:
295
+ elif node_.is_requirement:
296
+ requirement = assert_cast(node_, SDocNode)
286
297
  spec_object = cls._convert_requirement_to_spec_object(
287
- requirement=node,
298
+ requirement=requirement,
288
299
  grammar=assert_cast(document.grammar, DocumentGrammar),
289
300
  context=context,
290
301
  data_types=data_types,
@@ -302,10 +313,10 @@ class P01_SDocToReqIFObjectConverter:
302
313
  spec_object=spec_object.identifier,
303
314
  children=None,
304
315
  ref_then_children_order=True,
305
- level=node.ng_level,
316
+ level=requirement.ng_level,
306
317
  )
307
318
  for _ in range(
308
- 0, (current_hierarchy.level - node.ng_level + 1)
319
+ 0, (current_hierarchy.level - requirement.ng_level + 1)
309
320
  ):
310
321
  current_hierarchy = parents[current_hierarchy]
311
322
  parents[hierarchy] = current_hierarchy
@@ -332,18 +343,31 @@ class P01_SDocToReqIFObjectConverter:
332
343
 
333
344
  for (
334
345
  requirement_id,
335
- parent_uids,
336
- ) in context.map_uid_to_parent_uids.items():
346
+ node_relations_,
347
+ ) in context.map_node_uids_to_their_relations.items():
337
348
  spec_object = context.map_uid_to_spec_objects[requirement_id]
338
- for parent_uid in parent_uids:
339
- parent_spec_object = context.map_uid_to_spec_objects[parent_uid]
349
+ for node_relation_ in node_relations_:
350
+ # For now, the File-relations are not supported.
351
+ if not isinstance(
352
+ node_relation_, (ParentReqReference, ChildReqReference)
353
+ ):
354
+ continue
355
+ related_node_uid = node_relation_.ref_uid
356
+ parent_spec_object = context.map_uid_to_spec_objects[
357
+ related_node_uid
358
+ ]
359
+ spec_relation_type: ReqIFSpecRelationType = (
360
+ context.map_spec_relation_tuple_to_spec_relation_type[
361
+ (node_relation_.ref_type, node_relation_.role)
362
+ ]
363
+ )
340
364
  spec_relations.append(
341
365
  ReqIFSpecRelation(
342
366
  xml_node=None,
343
367
  description=None,
344
368
  identifier=generate_unique_identifier("SPEC-RELATION"),
345
369
  last_change=None,
346
- relation_type_ref=SDOC_SPEC_RELATION_PARENT_TYPE_SINGLETON,
370
+ relation_type_ref=spec_relation_type.identifier,
347
371
  source=spec_object.identifier,
348
372
  target=parent_spec_object.identifier,
349
373
  values_attribute=None,
@@ -461,10 +485,13 @@ class P01_SDocToReqIFObjectConverter:
461
485
  else:
462
486
  requirement_identifier = generate_unique_identifier("REQUIREMENT")
463
487
 
464
- grammar_element = grammar.elements_by_type[requirement.requirement_type]
488
+ grammar_element = grammar.elements_by_type[requirement.node_type]
465
489
 
466
490
  attributes: List[SpecObjectAttribute] = []
467
491
  for field in requirement.fields_as_parsed:
492
+ # The MID field, if exists, is extracted separately as a ReqIF Identifier.
493
+ if field.field_name == "MID":
494
+ continue
468
495
  grammar_field = grammar_element.fields_map[field.field_name]
469
496
  if isinstance(grammar_field, GrammarElementFieldSingleChoice):
470
497
  data_type_ref = data_types_lookup[field.field_name]
@@ -539,23 +566,15 @@ class P01_SDocToReqIFObjectConverter:
539
566
  attributes.append(attribute)
540
567
 
541
568
  if requirement.reserved_uid is not None:
542
- parent_references: List[str] = []
543
- for reference in requirement.relations:
544
- if reference.ref_type != ReferenceType.PARENT:
545
- continue
546
- parent_reference: ParentReqReference = assert_cast(
547
- reference, ParentReqReference
548
- )
549
- parent_references.append(parent_reference.ref_uid)
550
-
551
- context.map_uid_to_parent_uids[requirement.reserved_uid] = (
552
- parent_references
553
- )
569
+ if len(requirement.relations) > 0:
570
+ context.map_node_uids_to_their_relations[
571
+ requirement.reserved_uid
572
+ ] = requirement.relations
554
573
 
555
574
  spec_object_type: ReqIFSpecObjectType = (
556
575
  context.map_grammar_node_tags_to_spec_object_type[
557
576
  requirement.document
558
- ][requirement.requirement_type]
577
+ ][requirement.node_type]
559
578
  )
560
579
  spec_object = ReqIFSpecObject.create(
561
580
  identifier=requirement_identifier,
@@ -665,7 +684,31 @@ class P01_SDocToReqIFObjectConverter:
665
684
  ] = section_spec_type
666
685
  spec_object_types.append(section_spec_type)
667
686
 
668
- return spec_object_types
687
+ # Using dict as an ordered set.
688
+ spec_relation_tuples: OrderedSet = OrderedSet()
689
+ for element_ in grammar.elements:
690
+ for relation_ in element_.relations:
691
+ spec_relation_tuples.add(
692
+ (relation_.relation_type, relation_.relation_role)
693
+ )
694
+
695
+ spec_relation_types: List = []
696
+ for spec_relation_tuple_ in spec_relation_tuples:
697
+ spec_relation_type_name = (
698
+ spec_relation_tuple_[1]
699
+ if spec_relation_tuple_[1] is not None
700
+ else spec_relation_tuple_[0]
701
+ )
702
+ spec_relation_type = ReqIFSpecRelationType(
703
+ identifier=generate_unique_identifier(spec_relation_type_name),
704
+ long_name=spec_relation_type_name,
705
+ )
706
+ spec_relation_types.append(spec_relation_type)
707
+ context.map_spec_relation_tuple_to_spec_relation_type[
708
+ spec_relation_tuple_
709
+ ] = spec_relation_type
710
+
711
+ return spec_object_types + spec_relation_types
669
712
 
670
713
  @classmethod
671
714
  def _create_section_spec_object_type(
@@ -62,7 +62,3 @@ DEFAULT_SDOC_GRAMMAR_FIELDS = [
62
62
  ]
63
63
 
64
64
  SDOC_SPECIFICATION_TYPE_SINGLETON = "SDOC_SPECIFICATION_TYPE_SINGLETON"
65
-
66
- SDOC_SPEC_RELATION_PARENT_TYPE_SINGLETON = (
67
- "SDOC_SPEC_RELATION_PARENT_TYPE_SINGLETON"
68
- )