strictdoc 0.0.59a2__tar.gz → 0.1.0__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 (549) hide show
  1. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/PKG-INFO +6 -5
  2. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/pyproject.toml +16 -14
  3. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/__init__.py +1 -1
  4. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/excel/import_/excel_to_sdoc_converter.py +2 -2
  5. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/reqif/p01_sdoc/reqif_to_sdoc_converter.py +2 -2
  6. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/reqif/p01_sdoc/sdoc_to_reqif_converter.py +2 -2
  7. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/error_handling.py +21 -15
  8. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/grammar/grammar.py +2 -2
  9. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/grammar/type_system.py +2 -0
  10. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/models/document.py +1 -1
  11. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/models/document_grammar.py +2 -2
  12. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/models/document_view.py +3 -3
  13. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/models/node.py +15 -17
  14. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/models/object_factory.py +3 -3
  15. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/models/type_system.py +10 -0
  16. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/processor.py +1 -1
  17. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/validations/sdoc_validator.py +4 -7
  18. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/writer.py +6 -8
  19. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc_source_code/grammar.py +16 -1
  20. strictdoc-0.1.0/strictdoc/backend/sdoc_source_code/marker_parser.py +87 -0
  21. strictdoc-0.1.0/strictdoc/backend/sdoc_source_code/models/function.py +20 -0
  22. strictdoc-0.1.0/strictdoc/backend/sdoc_source_code/models/function_range_marker.py +52 -0
  23. strictdoc-0.1.0/strictdoc/backend/sdoc_source_code/models/range_marker.py +118 -0
  24. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc_source_code/models/requirement_marker.py +5 -4
  25. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc_source_code/models/source_file_info.py +20 -18
  26. strictdoc-0.1.0/strictdoc/backend/sdoc_source_code/parse_context.py +12 -0
  27. strictdoc-0.1.0/strictdoc/backend/sdoc_source_code/processors/general_language_marker_processors.py +225 -0
  28. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc_source_code/reader.py +56 -94
  29. strictdoc-0.1.0/strictdoc/backend/sdoc_source_code/reader_c.py +173 -0
  30. strictdoc-0.1.0/strictdoc/backend/sdoc_source_code/reader_python.py +273 -0
  31. strictdoc-0.1.0/strictdoc/backend/sdoc_source_code/tree_sitter_helpers.py +18 -0
  32. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/analyzers/document_uid_analyzer.py +1 -1
  33. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/document_iterator.py +4 -4
  34. strictdoc-0.1.0/strictdoc/core/file_traceability_index.py +384 -0
  35. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/project_config.py +6 -0
  36. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/query_engine/query_object.py +3 -8
  37. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/traceability_index.py +11 -1
  38. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/traceability_index_builder.py +43 -7
  39. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/transforms/create_requirement.py +1 -1
  40. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/transforms/update_grammar_element.py +1 -1
  41. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/transforms/update_requirement.py +1 -1
  42. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/form_objects/requirement_form_object.py +5 -2
  43. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/source_file_view_generator.py +35 -14
  44. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/view_objects/document_screen_view_object.py +1 -1
  45. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/view_objects/project_statistics_view_object.py +9 -7
  46. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/view_objects/source_file_view_object.py +6 -1
  47. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/renderers/link_renderer.py +13 -12
  48. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_shared/requirement_block/files_tree.jinja.html +2 -2
  49. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/comments/index.jinja +1 -1
  50. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/files/index.jinja +2 -2
  51. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/meta/index.jinja +1 -1
  52. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/multiline/index.jinja +1 -1
  53. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/rationale/index.jinja +1 -1
  54. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/statement/index.jinja +1 -1
  55. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/table_key_value/index.jinja +5 -1
  56. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/table/main.jinja +2 -2
  57. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/source_file_view/main.jinja +6 -6
  58. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/source_file_view/requirement.jinja +7 -7
  59. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/traceability_matrix/file.jinja +2 -2
  60. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html2pdf/html2pdf.py +1 -12
  61. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/json/json_generator.py +2 -2
  62. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/rst/writer.py +1 -1
  63. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/spdx/spdx_generator.py +14 -17
  64. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/spdx/spdx_to_sdoc_converter.py +8 -4
  65. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/string.py +6 -7
  66. strictdoc-0.0.59a2/CHANGELOG.md +0 -2060
  67. strictdoc-0.0.59a2/CONTRIBUTING.md +0 -3
  68. strictdoc-0.0.59a2/Dockerfile +0 -18
  69. strictdoc-0.0.59a2/docs_extra/DO178_requirements.sdoc +0 -373
  70. strictdoc-0.0.59a2/docs_extra/Zephyr_requirements.sdoc +0 -244
  71. strictdoc-0.0.59a2/drafts/requirements/strictdoc.toml +0 -23
  72. strictdoc-0.0.59a2/drafts/rst_examples.sdoc +0 -266
  73. strictdoc-0.0.59a2/drafts/strictdoc_low_level_requirements.sdoc_.sdoc +0 -14
  74. strictdoc-0.0.59a2/mypy.ini +0 -35
  75. strictdoc-0.0.59a2/requirements.bootstrap.txt +0 -6
  76. strictdoc-0.0.59a2/requirements.check.txt +0 -33
  77. strictdoc-0.0.59a2/ruff.toml +0 -95
  78. strictdoc-0.0.59a2/strictdoc/backend/sdoc_source_code/models/range_marker.py +0 -99
  79. strictdoc-0.0.59a2/strictdoc/core/file_traceability_index.py +0 -229
  80. strictdoc-0.0.59a2/strictdoc.toml +0 -47
  81. strictdoc-0.0.59a2/tasks.py +0 -793
  82. strictdoc-0.0.59a2/tasks_wine.py +0 -143
  83. strictdoc-0.0.59a2/tools/confluence_html_table_import.py +0 -204
  84. strictdoc-0.0.59a2/tools/link_health.py +0 -384
  85. strictdoc-0.0.59a2/tox.ini +0 -87
  86. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/.gitignore +0 -0
  87. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/LICENSE +0 -0
  88. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/NOTICE +0 -0
  89. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/README.md +0 -0
  90. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/__init__.py +0 -0
  91. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/excel/__init__.py +0 -0
  92. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/excel/excel_import.py +0 -0
  93. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/excel/export/__init__.py +0 -0
  94. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/excel/export/excel_generator.py +0 -0
  95. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/excel/import_/__init__.py +0 -0
  96. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/reqif/__init__.py +0 -0
  97. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/reqif/p01_sdoc/__init__.py +0 -0
  98. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/reqif/reqif_export.py +0 -0
  99. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/reqif/reqif_import.py +0 -0
  100. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/reqif/sdoc_reqif_fields.py +0 -0
  101. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/__init__.py +0 -0
  102. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/constants.py +0 -0
  103. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/document_reference.py +0 -0
  104. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/errors/__init__.py +0 -0
  105. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/errors/document_tree_error.py +0 -0
  106. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/free_text_reader.py +0 -0
  107. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/grammar/__init__.py +0 -0
  108. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/grammar/grammar_builder.py +0 -0
  109. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/grammar/grammar_grammar.py +0 -0
  110. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/grammar_reader.py +0 -0
  111. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/models/__init__.py +0 -0
  112. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/models/anchor.py +0 -0
  113. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/models/any_node.py +0 -0
  114. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/models/constants.py +0 -0
  115. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/models/document_config.py +0 -0
  116. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/models/document_from_file.py +0 -0
  117. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/models/free_text.py +0 -0
  118. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/models/inline_link.py +0 -0
  119. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/models/object.py +0 -0
  120. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/models/reference.py +0 -0
  121. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/models/section.py +0 -0
  122. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/pickle_cache.py +0 -0
  123. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/reader.py +0 -0
  124. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc/validations/__init__.py +0 -0
  125. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc_source_code/__init__.py +0 -0
  126. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/backend/sdoc_source_code/models/__init__.py +0 -0
  127. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/cli/__init__.py +0 -0
  128. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/cli/argument_int_range.py +0 -0
  129. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/cli/cli_arg_parser.py +0 -0
  130. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/cli/command_parser_builder.py +0 -0
  131. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/cli/main.py +0 -0
  132. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/commands/__init__.py +0 -0
  133. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/commands/about_command.py +0 -0
  134. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/commands/diff_command.py +0 -0
  135. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/commands/dump_grammar_command.py +0 -0
  136. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/commands/manage_autouid_command.py +0 -0
  137. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/commands/version_command.py +0 -0
  138. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/__init__.py +0 -0
  139. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/actions/__init__.py +0 -0
  140. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/actions/export_action.py +0 -0
  141. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/actions/import_action.py +0 -0
  142. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/analyzers/document_stats.py +0 -0
  143. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/asset_manager.py +0 -0
  144. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/document_finder.py +0 -0
  145. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/document_meta.py +0 -0
  146. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/document_tree.py +0 -0
  147. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/document_tree_iterator.py +0 -0
  148. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/environment.py +0 -0
  149. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/file_tree.py +0 -0
  150. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/finders/__init__.py +0 -0
  151. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/finders/source_files_finder.py +0 -0
  152. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/graph/abstract_bucket.py +0 -0
  153. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/graph/many_to_many_set.py +0 -0
  154. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/graph/one_to_one_dictionary.py +0 -0
  155. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/graph/validations.py +0 -0
  156. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/graph_database.py +0 -0
  157. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/query_engine/grammar.py +0 -0
  158. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/query_engine/query_reader.py +0 -0
  159. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/source_tree.py +0 -0
  160. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/transforms/constants.py +0 -0
  161. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/transforms/delete_requirement.py +0 -0
  162. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/transforms/delete_section.py +0 -0
  163. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/transforms/section.py +0 -0
  164. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/transforms/update_document_config.py +0 -0
  165. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/transforms/update_grammar.py +0 -0
  166. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/transforms/update_included_document.py +0 -0
  167. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/transforms/validation_error.py +0 -0
  168. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/core/tree_cycle_detector.py +0 -0
  169. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/__init__.py +0 -0
  170. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/__init__.py +0 -0
  171. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/autogen.css +0 -0
  172. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/base.css +0 -0
  173. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/collapsible_list.js +0 -0
  174. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/collapsible_toc.js +0 -0
  175. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/collapsible_tree.js +0 -0
  176. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/content.css +0 -0
  177. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/controllers/anchor_controller.js +0 -0
  178. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/controllers/copy_to_clipboard_controller.js +0 -0
  179. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/controllers/deletable_field_controller.js +0 -0
  180. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/controllers/draggable_list_controller.js +0 -0
  181. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/controllers/dropdown_menu_controller.js +0 -0
  182. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/controllers/editable_field_controller.js +0 -0
  183. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/controllers/modal_controller.js +0 -0
  184. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/controllers/movable_field_controller.js +0 -0
  185. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/controllers/scroll_into_view_controller.js +0 -0
  186. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/controllers/tabs_controller.js +0 -0
  187. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/diff.css +0 -0
  188. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/diff.js +0 -0
  189. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/element.css +0 -0
  190. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/favicon.ico +0 -0
  191. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/fonts/NotoSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  192. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/fonts/NotoSans-VariableFont_wdth,wght.ttf +0 -0
  193. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/fonts/NotoSansMono-VariableFont_wdth,wght.ttf +0 -0
  194. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/form.css +0 -0
  195. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/html2pdf/bundle.js +0 -0
  196. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/layout.css +0 -0
  197. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/node.css +0 -0
  198. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/pan_with_space.js +0 -0
  199. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/project_tree.css +0 -0
  200. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/project_tree.js +0 -0
  201. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/requirement-tree.css +0 -0
  202. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/requirement.css +0 -0
  203. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/requirement__temporary.css +0 -0
  204. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/requirements-coverage.js +0 -0
  205. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/resizable_bar.js +0 -0
  206. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/source-code-coverage.js +0 -0
  207. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/source.css +0 -0
  208. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/stimulus.min.js +0 -0
  209. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/table_vew.css +0 -0
  210. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/toc_highlighting.js +0 -0
  211. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/traceability_matrix.css +0 -0
  212. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/tree(not_in_use).css +0 -0
  213. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/turbo.min.js +0 -0
  214. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/viewtype_menu.js +0 -0
  215. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static/zoomable.js +0 -0
  216. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/LICENSE-MATHJAX +0 -0
  217. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/tex.js +0 -0
  218. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff +0 -0
  219. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff +0 -0
  220. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff +0 -0
  221. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff +0 -0
  222. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff +0 -0
  223. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff +0 -0
  224. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff +0 -0
  225. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +0 -0
  226. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff +0 -0
  227. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +0 -0
  228. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff +0 -0
  229. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff +0 -0
  230. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff +0 -0
  231. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff +0 -0
  232. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff +0 -0
  233. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff +0 -0
  234. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +0 -0
  235. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +0 -0
  236. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff +0 -0
  237. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff +0 -0
  238. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff +0 -0
  239. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff +0 -0
  240. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff +0 -0
  241. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mathjax/tex-mml-chtml.js +0 -0
  242. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/mermaid/mermaid.min.js +0 -0
  243. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/nestor/bundle.umd.js +0 -0
  244. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/_static_extra/rapidoc/rapidoc-min.js +0 -0
  245. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/document_type.py +0 -0
  246. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/form_objects/document_config_form_object.py +0 -0
  247. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/form_objects/form_object.py +0 -0
  248. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/form_objects/grammar_element_form_object.py +0 -0
  249. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/form_objects/grammar_form_object.py +0 -0
  250. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/form_objects/included_document_form_object.py +0 -0
  251. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/form_objects/rows/row_with_grammar_element_form_object.py +0 -0
  252. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/form_objects/section_form_object.py +0 -0
  253. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/__init__.py +0 -0
  254. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/document.py +0 -0
  255. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/document_deep_trace.py +0 -0
  256. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/document_pdf.py +0 -0
  257. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/document_table.py +0 -0
  258. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/document_trace.py +0 -0
  259. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/document_tree.py +0 -0
  260. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/project_statistics.py +0 -0
  261. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/source_file_coverage.py +0 -0
  262. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/traceability_matrix.py +0 -0
  263. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/view_objects/diff_screen_results_view_object.py +0 -0
  264. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/view_objects/diff_screen_view_object.py +0 -0
  265. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/view_objects/nestor_view_object.py +0 -0
  266. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/view_objects/project_tree_stats.py +0 -0
  267. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/view_objects/project_tree_view_object.py +0 -0
  268. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/view_objects/search_screen_view_object.py +0 -0
  269. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/generators/view_objects/traceability_matrix_view_object.py +0 -0
  270. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/html_generator.py +0 -0
  271. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/html_templates.py +0 -0
  272. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/renderers/__init__.py +0 -0
  273. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/renderers/html_fragment_writer.py +0 -0
  274. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/renderers/markup_renderer.py +0 -0
  275. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/renderers/text_to_html_writer.py +0 -0
  276. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg__separator.jinja.html +0 -0
  277. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_add.jinja.html +0 -0
  278. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_add_above.jinja +0 -0
  279. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_add_below.jinja +0 -0
  280. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_add_child.jinja +0 -0
  281. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_anchor.jinja +0 -0
  282. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_back.jinja.html +0 -0
  283. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_book.jinja.html +0 -0
  284. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_close.jinja +0 -0
  285. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_code.jinja.html +0 -0
  286. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_copy.jinja +0 -0
  287. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_delete.jinja.html +0 -0
  288. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_diff.jinja +0 -0
  289. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_document.jinja.html +0 -0
  290. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_done.jinja +0 -0
  291. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_edit.jinja.html +0 -0
  292. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_expand.jinja.html +0 -0
  293. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_file.jinja +0 -0
  294. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_folder.jinja +0 -0
  295. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_folder_collapse.jinja +0 -0
  296. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_folder_sm.jinja +0 -0
  297. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_fragment.jinja +0 -0
  298. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_fragment_draft.jinja +0 -0
  299. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_gear.jinja.html +0 -0
  300. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_go_to_doc.jinja +0 -0
  301. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_index.jinja.html +0 -0
  302. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_list.jinja.html +0 -0
  303. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_maximize.jinja +0 -0
  304. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_minimize.jinja +0 -0
  305. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_minusminus.jinja.html +0 -0
  306. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_move_down.jinja.html +0 -0
  307. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_move_up.jinja.html +0 -0
  308. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_plusplus.jinja.html +0 -0
  309. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_project.jinja.html +0 -0
  310. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_requirement.jinja.html +0 -0
  311. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_reset.jinja +0 -0
  312. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_search.jinja +0 -0
  313. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_source.jinja.html +0 -0
  314. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_stat.jinja +0 -0
  315. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_sync.jinja +0 -0
  316. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_toc.jinja.html +0 -0
  317. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_res/svg_ico16_tree.jinja +0 -0
  318. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_shared/nav.jinja.html +0 -0
  319. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_shared/requirement_tree_left.jinja.html +0 -0
  320. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_shared/requirement_tree_right.jinja.html +0 -0
  321. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/_shared/tags.jinja.html +0 -0
  322. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/_shared/stream_refresh_document.jinja.html +0 -0
  323. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/_shared/stream_updated_toc.jinja.html +0 -0
  324. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/add_requirement_comment/stream_add_requirement_comment.jinja.html +0 -0
  325. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/add_requirement_relation/stream_add_requirement_relation.jinja.html +0 -0
  326. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/create_requirement/stream_cancel_new_requirement.jinja.html +0 -0
  327. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/create_requirement/stream_created_requirement.jinja.html +0 -0
  328. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/create_requirement/stream_new_requirement.jinja.html +0 -0
  329. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/create_section/stream_cancel_new_section.jinja.html +0 -0
  330. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/create_section/stream_created_section.jinja.html +0 -0
  331. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/create_section/stream_new_section.jinja.html +0 -0
  332. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_confirm_delete_requirement.jinja +0 -0
  333. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_delete_requirement.jinja.html +0 -0
  334. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/delete_section/stream_confirm_delete_section.jinja +0 -0
  335. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/delete_section/stream_delete_section.jinja.html +0 -0
  336. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_cancel_edit_document_config.jinja.html +0 -0
  337. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_edit_document_config.jinja.html +0 -0
  338. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_save_document_config.jinja.html +0 -0
  339. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/edit_requirement/stream_edit_requirement.jinja.html +0 -0
  340. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/edit_section/stream_edit_section.jinja.html +0 -0
  341. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/document/edit_section/stream_updated_section.jinja.html +0 -0
  342. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_requirement.jinja +0 -0
  343. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_section.jinja +0 -0
  344. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_form_import_reqif_document.jinja.html +0 -0
  345. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_refresh_with_imported_reqif_document.jinja.html +0 -0
  346. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/project_index/stream_create_document.jinja.html +0 -0
  347. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/actions/project_index/stream_new_document.jinja.html +0 -0
  348. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/base.jinja.html +0 -0
  349. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/anchor/index.jinja +0 -0
  350. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/badge/index.jinja +0 -0
  351. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/button/cancel.jinja +0 -0
  352. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/button/confirm.jinja +0 -0
  353. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/button/delete.jinja +0 -0
  354. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/button/diff.jinja +0 -0
  355. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/button/search.jinja +0 -0
  356. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/button/submit.jinja +0 -0
  357. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/confirm/_usage_example.jinja +0 -0
  358. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/confirm/index.jinja +0 -0
  359. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/field/index.jinja +0 -0
  360. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/form/field/contenteditable/index.jinja +0 -0
  361. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/form/field/file/index.jinja +0 -0
  362. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/form/field/text/index.jinja +0 -0
  363. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/form/field_action_button/index.jinja +0 -0
  364. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/form/index.jinja +0 -0
  365. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/form/row/index.jinja +0 -0
  366. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/example.jinja.html +0 -0
  367. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/frame.jinja +0 -0
  368. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/stream.jinja +0 -0
  369. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/form/row/row_with_comment.jinja +0 -0
  370. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/form/row/row_with_relation.jinja +0 -0
  371. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/form/row/row_with_text_field.jinja +0 -0
  372. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/form/search.jinja +0 -0
  373. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/grammar_form/index.jinja +0 -0
  374. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/grammar_form/row_with_grammar_element/index.jinja +0 -0
  375. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/grammar_form/row_with_new_grammar_element/index.jinja +0 -0
  376. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/grammar_form_element/index.jinja +0 -0
  377. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/grammar_form_element/row_with_custom_field/index.jinja +0 -0
  378. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/grammar_form_element/row_with_relation/index.jinja +0 -0
  379. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/grammar_form_element/row_with_reserved_field/index.jinja +0 -0
  380. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/header/_usage_example.jinja +0 -0
  381. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/header/header_pagetype.jinja +0 -0
  382. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/header/index.jinja +0 -0
  383. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/included_document_form/index.jinja +0 -0
  384. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/modal/_usage_example.jinja +0 -0
  385. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/modal/form.jinja +0 -0
  386. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/modal/index.jinja +0 -0
  387. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node/card.jinja +0 -0
  388. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node/index.jinja +0 -0
  389. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node/node_controls/card.jinja +0 -0
  390. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node/node_controls/index.jinja +0 -0
  391. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node/root.jinja +0 -0
  392. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/README.txt +0 -0
  393. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/document_meta/index.jinja +0 -0
  394. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/document_title/index.jinja +0 -0
  395. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/links/index.jinja +0 -0
  396. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/section_h/index.jinja +0 -0
  397. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/section_h/pdf.jinja +0 -0
  398. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/section_title/index.jinja +0 -0
  399. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/text/index.jinja +0 -0
  400. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/title/index.jinja +0 -0
  401. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/title/pdf.jinja +0 -0
  402. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/uid/index.jinja +0 -0
  403. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/node_field/uid_standalone/index.jinja +0 -0
  404. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/requirement/card.jinja +0 -0
  405. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/requirement/card_extends_card.jinja +0 -0
  406. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/requirement/index.jinja +0 -0
  407. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/requirement/index_extends_node.jinja +0 -0
  408. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/requirement/pdf.jinja +0 -0
  409. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/requirement/tiny.jinja +0 -0
  410. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/requirement/tiny_extends_card.jinja +0 -0
  411. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/resizable_bar/index.jinja +0 -0
  412. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/section/card.jinja +0 -0
  413. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/section/card_extends_card.jinja +0 -0
  414. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/section/index.jinja +0 -0
  415. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/section/index_extends_node.jinja +0 -0
  416. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/section/pdf.jinja +0 -0
  417. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/section/tiny.jinja +0 -0
  418. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/section/tiny_extends_card.jinja +0 -0
  419. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/text_node/card.jinja +0 -0
  420. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/text_node/card_extends_card.jinja +0 -0
  421. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/text_node/index.jinja +0 -0
  422. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/text_node/index_extends_node.jinja +0 -0
  423. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/text_node/pdf.jinja +0 -0
  424. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/text_node/tiny.jinja +0 -0
  425. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/components/text_node/tiny_extends_card.jinja +0 -0
  426. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/rst/anchor.jinja +0 -0
  427. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/_shared/frame_header_document_title.jinja +0 -0
  428. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_requirement.jinja +0 -0
  429. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_section.jinja +0 -0
  430. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/_shared/frame_toc.jinja +0 -0
  431. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/_shared/project_tree.jinja +0 -0
  432. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/_shared/project_tree_child_documents.jinja +0 -0
  433. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_project_tree.jinja +0 -0
  434. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_toc.jinja +0 -0
  435. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/_shared/toc.jinja +0 -0
  436. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/_shared/viewtype_menu.jinja +0 -0
  437. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/document/actions.jinja +0 -0
  438. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/document/frame_document_config.jinja.html +0 -0
  439. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/document/frame_document_config_edit.jinja.html +0 -0
  440. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/document/frame_document_content.jinja.html +0 -0
  441. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/document/frame_requirement_form.jinja +0 -0
  442. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/document/frame_section_form.jinja +0 -0
  443. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/document/index.jinja +0 -0
  444. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/document/main.jinja +0 -0
  445. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/pdf/index.jinja +0 -0
  446. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/pdf/main.jinja +0 -0
  447. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/pdf/template/footer.jinja +0 -0
  448. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/pdf/template/frontpage.jinja +0 -0
  449. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/pdf/template/header.jinja +0 -0
  450. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/pdf/toc.jinja +0 -0
  451. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/table/index.jinja +0 -0
  452. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/traceability/index.jinja +0 -0
  453. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/traceability/main.jinja +0 -0
  454. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/traceability_deep/index.jinja +0 -0
  455. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/document/traceability_deep/main.jinja +0 -0
  456. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/git/changelog_content.jinja +0 -0
  457. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/git/diff_content.jinja +0 -0
  458. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/git/diff_controls.jinja +0 -0
  459. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/git/fields/document_fields.jinja +0 -0
  460. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/git/fields/requirement_fields.jinja +0 -0
  461. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/git/fields/section_fields.jinja +0 -0
  462. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/git/form.jinja +0 -0
  463. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/git/frame_changelog_result.jinja +0 -0
  464. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/git/frame_diff_result.jinja +0 -0
  465. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/git/index.jinja +0 -0
  466. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/git/legend.jinja +0 -0
  467. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/git/main.jinja +0 -0
  468. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/git/nav_tabs.jinja +0 -0
  469. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/git/node/requirement.jinja +0 -0
  470. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/git/node/section.jinja +0 -0
  471. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/git/skeleton.jinja +0 -0
  472. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/git/sync/button.jinja +0 -0
  473. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/nestor/index.jinja +0 -0
  474. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/project_index/actions.jinja +0 -0
  475. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/project_index/frame_form_import_reqif.jinja.html +0 -0
  476. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/project_index/frame_form_new_document.jinja.html +0 -0
  477. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/project_index/frame_project_tree.jinja.html +0 -0
  478. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/project_index/index.jinja +0 -0
  479. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/project_index/main.jinja +0 -0
  480. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/project_index/project_tree.jinja +0 -0
  481. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/project_index/project_tree_file.jinja +0 -0
  482. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/project_index/project_tree_folder.jinja +0 -0
  483. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/project_statistics/index.jinja +0 -0
  484. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/project_statistics/main.jinja +0 -0
  485. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/search/index.jinja +0 -0
  486. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/search/legend.jinja +0 -0
  487. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/search/main.jinja +0 -0
  488. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/source_file_coverage/file.jinja +0 -0
  489. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/source_file_coverage/folder.jinja +0 -0
  490. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/source_file_coverage/index.jinja +0 -0
  491. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/source_file_coverage/main.jinja +0 -0
  492. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/source_file_view/aside.jinja +0 -0
  493. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/source_file_view/header__source_file_name.jinja +0 -0
  494. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/source_file_view/index.jinja +0 -0
  495. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/traceability_matrix/index.jinja +0 -0
  496. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/traceability_matrix/main.jinja +0 -0
  497. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/traceability_matrix/project_tree_flat_anchor_list.jinja +0 -0
  498. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/traceability_matrix/requirement.jinja.html +0 -0
  499. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/screens/traceability_matrix/resizable_bar_with_project_tree.jinja +0 -0
  500. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/website/document/index.jinja +0 -0
  501. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/templates/websocket.jinja.html +0 -0
  502. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/tools/__init__.py +0 -0
  503. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html/tools/html_embedded.py +0 -0
  504. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html2pdf/html2pdf_generator.py +0 -0
  505. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/html2pdf/pdf_print_driver.py +0 -0
  506. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/rst/__init__.py +0 -0
  507. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/rst/directives/raw_html_role.py +0 -0
  508. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/rst/directives/wildcard_enhanced_image.py +0 -0
  509. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/rst/document_rst_generator.py +0 -0
  510. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/rst/rst_templates.py +0 -0
  511. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/rst/rst_to_html_fragment_writer.py +0 -0
  512. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/rst/templates/requirement.jinja.rst +0 -0
  513. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/export/spdx/spdx_sdoc_container.py +0 -0
  514. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/git/change.py +0 -0
  515. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/git/change_generator.py +0 -0
  516. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/git/git_client.py +0 -0
  517. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/git/project_diff_analyzer.py +0 -0
  518. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/__init__.py +0 -0
  519. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/auto_described.py +0 -0
  520. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/cast.py +0 -0
  521. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/diff.py +0 -0
  522. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/exception.py +0 -0
  523. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/file_modification_time.py +0 -0
  524. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/file_system.py +0 -0
  525. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/form_data.py +0 -0
  526. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/git_client.py +0 -0
  527. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/math.py +0 -0
  528. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/md5.py +0 -0
  529. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/mid.py +0 -0
  530. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/ordered_set.py +0 -0
  531. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/parallelizer.py +0 -0
  532. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/path_filter.py +0 -0
  533. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/paths.py +0 -0
  534. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/pickle.py +0 -0
  535. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/rst.py +0 -0
  536. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/sha256.py +0 -0
  537. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/shard.py +0 -0
  538. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/sorting.py +0 -0
  539. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/textx.py +0 -0
  540. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/helpers/timing.py +0 -0
  541. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/server/__init__.py +0 -0
  542. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/server/app.py +0 -0
  543. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/server/config.py +0 -0
  544. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/server/error_object.py +0 -0
  545. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/server/helpers/turbo.py +0 -0
  546. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/server/main.py +0 -0
  547. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/server/routers/main_router.py +0 -0
  548. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/server/routers/other_router.py +0 -0
  549. {strictdoc-0.0.59a2 → strictdoc-0.1.0}/strictdoc/server/server.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.59a2
3
+ Version: 0.1.0
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,20 +12,18 @@ 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
26
25
  Requires-Dist: html5lib>=1.1
27
26
  Requires-Dist: jinja2>=2.11.2
28
- Requires-Dist: lxml==4.*,>=4.6.2
29
27
  Requires-Dist: pygments==2.*,>=2.10.0
30
28
  Requires-Dist: python-datauri==2.*,>=2.1.1
31
29
  Requires-Dist: python-multipart
@@ -35,6 +33,9 @@ Requires-Dist: selenium
35
33
  Requires-Dist: spdx-tools
36
34
  Requires-Dist: textx==3.*,>=3.0.0
37
35
  Requires-Dist: toml
36
+ Requires-Dist: tree-sitter
37
+ Requires-Dist: tree-sitter-c
38
+ Requires-Dist: tree-sitter-python
38
39
  Requires-Dist: uvicorn[standard]>=0.14.0
39
40
  Requires-Dist: webdriver-manager
40
41
  Requires-Dist: websockets
@@ -6,17 +6,18 @@ build-backend = "hatchling.build"
6
6
  path = "strictdoc/__init__.py"
7
7
 
8
8
  [tool.hatch.build]
9
- exclude = [
10
- "/.*",
11
- "/developer",
12
- "/docs",
13
- "/tests",
9
+ include = [
10
+ "/strictdoc/",
11
+ "LICENSE",
12
+ "NOTICE",
13
+ "README.md",
14
+ "pyproject.toml"
14
15
  ]
15
16
 
16
- #[tool.hatch.build.targets.sdist]
17
- #include = [
18
- # "/uvicorn",
19
- #]
17
+ exclude = [
18
+ # Without this, the folder is still included to the output tar.gz because it has a Markdown file.
19
+ "/developer",
20
+ ]
20
21
 
21
22
  [project]
22
23
  name = "strictdoc"
@@ -24,7 +25,7 @@ dynamic = ["version"]
24
25
  description = "StrictDoc is open-source software for technical documentation and requirements management."
25
26
  readme = "README.md"
26
27
  license = "Apache-2.0"
27
- requires-python = ">=3.7"
28
+ requires-python = ">=3.8"
28
29
  authors = [
29
30
  { name = "Stanislav Pankevich", email = "s.pankevich@gmail.com" },
30
31
  { name = "Maryna Balioura", email = "mettta@gmail.com" },
@@ -36,7 +37,6 @@ classifiers = [
36
37
  "License :: OSI Approved :: BSD License",
37
38
  "Operating System :: OS Independent",
38
39
  "Programming Language :: Python :: 3",
39
- "Programming Language :: Python :: 3.7",
40
40
  "Programming Language :: Python :: 3.8",
41
41
  "Programming Language :: Python :: 3.9",
42
42
  "Programming Language :: Python :: 3.10",
@@ -56,12 +56,14 @@ dependencies = [
56
56
  # Parsing and rendering RST.
57
57
  "docutils >= 0.16, == 0.*",
58
58
 
59
+ # Tree Sitter is used for language/AST-aware parsing of Python, C and other files.
60
+ "tree-sitter",
61
+ "tree-sitter-c",
62
+ "tree-sitter-python",
63
+
59
64
  # Requirements-to-source traceability. Colored syntax for source files.
60
65
  "pygments >= 2.10.0, == 2.*",
61
66
 
62
- # TODO: Only used by reqif. Remove.
63
- "lxml >= 4.6.2, == 4.*",
64
-
65
67
  # Static HTML export with embedded assets.
66
68
  "beautifulsoup4 >= 4.12.0, == 4.*",
67
69
  "html5lib>=1.1", # Used by beautifulsoup4 as an optional plugin.
@@ -1,6 +1,6 @@
1
1
  from strictdoc.core.environment import SDocRuntimeEnvironment
2
2
 
3
- __version__ = "0.0.59a2"
3
+ __version__ = "0.1.0"
4
4
 
5
5
 
6
6
  environment = SDocRuntimeEnvironment(__file__)
@@ -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,7 +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,
217
+ node_type=template_requirement.node_type,
218
218
  fields=list(template_requirement.enumerate_fields()),
219
219
  relations=template_requirement.relations,
220
220
  )
@@ -404,7 +404,7 @@ class P01_ReqIFToSDocConverter:
404
404
  )
405
405
  node: SDocNode = SDocNode(
406
406
  parent=section,
407
- requirement_type="TEXT",
407
+ node_type="TEXT",
408
408
  fields=[node_field],
409
409
  relations=[],
410
410
  )
@@ -533,7 +533,7 @@ class P01_ReqIFToSDocConverter:
533
533
  )
534
534
  requirement = SDocNode(
535
535
  parent=parent_section,
536
- requirement_type=grammar_element.tag,
536
+ node_type=grammar_element.tag,
537
537
  fields=fields,
538
538
  relations=[],
539
539
  )
@@ -485,7 +485,7 @@ class P01_SDocToReqIFObjectConverter:
485
485
  else:
486
486
  requirement_identifier = generate_unique_identifier("REQUIREMENT")
487
487
 
488
- grammar_element = grammar.elements_by_type[requirement.requirement_type]
488
+ grammar_element = grammar.elements_by_type[requirement.node_type]
489
489
 
490
490
  attributes: List[SpecObjectAttribute] = []
491
491
  for field in requirement.fields_as_parsed:
@@ -574,7 +574,7 @@ class P01_SDocToReqIFObjectConverter:
574
574
  spec_object_type: ReqIFSpecObjectType = (
575
575
  context.map_grammar_node_tags_to_spec_object_type[
576
576
  requirement.document
577
- ][requirement.requirement_type]
577
+ ][requirement.node_type]
578
578
  )
579
579
  spec_object = ReqIFSpecObject.create(
580
580
  identifier=requirement_identifier,
@@ -1,4 +1,6 @@
1
1
  # mypy: disable-error-code="attr-defined,no-untyped-call,no-untyped-def,union-attr"
2
+ from typing import Optional
3
+
2
4
  from textx import TextXSyntaxError
3
5
 
4
6
  from strictdoc.backend.sdoc.models.document import SDocDocument
@@ -25,7 +27,13 @@ def get_textx_syntax_error_message(exception: TextXSyntaxError):
25
27
 
26
28
  class StrictDocSemanticError(Exception):
27
29
  def __init__(
28
- self, title, hint, example, line=None, col=None, filename=None
30
+ self,
31
+ title: str,
32
+ hint: Optional[str],
33
+ example: Optional[str],
34
+ line: Optional[int] = None,
35
+ col: Optional[int] = None,
36
+ filename: Optional[str] = None,
29
37
  ):
30
38
  super().__init__(title, hint, line, col, filename)
31
39
  self.title = title
@@ -36,9 +44,9 @@ class StrictDocSemanticError(Exception):
36
44
  self.file_path = filename
37
45
 
38
46
  @staticmethod
39
- def unknown_requirement_type(node: SDocNode, path_to_sdoc_file: str):
47
+ def unknown_node_type(node: SDocNode, path_to_sdoc_file: str):
40
48
  return StrictDocSemanticError(
41
- title=f"Invalid requirement type: {node.requirement_type}.",
49
+ title=f"Invalid node type: {node.node_type}.",
42
50
  hint=None,
43
51
  example=None,
44
52
  line=node.ng_line_start,
@@ -54,14 +62,12 @@ class StrictDocSemanticError(Exception):
54
62
  document_grammar: DocumentGrammar,
55
63
  path_to_sdoc_file: str,
56
64
  ):
57
- grammar_dump = document_grammar.dump_fields(
58
- requirement.requirement_type
59
- )
65
+ grammar_dump = document_grammar.dump_fields(requirement.node_type)
60
66
  return StrictDocSemanticError(
61
67
  title=f"Invalid requirement field: {field_name}",
62
68
  hint=(
63
69
  f"Compare with the document grammar: [{grammar_dump}] "
64
- f"for type: {requirement.requirement_type}."
70
+ f"for type: {requirement.node_type}."
65
71
  ),
66
72
  example=None,
67
73
  line=requirement.ng_line_start,
@@ -76,7 +82,7 @@ class StrictDocSemanticError(Exception):
76
82
  document_grammar: DocumentGrammar,
77
83
  path_to_sdoc_file: str,
78
84
  ):
79
- grammar_fields = document_grammar.dump_fields(node.requirement_type)
85
+ grammar_fields = document_grammar.dump_fields(node.node_type)
80
86
  return StrictDocSemanticError(
81
87
  title=(
82
88
  f"Requirement is missing a field that is required by "
@@ -99,7 +105,7 @@ class StrictDocSemanticError(Exception):
99
105
  document_grammar: DocumentGrammar,
100
106
  path_to_sdoc_file: str,
101
107
  ):
102
- grammar_fields = document_grammar.dump_fields(node.requirement_type)
108
+ grammar_fields = document_grammar.dump_fields(node.node_type)
103
109
  return StrictDocSemanticError(
104
110
  title=(
105
111
  f"Unexpected field outside grammar: "
@@ -126,13 +132,13 @@ class StrictDocSemanticError(Exception):
126
132
  problematic_field, SDocNodeField
127
133
  ), f"{problematic_field}"
128
134
  requirement_dump = node.dump_fields_as_parsed()
129
- grammar_dump = document_grammar.dump_fields(node.requirement_type)
135
+ grammar_dump = document_grammar.dump_fields(node.node_type)
130
136
  return StrictDocSemanticError(
131
137
  title=f"Wrong field order for requirement: [{requirement_dump}].",
132
138
  hint=(
133
139
  f"Problematic field: {problematic_field.field_name}. "
134
140
  f"Compare with the document grammar: [{grammar_dump}] "
135
- f"for type: {node.requirement_type}."
141
+ f"for type: {node.node_type}."
136
142
  ),
137
143
  example=None,
138
144
  line=node.ng_line_start,
@@ -156,9 +162,9 @@ class StrictDocSemanticError(Exception):
156
162
  f"Problematic field: {requirement_field.field_name}. "
157
163
  f"Compare with the document grammar: "
158
164
  f"["
159
- f"{document_grammar.dump_fields(node.requirement_type)}"
165
+ f"{document_grammar.dump_fields(node.node_type)}"
160
166
  f"] "
161
- f"for type: {node.requirement_type}."
167
+ f"for type: {node.node_type}."
162
168
  ),
163
169
  example=None,
164
170
  line=node.ng_line_start,
@@ -182,9 +188,9 @@ class StrictDocSemanticError(Exception):
182
188
  f"Problematic field: {requirement_field.field_name}. "
183
189
  f"Compare with the document grammar: "
184
190
  f"["
185
- f"{document_grammar.dump_fields(node.requirement_type)}"
191
+ f"{document_grammar.dump_fields(node.node_type)}"
186
192
  f"] "
187
- f"for type: {node.requirement_type}."
193
+ f"for type: {node.node_type}."
188
194
  ),
189
195
  example=None,
190
196
  line=node.ng_line_start,
@@ -174,7 +174,7 @@ ReservedKeyword[noskipws]:
174
174
  ;
175
175
 
176
176
  SDocNode[noskipws]:
177
- '[' !'SECTION' !SDocCompositeNodeTagName requirement_type = RequirementType ']' '\n'
177
+ '[' !'SECTION' !SDocCompositeNodeTagName node_type = RequirementType ']' '\n'
178
178
  fields *= SDocNodeField
179
179
  (
180
180
  'RELATIONS:' '\n'
@@ -210,7 +210,7 @@ SDocNodeField[noskipws]:
210
210
  ;
211
211
 
212
212
  SDocCompositeNode[noskipws]:
213
- '[COMPOSITE_' requirement_type = RequirementType ']' '\n'
213
+ '[COMPOSITE_' node_type = RequirementType ']' '\n'
214
214
 
215
215
  fields *= SDocNodeField
216
216
  (
@@ -47,6 +47,8 @@ FileEntry[noskipws]:
47
47
  (' FORMAT: ' g_file_format = FileEntryFormat '\n')?
48
48
  ' VALUE: ' g_file_path = /.*$/ '\n'
49
49
  (' LINE_RANGE: ' g_line_range = /.*$/ '\n')?
50
+ (' FUNCTION: ' function = /.*$/ '\n')?
51
+ (' CLASS: ' clazz = /.*$/ '\n')?
50
52
  ;
51
53
 
52
54
  FileEntryFormat[noskipws]:
@@ -151,7 +151,7 @@ class SDocDocument:
151
151
  return True
152
152
  continue
153
153
  if section_or_requirement.is_requirement:
154
- if section_or_requirement.requirement_type == "TEXT":
154
+ if section_or_requirement.node_type == "TEXT":
155
155
  continue
156
156
  return True
157
157
  assert section_or_requirement.is_section, section_or_requirement
@@ -294,12 +294,12 @@ class DocumentGrammar:
294
294
  f"Could not find a grammar element with MID: {element_mid}"
295
295
  )
296
296
 
297
- def dump_fields(self, requirement_type) -> str:
297
+ def dump_fields(self, node_type) -> str:
298
298
  return ", ".join(
299
299
  list(
300
300
  map(
301
301
  lambda g: g.title,
302
- self.elements_by_type[requirement_type].fields,
302
+ self.elements_by_type[node_type].fields,
303
303
  )
304
304
  )
305
305
  )
@@ -25,9 +25,9 @@ class ViewElement:
25
25
  self.hidden_tags: Optional[List[ViewElementHiddenTag]] = hidden_tags
26
26
  self.name: Optional[str] = name
27
27
 
28
- def includes_field(self, requirement_type: str, field_name: str) -> bool:
28
+ def includes_field(self, node_type: str, field_name: str) -> bool:
29
29
  for tag_ in self.tags:
30
- if tag_.object_type == requirement_type:
30
+ if tag_.object_type == node_type:
31
31
  field_: ViewElementField
32
32
  for field_ in tag_.visible_fields:
33
33
  if field_.name == field_name:
@@ -43,7 +43,7 @@ class DefaultViewElement(ViewElement):
43
43
  works fine for now.
44
44
  """
45
45
 
46
- def includes_field(self, requirement_type: str, field_name: str) -> bool: # noqa: ARG002
46
+ def includes_field(self, node_type: str, field_name: str) -> bool: # noqa: ARG002
47
47
  return True
48
48
 
49
49
 
@@ -97,21 +97,21 @@ class SDocNode(SDocObject):
97
97
  def __init__(
98
98
  self,
99
99
  parent: Union[SDocDocument, SDocSection, "SDocCompositeNode"],
100
- requirement_type: str,
100
+ node_type: str,
101
101
  fields: List[SDocNodeField],
102
102
  relations: List[Reference],
103
103
  requirements: Optional[List["SDocNode"]] = None,
104
104
  basic_free_text: bool = False,
105
105
  ) -> None:
106
106
  assert parent
107
- assert isinstance(requirement_type, str)
107
+ assert isinstance(node_type, str)
108
108
  assert isinstance(relations, list), relations
109
109
 
110
110
  self.parent: Union[SDocDocument, SDocSection, SDocCompositeNode] = (
111
111
  parent
112
112
  )
113
113
 
114
- self.requirement_type: str = requirement_type
114
+ self.node_type: str = node_type
115
115
 
116
116
  ordered_fields_lookup: OrderedDict[str, List[SDocNodeField]] = (
117
117
  OrderedDict()
@@ -178,17 +178,17 @@ class SDocNode(SDocObject):
178
178
  return "requirement"
179
179
 
180
180
  def get_node_type_string(self) -> Optional[str]:
181
- return self.requirement_type
181
+ return self.node_type
182
182
 
183
183
  def get_node_type_string_lower(self) -> Optional[str]:
184
- return self.requirement_type.lower()
184
+ return self.node_type.lower()
185
185
 
186
186
  def get_display_title(self) -> str:
187
187
  if self.reserved_title is not None:
188
188
  return self.reserved_title
189
189
  if self.reserved_uid is not None:
190
190
  return self.reserved_uid
191
- return f"{self.requirement_type} with no title/UID"
191
+ return f"{self.node_type} with no title/UID"
192
192
 
193
193
  @property
194
194
  def is_root_included_document(self) -> bool:
@@ -233,14 +233,14 @@ class SDocNode(SDocObject):
233
233
 
234
234
  def has_reserved_statement(self) -> bool:
235
235
  element: GrammarElement = self.document.grammar.elements_by_type[
236
- self.requirement_type
236
+ self.node_type
237
237
  ]
238
238
  return element.content_field[0] in self.ordered_fields_lookup
239
239
 
240
240
  @property
241
241
  def reserved_statement(self) -> Optional[str]:
242
242
  element: GrammarElement = self.document.grammar.elements_by_type[
243
- self.requirement_type
243
+ self.node_type
244
244
  ]
245
245
  return self._get_cached_field(
246
246
  element.content_field[0], singleline_only=False
@@ -259,7 +259,7 @@ class SDocNode(SDocObject):
259
259
  return True
260
260
 
261
261
  def is_text_node(self) -> bool:
262
- return self.requirement_type == "TEXT"
262
+ return self.node_type == "TEXT"
263
263
 
264
264
  # FIXME: Remove @property.
265
265
  @property
@@ -335,13 +335,13 @@ class SDocNode(SDocObject):
335
335
 
336
336
  def get_content_field_name(self) -> str:
337
337
  element: GrammarElement = self.document.grammar.elements_by_type[
338
- self.requirement_type
338
+ self.node_type
339
339
  ]
340
340
  return element.content_field[0]
341
341
 
342
342
  def get_content_field(self) -> SDocNodeField:
343
343
  element: GrammarElement = self.document.grammar.elements_by_type[
344
- self.requirement_type
344
+ self.node_type
345
345
  ]
346
346
  return self.ordered_fields_lookup[element.content_field[0]][0]
347
347
 
@@ -456,7 +456,7 @@ class SDocNode(SDocObject):
456
456
  self, skip_single_lines: bool = False, skip_multi_lines: bool = False
457
457
  ) -> Generator[Tuple[str, SDocNodeField], None, None]:
458
458
  element: GrammarElement = self.document.grammar.elements_by_type[
459
- self.requirement_type
459
+ self.node_type
460
460
  ]
461
461
  grammar_field_titles = list(map(lambda f: f.title, element.fields))
462
462
  statement_field_index: int = element.content_field[1]
@@ -489,14 +489,14 @@ class SDocNode(SDocObject):
489
489
 
490
490
  def get_field_human_title(self, field_name: str) -> str:
491
491
  element: GrammarElement = self.document.grammar.elements_by_type[
492
- self.requirement_type
492
+ self.node_type
493
493
  ]
494
494
  field_human_title = element.fields_map[field_name]
495
495
  return field_human_title.get_field_human_name()
496
496
 
497
497
  def get_field_human_title_for_statement(self) -> str:
498
498
  element: GrammarElement = self.document.grammar.elements_by_type[
499
- self.requirement_type
499
+ self.node_type
500
500
  ]
501
501
  field_human_title = element.fields_map[element.content_field[0]]
502
502
  return field_human_title.get_field_human_name()
@@ -567,9 +567,7 @@ class SDocNode(SDocObject):
567
567
  assert grammar_or_none is not None
568
568
  grammar: DocumentGrammar = grammar_or_none
569
569
 
570
- element: GrammarElement = grammar.elements_by_type[
571
- self.requirement_type
572
- ]
570
+ element: GrammarElement = grammar.elements_by_type[self.node_type]
573
571
  grammar_field_titles = list(map(lambda f: f.title, element.fields))
574
572
  field_index = grammar_field_titles.index(field_name)
575
573
 
@@ -23,7 +23,7 @@ class SDocObjectFactory:
23
23
  @staticmethod
24
24
  def create_requirement(
25
25
  parent,
26
- requirement_type: Optional[str] = "REQUIREMENT",
26
+ node_type: Optional[str] = "REQUIREMENT",
27
27
  uid: Optional[str] = None,
28
28
  level: Optional[str] = None,
29
29
  title: Optional[str] = None,
@@ -127,7 +127,7 @@ class SDocObjectFactory:
127
127
  )
128
128
  requirement = SDocNode(
129
129
  parent=parent,
130
- requirement_type=requirement_type,
130
+ node_type=node_type,
131
131
  fields=fields,
132
132
  relations=[],
133
133
  )
@@ -175,7 +175,7 @@ class SDocObjectFactory:
175
175
 
176
176
  requirement = SDocObjectFactory.create_requirement(
177
177
  parent=parent,
178
- requirement_type="REQUIREMENT",
178
+ node_type="REQUIREMENT",
179
179
  uid=uid,
180
180
  level=None,
181
181
  title=title,
@@ -56,6 +56,8 @@ class FileEntry:
56
56
  g_file_format: Optional[str],
57
57
  g_file_path: str,
58
58
  g_line_range: Optional[str],
59
+ function: Optional[str],
60
+ clazz: Optional[str],
59
61
  ):
60
62
  self.parent = parent
61
63
 
@@ -85,6 +87,14 @@ class FileEntry:
85
87
  int(range_components_str[1]),
86
88
  )
87
89
 
90
+ # textX parses an optional element as an empty string. We make it to None ourselves.
91
+ self.function: Optional[str] = (
92
+ function if function is not None and len(function) > 0 else None
93
+ )
94
+ self.clazz: Optional[str] = (
95
+ clazz if clazz is not None and len(clazz) > 0 else None
96
+ )
97
+
88
98
 
89
99
  class FileEntryFormat:
90
100
  SOURCECODE = "Sourcecode"
@@ -71,7 +71,7 @@ class SDocParsingProcessor:
71
71
  ]
72
72
  text_node = SDocNode(
73
73
  parent=parent_node,
74
- requirement_type="TEXT",
74
+ node_type="TEXT",
75
75
  fields=fields,
76
76
  relations=[],
77
77
  requirements=None,
@@ -158,16 +158,13 @@ class SDocValidator:
158
158
  path_to_sdoc_file: str,
159
159
  auto_uid_mode: bool = True,
160
160
  ):
161
- if (
162
- requirement.requirement_type
163
- not in document_grammar.registered_elements
164
- ):
165
- raise StrictDocSemanticError.unknown_requirement_type(
161
+ if requirement.node_type not in document_grammar.registered_elements:
162
+ raise StrictDocSemanticError.unknown_node_type(
166
163
  requirement, path_to_sdoc_file
167
164
  )
168
165
 
169
166
  grammar_element = document_grammar.elements_by_type[
170
- requirement.requirement_type
167
+ requirement.node_type
171
168
  ]
172
169
  registered_fields: Set[str] = set(grammar_element.get_field_titles())
173
170
 
@@ -181,7 +178,7 @@ class SDocValidator:
181
178
  )
182
179
 
183
180
  grammar_element: GrammarElement = document_grammar.elements_by_type[
184
- requirement.requirement_type
181
+ requirement.node_type
185
182
  ]
186
183
  grammar_fields_iterator: Iterator[GrammarElementField] = iter(
187
184
  grammar_element.fields
@@ -294,7 +294,7 @@ class SDWriter:
294
294
  # Special case for backward compatibility.
295
295
  if (
296
296
  not convert_free_text_to_text
297
- and root_node.requirement_type == "TEXT"
297
+ and root_node.node_type == "TEXT"
298
298
  and root_node.basic_free_text
299
299
  ):
300
300
  output += self._print_free_text(root_node)
@@ -302,11 +302,11 @@ class SDWriter:
302
302
  return output
303
303
  if isinstance(root_node, SDocCompositeNode):
304
304
  output += "[COMPOSITE_"
305
- output += root_node.requirement_type
305
+ output += root_node.node_type
306
306
  output += "]\n"
307
307
  else:
308
308
  output += "["
309
- output += root_node.requirement_type
309
+ output += root_node.node_type
310
310
  output += "]\n"
311
311
 
312
312
  output += self._print_requirement_fields(
@@ -323,7 +323,7 @@ class SDWriter:
323
323
  )
324
324
 
325
325
  output += "[/COMPOSITE_"
326
- output += root_node.requirement_type
326
+ output += root_node.node_type
327
327
  output += "]\n"
328
328
  output += "\n"
329
329
 
@@ -401,9 +401,7 @@ class SDWriter:
401
401
  current_view: ViewElement = document.view.get_current_view(
402
402
  self.project_config.view
403
403
  )
404
- element = document.grammar.elements_by_type[
405
- section_content.requirement_type
406
- ]
404
+ element = document.grammar.elements_by_type[section_content.node_type]
407
405
 
408
406
  for element_field in element.fields:
409
407
  field_name = element_field.title
@@ -414,7 +412,7 @@ class SDWriter:
414
412
  output += "\n"
415
413
  continue
416
414
  if not current_view.includes_field(
417
- section_content.requirement_type, field_name
415
+ section_content.node_type, field_name
418
416
  ):
419
417
  continue
420
418
  fields = section_content.ordered_fields_lookup[field_name]
@@ -18,21 +18,36 @@ RangeMarker[noskipws]:
18
18
  // It is a hard-won result: it is important that the "@sdoc" is within the
19
19
  // regex. Putting it next to the regex as "@sdoc" does not work.
20
20
  // TODO: It would be great to check this with the TextX developers.
21
+ (
21
22
  /^.*?@sdoc/
22
23
  (begin_or_end = "[/" | begin_or_end = "[")
23
24
  (reqs_objs += Req[', ']) ']' '\n'?
25
+ )
26
+ |
27
+ (
28
+ /^.*?@relation/
29
+ '('
30
+ (reqs_objs += Req[', ']) ', scope=' scope=/(range_start|range_end)/ ')' '\n'?
31
+ )
24
32
  ;
25
33
 
26
34
  LineMarker[noskipws]:
27
35
  // It is a hard-won result: it is important that the "@sdoc" is within the
28
36
  // regex. Putting it next to the regex as "@sdoc" does not work.
29
37
  // TODO: It would be great to check this with the TextX developers.
38
+ (
30
39
  /^.*?@sdoc/
31
40
  "(" (reqs_objs += Req[', ']) ')' '\n'?
41
+ )
42
+ |
43
+ (
44
+ /^.*?@relation/
45
+ "(" (reqs_objs += Req[', ']) ', scope=line)' '\n'?
46
+ )
32
47
  ;
33
48
 
34
49
  Req[noskipws]:
35
- uid = /[A-Za-z][A-Za-z0-9\\-]+/
50
+ uid = /(?!scope=)[A-Za-z][A-Za-z0-9\\-]+/
36
51
  ;
37
52
 
38
53
  SingleLineString[noskipws]: