strictdoc 0.0.53__tar.gz → 0.0.54__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.53 → strictdoc-0.0.54}/PKG-INFO +1 -1
  2. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/__init__.py +1 -1
  3. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/models/document.py +40 -5
  4. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/models/document_from_file.py +22 -21
  5. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/models/node.py +4 -0
  6. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/models/section.py +4 -0
  7. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/pickle_cache.py +1 -1
  8. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/processor.py +5 -0
  9. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/reader.py +1 -0
  10. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/writer.py +103 -71
  11. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/cli/cli_arg_parser.py +5 -1
  12. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/document_finder.py +5 -1
  13. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/document_iterator.py +28 -1
  14. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/file_tree.py +36 -3
  15. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/finders/source_files_finder.py +5 -1
  16. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/project_config.py +34 -16
  17. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/traceability_index_builder.py +0 -4
  18. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/transforms/create_requirement.py +18 -4
  19. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/transforms/section.py +36 -10
  20. strictdoc-0.0.54/strictdoc/core/transforms/update_included_document.py +70 -0
  21. strictdoc-0.0.54/strictdoc/export/html/_static/collapsible_toc.js +200 -0
  22. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/element.css +46 -9
  23. strictdoc-0.0.54/strictdoc/export/html/form_objects/included_document_form_object.py +124 -0
  24. strictdoc-0.0.54/strictdoc/export/html/generators/traceability_matrix.py +102 -0
  25. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/view_objects/document_screen_view_object.py +25 -1
  26. strictdoc-0.0.53/strictdoc/export/html/generators/traceability_matrix.py → strictdoc-0.0.54/strictdoc/export/html/generators/view_objects/traceability_matrix_view_object.py +6 -0
  27. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/renderers/link_renderer.py +1 -1
  28. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/renderers/markup_renderer.py +1 -1
  29. strictdoc-0.0.54/strictdoc/export/html/templates/components/included_document_form/index.jinja +44 -0
  30. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/node/index.jinja +1 -1
  31. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/node/node_controls/index.jinja +14 -3
  32. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/_shared/project_tree.jinja +6 -2
  33. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/_shared/toc.jinja +1 -0
  34. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/document/frame_document_content.jinja.html +1 -1
  35. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/document/index.jinja +1 -1
  36. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/table/index.jinja +1 -1
  37. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/traceability/index.jinja +1 -1
  38. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/traceability_deep/index.jinja +1 -1
  39. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/git/diff_content.jinja +4 -4
  40. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/project_index/main.jinja +1 -1
  41. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/traceability_matrix/main.jinja +2 -2
  42. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/traceability_matrix/project_tree_flat_anchor_list.jinja +1 -1
  43. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/json/json_generator.py +7 -4
  44. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/git/project_diff_analyzer.py +19 -6
  45. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/server/helpers/turbo.py +2 -1
  46. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/server/routers/main_router.py +175 -24
  47. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc.toml +2 -1
  48. {strictdoc-0.0.53 → strictdoc-0.0.54}/.gitignore +0 -0
  49. {strictdoc-0.0.53 → strictdoc-0.0.54}/CHANGELOG.md +0 -0
  50. {strictdoc-0.0.53 → strictdoc-0.0.54}/CONTRIBUTING.md +0 -0
  51. {strictdoc-0.0.53 → strictdoc-0.0.54}/Dockerfile +0 -0
  52. {strictdoc-0.0.53 → strictdoc-0.0.54}/LICENSE +0 -0
  53. {strictdoc-0.0.53 → strictdoc-0.0.54}/NOTICE +0 -0
  54. {strictdoc-0.0.53 → strictdoc-0.0.54}/README.md +0 -0
  55. {strictdoc-0.0.53 → strictdoc-0.0.54}/docs_extra/DO178_requirements.sdoc +0 -0
  56. {strictdoc-0.0.53 → strictdoc-0.0.54}/docs_extra/Zephyr_requirements.sdoc +0 -0
  57. {strictdoc-0.0.53 → strictdoc-0.0.54}/drafts/requirements/strictdoc.toml +0 -0
  58. {strictdoc-0.0.53 → strictdoc-0.0.54}/drafts/rst_examples.sdoc +0 -0
  59. {strictdoc-0.0.53 → strictdoc-0.0.54}/drafts/strictdoc_low_level_requirements.sdoc_.sdoc +0 -0
  60. {strictdoc-0.0.53 → strictdoc-0.0.54}/mypy.ini +0 -0
  61. {strictdoc-0.0.53 → strictdoc-0.0.54}/pyproject.toml +0 -0
  62. {strictdoc-0.0.53 → strictdoc-0.0.54}/requirements.bootstrap.txt +0 -0
  63. {strictdoc-0.0.53 → strictdoc-0.0.54}/requirements.check.txt +0 -0
  64. {strictdoc-0.0.53 → strictdoc-0.0.54}/ruff.toml +0 -0
  65. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/__init__.py +0 -0
  66. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/excel/__init__.py +0 -0
  67. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/excel/excel_import.py +0 -0
  68. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/excel/export/__init__.py +0 -0
  69. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/excel/export/excel_generator.py +0 -0
  70. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/excel/import_/__init__.py +0 -0
  71. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/excel/import_/excel_to_sdoc_converter.py +0 -0
  72. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/reqif/__init__.py +0 -0
  73. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/reqif/p01_sdoc/__init__.py +0 -0
  74. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/reqif/p01_sdoc/reqif_to_sdoc_converter.py +0 -0
  75. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/reqif/p01_sdoc/sdoc_to_reqif_converter.py +0 -0
  76. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/reqif/p11_polarion/__init__.py +0 -0
  77. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/reqif/p11_polarion/reqif_to_sdoc_converter.py +0 -0
  78. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/reqif/reqif_export.py +0 -0
  79. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/reqif/reqif_import.py +0 -0
  80. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/reqif/sdoc_reqif_fields.py +0 -0
  81. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/__init__.py +0 -0
  82. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/document_reference.py +0 -0
  83. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/error_handling.py +0 -0
  84. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/errors/__init__.py +0 -0
  85. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/errors/document_tree_error.py +0 -0
  86. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/free_text_reader.py +0 -0
  87. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/grammar/__init__.py +0 -0
  88. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/grammar/grammar.py +0 -0
  89. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/grammar/grammar_builder.py +0 -0
  90. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/grammar/grammar_grammar.py +0 -0
  91. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/grammar/type_system.py +0 -0
  92. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/grammar_reader.py +0 -0
  93. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/models/__init__.py +0 -0
  94. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/models/anchor.py +0 -0
  95. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/models/constants.py +0 -0
  96. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/models/document_config.py +0 -0
  97. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/models/document_grammar.py +0 -0
  98. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/models/document_view.py +0 -0
  99. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/models/free_text.py +0 -0
  100. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/models/inline_link.py +0 -0
  101. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/models/object.py +0 -0
  102. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/models/object_factory.py +0 -0
  103. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/models/reference.py +0 -0
  104. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/models/type_system.py +0 -0
  105. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/validations/__init__.py +0 -0
  106. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc/validations/sdoc_validator.py +0 -0
  107. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc_source_code/__init__.py +0 -0
  108. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc_source_code/grammar.py +0 -0
  109. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc_source_code/models/__init__.py +0 -0
  110. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc_source_code/models/range_marker.py +0 -0
  111. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc_source_code/models/requirement_marker.py +0 -0
  112. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc_source_code/models/source_file_info.py +0 -0
  113. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/backend/sdoc_source_code/reader.py +0 -0
  114. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/cli/__init__.py +0 -0
  115. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/cli/argument_int_range.py +0 -0
  116. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/cli/command_parser_builder.py +0 -0
  117. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/cli/main.py +0 -0
  118. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/commands/__init__.py +0 -0
  119. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/commands/about_command.py +0 -0
  120. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/commands/diff_command.py +0 -0
  121. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/commands/dump_grammar_command.py +0 -0
  122. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/commands/manage_autouid_command.py +0 -0
  123. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/commands/version_command.py +0 -0
  124. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/__init__.py +0 -0
  125. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/actions/__init__.py +0 -0
  126. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/actions/export_action.py +0 -0
  127. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/actions/import_action.py +0 -0
  128. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/actions/passthrough_action.py +0 -0
  129. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/analyzers/document_stats.py +0 -0
  130. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/analyzers/document_uid_analyzer.py +0 -0
  131. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/document_meta.py +0 -0
  132. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/document_tree.py +0 -0
  133. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/document_tree_iterator.py +0 -0
  134. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/environment.py +0 -0
  135. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/file_traceability_index.py +0 -0
  136. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/finders/__init__.py +0 -0
  137. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/graph/abstract_bucket.py +0 -0
  138. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/graph/many_to_many_set.py +0 -0
  139. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/graph/one_to_one_dictionary.py +0 -0
  140. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/graph/validations.py +0 -0
  141. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/graph_database.py +0 -0
  142. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/query_engine/grammar.py +0 -0
  143. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/query_engine/query_object.py +0 -0
  144. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/query_engine/query_reader.py +0 -0
  145. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/source_tree.py +0 -0
  146. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/traceability_index.py +0 -0
  147. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/transforms/constants.py +0 -0
  148. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/transforms/delete_section.py +0 -0
  149. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/transforms/update_document_config.py +0 -0
  150. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/transforms/update_free_text.py +0 -0
  151. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/transforms/update_grammar.py +0 -0
  152. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/transforms/update_grammar_element.py +0 -0
  153. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/transforms/update_requirement.py +0 -0
  154. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/transforms/validation_error.py +0 -0
  155. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/core/tree_cycle_detector.py +0 -0
  156. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/__init__.py +0 -0
  157. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/dot/document_dot_generator.py +0 -0
  158. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/dot/dot_templates.py +0 -0
  159. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/dot/templates/profile1/document.dot +0 -0
  160. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/dot/templates/profile1/folder.dot +0 -0
  161. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/dot/templates/profile1/legend.dot +0 -0
  162. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/dot/templates/profile1/requirement.dot +0 -0
  163. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/dot/templates/profile1/section.dot +0 -0
  164. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/dot/templates/profile1/top_level.dot +0 -0
  165. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/dot/templates/profile2/document.dot +0 -0
  166. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/dot/templates/profile2/folder.dot +0 -0
  167. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/dot/templates/profile2/requirement.dot +0 -0
  168. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/dot/templates/profile2/section.dot +0 -0
  169. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/dot/templates/profile2/top_level.dot +0 -0
  170. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/__init__.py +0 -0
  171. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/autogen.css +0 -0
  172. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/base.css +0 -0
  173. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/collapsible_list.js +0 -0
  174. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/collapsible_tree.js +0 -0
  175. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/content.css +0 -0
  176. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/controllers/anchor_controller.js +0 -0
  177. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/controllers/copy_to_clipboard_controller.js +0 -0
  178. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/controllers/deletable_field_controller.js +0 -0
  179. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/controllers/draggable_list_controller.js +0 -0
  180. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/controllers/dropdown_menu_controller.js +0 -0
  181. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/controllers/editable_field_controller.js +0 -0
  182. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/controllers/modal_controller.js +0 -0
  183. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/controllers/movable_field_controller.js +0 -0
  184. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/controllers/scroll_into_view_controller.js +0 -0
  185. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/controllers/tabs_controller.js +0 -0
  186. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/diff.css +0 -0
  187. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/diff.js +0 -0
  188. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/favicon.ico +0 -0
  189. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/fonts/NotoSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  190. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/fonts/NotoSans-VariableFont_wdth,wght.ttf +0 -0
  191. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/fonts/NotoSansMono-VariableFont_wdth,wght.ttf +0 -0
  192. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/form.css +0 -0
  193. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/html2pdf/bundle.js +0 -0
  194. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/layout.css +0 -0
  195. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/node.css +0 -0
  196. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/pan_with_space.js +0 -0
  197. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/project_tree.css +0 -0
  198. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/project_tree.js +0 -0
  199. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/requirement-tree.css +0 -0
  200. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/requirement.css +0 -0
  201. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/requirement__temporary.css +0 -0
  202. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/requirements-coverage.js +0 -0
  203. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/resizable_bar.js +0 -0
  204. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/source-code-coverage.js +0 -0
  205. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/source.css +0 -0
  206. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/stimulus.min.js +0 -0
  207. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/table_vew.css +0 -0
  208. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/toc_highlighting.js +0 -0
  209. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/traceability_matrix.css +0 -0
  210. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/tree(not_in_use).css +0 -0
  211. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/turbo.min.js +0 -0
  212. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/viewtype_menu.js +0 -0
  213. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static/zoomable.js +0 -0
  214. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/LICENSE-MATHJAX +0 -0
  215. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/tex.js +0 -0
  216. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff +0 -0
  217. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff +0 -0
  218. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff +0 -0
  219. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff +0 -0
  220. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff +0 -0
  221. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff +0 -0
  222. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff +0 -0
  223. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +0 -0
  224. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff +0 -0
  225. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +0 -0
  226. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff +0 -0
  227. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff +0 -0
  228. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff +0 -0
  229. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff +0 -0
  230. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff +0 -0
  231. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff +0 -0
  232. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +0 -0
  233. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +0 -0
  234. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff +0 -0
  235. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff +0 -0
  236. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff +0 -0
  237. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff +0 -0
  238. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff +0 -0
  239. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mathjax/tex-mml-chtml.js +0 -0
  240. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/mermaid/mermaid.min.js +0 -0
  241. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/_static_extra/rapidoc/rapidoc-min.js +0 -0
  242. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/document_type.py +0 -0
  243. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/form_objects/document_config_form_object.py +0 -0
  244. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/form_objects/form_object.py +0 -0
  245. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/form_objects/grammar_element_form_object.py +0 -0
  246. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/form_objects/grammar_form_object.py +0 -0
  247. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/form_objects/requirement_form_object.py +0 -0
  248. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/form_objects/rows/row_with_grammar_element_form_object.py +0 -0
  249. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/form_objects/section_form_object.py +0 -0
  250. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/__init__.py +0 -0
  251. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/document.py +0 -0
  252. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/document_deep_trace.py +0 -0
  253. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/document_pdf.py +0 -0
  254. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/document_table.py +0 -0
  255. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/document_trace.py +0 -0
  256. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/document_tree.py +0 -0
  257. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/project_statistics.py +0 -0
  258. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/source_file_coverage.py +0 -0
  259. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/source_file_view_generator.py +0 -0
  260. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/view_objects/diff_screen_results_view_object.py +0 -0
  261. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/view_objects/diff_screen_view_object.py +0 -0
  262. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/view_objects/project_statistics_view_object.py +0 -0
  263. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/view_objects/project_tree_stats.py +0 -0
  264. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/view_objects/project_tree_view_object.py +0 -0
  265. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/view_objects/search_screen_view_object.py +0 -0
  266. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/generators/view_objects/source_file_view_object.py +0 -0
  267. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/html_generator.py +0 -0
  268. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/html_templates.py +0 -0
  269. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/renderers/__init__.py +0 -0
  270. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/renderers/html_fragment_writer.py +0 -0
  271. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/renderers/text_to_html_writer.py +0 -0
  272. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg__separator.jinja.html +0 -0
  273. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_add.jinja.html +0 -0
  274. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_add_above.jinja +0 -0
  275. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_add_below.jinja +0 -0
  276. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_add_child.jinja +0 -0
  277. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_anchor.jinja +0 -0
  278. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_back.jinja.html +0 -0
  279. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_book.jinja.html +0 -0
  280. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_close.jinja +0 -0
  281. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_code.jinja.html +0 -0
  282. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_copy.jinja +0 -0
  283. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_delete.jinja.html +0 -0
  284. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_diff.jinja +0 -0
  285. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_document.jinja.html +0 -0
  286. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_done.jinja +0 -0
  287. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_edit.jinja.html +0 -0
  288. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_expand.jinja.html +0 -0
  289. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_file.jinja +0 -0
  290. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_folder.jinja +0 -0
  291. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_folder_collapse.jinja +0 -0
  292. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_folder_sm.jinja +0 -0
  293. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_fragment.jinja +0 -0
  294. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_fragment_draft.jinja +0 -0
  295. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_gear.jinja.html +0 -0
  296. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_go_to_doc.jinja +0 -0
  297. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_index.jinja.html +0 -0
  298. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_list.jinja.html +0 -0
  299. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_maximize.jinja +0 -0
  300. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_minimize.jinja +0 -0
  301. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_minusminus.jinja.html +0 -0
  302. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_move_down.jinja.html +0 -0
  303. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_move_up.jinja.html +0 -0
  304. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_plusplus.jinja.html +0 -0
  305. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_project.jinja.html +0 -0
  306. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_requirement.jinja.html +0 -0
  307. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_reset.jinja +0 -0
  308. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_search.jinja +0 -0
  309. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_source.jinja.html +0 -0
  310. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_stat.jinja +0 -0
  311. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_sync.jinja +0 -0
  312. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_toc.jinja.html +0 -0
  313. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_res/svg_ico16_tree.jinja +0 -0
  314. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_shared/nav.jinja.html +0 -0
  315. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_shared/requirement_block/files_tree.jinja.html +0 -0
  316. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_shared/requirement_tree_left.jinja.html +0 -0
  317. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_shared/requirement_tree_right.jinja.html +0 -0
  318. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/_shared/tags.jinja.html +0 -0
  319. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/_shared/stream_refresh_document.jinja.html +0 -0
  320. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/_shared/stream_updated_toc.jinja.html +0 -0
  321. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/add_requirement_comment/stream_add_requirement_comment.jinja.html +0 -0
  322. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/add_requirement_relation/stream_add_requirement_relation.jinja.html +0 -0
  323. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/create_requirement/stream_cancel_new_requirement.jinja.html +0 -0
  324. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/create_requirement/stream_created_requirement.jinja.html +0 -0
  325. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/create_requirement/stream_new_requirement.jinja.html +0 -0
  326. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/create_section/stream_cancel_new_section.jinja.html +0 -0
  327. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/create_section/stream_created_section.jinja.html +0 -0
  328. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/create_section/stream_new_section.jinja.html +0 -0
  329. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_confirm_delete_requirement.jinja +0 -0
  330. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_delete_requirement.jinja.html +0 -0
  331. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/delete_section/stream_confirm_delete_section.jinja +0 -0
  332. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/delete_section/stream_delete_section.jinja.html +0 -0
  333. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_cancel_edit_document_config.jinja.html +0 -0
  334. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_edit_document_config.jinja.html +0 -0
  335. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_save_document_config.jinja.html +0 -0
  336. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/edit_requirement/stream_edit_requirement.jinja.html +0 -0
  337. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/edit_requirement/stream_update_requirement.jinja.html +0 -0
  338. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/edit_section/stream_edit_section.jinja.html +0 -0
  339. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/edit_section/stream_updated_section.jinja.html +0 -0
  340. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/document/move_node/stream_update_document_content.jinja +0 -0
  341. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_requirement.jinja +0 -0
  342. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_section.jinja +0 -0
  343. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_form_import_reqif_document.jinja.html +0 -0
  344. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_refresh_with_imported_reqif_document.jinja.html +0 -0
  345. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/project_index/stream_create_document.jinja.html +0 -0
  346. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/actions/project_index/stream_new_document.jinja.html +0 -0
  347. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/base.jinja.html +0 -0
  348. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/abstract/index.jinja +0 -0
  349. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/abstract/pdf.jinja +0 -0
  350. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/anchor/index.jinja +0 -0
  351. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/badge/index.jinja +0 -0
  352. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/button/cancel.jinja +0 -0
  353. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/button/confirm.jinja +0 -0
  354. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/button/delete.jinja +0 -0
  355. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/button/diff.jinja +0 -0
  356. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/button/search.jinja +0 -0
  357. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/button/submit.jinja +0 -0
  358. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/confirm/_usage_example.jinja +0 -0
  359. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/confirm/index.jinja +0 -0
  360. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/document_title/index.jinja +0 -0
  361. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/field/index.jinja +0 -0
  362. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/form/field/contenteditable/index.jinja +0 -0
  363. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/form/field/file/index.jinja +0 -0
  364. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/form/field/text/index.jinja +0 -0
  365. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/form/field_action_button/index.jinja +0 -0
  366. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/form/index.jinja +0 -0
  367. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/form/row/index.jinja +0 -0
  368. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/example.jinja.html +0 -0
  369. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/frame.jinja +0 -0
  370. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/stream.jinja +0 -0
  371. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/form/row/row_with_comment.jinja +0 -0
  372. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/form/row/row_with_relation.jinja +0 -0
  373. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/form/row/row_with_text_field.jinja +0 -0
  374. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/form/search.jinja +0 -0
  375. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/grammar_form/index.jinja +0 -0
  376. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/grammar_form/row_with_grammar_element/index.jinja +0 -0
  377. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/grammar_form/row_with_new_grammar_element/index.jinja +0 -0
  378. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/grammar_form_element/index.jinja +0 -0
  379. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/grammar_form_element/row_with_custom_field/index.jinja +0 -0
  380. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/grammar_form_element/row_with_relation/index.jinja +0 -0
  381. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/grammar_form_element/row_with_reserved_field/index.jinja +0 -0
  382. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/header/_usage_example.jinja +0 -0
  383. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/header/header_pagetype.jinja +0 -0
  384. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/header/index.jinja +0 -0
  385. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/meta/index.jinja +0 -0
  386. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/modal/_usage_example.jinja +0 -0
  387. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/modal/form.jinja +0 -0
  388. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/modal/index.jinja +0 -0
  389. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/node/card.jinja +0 -0
  390. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/node/node_controls/card.jinja +0 -0
  391. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/node/root.jinja +0 -0
  392. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/requirement/card.jinja +0 -0
  393. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/requirement/card_extends_card.jinja +0 -0
  394. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/requirement/comments/index.jinja +0 -0
  395. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/requirement/files/index.jinja +0 -0
  396. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/requirement/index.jinja +0 -0
  397. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/requirement/index_extends_node.jinja +0 -0
  398. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/requirement/links/index.jinja +0 -0
  399. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/requirement/meta/index.jinja +0 -0
  400. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/requirement/multiline/index.jinja +0 -0
  401. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/requirement/pdf.jinja +0 -0
  402. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/requirement/rationale/index.jinja +0 -0
  403. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/requirement/statement/index.jinja +0 -0
  404. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/requirement/tiny.jinja +0 -0
  405. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/requirement/tiny_extends_card.jinja +0 -0
  406. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/requirement/title/index.jinja +0 -0
  407. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/requirement/title/pdf.jinja +0 -0
  408. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/requirement/uid/index.jinja +0 -0
  409. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/resizable_bar/index.jinja +0 -0
  410. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/section/card.jinja +0 -0
  411. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/section/card_extends_card.jinja +0 -0
  412. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/section/h/index.jinja +0 -0
  413. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/section/h/pdf.jinja +0 -0
  414. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/section/index.jinja +0 -0
  415. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/section/index_extends_node.jinja +0 -0
  416. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/section/pdf.jinja +0 -0
  417. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/section/text/index.jinja +0 -0
  418. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/section/tiny.jinja +0 -0
  419. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/section/tiny_extends_card.jinja +0 -0
  420. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/section/title/index.jinja +0 -0
  421. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/section/uid/index.jinja +0 -0
  422. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/components/table_key_value/index.jinja +0 -0
  423. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/rst/anchor.jinja +0 -0
  424. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/_shared/frame_header_document_title.jinja +0 -0
  425. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_requirement.jinja +0 -0
  426. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_section.jinja +0 -0
  427. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/_shared/frame_toc.jinja +0 -0
  428. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/_shared/project_tree_child_documents.jinja +0 -0
  429. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_project_tree.jinja +0 -0
  430. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_toc.jinja +0 -0
  431. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/_shared/viewtype_menu.jinja +0 -0
  432. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/document/actions.jinja +0 -0
  433. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/document/frame_document_config.jinja.html +0 -0
  434. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/document/frame_document_config_edit.jinja.html +0 -0
  435. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/document/frame_requirement_form.jinja +0 -0
  436. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/document/frame_section_form.jinja +0 -0
  437. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/document/main.jinja +0 -0
  438. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/pdf/index.jinja +0 -0
  439. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/pdf/main.jinja +0 -0
  440. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/pdf/template/footer.jinja +0 -0
  441. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/pdf/template/frontpage.jinja +0 -0
  442. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/pdf/template/header.jinja +0 -0
  443. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/pdf/toc.jinja +0 -0
  444. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/table/main.jinja +0 -0
  445. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/traceability/main.jinja +0 -0
  446. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/document/traceability_deep/main.jinja +0 -0
  447. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/git/changelog_content.jinja +0 -0
  448. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/git/diff_controls.jinja +0 -0
  449. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/git/fields/document_fields.jinja +0 -0
  450. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/git/fields/requirement_fields.jinja +0 -0
  451. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/git/fields/section_fields.jinja +0 -0
  452. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/git/form.jinja +0 -0
  453. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/git/frame_changelog_result.jinja +0 -0
  454. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/git/frame_diff_result.jinja +0 -0
  455. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/git/index.jinja +0 -0
  456. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/git/legend.jinja +0 -0
  457. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/git/main.jinja +0 -0
  458. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/git/nav_tabs.jinja +0 -0
  459. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/git/node/requirement.jinja +0 -0
  460. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/git/node/section.jinja +0 -0
  461. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/git/skeleton.jinja +0 -0
  462. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/git/sync/button.jinja +0 -0
  463. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/project_index/actions.jinja +0 -0
  464. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/project_index/frame_form_import_reqif.jinja.html +0 -0
  465. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/project_index/frame_form_new_document.jinja.html +0 -0
  466. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/project_index/frame_project_tree.jinja.html +0 -0
  467. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/project_index/index.jinja +0 -0
  468. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/project_index/project_tree.jinja +0 -0
  469. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/project_index/project_tree_file.jinja +0 -0
  470. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/project_index/project_tree_folder.jinja +0 -0
  471. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/project_statistics/index.jinja +0 -0
  472. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/project_statistics/main.jinja +0 -0
  473. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/search/index.jinja +0 -0
  474. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/search/legend.jinja +0 -0
  475. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/search/main.jinja +0 -0
  476. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/source_file_coverage/file.jinja +0 -0
  477. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/source_file_coverage/folder.jinja +0 -0
  478. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/source_file_coverage/index.jinja +0 -0
  479. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/source_file_coverage/main.jinja +0 -0
  480. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/source_file_view/aside.jinja +0 -0
  481. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/source_file_view/header__source_file_name.jinja +0 -0
  482. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/source_file_view/index.jinja +0 -0
  483. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/source_file_view/main.jinja +0 -0
  484. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/source_file_view/requirement.jinja +0 -0
  485. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/traceability_matrix/file.jinja +0 -0
  486. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/traceability_matrix/index.jinja +0 -0
  487. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/traceability_matrix/requirement.jinja.html +0 -0
  488. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/screens/traceability_matrix/resizable_bar_with_project_tree.jinja +0 -0
  489. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/website/document/index.jinja +0 -0
  490. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/templates/websocket.jinja.html +0 -0
  491. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/tools/__init__.py +0 -0
  492. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html/tools/html_embedded.py +0 -0
  493. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html2pdf/html2pdf.py +0 -0
  494. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html2pdf/html2pdf_generator.py +0 -0
  495. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/html2pdf/pdf_print_driver.py +0 -0
  496. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/rst/__init__.py +0 -0
  497. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/rst/directives/raw_html_role.py +0 -0
  498. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/rst/directives/wildcard_enhanced_image.py +0 -0
  499. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/rst/document_rst_generator.py +0 -0
  500. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/rst/rst_templates.py +0 -0
  501. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/rst/rst_to_html_fragment_writer.py +0 -0
  502. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/rst/templates/requirement.jinja.rst +0 -0
  503. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/rst/writer.py +0 -0
  504. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/spdx/spdx_generator.py +0 -0
  505. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/spdx/spdx_sdoc_container.py +0 -0
  506. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/export/spdx/spdx_to_sdoc_converter.py +0 -0
  507. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/git/change.py +0 -0
  508. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/git/change_generator.py +0 -0
  509. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/git/git_client.py +0 -0
  510. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/__init__.py +0 -0
  511. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/auto_described.py +0 -0
  512. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/cast.py +0 -0
  513. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/diff.py +0 -0
  514. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/exception.py +0 -0
  515. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/file_modification_time.py +0 -0
  516. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/file_system.py +0 -0
  517. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/form_data.py +0 -0
  518. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/git_client.py +0 -0
  519. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/math.py +0 -0
  520. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/md5.py +0 -0
  521. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/mid.py +0 -0
  522. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/ordered_set.py +0 -0
  523. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/parallelizer.py +0 -0
  524. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/path_filter.py +0 -0
  525. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/pickle.py +0 -0
  526. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/rst.py +0 -0
  527. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/sha256.py +0 -0
  528. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/shard.py +0 -0
  529. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/sorting.py +0 -0
  530. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/string.py +0 -0
  531. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/textx.py +0 -0
  532. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/helpers/timing.py +0 -0
  533. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/server/__init__.py +0 -0
  534. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/server/app.py +0 -0
  535. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/server/config.py +0 -0
  536. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/server/error_object.py +0 -0
  537. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/server/main.py +0 -0
  538. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/server/routers/other_router.py +0 -0
  539. {strictdoc-0.0.53 → strictdoc-0.0.54}/strictdoc/server/server.py +0 -0
  540. {strictdoc-0.0.53 → strictdoc-0.0.54}/tasks.py +0 -0
  541. {strictdoc-0.0.53 → strictdoc-0.0.54}/tasks_wine.py +0 -0
  542. {strictdoc-0.0.53 → strictdoc-0.0.54}/tools/confluence_html_table_import.py +0 -0
  543. {strictdoc-0.0.53 → strictdoc-0.0.54}/tools/link_health.py +0 -0
  544. {strictdoc-0.0.53 → strictdoc-0.0.54}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: strictdoc
3
- Version: 0.0.53
3
+ Version: 0.0.54
4
4
  Summary: StrictDoc is open-source software for technical documentation and requirements management.
5
5
  Project-URL: Changelog, https://github.com/strictdoc-project/strictdoc/blob/main/CHANGELOG.md
6
6
  Project-URL: Homepage, https://strictdoc.readthedocs.io/en/stable/
@@ -1,6 +1,6 @@
1
1
  from strictdoc.core.environment import SDocRuntimeEnvironment
2
2
 
3
- __version__ = "0.0.53"
3
+ __version__ = "0.0.54"
4
4
 
5
5
 
6
6
  environment = SDocRuntimeEnvironment(__file__)
@@ -9,6 +9,12 @@ from strictdoc.helpers.auto_described import auto_described
9
9
  from strictdoc.helpers.mid import MID
10
10
 
11
11
 
12
+ @auto_described
13
+ class SDocDocumentContext:
14
+ def __init__(self):
15
+ self.title_number_string = None
16
+
17
+
12
18
  @auto_described
13
19
  class SDocDocument: # pylint: disable=too-many-instance-attributes
14
20
  def __init__(
@@ -44,16 +50,45 @@ class SDocDocument: # pylint: disable=too-many-instance-attributes
44
50
  self.ng_needs_generation = False
45
51
  self.ng_uses_old_refs_field: bool = False
46
52
  self.ng_at_least_one_relations_field: bool = False
53
+ self.ng_has_requirements = False
47
54
 
48
55
  self.meta: Optional[DocumentMeta] = None
49
56
 
50
57
  self.reserved_mid: MID = MID(mid) if mid is not None else MID.create()
51
58
  self.mid_permanent: bool = mid is not None
52
59
  self.included_documents: List["SDocDocument"] = []
60
+ self.context = SDocDocumentContext()
53
61
 
54
62
  self.ng_including_document_reference: Optional = None
63
+ self.ng_including_document_from_file: Optional = None
64
+
65
+ @property
66
+ def uid(self) -> Optional[str]:
67
+ return self.config.uid
68
+
69
+ @property
70
+ def is_section(self):
71
+ return True
72
+
73
+ @property
74
+ def is_root_included_document(self):
75
+ return self.document_is_included()
76
+
77
+ @property
78
+ def is_requirement(self):
79
+ return False
80
+
81
+ @property
82
+ def is_composite_requirement(self):
83
+ return False
55
84
 
56
- def document_is_included(self):
85
+ def get_node_type_string(self) -> Optional[str]:
86
+ return None
87
+
88
+ def get_type_string(self) -> str:
89
+ return "document" if not self.document_is_included() else "section"
90
+
91
+ def document_is_included(self) -> bool:
57
92
  return self.ng_including_document_reference.get_document() is not None
58
93
 
59
94
  def get_included_document(self):
@@ -101,14 +136,14 @@ class SDocDocument: # pylint: disable=too-many-instance-attributes
101
136
  def get_title(self):
102
137
  return self.title
103
138
 
104
- @staticmethod
105
- def get_type_string() -> str:
106
- return "document"
107
-
108
139
  @property
109
140
  def ng_resolved_custom_level(self):
110
141
  return None
111
142
 
143
+ @property
144
+ def requirement_prefix(self) -> str:
145
+ return self.get_requirement_prefix()
146
+
112
147
  def get_requirement_prefix(self) -> str:
113
148
  return self.config.get_requirement_prefix()
114
149
 
@@ -1,7 +1,6 @@
1
1
  from typing import List, Optional
2
2
 
3
3
  from strictdoc.backend.sdoc.document_reference import DocumentReference
4
- from strictdoc.backend.sdoc.models.section import SDocSection
5
4
  from strictdoc.helpers.auto_described import auto_described
6
5
 
7
6
 
@@ -19,9 +18,9 @@ class DocumentFromFile:
19
18
  self.ng_document_reference: Optional[DocumentReference] = None
20
19
  self.ng_included_document_reference: Optional[DocumentReference] = None
21
20
  self.ng_resolved_custom_level = None
21
+ self.ng_whitelisted = True
22
22
  self.resolved_full_path_to_document_file = None
23
23
  self.resolved_document: Optional = None
24
- self.top_section: Optional = None
25
24
 
26
25
  @property
27
26
  def document(self):
@@ -42,25 +41,27 @@ class DocumentFromFile:
42
41
 
43
42
  @property
44
43
  def section_contents(self) -> List:
45
- return [self.top_section]
44
+ return [self.resolved_document]
46
45
 
47
- def configure_with_resolved_document(self, document):
48
- assert document is not None
49
- self.resolved_document = document
50
-
51
- top_section = SDocSection(
52
- self,
53
- mid=None,
54
- uid=None,
55
- custom_level=None,
56
- title=self.resolved_document.title,
57
- requirement_prefix=self.resolved_document.get_requirement_prefix(),
58
- free_texts=self.resolved_document.free_texts,
59
- section_contents=self.resolved_document.section_contents,
60
- root_section=True,
61
- )
46
+ def configure_with_resolved_document(self, resolved_document):
62
47
  assert self.ng_included_document_reference is None
63
48
  assert self.ng_document_reference is not None
64
- top_section.ng_document_reference = self.ng_document_reference
65
- top_section.ng_including_document_reference = self.ng_document_reference
66
- self.top_section = top_section
49
+
50
+ assert resolved_document is not None
51
+ self.resolved_document = resolved_document
52
+
53
+ including_document_or_section = self.parent
54
+
55
+ if including_document_or_section.__class__.__name__ == "SDocDocument":
56
+ including_document = including_document_or_section
57
+ elif including_document_or_section.__class__.__name__ == "SDocSection":
58
+ including_document = including_document_or_section.document
59
+ else:
60
+ raise AssertionError(including_document_or_section)
61
+
62
+ resolved_document.ng_including_document_from_file = self
63
+ resolved_document.ng_including_document_reference.set_document(
64
+ including_document
65
+ )
66
+
67
+ including_document.included_documents.append(resolved_document)
@@ -223,6 +223,10 @@ class SDocNode(SDocObject):
223
223
  def get_title(self):
224
224
  return self.reserved_title
225
225
 
226
+ @property
227
+ def is_root_included_document(self):
228
+ return False
229
+
226
230
  @property
227
231
  def is_root(self) -> bool:
228
232
  return self.document.config.root is True
@@ -70,6 +70,10 @@ class SDocSection(SDocObject): # pylint: disable=too-many-instance-attributes
70
70
  def get_node_type_string(self) -> Optional[str]:
71
71
  return None
72
72
 
73
+ @property
74
+ def is_root_included_document(self):
75
+ return False
76
+
73
77
  def get_title(self):
74
78
  return self.title
75
79
 
@@ -12,7 +12,7 @@ class PickleCache:
12
12
 
13
13
  full_path_to_file = (
14
14
  file_path
15
- if os.path.abspath(file_path)
15
+ if os.path.isabs(file_path)
16
16
  else os.path.abspath(file_path)
17
17
  )
18
18
 
@@ -38,6 +38,7 @@ class ParseContext:
38
38
  self.document_view: Optional[DocumentView] = None
39
39
  self.uses_old_refs_field: bool = False
40
40
  self.at_least_one_relations_field: bool = False
41
+ self.document_has_requirements = False
41
42
 
42
43
  # FIXME: Plain list of all fragments found in the document.
43
44
  self.fragments_from_files: List = []
@@ -168,6 +169,8 @@ class SDocParsingProcessor:
168
169
  def process_composite_requirement(
169
170
  self, composite_requirement: SDocCompositeNode
170
171
  ):
172
+ self.parse_context.document_has_requirements = True
173
+
171
174
  if self.parse_context.document_config.auto_levels:
172
175
  if composite_requirement.ng_resolved_custom_level:
173
176
  raise StrictDocException(
@@ -207,6 +210,8 @@ class SDocParsingProcessor:
207
210
  composite_requirement.ng_resolved_custom_level = "None"
208
211
 
209
212
  def process_requirement(self, requirement: SDocNode):
213
+ self.parse_context.document_has_requirements = True
214
+
210
215
  if requirement.ng_uses_old_refs_field:
211
216
  self.parse_context.uses_old_refs_field = True
212
217
  elif "REFS" in requirement.ordered_fields_lookup:
@@ -38,6 +38,7 @@ class SDReader:
38
38
  input_string, file_name=file_path
39
39
  )
40
40
  parse_context.document_reference.set_document(document)
41
+ document.ng_has_requirements = parse_context.document_has_requirements
41
42
  document.ng_uses_old_refs_field = parse_context.uses_old_refs_field
42
43
  document.ng_at_least_one_relations_field = (
43
44
  parse_context.at_least_one_relations_field
@@ -1,7 +1,7 @@
1
1
  import os.path
2
2
  from enum import Enum
3
3
  from pathlib import Path
4
- from typing import Dict, List, Optional, Tuple
4
+ from typing import Dict, List, Optional, Tuple, Union
5
5
 
6
6
  from strictdoc.backend.sdoc.models.anchor import Anchor
7
7
  from strictdoc.backend.sdoc.models.document import SDocDocument
@@ -201,107 +201,124 @@ class SDWriter:
201
201
  document_grammar: DocumentGrammar = document.grammar
202
202
  if not document_grammar.is_default:
203
203
  output += "\n[GRAMMAR]\n"
204
- output += "ELEMENTS:\n"
205
- for element in document_grammar.elements:
206
- output += "- TAG: "
207
- output += element.tag
208
- output += "\n FIELDS:\n"
209
- refs_field: Optional[GrammarElementFieldReference] = None
210
- for grammar_field in element.fields:
211
- if grammar_field.title == "REFS":
212
- refs_field = assert_cast(
213
- grammar_field, GrammarElementFieldReference
204
+ if document_grammar.import_from_file is not None:
205
+ output += (
206
+ f"IMPORT_FROM_FILE: {document_grammar.import_from_file}\n"
207
+ )
208
+ else:
209
+ output += "ELEMENTS:\n"
210
+ for element in document_grammar.elements:
211
+ output += "- TAG: "
212
+ output += element.tag
213
+ output += "\n FIELDS:\n"
214
+ refs_field: Optional[GrammarElementFieldReference] = None
215
+ for grammar_field in element.fields:
216
+ if grammar_field.title == "REFS":
217
+ refs_field = assert_cast(
218
+ grammar_field, GrammarElementFieldReference
219
+ )
220
+ continue
221
+ output += SDWriter._print_grammar_field_type(
222
+ grammar_field
214
223
  )
215
- continue
216
- output += SDWriter._print_grammar_field_type(grammar_field)
217
224
 
218
- relations: List = element.relations
219
- assert len(relations) > 0, relations
225
+ relations: List = element.relations
226
+ assert len(relations) > 0, relations
220
227
 
221
- # For backward compatibility, we print RELATIONS from REFS
222
- # grammar field if it exists.
223
- if not document_grammar.is_default and refs_field is not None:
224
- relations = refs_field.convert_to_relations()
225
- output += " RELATIONS:\n"
228
+ # For backward compatibility, we print RELATIONS from REFS
229
+ # grammar field if it exists.
230
+ if (
231
+ not document_grammar.is_default
232
+ and refs_field is not None
233
+ ):
234
+ relations = refs_field.convert_to_relations()
235
+ output += " RELATIONS:\n"
226
236
 
227
- assert len(relations) > 0, relations
228
- for element_relation in relations:
229
- output += f" - TYPE: {element_relation.relation_type}\n"
230
- if element_relation.relation_role is not None:
237
+ assert len(relations) > 0, relations
238
+ for element_relation in relations:
231
239
  output += (
232
- f" ROLE: {element_relation.relation_role}\n"
240
+ f" - TYPE: {element_relation.relation_type}\n"
233
241
  )
242
+ if element_relation.relation_role is not None:
243
+ output += (
244
+ f" ROLE: {element_relation.relation_role}\n"
245
+ )
234
246
 
235
247
  for free_text in document.free_texts:
236
248
  output += "\n"
237
249
  output += self._print_free_text(free_text)
238
250
 
239
- output += self._print_body(document, document, document_iterator)
251
+ output += "\n"
252
+
253
+ output += self._print_node(document, document, document_iterator)
254
+
255
+ output = output.rstrip()
256
+ output += "\n"
240
257
 
241
258
  return output, fragments_dict
242
259
 
243
- def _print_body(
260
+ def _print_node(
244
261
  self,
245
- root_node: SDocDocument,
262
+ root_node: Union[SDocDocument, SDocSection, SDocNode, DocumentFromFile],
246
263
  document: SDocDocument,
247
264
  document_iterator: DocumentCachingIterator,
248
265
  ):
249
- assert isinstance(root_node, SDocDocument), root_node
250
266
  assert isinstance(
251
267
  document_iterator, DocumentCachingIterator
252
268
  ), document_iterator
253
269
 
254
- output = ""
270
+ if isinstance(root_node, SDocDocument):
271
+ output = ""
255
272
 
256
- closing_tags = []
257
- for content_node in document_iterator.all_content(
258
- print_fragments=False, print_fragments_from_files=True
259
- ):
260
- if isinstance(content_node, DocumentFromFile):
261
- document_from_file: DocumentFromFile = assert_cast(
262
- content_node, DocumentFromFile
273
+ for node_ in root_node.section_contents:
274
+ if not node_.ng_whitelisted:
275
+ continue
276
+ output += self._print_node(
277
+ node_, document, document_iterator=document_iterator
263
278
  )
264
- output += "\n"
265
- output += self._print_document_from_file(document_from_file)
279
+ return output
266
280
 
267
- continue
281
+ if isinstance(root_node, DocumentFromFile):
282
+ document_from_file: DocumentFromFile = assert_cast(
283
+ root_node, DocumentFromFile
284
+ )
285
+ return self._print_document_from_file(document_from_file)
268
286
 
269
- while (
270
- len(closing_tags) > 0
271
- and content_node.ng_level <= closing_tags[-1][1]
272
- ):
273
- closing_tag, _ = closing_tags.pop()
274
- output += self._print_closing_tag(closing_tag)
287
+ if isinstance(root_node, SDocSection):
288
+ return self._print_section(root_node, document, document_iterator)
275
289
 
276
- output += "\n"
290
+ elif isinstance(root_node, SDocNode):
291
+ output = ""
292
+ if isinstance(root_node, SDocCompositeNode):
293
+ output += "[COMPOSITE_"
294
+ output += root_node.requirement_type
295
+ output += "]\n"
296
+ else:
297
+ output += "["
298
+ output += root_node.requirement_type
299
+ output += "]\n"
277
300
 
278
- if not content_node.ng_whitelisted:
279
- continue
301
+ output += self._print_requirement_fields(
302
+ section_content=root_node, document=document
303
+ )
304
+ output += "\n"
280
305
 
281
- elif isinstance(content_node, SDocSection):
282
- output += self._print_section(content_node, document)
283
- closing_tags.append((TAG.SECTION, content_node.ng_level))
284
- elif isinstance(content_node, SDocNode):
285
- if isinstance(content_node, SDocCompositeNode):
286
- output += "[COMPOSITE_"
287
- output += content_node.requirement_type
288
- output += "]\n"
289
- closing_tags.append(
290
- (TAG.COMPOSITE_REQUIREMENT, content_node.ng_level)
306
+ if isinstance(root_node, SDocCompositeNode):
307
+ for node_ in root_node.requirements:
308
+ if not node_.ng_whitelisted:
309
+ continue
310
+ output += self._print_node(
311
+ node_, document, document_iterator=document_iterator
291
312
  )
292
- else:
293
- output += "["
294
- output += content_node.requirement_type
295
- output += "]\n"
296
313
 
297
- output += self._print_requirement_fields(
298
- section_content=content_node, document=document
299
- )
314
+ output += "[/COMPOSITE_"
315
+ output += root_node.requirement_type
316
+ output += "]\n"
317
+ output += "\n"
300
318
 
301
- for closing_tag, _ in reversed(closing_tags):
302
- output += self._print_closing_tag(closing_tag)
319
+ return output
303
320
 
304
- return output
321
+ raise AssertionError("Must not reach here")
305
322
 
306
323
  def _print_document_from_file(self, document_from_file: DocumentFromFile):
307
324
  assert isinstance(document_from_file, DocumentFromFile)
@@ -311,11 +328,16 @@ class SDWriter:
311
328
 
312
329
  output += "FILE: "
313
330
  output += document_from_file.file
314
- output += "\n"
331
+ output += "\n\n"
315
332
 
316
333
  return output
317
334
 
318
- def _print_section(self, section: SDocSection, document: SDocDocument):
335
+ def _print_section(
336
+ self,
337
+ section: SDocSection,
338
+ document: SDocDocument,
339
+ iterator: DocumentCachingIterator,
340
+ ):
319
341
  assert isinstance(section, SDocSection)
320
342
  output = ""
321
343
  output += "[SECTION]"
@@ -347,6 +369,16 @@ class SDWriter:
347
369
  for free_text in section.free_texts:
348
370
  output += "\n"
349
371
  output += self._print_free_text(free_text)
372
+ output += "\n"
373
+
374
+ for node_ in section.section_contents:
375
+ output += self._print_node(
376
+ node_, document, document_iterator=iterator
377
+ )
378
+
379
+ output += "[/SECTION]"
380
+ output += "\n\n"
381
+
350
382
  return output
351
383
 
352
384
  @staticmethod
@@ -162,11 +162,15 @@ class ExportCommandConfig: # pylint: disable=too-many-instance-attributes
162
162
  return path_to_config
163
163
 
164
164
  def validate(self):
165
- for input_path_ in self.input_paths:
165
+ for idx_, input_path_ in enumerate(self.input_paths.copy()):
166
166
  if not os.path.exists(input_path_):
167
167
  raise CLIValidationError(
168
168
  f"Provided input path does not exist: {input_path_}"
169
169
  )
170
+ if not os.path.isabs(input_path_):
171
+ self.input_paths[idx_] = os.path.abspath(input_path_).rstrip(
172
+ "/"
173
+ )
170
174
  if self._config_path is not None:
171
175
  if not os.path.exists(self._config_path):
172
176
  raise CLIValidationError(
@@ -192,8 +192,12 @@ class DocumentFinder:
192
192
 
193
193
  # Finding assets.
194
194
  tree_asset_dirs = PathFinder.find_directories(
195
- path_to_doc_root, "_assets"
195
+ path_to_doc_root,
196
+ "_assets",
197
+ include_paths=project_config.include_doc_paths,
198
+ exclude_paths=project_config.exclude_doc_paths,
196
199
  )
200
+
197
201
  for asset_dir in tree_asset_dirs:
198
202
  asset_dirs.append(
199
203
  {
@@ -47,6 +47,21 @@ class DocumentCachingIterator:
47
47
  custom_level=not root_node.config.auto_levels,
48
48
  )
49
49
 
50
+ def all_content_from_node(
51
+ self,
52
+ node,
53
+ print_fragments: bool = False,
54
+ print_fragments_from_files: bool = False,
55
+ ):
56
+ document = node if isinstance(node, SDocDocument) else node.document
57
+ yield from self._all_content(
58
+ node,
59
+ print_fragments=print_fragments,
60
+ print_fragments_from_files=print_fragments_from_files,
61
+ level_stack=(),
62
+ custom_level=not document.config.auto_levels,
63
+ )
64
+
50
65
  def _all_content(
51
66
  self,
52
67
  node,
@@ -135,6 +150,18 @@ class DocumentCachingIterator:
135
150
  yield node
136
151
 
137
152
  elif isinstance(node, SDocDocument):
153
+ if (
154
+ print_fragments
155
+ and node.document_is_included()
156
+ and self.document != node
157
+ ):
158
+ node.context.title_number_string = ".".join(
159
+ map(str, level_stack)
160
+ )
161
+ node.ng_level = len(level_stack)
162
+
163
+ yield node
164
+
138
165
  current_number = 0
139
166
  for subnode_ in node.section_contents:
140
167
  if subnode_.ng_resolved_custom_level is None:
@@ -155,7 +182,7 @@ class DocumentCachingIterator:
155
182
  return
156
183
 
157
184
  yield from self._all_content(
158
- node.top_section,
185
+ node.resolved_document,
159
186
  print_fragments=print_fragments,
160
187
  print_fragments_from_files=print_fragments_from_files,
161
188
  level_stack=level_stack,
@@ -164,7 +164,8 @@ class FileFinder:
164
164
  exclude_paths: List[str],
165
165
  ):
166
166
  assert os.path.isdir(root_path)
167
- assert os.path.isabs(root_path)
167
+ assert os.path.isabs(root_path), root_path
168
+ assert not root_path.endswith("/"), root_path
168
169
 
169
170
  extensions_tuple = tuple(extensions) if extensions is not None else ()
170
171
 
@@ -247,7 +248,10 @@ class FileFinder:
247
248
  current_parent_path = os.path.dirname(current_root_path)
248
249
 
249
250
  # top-down search assumes we have seen the parent before.
250
- assert current_parent_path in folder_map
251
+ assert current_parent_path in folder_map, (
252
+ current_parent_path,
253
+ folder_map,
254
+ )
251
255
 
252
256
  current_parent_folder: Folder = folder_map[current_parent_path]
253
257
  current_tree.set_parent_folder(current_parent_folder)
@@ -270,11 +274,38 @@ class FileFinder:
270
274
 
271
275
  class PathFinder:
272
276
  @staticmethod
273
- def find_directories(root_path, directory):
277
+ def find_directories(
278
+ root_path, directory, include_paths: List[str], exclude_paths: List[str]
279
+ ):
274
280
  assert os.path.isdir(root_path)
275
281
  assert os.path.isabs(root_path)
282
+
283
+ path_filter_includes = PathFilter(
284
+ include_paths, positive_or_negative=True
285
+ )
286
+ path_filter_excludes = PathFilter(
287
+ exclude_paths, positive_or_negative=False
288
+ )
289
+
276
290
  directories = []
291
+ # Declare str type to make os.path.relpath type checking happy.
292
+ current_root_path: str
277
293
  for current_root_path, dirs, _ in os.walk(root_path, topdown=True):
294
+ current_root_relative_path: str = os.path.relpath(
295
+ current_root_path, start=root_path
296
+ )
297
+ current_root_relative_path = (
298
+ current_root_relative_path
299
+ if current_root_relative_path != "."
300
+ else ""
301
+ )
302
+
303
+ if path_filter_excludes.match(current_root_relative_path):
304
+ continue
305
+
306
+ if not path_filter_includes.match(current_root_relative_path):
307
+ continue
308
+
278
309
  dirs[:] = [
279
310
  d
280
311
  for d in dirs
@@ -285,6 +316,8 @@ class PathFinder:
285
316
  and d != "Output"
286
317
  and d != "tests"
287
318
  ]
319
+
288
320
  if os.path.basename(current_root_path) == directory:
289
321
  directories.append(current_root_path)
322
+
290
323
  return directories
@@ -133,7 +133,11 @@ class SourceFilesFinder:
133
133
  found_source_files: List[SourceFile] = []
134
134
 
135
135
  # TODO: Unify this on the FileTree class level.
136
- doctree_root_abs_path = project_config.source_root_path
136
+ doctree_root_abs_path = (
137
+ project_config.source_root_path
138
+ if project_config.source_root_path is not None
139
+ else os.getcwd()
140
+ )
137
141
  doctree_root_abs_path = (
138
142
  os.path.dirname(doctree_root_abs_path)
139
143
  if os.path.isfile(doctree_root_abs_path)