strictdoc 0.0.60__tar.gz → 0.2.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 (532) hide show
  1. {strictdoc-0.0.60 → strictdoc-0.2.0}/PKG-INFO +4 -1
  2. {strictdoc-0.0.60 → strictdoc-0.2.0}/pyproject.toml +5 -0
  3. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/__init__.py +1 -1
  4. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/error_handling.py +9 -1
  5. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/grammar/type_system.py +2 -0
  6. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/grammar_reader.py +6 -6
  7. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/type_system.py +10 -0
  8. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/pickle_cache.py +18 -9
  9. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/reader.py +6 -6
  10. strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/caching_reader.py +59 -0
  11. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc_source_code/grammar.py +22 -2
  12. strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/marker_parser.py +94 -0
  13. strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/models/function.py +20 -0
  14. strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/models/function_range_marker.py +68 -0
  15. strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/models/range_marker.py +127 -0
  16. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc_source_code/models/requirement_marker.py +5 -4
  17. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc_source_code/models/source_file_info.py +17 -14
  18. strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/parse_context.py +12 -0
  19. strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/processors/general_language_marker_processors.py +225 -0
  20. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc_source_code/reader.py +43 -45
  21. strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/reader_c.py +209 -0
  22. strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/reader_python.py +289 -0
  23. strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/tree_sitter_helpers.py +18 -0
  24. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/document_finder.py +10 -6
  25. strictdoc-0.2.0/strictdoc/core/file_traceability_index.py +411 -0
  26. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/project_config.py +25 -0
  27. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/traceability_index.py +11 -1
  28. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/traceability_index_builder.py +20 -10
  29. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/create_requirement.py +1 -1
  30. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/update_requirement.py +1 -1
  31. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/form_objects/requirement_form_object.py +3 -1
  32. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/source_file_view_generator.py +22 -1
  33. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/source_file_view_object.py +6 -1
  34. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/html_templates.py +2 -6
  35. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/renderers/link_renderer.py +13 -12
  36. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/renderers/markup_renderer.py +1 -1
  37. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/files/index.jinja +6 -2
  38. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/table/main.jinja +2 -2
  39. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_view/requirement.jinja +11 -7
  40. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/traceability_matrix/file.jinja +2 -2
  41. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html2pdf/html2pdf.py +34 -26
  42. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html2pdf/pdf_print_driver.py +8 -1
  43. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/rst/rst_to_html_fragment_writer.py +10 -9
  44. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/spdx/spdx_generator.py +14 -17
  45. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/spdx/spdx_to_sdoc_converter.py +4 -0
  46. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/git/git_client.py +19 -22
  47. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/string.py +6 -7
  48. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/routers/other_router.py +2 -2
  49. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/server.py +16 -0
  50. strictdoc-0.0.60/strictdoc/backend/sdoc_source_code/models/range_marker.py +0 -99
  51. strictdoc-0.0.60/strictdoc/core/file_traceability_index.py +0 -229
  52. strictdoc-0.0.60/strictdoc/export/html/templates/_shared/requirement_block/files_tree.jinja.html +0 -31
  53. {strictdoc-0.0.60 → strictdoc-0.2.0}/.gitignore +0 -0
  54. {strictdoc-0.0.60 → strictdoc-0.2.0}/LICENSE +0 -0
  55. {strictdoc-0.0.60 → strictdoc-0.2.0}/NOTICE +0 -0
  56. {strictdoc-0.0.60 → strictdoc-0.2.0}/README.md +0 -0
  57. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/__init__.py +0 -0
  58. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/excel/__init__.py +0 -0
  59. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/excel/excel_import.py +0 -0
  60. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/excel/export/__init__.py +0 -0
  61. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/excel/export/excel_generator.py +0 -0
  62. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/excel/import_/__init__.py +0 -0
  63. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/excel/import_/excel_to_sdoc_converter.py +0 -0
  64. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/reqif/__init__.py +0 -0
  65. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/reqif/p01_sdoc/__init__.py +0 -0
  66. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/reqif/p01_sdoc/reqif_to_sdoc_converter.py +0 -0
  67. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/reqif/p01_sdoc/sdoc_to_reqif_converter.py +0 -0
  68. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/reqif/reqif_export.py +0 -0
  69. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/reqif/reqif_import.py +0 -0
  70. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/reqif/sdoc_reqif_fields.py +0 -0
  71. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/__init__.py +0 -0
  72. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/constants.py +0 -0
  73. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/document_reference.py +0 -0
  74. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/errors/__init__.py +0 -0
  75. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/errors/document_tree_error.py +0 -0
  76. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/free_text_reader.py +0 -0
  77. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/grammar/__init__.py +0 -0
  78. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/grammar/grammar.py +0 -0
  79. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/grammar/grammar_builder.py +0 -0
  80. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/grammar/grammar_grammar.py +0 -0
  81. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/__init__.py +0 -0
  82. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/anchor.py +0 -0
  83. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/any_node.py +0 -0
  84. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/constants.py +0 -0
  85. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/document.py +0 -0
  86. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/document_config.py +0 -0
  87. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/document_from_file.py +0 -0
  88. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/document_grammar.py +0 -0
  89. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/document_view.py +0 -0
  90. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/free_text.py +0 -0
  91. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/inline_link.py +0 -0
  92. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/node.py +0 -0
  93. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/object.py +0 -0
  94. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/object_factory.py +0 -0
  95. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/reference.py +0 -0
  96. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/section.py +0 -0
  97. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/processor.py +0 -0
  98. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/validations/__init__.py +0 -0
  99. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/validations/sdoc_validator.py +0 -0
  100. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/writer.py +0 -0
  101. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc_source_code/__init__.py +0 -0
  102. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc_source_code/models/__init__.py +0 -0
  103. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/cli/__init__.py +0 -0
  104. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/cli/argument_int_range.py +0 -0
  105. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/cli/cli_arg_parser.py +0 -0
  106. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/cli/command_parser_builder.py +0 -0
  107. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/cli/main.py +0 -0
  108. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/commands/__init__.py +0 -0
  109. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/commands/about_command.py +0 -0
  110. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/commands/diff_command.py +0 -0
  111. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/commands/dump_grammar_command.py +0 -0
  112. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/commands/manage_autouid_command.py +0 -0
  113. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/commands/version_command.py +0 -0
  114. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/__init__.py +0 -0
  115. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/actions/__init__.py +0 -0
  116. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/actions/export_action.py +0 -0
  117. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/actions/import_action.py +0 -0
  118. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/analyzers/document_stats.py +0 -0
  119. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/analyzers/document_uid_analyzer.py +0 -0
  120. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/asset_manager.py +0 -0
  121. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/document_iterator.py +0 -0
  122. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/document_meta.py +0 -0
  123. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/document_tree.py +0 -0
  124. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/document_tree_iterator.py +0 -0
  125. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/environment.py +0 -0
  126. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/file_tree.py +0 -0
  127. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/finders/__init__.py +0 -0
  128. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/finders/source_files_finder.py +0 -0
  129. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/graph/abstract_bucket.py +0 -0
  130. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/graph/many_to_many_set.py +0 -0
  131. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/graph/one_to_one_dictionary.py +0 -0
  132. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/graph/validations.py +0 -0
  133. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/graph_database.py +0 -0
  134. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/query_engine/grammar.py +0 -0
  135. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/query_engine/query_object.py +0 -0
  136. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/query_engine/query_reader.py +0 -0
  137. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/source_tree.py +0 -0
  138. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/constants.py +0 -0
  139. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/delete_requirement.py +0 -0
  140. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/delete_section.py +0 -0
  141. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/section.py +0 -0
  142. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/update_document_config.py +0 -0
  143. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/update_grammar.py +0 -0
  144. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/update_grammar_element.py +0 -0
  145. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/update_included_document.py +0 -0
  146. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/validation_error.py +0 -0
  147. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/tree_cycle_detector.py +0 -0
  148. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/__init__.py +0 -0
  149. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/__init__.py +0 -0
  150. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/autogen.css +0 -0
  151. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/base.css +0 -0
  152. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/collapsible_list.js +0 -0
  153. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/collapsible_toc.js +0 -0
  154. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/collapsible_tree.js +0 -0
  155. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/content.css +0 -0
  156. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/anchor_controller.js +0 -0
  157. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/copy_to_clipboard_controller.js +0 -0
  158. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/deletable_field_controller.js +0 -0
  159. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/draggable_list_controller.js +0 -0
  160. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/dropdown_menu_controller.js +0 -0
  161. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/editable_field_controller.js +0 -0
  162. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/modal_controller.js +0 -0
  163. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/movable_field_controller.js +0 -0
  164. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/scroll_into_view_controller.js +0 -0
  165. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/tabs_controller.js +0 -0
  166. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/diff.css +0 -0
  167. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/diff.js +0 -0
  168. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/element.css +0 -0
  169. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/favicon.ico +0 -0
  170. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/fonts/NotoSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  171. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/fonts/NotoSans-VariableFont_wdth,wght.ttf +0 -0
  172. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/fonts/NotoSansMono-VariableFont_wdth,wght.ttf +0 -0
  173. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/form.css +0 -0
  174. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/html2pdf/bundle.js +0 -0
  175. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/layout.css +0 -0
  176. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/node.css +0 -0
  177. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/pan_with_space.js +0 -0
  178. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/project_tree.css +0 -0
  179. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/project_tree.js +0 -0
  180. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/requirement-tree.css +0 -0
  181. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/requirement.css +0 -0
  182. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/requirement__temporary.css +0 -0
  183. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/requirements-coverage.js +0 -0
  184. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/resizable_bar.js +0 -0
  185. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/source-code-coverage.js +0 -0
  186. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/source.css +0 -0
  187. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/stimulus.min.js +0 -0
  188. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/table_vew.css +0 -0
  189. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/toc_highlighting.js +0 -0
  190. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/traceability_matrix.css +0 -0
  191. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/tree(not_in_use).css +0 -0
  192. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/turbo.min.js +0 -0
  193. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/viewtype_menu.js +0 -0
  194. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/zoomable.js +0 -0
  195. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/LICENSE-MATHJAX +0 -0
  196. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/tex.js +0 -0
  197. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff +0 -0
  198. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff +0 -0
  199. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff +0 -0
  200. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff +0 -0
  201. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff +0 -0
  202. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff +0 -0
  203. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff +0 -0
  204. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +0 -0
  205. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff +0 -0
  206. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +0 -0
  207. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff +0 -0
  208. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff +0 -0
  209. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff +0 -0
  210. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff +0 -0
  211. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff +0 -0
  212. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff +0 -0
  213. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +0 -0
  214. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +0 -0
  215. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff +0 -0
  216. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff +0 -0
  217. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff +0 -0
  218. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff +0 -0
  219. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff +0 -0
  220. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/tex-mml-chtml.js +0 -0
  221. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mermaid/mermaid.min.js +0 -0
  222. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/nestor/bundle.umd.js +0 -0
  223. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/rapidoc/rapidoc-min.js +0 -0
  224. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/document_type.py +0 -0
  225. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/form_objects/document_config_form_object.py +0 -0
  226. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/form_objects/form_object.py +0 -0
  227. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/form_objects/grammar_element_form_object.py +0 -0
  228. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/form_objects/grammar_form_object.py +0 -0
  229. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/form_objects/included_document_form_object.py +0 -0
  230. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/form_objects/rows/row_with_grammar_element_form_object.py +0 -0
  231. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/form_objects/section_form_object.py +0 -0
  232. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/__init__.py +0 -0
  233. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/document.py +0 -0
  234. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/document_deep_trace.py +0 -0
  235. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/document_pdf.py +0 -0
  236. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/document_table.py +0 -0
  237. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/document_trace.py +0 -0
  238. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/document_tree.py +0 -0
  239. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/project_statistics.py +0 -0
  240. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/source_file_coverage.py +0 -0
  241. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/traceability_matrix.py +0 -0
  242. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/diff_screen_results_view_object.py +0 -0
  243. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/diff_screen_view_object.py +0 -0
  244. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/document_screen_view_object.py +0 -0
  245. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/nestor_view_object.py +0 -0
  246. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/project_statistics_view_object.py +0 -0
  247. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/project_tree_stats.py +0 -0
  248. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/project_tree_view_object.py +0 -0
  249. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/search_screen_view_object.py +0 -0
  250. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/traceability_matrix_view_object.py +0 -0
  251. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/html_generator.py +0 -0
  252. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/renderers/__init__.py +0 -0
  253. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/renderers/html_fragment_writer.py +0 -0
  254. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/renderers/text_to_html_writer.py +0 -0
  255. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg__separator.jinja.html +0 -0
  256. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_add.jinja.html +0 -0
  257. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_add_above.jinja +0 -0
  258. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_add_below.jinja +0 -0
  259. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_add_child.jinja +0 -0
  260. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_anchor.jinja +0 -0
  261. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_back.jinja.html +0 -0
  262. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_book.jinja.html +0 -0
  263. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_close.jinja +0 -0
  264. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_code.jinja.html +0 -0
  265. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_copy.jinja +0 -0
  266. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_delete.jinja.html +0 -0
  267. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_diff.jinja +0 -0
  268. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_document.jinja.html +0 -0
  269. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_done.jinja +0 -0
  270. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_edit.jinja.html +0 -0
  271. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_expand.jinja.html +0 -0
  272. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_file.jinja +0 -0
  273. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_folder.jinja +0 -0
  274. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_folder_collapse.jinja +0 -0
  275. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_folder_sm.jinja +0 -0
  276. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_fragment.jinja +0 -0
  277. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_fragment_draft.jinja +0 -0
  278. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_gear.jinja.html +0 -0
  279. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_go_to_doc.jinja +0 -0
  280. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_index.jinja.html +0 -0
  281. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_list.jinja.html +0 -0
  282. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_maximize.jinja +0 -0
  283. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_minimize.jinja +0 -0
  284. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_minusminus.jinja.html +0 -0
  285. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_move_down.jinja.html +0 -0
  286. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_move_up.jinja.html +0 -0
  287. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_plusplus.jinja.html +0 -0
  288. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_project.jinja.html +0 -0
  289. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_requirement.jinja.html +0 -0
  290. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_reset.jinja +0 -0
  291. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_search.jinja +0 -0
  292. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_source.jinja.html +0 -0
  293. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_stat.jinja +0 -0
  294. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_sync.jinja +0 -0
  295. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_toc.jinja.html +0 -0
  296. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_tree.jinja +0 -0
  297. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_shared/nav.jinja.html +0 -0
  298. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_shared/requirement_tree_left.jinja.html +0 -0
  299. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_shared/requirement_tree_right.jinja.html +0 -0
  300. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_shared/tags.jinja.html +0 -0
  301. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/_shared/stream_refresh_document.jinja.html +0 -0
  302. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/_shared/stream_updated_toc.jinja.html +0 -0
  303. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/add_requirement_comment/stream_add_requirement_comment.jinja.html +0 -0
  304. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/add_requirement_relation/stream_add_requirement_relation.jinja.html +0 -0
  305. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/create_requirement/stream_cancel_new_requirement.jinja.html +0 -0
  306. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/create_requirement/stream_created_requirement.jinja.html +0 -0
  307. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/create_requirement/stream_new_requirement.jinja.html +0 -0
  308. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/create_section/stream_cancel_new_section.jinja.html +0 -0
  309. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/create_section/stream_created_section.jinja.html +0 -0
  310. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/create_section/stream_new_section.jinja.html +0 -0
  311. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_confirm_delete_requirement.jinja +0 -0
  312. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_delete_requirement.jinja.html +0 -0
  313. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/delete_section/stream_confirm_delete_section.jinja +0 -0
  314. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/delete_section/stream_delete_section.jinja.html +0 -0
  315. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_cancel_edit_document_config.jinja.html +0 -0
  316. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_edit_document_config.jinja.html +0 -0
  317. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_save_document_config.jinja.html +0 -0
  318. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/edit_requirement/stream_edit_requirement.jinja.html +0 -0
  319. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/edit_section/stream_edit_section.jinja.html +0 -0
  320. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/edit_section/stream_updated_section.jinja.html +0 -0
  321. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_requirement.jinja +0 -0
  322. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_section.jinja +0 -0
  323. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_form_import_reqif_document.jinja.html +0 -0
  324. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_refresh_with_imported_reqif_document.jinja.html +0 -0
  325. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/project_index/stream_create_document.jinja.html +0 -0
  326. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/project_index/stream_new_document.jinja.html +0 -0
  327. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/base.jinja.html +0 -0
  328. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/anchor/index.jinja +0 -0
  329. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/badge/index.jinja +0 -0
  330. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/button/cancel.jinja +0 -0
  331. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/button/confirm.jinja +0 -0
  332. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/button/delete.jinja +0 -0
  333. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/button/diff.jinja +0 -0
  334. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/button/search.jinja +0 -0
  335. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/button/submit.jinja +0 -0
  336. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/confirm/_usage_example.jinja +0 -0
  337. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/confirm/index.jinja +0 -0
  338. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/field/index.jinja +0 -0
  339. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/field/contenteditable/index.jinja +0 -0
  340. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/field/file/index.jinja +0 -0
  341. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/field/text/index.jinja +0 -0
  342. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/field_action_button/index.jinja +0 -0
  343. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/index.jinja +0 -0
  344. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/row/index.jinja +0 -0
  345. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/example.jinja.html +0 -0
  346. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/frame.jinja +0 -0
  347. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/stream.jinja +0 -0
  348. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/row/row_with_comment.jinja +0 -0
  349. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/row/row_with_relation.jinja +0 -0
  350. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/row/row_with_text_field.jinja +0 -0
  351. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/search.jinja +0 -0
  352. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/grammar_form/index.jinja +0 -0
  353. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/grammar_form/row_with_grammar_element/index.jinja +0 -0
  354. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/grammar_form/row_with_new_grammar_element/index.jinja +0 -0
  355. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/grammar_form_element/index.jinja +0 -0
  356. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/grammar_form_element/row_with_custom_field/index.jinja +0 -0
  357. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/grammar_form_element/row_with_relation/index.jinja +0 -0
  358. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/grammar_form_element/row_with_reserved_field/index.jinja +0 -0
  359. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/header/_usage_example.jinja +0 -0
  360. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/header/header_pagetype.jinja +0 -0
  361. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/header/index.jinja +0 -0
  362. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/included_document_form/index.jinja +0 -0
  363. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/modal/_usage_example.jinja +0 -0
  364. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/modal/form.jinja +0 -0
  365. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/modal/index.jinja +0 -0
  366. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node/card.jinja +0 -0
  367. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node/index.jinja +0 -0
  368. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node/node_controls/card.jinja +0 -0
  369. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node/node_controls/index.jinja +0 -0
  370. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node/root.jinja +0 -0
  371. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/README.txt +0 -0
  372. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/comments/index.jinja +0 -0
  373. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/document_meta/index.jinja +0 -0
  374. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/document_title/index.jinja +0 -0
  375. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/links/index.jinja +0 -0
  376. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/meta/index.jinja +0 -0
  377. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/multiline/index.jinja +0 -0
  378. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/rationale/index.jinja +0 -0
  379. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/section_h/index.jinja +0 -0
  380. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/section_h/pdf.jinja +0 -0
  381. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/section_title/index.jinja +0 -0
  382. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/statement/index.jinja +0 -0
  383. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/text/index.jinja +0 -0
  384. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/title/index.jinja +0 -0
  385. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/title/pdf.jinja +0 -0
  386. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/uid/index.jinja +0 -0
  387. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/uid_standalone/index.jinja +0 -0
  388. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/requirement/card.jinja +0 -0
  389. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/requirement/card_extends_card.jinja +0 -0
  390. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/requirement/index.jinja +0 -0
  391. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/requirement/index_extends_node.jinja +0 -0
  392. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/requirement/pdf.jinja +0 -0
  393. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/requirement/tiny.jinja +0 -0
  394. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/requirement/tiny_extends_card.jinja +0 -0
  395. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/resizable_bar/index.jinja +0 -0
  396. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/section/card.jinja +0 -0
  397. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/section/card_extends_card.jinja +0 -0
  398. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/section/index.jinja +0 -0
  399. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/section/index_extends_node.jinja +0 -0
  400. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/section/pdf.jinja +0 -0
  401. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/section/tiny.jinja +0 -0
  402. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/section/tiny_extends_card.jinja +0 -0
  403. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/table_key_value/index.jinja +0 -0
  404. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/text_node/card.jinja +0 -0
  405. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/text_node/card_extends_card.jinja +0 -0
  406. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/text_node/index.jinja +0 -0
  407. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/text_node/index_extends_node.jinja +0 -0
  408. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/text_node/pdf.jinja +0 -0
  409. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/text_node/tiny.jinja +0 -0
  410. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/text_node/tiny_extends_card.jinja +0 -0
  411. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/rst/anchor.jinja +0 -0
  412. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/frame_header_document_title.jinja +0 -0
  413. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_requirement.jinja +0 -0
  414. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_section.jinja +0 -0
  415. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/frame_toc.jinja +0 -0
  416. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/project_tree.jinja +0 -0
  417. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/project_tree_child_documents.jinja +0 -0
  418. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_project_tree.jinja +0 -0
  419. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_toc.jinja +0 -0
  420. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/toc.jinja +0 -0
  421. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/viewtype_menu.jinja +0 -0
  422. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/document/actions.jinja +0 -0
  423. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/document/frame_document_config.jinja.html +0 -0
  424. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/document/frame_document_config_edit.jinja.html +0 -0
  425. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/document/frame_document_content.jinja.html +0 -0
  426. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/document/frame_requirement_form.jinja +0 -0
  427. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/document/frame_section_form.jinja +0 -0
  428. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/document/index.jinja +0 -0
  429. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/document/main.jinja +0 -0
  430. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/pdf/index.jinja +0 -0
  431. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/pdf/main.jinja +0 -0
  432. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/pdf/template/footer.jinja +0 -0
  433. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/pdf/template/frontpage.jinja +0 -0
  434. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/pdf/template/header.jinja +0 -0
  435. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/pdf/toc.jinja +0 -0
  436. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/table/index.jinja +0 -0
  437. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/traceability/index.jinja +0 -0
  438. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/traceability/main.jinja +0 -0
  439. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/traceability_deep/index.jinja +0 -0
  440. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/traceability_deep/main.jinja +0 -0
  441. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/changelog_content.jinja +0 -0
  442. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/diff_content.jinja +0 -0
  443. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/diff_controls.jinja +0 -0
  444. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/fields/document_fields.jinja +0 -0
  445. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/fields/requirement_fields.jinja +0 -0
  446. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/fields/section_fields.jinja +0 -0
  447. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/form.jinja +0 -0
  448. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/frame_changelog_result.jinja +0 -0
  449. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/frame_diff_result.jinja +0 -0
  450. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/index.jinja +0 -0
  451. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/legend.jinja +0 -0
  452. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/main.jinja +0 -0
  453. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/nav_tabs.jinja +0 -0
  454. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/node/requirement.jinja +0 -0
  455. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/node/section.jinja +0 -0
  456. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/skeleton.jinja +0 -0
  457. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/sync/button.jinja +0 -0
  458. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/nestor/index.jinja +0 -0
  459. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/actions.jinja +0 -0
  460. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/frame_form_import_reqif.jinja.html +0 -0
  461. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/frame_form_new_document.jinja.html +0 -0
  462. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/frame_project_tree.jinja.html +0 -0
  463. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/index.jinja +0 -0
  464. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/main.jinja +0 -0
  465. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/project_tree.jinja +0 -0
  466. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/project_tree_file.jinja +0 -0
  467. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/project_tree_folder.jinja +0 -0
  468. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_statistics/index.jinja +0 -0
  469. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_statistics/main.jinja +0 -0
  470. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/search/index.jinja +0 -0
  471. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/search/legend.jinja +0 -0
  472. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/search/main.jinja +0 -0
  473. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_coverage/file.jinja +0 -0
  474. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_coverage/folder.jinja +0 -0
  475. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_coverage/index.jinja +0 -0
  476. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_coverage/main.jinja +0 -0
  477. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_view/aside.jinja +0 -0
  478. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_view/header__source_file_name.jinja +0 -0
  479. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_view/index.jinja +0 -0
  480. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_view/main.jinja +0 -0
  481. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/traceability_matrix/index.jinja +0 -0
  482. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/traceability_matrix/main.jinja +0 -0
  483. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/traceability_matrix/project_tree_flat_anchor_list.jinja +0 -0
  484. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/traceability_matrix/requirement.jinja.html +0 -0
  485. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/traceability_matrix/resizable_bar_with_project_tree.jinja +0 -0
  486. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/website/document/index.jinja +0 -0
  487. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/websocket.jinja.html +0 -0
  488. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/tools/__init__.py +0 -0
  489. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/tools/html_embedded.py +0 -0
  490. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html2pdf/html2pdf_generator.py +0 -0
  491. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/json/json_generator.py +0 -0
  492. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/rst/__init__.py +0 -0
  493. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/rst/directives/raw_html_role.py +0 -0
  494. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/rst/directives/wildcard_enhanced_image.py +0 -0
  495. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/rst/document_rst_generator.py +0 -0
  496. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/rst/rst_templates.py +0 -0
  497. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/rst/templates/requirement.jinja.rst +0 -0
  498. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/rst/writer.py +0 -0
  499. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/spdx/spdx_sdoc_container.py +0 -0
  500. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/git/change.py +0 -0
  501. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/git/change_generator.py +0 -0
  502. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/git/project_diff_analyzer.py +0 -0
  503. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/__init__.py +0 -0
  504. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/auto_described.py +0 -0
  505. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/cast.py +0 -0
  506. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/diff.py +0 -0
  507. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/exception.py +0 -0
  508. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/file_modification_time.py +0 -0
  509. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/file_system.py +0 -0
  510. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/form_data.py +0 -0
  511. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/git_client.py +0 -0
  512. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/math.py +0 -0
  513. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/md5.py +0 -0
  514. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/mid.py +0 -0
  515. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/ordered_set.py +0 -0
  516. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/parallelizer.py +0 -0
  517. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/path_filter.py +0 -0
  518. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/paths.py +0 -0
  519. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/pickle.py +0 -0
  520. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/rst.py +0 -0
  521. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/sha256.py +0 -0
  522. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/shard.py +0 -0
  523. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/sorting.py +0 -0
  524. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/textx.py +0 -0
  525. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/timing.py +0 -0
  526. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/__init__.py +0 -0
  527. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/app.py +0 -0
  528. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/config.py +0 -0
  529. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/error_object.py +0 -0
  530. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/helpers/turbo.py +0 -0
  531. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/main.py +0 -0
  532. {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/routers/main_router.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: strictdoc
3
- Version: 0.0.60
3
+ Version: 0.2.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/
@@ -33,6 +33,9 @@ Requires-Dist: selenium
33
33
  Requires-Dist: spdx-tools
34
34
  Requires-Dist: textx==3.*,>=3.0.0
35
35
  Requires-Dist: toml
36
+ Requires-Dist: tree-sitter
37
+ Requires-Dist: tree-sitter-c
38
+ Requires-Dist: tree-sitter-python
36
39
  Requires-Dist: uvicorn[standard]>=0.14.0
37
40
  Requires-Dist: webdriver-manager
38
41
  Requires-Dist: websockets
@@ -56,6 +56,11 @@ 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
 
@@ -1,6 +1,6 @@
1
1
  from strictdoc.core.environment import SDocRuntimeEnvironment
2
2
 
3
- __version__ = "0.0.60"
3
+ __version__ = "0.2.0"
4
4
 
5
5
 
6
6
  environment = SDocRuntimeEnvironment(__file__)
@@ -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
@@ -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]:
@@ -12,6 +12,7 @@ from strictdoc.backend.sdoc.models.document_grammar import (
12
12
  DocumentGrammarWrapper,
13
13
  )
14
14
  from strictdoc.backend.sdoc.pickle_cache import PickleCache
15
+ from strictdoc.core.project_config import ProjectConfig
15
16
  from strictdoc.helpers.cast import assert_optional_cast
16
17
  from strictdoc.helpers.textx import (
17
18
  drop_textx_meta,
@@ -26,9 +27,6 @@ class SDocGrammarReader:
26
27
  use_regexp_group=True,
27
28
  )
28
29
 
29
- def __init__(self, path_to_output_root: str) -> None:
30
- self.path_to_output_root: str = path_to_output_root
31
-
32
30
  @staticmethod
33
31
  def read(
34
32
  input_string: str, file_path: Optional[str] = None
@@ -60,9 +58,11 @@ class SDocGrammarReader:
60
58
 
61
59
  return grammar
62
60
 
63
- def read_from_file(self, file_path: str) -> DocumentGrammar:
61
+ def read_from_file(
62
+ self, file_path: str, project_config: ProjectConfig
63
+ ) -> DocumentGrammar:
64
64
  unpickled_content: Optional[DocumentGrammar] = assert_optional_cast(
65
- PickleCache.read_from_cache(file_path, self.path_to_output_root),
65
+ PickleCache.read_from_cache(file_path, project_config, "grammar"),
66
66
  DocumentGrammar,
67
67
  )
68
68
  if unpickled_content is not None:
@@ -76,7 +76,7 @@ class SDocGrammarReader:
76
76
  grammar_content, file_path=file_path
77
77
  )
78
78
  PickleCache.save_to_cache(
79
- grammar, file_path, self.path_to_output_root
79
+ grammar, file_path, project_config, "grammar"
80
80
  )
81
81
 
82
82
  return grammar
@@ -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"
@@ -1,18 +1,20 @@
1
1
  import hashlib
2
2
  import os
3
- import tempfile
4
3
  from pathlib import Path
5
4
  from typing import Any
6
5
 
6
+ from strictdoc.core.project_config import ProjectConfig
7
7
  from strictdoc.helpers.md5 import get_file_md5
8
8
  from strictdoc.helpers.pickle import pickle_dump, pickle_load
9
9
 
10
10
 
11
11
  class PickleCache:
12
12
  @staticmethod
13
- def read_from_cache(file_path: str, path_to_root: str) -> Any:
13
+ def read_from_cache(
14
+ file_path: str, project_config: ProjectConfig, content_kind: str
15
+ ) -> Any:
14
16
  path_to_cached_file: str = PickleCache.get_cached_file_path(
15
- file_path, path_to_root
17
+ file_path, project_config, content_kind
16
18
  )
17
19
  if os.path.isfile(path_to_cached_file):
18
20
  with open(path_to_cached_file, "rb") as cache_file:
@@ -30,9 +32,14 @@ class PickleCache:
30
32
  return None
31
33
 
32
34
  @staticmethod
33
- def save_to_cache(content: Any, file_path: str, path_to_root: str) -> None:
35
+ def save_to_cache(
36
+ content: Any,
37
+ file_path: str,
38
+ project_config: ProjectConfig,
39
+ content_kind: str,
40
+ ) -> None:
34
41
  path_to_cached_file: str = PickleCache.get_cached_file_path(
35
- file_path, path_to_root
42
+ file_path, project_config, content_kind
36
43
  )
37
44
  path_to_cached_file_dir: str = os.path.dirname(path_to_cached_file)
38
45
  Path(path_to_cached_file_dir).mkdir(parents=True, exist_ok=True)
@@ -41,8 +48,10 @@ class PickleCache:
41
48
  cache_file.write(pickled_content)
42
49
 
43
50
  @staticmethod
44
- def get_cached_file_path(file_path: str, path_to_output_root: str) -> str:
45
- path_to_tmp_dir = tempfile.gettempdir()
51
+ def get_cached_file_path(
52
+ file_path: str, project_config: ProjectConfig, content_kind: str
53
+ ) -> str:
54
+ path_to_tmp_dir = project_config.get_path_to_cache_dir()
46
55
 
47
56
  full_path_to_file = (
48
57
  file_path
@@ -57,7 +66,7 @@ class PickleCache:
57
66
  # contains a full path to the output root to prevent collisions
58
67
  # between StrictDoc invocations running against the same set of SDoc
59
68
  # files in parallel.
60
- unique_identifier = path_to_output_root + full_path_to_file
69
+ unique_identifier = project_config.output_dir + full_path_to_file
61
70
  unique_identifier_md5 = hashlib.md5(
62
71
  unique_identifier.encode("utf-8")
63
72
  ).hexdigest()
@@ -66,7 +75,7 @@ class PickleCache:
66
75
 
67
76
  path_to_cached_file = os.path.join(
68
77
  path_to_tmp_dir,
69
- "strictdoc_cache",
78
+ content_kind,
70
79
  file_name,
71
80
  )
72
81
 
@@ -11,6 +11,7 @@ from strictdoc.backend.sdoc.models.constants import DOCUMENT_MODELS
11
11
  from strictdoc.backend.sdoc.models.document import SDocDocument
12
12
  from strictdoc.backend.sdoc.pickle_cache import PickleCache
13
13
  from strictdoc.backend.sdoc.processor import ParseContext, SDocParsingProcessor
14
+ from strictdoc.core.project_config import ProjectConfig
14
15
  from strictdoc.helpers.cast import assert_cast
15
16
  from strictdoc.helpers.exception import StrictDocException
16
17
  from strictdoc.helpers.textx import drop_textx_meta
@@ -23,9 +24,6 @@ class SDReader:
23
24
  use_regexp_group=True,
24
25
  )
25
26
 
26
- def __init__(self, path_to_output_root: str = "NOT_RELEVANT"):
27
- self.path_to_output_root = path_to_output_root
28
-
29
27
  @staticmethod
30
28
  def _read(input_string, file_path=None):
31
29
  parse_context = ParseContext(path_to_sdoc_file=file_path)
@@ -54,14 +52,16 @@ class SDReader:
54
52
  document, parse_context = SDReader._read(input_string, file_path)
55
53
  return document, parse_context
56
54
 
57
- def read_from_file(self, file_path: str) -> SDocDocument:
55
+ def read_from_file(
56
+ self, file_path: str, project_config: ProjectConfig
57
+ ) -> SDocDocument:
58
58
  """
59
59
  This function parses the provided .sdoc file and returns a Document
60
60
  object.
61
61
  """
62
62
 
63
63
  unpickled_content = PickleCache.read_from_cache(
64
- file_path, self.path_to_output_root
64
+ file_path, project_config, "sdoc"
65
65
  )
66
66
  if unpickled_content:
67
67
  return assert_cast(unpickled_content, SDocDocument)
@@ -82,7 +82,7 @@ class SDReader:
82
82
  # are not used anyway.
83
83
  drop_textx_meta(sdoc)
84
84
 
85
- PickleCache.save_to_cache(sdoc, file_path, self.path_to_output_root)
85
+ PickleCache.save_to_cache(sdoc, file_path, project_config, "sdoc")
86
86
 
87
87
  return sdoc
88
88
  except StrictDocException as exception:
@@ -0,0 +1,59 @@
1
+ from typing import Union
2
+
3
+ from strictdoc.backend.sdoc.pickle_cache import PickleCache
4
+ from strictdoc.backend.sdoc_source_code.models.source_file_info import (
5
+ SourceFileTraceabilityInfo,
6
+ )
7
+ from strictdoc.backend.sdoc_source_code.reader import (
8
+ SourceFileTraceabilityReader,
9
+ )
10
+ from strictdoc.backend.sdoc_source_code.reader_c import (
11
+ SourceFileTraceabilityReader_C,
12
+ )
13
+ from strictdoc.backend.sdoc_source_code.reader_python import (
14
+ SourceFileTraceabilityReader_Python,
15
+ )
16
+ from strictdoc.core.project_config import ProjectConfig
17
+
18
+
19
+ class SourceFileTraceabilityCachingReader:
20
+ @staticmethod
21
+ def read_from_file(
22
+ path_to_file: str, project_config: ProjectConfig
23
+ ) -> SourceFileTraceabilityInfo:
24
+ unpickled_content = PickleCache.read_from_cache(
25
+ path_to_file, project_config, "source_file"
26
+ )
27
+ if unpickled_content is not None:
28
+ assert isinstance(unpickled_content, SourceFileTraceabilityInfo), (
29
+ path_to_file,
30
+ unpickled_content,
31
+ )
32
+ return unpickled_content
33
+
34
+ reader = SourceFileTraceabilityCachingReader._get_reader(
35
+ path_to_file, project_config
36
+ )
37
+ traceability_info: SourceFileTraceabilityInfo = reader.read_from_file(
38
+ path_to_file
39
+ )
40
+ PickleCache.save_to_cache(
41
+ traceability_info, path_to_file, project_config, "source_file"
42
+ )
43
+
44
+ return traceability_info
45
+
46
+ @staticmethod
47
+ def _get_reader(
48
+ path_to_file: str, project_config: ProjectConfig
49
+ ) -> Union[
50
+ SourceFileTraceabilityReader,
51
+ SourceFileTraceabilityReader_Python,
52
+ SourceFileTraceabilityReader_C,
53
+ ]:
54
+ if project_config.is_activated_source_file_language_parsers():
55
+ if path_to_file.endswith(".py"):
56
+ return SourceFileTraceabilityReader_Python()
57
+ if path_to_file.endswith(".c"):
58
+ return SourceFileTraceabilityReader_C()
59
+ return SourceFileTraceabilityReader()
@@ -7,7 +7,7 @@ Part[noskipws]:
7
7
  // The EmptyLine is needed in addition to the SingleLineString because
8
8
  // otherwise textX's get_location() ignores the whitespaces.
9
9
  // TODO: Maybe there is a trick to disable that and only use SingleLineString.
10
- EmptyLine | RangeMarker | LineMarker | SingleLineString
10
+ EmptyLine | RangeMarker | LineMarker | FunctionRangeMarker | SingleLineString
11
11
  ;
12
12
 
13
13
  EmptyLine[noskipws]:
@@ -18,21 +18,41 @@ 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
+ )
32
+ ;
33
+
34
+ FunctionRangeMarker[noskipws]:
35
+ /^.*?@relation/
36
+ "(" (reqs_objs += Req[', ']) ', scope=file)' '\n'?
24
37
  ;
25
38
 
26
39
  LineMarker[noskipws]:
27
40
  // It is a hard-won result: it is important that the "@sdoc" is within the
28
41
  // regex. Putting it next to the regex as "@sdoc" does not work.
29
42
  // TODO: It would be great to check this with the TextX developers.
43
+ (
30
44
  /^.*?@sdoc/
31
45
  "(" (reqs_objs += Req[', ']) ')' '\n'?
46
+ )
47
+ |
48
+ (
49
+ /^.*?@relation/
50
+ "(" (reqs_objs += Req[', ']) ', scope=line)' '\n'?
51
+ )
32
52
  ;
33
53
 
34
54
  Req[noskipws]:
35
- uid = /[A-Za-z][A-Za-z0-9\\-]+/
55
+ uid = /(?!scope=)[A-Za-z][A-Za-z0-9\\-]+/
36
56
  ;
37
57
 
38
58
  SingleLineString[noskipws]:
@@ -0,0 +1,94 @@
1
+ import re
2
+ from typing import List, Optional, Union
3
+
4
+ from strictdoc.backend.sdoc_source_code.models.function_range_marker import (
5
+ FunctionRangeMarker,
6
+ )
7
+ from strictdoc.backend.sdoc_source_code.models.range_marker import (
8
+ LineMarker,
9
+ RangeMarker,
10
+ )
11
+ from strictdoc.backend.sdoc_source_code.models.requirement_marker import Req
12
+
13
+ REGEX_REQ = r"[A-Za-z][A-Za-z0-9\\-]+"
14
+ # @relation(REQ-1, scope=function)
15
+ REGEX_MARKER = rf"@relation\(({REGEX_REQ}(?:, {REGEX_REQ})*)\, scope=(file|class|function|line|range_start|range_end)\)"
16
+
17
+
18
+ class MarkerParser:
19
+ @staticmethod
20
+ def parse(
21
+ input_string: str,
22
+ line_start: int,
23
+ line_end: int,
24
+ comment_line_start: int,
25
+ comment_column_start: int,
26
+ entity_name: Optional[str] = None,
27
+ ) -> List[Union[FunctionRangeMarker, RangeMarker, LineMarker]]:
28
+ markers: List[Union[FunctionRangeMarker, RangeMarker, LineMarker]] = []
29
+ for input_line_idx_, input_line_ in enumerate(
30
+ input_string.splitlines()
31
+ ):
32
+ match = re.search(REGEX_MARKER, input_line_)
33
+ if match is None:
34
+ continue
35
+
36
+ assert match.lastindex is not None
37
+ marker_type = match.group(match.lastindex)
38
+ req_list = match.group(1)
39
+
40
+ first_requirement_index = match.start(1)
41
+
42
+ current_line = comment_line_start + input_line_idx_
43
+ first_requirement_column = first_requirement_index + 1
44
+ if input_line_idx_ == 0:
45
+ first_requirement_column += comment_column_start - 1
46
+ requirements = []
47
+ for req_match in re.finditer(REGEX_REQ, req_list):
48
+ req_item = req_match.group(0) # Matched REQ-XXX item
49
+ # Calculate actual position relative to the original string
50
+ start_index = (
51
+ req_match.start()
52
+ ) # Offset by where group 1 starts
53
+ requirement = Req(None, req_item)
54
+ requirement.ng_source_line = current_line
55
+ requirement.ng_source_column = (
56
+ first_requirement_column + start_index
57
+ )
58
+ requirements.append(requirement)
59
+
60
+ if marker_type in ("file", "class", "function"):
61
+ function_marker = FunctionRangeMarker(None, requirements)
62
+ function_marker.ng_source_line_begin = line_start
63
+ function_marker.ng_range_line_begin = line_start
64
+ function_marker.ng_range_line_end = line_end
65
+ function_marker.ng_marker_line = current_line
66
+ function_marker.ng_marker_column = first_requirement_column
67
+ if marker_type == "file":
68
+ function_marker.set_description("the whole file")
69
+ elif marker_type == "function":
70
+ function_marker.set_description(f"function {entity_name}")
71
+ elif marker_type == "class":
72
+ function_marker.set_description(f"class {entity_name}")
73
+ markers.append(function_marker)
74
+ elif marker_type in ("range_start", "range_end"):
75
+ start_or_end = marker_type == "range_start"
76
+ range_marker = RangeMarker(
77
+ None, "[" if start_or_end else "[/", requirements
78
+ )
79
+ range_marker.ng_source_line_begin = line_start
80
+ range_marker.ng_source_column_begin = first_requirement_column
81
+ range_marker.ng_range_line_begin = line_start
82
+ range_marker.ng_range_line_end = line_end
83
+ range_marker.ng_is_language_parsed = True
84
+ markers.append(range_marker)
85
+ elif marker_type == "line":
86
+ line_marker = LineMarker(None, requirements)
87
+ line_marker.ng_source_line_begin = line_start
88
+ line_marker.ng_range_line_begin = line_start
89
+ line_marker.ng_range_line_end = line_end
90
+ markers.append(line_marker)
91
+ else:
92
+ continue
93
+
94
+ return markers
@@ -0,0 +1,20 @@
1
+ from typing import Any, List
2
+
3
+ from strictdoc.helpers.auto_described import auto_described
4
+
5
+
6
+ @auto_described
7
+ class Function:
8
+ def __init__(
9
+ self,
10
+ parent: Any,
11
+ name: str,
12
+ line_begin: int,
13
+ line_end: int,
14
+ parts: List[Any],
15
+ ):
16
+ self.parent = parent
17
+ self.name = name
18
+ self.parts: List[Any] = parts
19
+ self.line_begin = line_begin
20
+ self.line_end = line_end
@@ -0,0 +1,68 @@
1
+ # mypy: disable-error-code="no-untyped-def,type-arg"
2
+ from enum import Enum
3
+ from typing import List, Optional
4
+
5
+ from strictdoc.backend.sdoc_source_code.models.requirement_marker import Req
6
+ from strictdoc.helpers.auto_described import auto_described
7
+
8
+
9
+ class RangeMarkerType(Enum):
10
+ FUNCTION = "function"
11
+ CLASS = "class"
12
+ FILE = "file"
13
+
14
+
15
+ @auto_described
16
+ class FunctionRangeMarker:
17
+ def __init__(self, parent, reqs_objs: List[Req]):
18
+ assert isinstance(reqs_objs, list)
19
+ self.parent = parent
20
+ self.reqs_objs: List[Req] = reqs_objs
21
+ self.reqs: List[str] = list(map(lambda req: req.uid, reqs_objs))
22
+
23
+ # Line number of the marker in the source code.
24
+ self.ng_source_line_begin: Optional[int] = None
25
+ self.ng_source_column_begin: Optional[int] = None
26
+
27
+ # Line number of the marker range in the source code:
28
+ # TODO: Improve description.
29
+ # For Begin ranges:
30
+ # ng_range_line_begin == ng_source_line_begin # noqa: ERA001
31
+ # ng_range_line_end == ng_source_line_begin of the End marker # noqa: ERA001, E501
32
+ # For End ranges:
33
+ # ng_range_line_begin == ng_range_line_begin of the Begin marker # noqa: ERA001, E501
34
+ # ng_range_line_end == ng_source_line_begin # noqa: ERA001
35
+ self.ng_range_line_begin: Optional[int] = None
36
+ self.ng_range_line_end: Optional[int] = None
37
+
38
+ self.ng_marker_line: Optional[int] = None
39
+ self.ng_marker_column: Optional[int] = None
40
+
41
+ self.ng_is_nodoc = "nosdoc" in self.reqs
42
+
43
+ self._description: Optional[str] = None
44
+
45
+ def is_range_marker(self) -> bool:
46
+ return True
47
+
48
+ def is_line_marker(self) -> bool:
49
+ return False
50
+
51
+ def is_begin(self) -> bool:
52
+ return True
53
+
54
+ def is_end(self) -> bool:
55
+ return False
56
+
57
+ def get_description(self) -> Optional[str]:
58
+ return self._description
59
+
60
+ def set_description(self, description: str) -> None:
61
+ assert isinstance(description, str)
62
+ self._description = description
63
+
64
+
65
+ @auto_described
66
+ class ForwardFunctionRangeMarker(FunctionRangeMarker):
67
+ def __init__(self, parent, reqs_objs: List[Req]):
68
+ super().__init__(parent, reqs_objs)
@@ -0,0 +1,127 @@
1
+ # mypy: disable-error-code="no-untyped-def,type-arg"
2
+ from typing import Any, List, Optional
3
+
4
+ from strictdoc.backend.sdoc_source_code.models.requirement_marker import Req
5
+ from strictdoc.helpers.auto_described import auto_described
6
+
7
+
8
+ @auto_described
9
+ class RangeMarker:
10
+ def __init__(
11
+ self,
12
+ parent: Any,
13
+ begin_or_end: str,
14
+ reqs_objs: List[Req],
15
+ scope: str = "",
16
+ ):
17
+ assert isinstance(reqs_objs, list)
18
+ self.parent: Any = parent
19
+ assert len(begin_or_end) > 0 or scope is not None
20
+
21
+ self.begin_or_end: str
22
+ if len(begin_or_end) > 0:
23
+ self.begin_or_end = begin_or_end
24
+ else:
25
+ assert scope in ("range_start", "range_end")
26
+ self.begin_or_end = "[" if scope == "range_start" else "[/"
27
+
28
+ self.reqs_objs: List[Req] = reqs_objs
29
+ self.reqs: List[str] = list(map(lambda req: req.uid, reqs_objs))
30
+
31
+ # Line number of the marker in the source code.
32
+ self.ng_source_line_begin: Optional[int] = None
33
+ self.ng_source_column_begin: Optional[int] = None
34
+
35
+ # Line number of the marker range in the source code:
36
+ # TODO: Improve description.
37
+ # For Begin ranges:
38
+ # ng_range_line_begin == ng_source_line_begin # noqa: ERA001
39
+ # ng_range_line_end == ng_source_line_begin of the End marker # noqa: ERA001, E501
40
+ # For End ranges:
41
+ # ng_range_line_begin == ng_range_line_begin of the Begin marker # noqa: ERA001, E501
42
+ # ng_range_line_end == ng_source_line_begin # noqa: ERA001
43
+ self.ng_range_line_begin: Optional[int] = None
44
+ self.ng_range_line_end: Optional[int] = None
45
+
46
+ self.ng_is_nodoc = "nosdoc" in self.reqs
47
+ self.ng_is_language_parsed = False
48
+
49
+ def is_begin(self) -> bool:
50
+ return self.begin_or_end == "["
51
+
52
+ def is_end(self) -> bool:
53
+ return self.begin_or_end == "[/"
54
+
55
+ def is_range_marker(self) -> bool:
56
+ return True
57
+
58
+ def is_line_marker(self) -> bool:
59
+ return False
60
+
61
+ def get_description(self) -> Optional[str]:
62
+ return "range"
63
+
64
+
65
+ @auto_described
66
+ class LineMarker:
67
+ def __init__(self, parent: Any, reqs_objs: List[Req]) -> None:
68
+ assert isinstance(reqs_objs, list)
69
+ self.parent = parent
70
+ self.reqs_objs = reqs_objs
71
+ self.reqs = list(map(lambda req: req.uid, reqs_objs))
72
+
73
+ # Line number of the marker in the source code.
74
+ self.ng_source_line_begin: Optional[int] = None
75
+ self.ng_source_column_begin: Optional[int] = None
76
+
77
+ self.ng_range_line_begin: Optional[int] = None
78
+ self.ng_range_line_end: Optional[int] = None
79
+
80
+ self.ng_is_nodoc = "nosdoc" in self.reqs
81
+
82
+ def is_begin(self) -> bool:
83
+ return True
84
+
85
+ def is_end(self) -> bool:
86
+ return False
87
+
88
+ def is_range_marker(self) -> bool:
89
+ return False
90
+
91
+ def is_line_marker(self) -> bool:
92
+ return True
93
+
94
+ def get_description(self) -> Optional[str]:
95
+ return "line"
96
+
97
+
98
+ @auto_described
99
+ class ForwardRangeMarker:
100
+ def __init__(self, start_or_end: bool, reqs_objs: List):
101
+ assert len(reqs_objs) > 0
102
+ self.start_or_end: bool = start_or_end
103
+
104
+ self.reqs_objs = reqs_objs
105
+
106
+ # Line number of the marker in the source code.
107
+ self.ng_source_line_begin: Optional[int] = None
108
+
109
+ self.ng_range_line_begin: Optional[int] = None
110
+ self.ng_range_line_end: Optional[int] = None
111
+
112
+ self.ng_is_nodoc = False
113
+
114
+ def is_begin(self) -> bool:
115
+ return self.start_or_end
116
+
117
+ def is_end(self) -> bool:
118
+ return not self.start_or_end
119
+
120
+ def is_range_marker(self) -> bool:
121
+ return True
122
+
123
+ def is_line_marker(self) -> bool:
124
+ return False
125
+
126
+ def get_description(self) -> Optional[str]:
127
+ return "range"