strictdoc 0.2.1__tar.gz → 0.3.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 (531) hide show
  1. {strictdoc-0.2.1 → strictdoc-0.3.0}/PKG-INFO +2 -1
  2. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/__init__.py +1 -1
  3. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/models/document_config.py +1 -1
  4. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/models/section.py +1 -1
  5. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc_source_code/caching_reader.py +1 -1
  6. strictdoc-0.3.0/strictdoc/backend/sdoc_source_code/constants.py +7 -0
  7. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc_source_code/grammar.py +2 -2
  8. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc_source_code/marker_parser.py +3 -1
  9. strictdoc-0.3.0/strictdoc/backend/sdoc_source_code/models/function.py +42 -0
  10. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc_source_code/models/function_range_marker.py +6 -3
  11. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc_source_code/models/range_marker.py +1 -1
  12. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc_source_code/models/source_file_info.py +6 -3
  13. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc_source_code/reader_c.py +97 -11
  14. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc_source_code/reader_python.py +10 -7
  15. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc_source_code/tree_sitter_helpers.py +16 -1
  16. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/cli/cli_arg_parser.py +1 -1
  17. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/file_traceability_index.py +108 -3
  18. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/file_tree.py +1 -1
  19. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/finders/source_files_finder.py +6 -4
  20. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/project_config.py +8 -1
  21. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/traceability_index_builder.py +17 -10
  22. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/view_objects/project_tree_stats.py +1 -1
  23. strictdoc-0.2.1/strictdoc/backend/sdoc_source_code/models/function.py +0 -20
  24. {strictdoc-0.2.1 → strictdoc-0.3.0}/.gitignore +0 -0
  25. {strictdoc-0.2.1 → strictdoc-0.3.0}/LICENSE +0 -0
  26. {strictdoc-0.2.1 → strictdoc-0.3.0}/NOTICE +0 -0
  27. {strictdoc-0.2.1 → strictdoc-0.3.0}/README.md +0 -0
  28. {strictdoc-0.2.1 → strictdoc-0.3.0}/pyproject.toml +0 -0
  29. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/__init__.py +0 -0
  30. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/excel/__init__.py +0 -0
  31. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/excel/excel_import.py +0 -0
  32. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/excel/export/__init__.py +0 -0
  33. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/excel/export/excel_generator.py +0 -0
  34. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/excel/import_/__init__.py +0 -0
  35. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/excel/import_/excel_to_sdoc_converter.py +0 -0
  36. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/reqif/__init__.py +0 -0
  37. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/reqif/p01_sdoc/__init__.py +0 -0
  38. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/reqif/p01_sdoc/reqif_to_sdoc_converter.py +0 -0
  39. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/reqif/p01_sdoc/sdoc_to_reqif_converter.py +0 -0
  40. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/reqif/reqif_export.py +0 -0
  41. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/reqif/reqif_import.py +0 -0
  42. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/reqif/sdoc_reqif_fields.py +0 -0
  43. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/__init__.py +0 -0
  44. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/constants.py +0 -0
  45. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/document_reference.py +0 -0
  46. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/error_handling.py +0 -0
  47. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/errors/__init__.py +0 -0
  48. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/errors/document_tree_error.py +0 -0
  49. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/free_text_reader.py +0 -0
  50. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/grammar/__init__.py +0 -0
  51. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/grammar/grammar.py +0 -0
  52. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/grammar/grammar_builder.py +0 -0
  53. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/grammar/grammar_grammar.py +0 -0
  54. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/grammar/type_system.py +0 -0
  55. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/grammar_reader.py +0 -0
  56. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/models/__init__.py +0 -0
  57. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/models/anchor.py +0 -0
  58. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/models/any_node.py +0 -0
  59. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/models/constants.py +0 -0
  60. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/models/document.py +0 -0
  61. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/models/document_from_file.py +0 -0
  62. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/models/document_grammar.py +0 -0
  63. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/models/document_view.py +0 -0
  64. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/models/free_text.py +0 -0
  65. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/models/inline_link.py +0 -0
  66. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/models/node.py +0 -0
  67. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/models/object.py +0 -0
  68. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/models/object_factory.py +0 -0
  69. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/models/reference.py +0 -0
  70. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/models/type_system.py +0 -0
  71. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/pickle_cache.py +0 -0
  72. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/processor.py +0 -0
  73. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/reader.py +0 -0
  74. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/validations/__init__.py +0 -0
  75. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/validations/sdoc_validator.py +0 -0
  76. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc/writer.py +0 -0
  77. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc_source_code/__init__.py +0 -0
  78. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc_source_code/models/__init__.py +0 -0
  79. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc_source_code/models/requirement_marker.py +0 -0
  80. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc_source_code/parse_context.py +0 -0
  81. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc_source_code/processors/general_language_marker_processors.py +0 -0
  82. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/backend/sdoc_source_code/reader.py +0 -0
  83. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/cli/__init__.py +0 -0
  84. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/cli/argument_int_range.py +0 -0
  85. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/cli/command_parser_builder.py +0 -0
  86. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/cli/main.py +0 -0
  87. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/commands/__init__.py +0 -0
  88. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/commands/about_command.py +0 -0
  89. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/commands/diff_command.py +0 -0
  90. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/commands/dump_grammar_command.py +0 -0
  91. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/commands/manage_autouid_command.py +0 -0
  92. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/commands/version_command.py +0 -0
  93. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/__init__.py +0 -0
  94. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/actions/__init__.py +0 -0
  95. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/actions/export_action.py +0 -0
  96. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/actions/import_action.py +0 -0
  97. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/analyzers/document_stats.py +0 -0
  98. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/analyzers/document_uid_analyzer.py +0 -0
  99. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/asset_manager.py +0 -0
  100. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/document_finder.py +0 -0
  101. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/document_iterator.py +0 -0
  102. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/document_meta.py +0 -0
  103. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/document_tree.py +0 -0
  104. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/document_tree_iterator.py +0 -0
  105. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/environment.py +0 -0
  106. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/finders/__init__.py +0 -0
  107. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/graph/abstract_bucket.py +0 -0
  108. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/graph/many_to_many_set.py +0 -0
  109. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/graph/one_to_one_dictionary.py +0 -0
  110. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/graph/validations.py +0 -0
  111. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/graph_database.py +0 -0
  112. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/query_engine/grammar.py +0 -0
  113. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/query_engine/query_object.py +0 -0
  114. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/query_engine/query_reader.py +0 -0
  115. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/source_tree.py +0 -0
  116. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/traceability_index.py +0 -0
  117. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/transforms/constants.py +0 -0
  118. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/transforms/create_requirement.py +0 -0
  119. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/transforms/delete_requirement.py +0 -0
  120. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/transforms/delete_section.py +0 -0
  121. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/transforms/section.py +0 -0
  122. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/transforms/update_document_config.py +0 -0
  123. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/transforms/update_grammar.py +0 -0
  124. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/transforms/update_grammar_element.py +0 -0
  125. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/transforms/update_included_document.py +0 -0
  126. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/transforms/update_requirement.py +0 -0
  127. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/transforms/validation_error.py +0 -0
  128. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/core/tree_cycle_detector.py +0 -0
  129. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/__init__.py +0 -0
  130. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/__init__.py +0 -0
  131. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/autogen.css +0 -0
  132. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/base.css +0 -0
  133. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/collapsible_list.js +0 -0
  134. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/collapsible_toc.js +0 -0
  135. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/collapsible_tree.js +0 -0
  136. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/content.css +0 -0
  137. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/controllers/anchor_controller.js +0 -0
  138. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/controllers/copy_to_clipboard_controller.js +0 -0
  139. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/controllers/deletable_field_controller.js +0 -0
  140. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/controllers/draggable_list_controller.js +0 -0
  141. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/controllers/dropdown_menu_controller.js +0 -0
  142. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/controllers/editable_field_controller.js +0 -0
  143. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/controllers/modal_controller.js +0 -0
  144. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/controllers/movable_field_controller.js +0 -0
  145. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/controllers/scroll_into_view_controller.js +0 -0
  146. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/controllers/tabs_controller.js +0 -0
  147. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/diff.css +0 -0
  148. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/diff.js +0 -0
  149. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/element.css +0 -0
  150. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/favicon.ico +0 -0
  151. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/fonts/NotoSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  152. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/fonts/NotoSans-VariableFont_wdth,wght.ttf +0 -0
  153. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/fonts/NotoSansMono-VariableFont_wdth,wght.ttf +0 -0
  154. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/form.css +0 -0
  155. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/html2pdf/bundle.js +0 -0
  156. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/layout.css +0 -0
  157. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/node.css +0 -0
  158. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/pan_with_space.js +0 -0
  159. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/project_tree.css +0 -0
  160. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/project_tree.js +0 -0
  161. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/requirement-tree.css +0 -0
  162. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/requirement.css +0 -0
  163. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/requirement__temporary.css +0 -0
  164. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/requirements-coverage.js +0 -0
  165. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/resizable_bar.js +0 -0
  166. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/source-code-coverage.js +0 -0
  167. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/source.css +0 -0
  168. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/stimulus.min.js +0 -0
  169. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/table_vew.css +0 -0
  170. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/toc_highlighting.js +0 -0
  171. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/traceability_matrix.css +0 -0
  172. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/tree(not_in_use).css +0 -0
  173. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/turbo.min.js +0 -0
  174. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/viewtype_menu.js +0 -0
  175. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static/zoomable.js +0 -0
  176. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/LICENSE-MATHJAX +0 -0
  177. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/tex.js +0 -0
  178. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff +0 -0
  179. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff +0 -0
  180. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff +0 -0
  181. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff +0 -0
  182. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff +0 -0
  183. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff +0 -0
  184. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff +0 -0
  185. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +0 -0
  186. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff +0 -0
  187. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +0 -0
  188. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff +0 -0
  189. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff +0 -0
  190. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff +0 -0
  191. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff +0 -0
  192. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff +0 -0
  193. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff +0 -0
  194. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +0 -0
  195. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +0 -0
  196. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff +0 -0
  197. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff +0 -0
  198. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff +0 -0
  199. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff +0 -0
  200. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff +0 -0
  201. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mathjax/tex-mml-chtml.js +0 -0
  202. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/mermaid/mermaid.min.js +0 -0
  203. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/nestor/bundle.umd.js +0 -0
  204. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/_static_extra/rapidoc/rapidoc-min.js +0 -0
  205. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/document_type.py +0 -0
  206. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/form_objects/document_config_form_object.py +0 -0
  207. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/form_objects/form_object.py +0 -0
  208. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/form_objects/grammar_element_form_object.py +0 -0
  209. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/form_objects/grammar_form_object.py +0 -0
  210. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/form_objects/included_document_form_object.py +0 -0
  211. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/form_objects/requirement_form_object.py +0 -0
  212. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/form_objects/rows/row_with_grammar_element_form_object.py +0 -0
  213. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/form_objects/section_form_object.py +0 -0
  214. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/__init__.py +0 -0
  215. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/document.py +0 -0
  216. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/document_deep_trace.py +0 -0
  217. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/document_pdf.py +0 -0
  218. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/document_table.py +0 -0
  219. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/document_trace.py +0 -0
  220. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/document_tree.py +0 -0
  221. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/project_statistics.py +0 -0
  222. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/source_file_coverage.py +0 -0
  223. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/source_file_view_generator.py +0 -0
  224. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/traceability_matrix.py +0 -0
  225. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/view_objects/diff_screen_results_view_object.py +0 -0
  226. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/view_objects/diff_screen_view_object.py +0 -0
  227. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/view_objects/document_screen_view_object.py +0 -0
  228. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/view_objects/nestor_view_object.py +0 -0
  229. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/view_objects/project_statistics_view_object.py +0 -0
  230. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/view_objects/project_tree_view_object.py +0 -0
  231. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/view_objects/search_screen_view_object.py +0 -0
  232. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/view_objects/source_file_view_object.py +0 -0
  233. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/generators/view_objects/traceability_matrix_view_object.py +0 -0
  234. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/html_generator.py +0 -0
  235. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/html_templates.py +0 -0
  236. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/renderers/__init__.py +0 -0
  237. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/renderers/html_fragment_writer.py +0 -0
  238. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/renderers/link_renderer.py +0 -0
  239. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/renderers/markup_renderer.py +0 -0
  240. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/renderers/text_to_html_writer.py +0 -0
  241. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg__separator.jinja.html +0 -0
  242. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_add.jinja.html +0 -0
  243. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_add_above.jinja +0 -0
  244. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_add_below.jinja +0 -0
  245. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_add_child.jinja +0 -0
  246. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_anchor.jinja +0 -0
  247. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_back.jinja.html +0 -0
  248. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_book.jinja.html +0 -0
  249. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_close.jinja +0 -0
  250. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_code.jinja.html +0 -0
  251. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_copy.jinja +0 -0
  252. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_delete.jinja.html +0 -0
  253. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_diff.jinja +0 -0
  254. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_document.jinja.html +0 -0
  255. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_done.jinja +0 -0
  256. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_edit.jinja.html +0 -0
  257. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_expand.jinja.html +0 -0
  258. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_file.jinja +0 -0
  259. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_folder.jinja +0 -0
  260. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_folder_collapse.jinja +0 -0
  261. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_folder_sm.jinja +0 -0
  262. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_fragment.jinja +0 -0
  263. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_fragment_draft.jinja +0 -0
  264. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_gear.jinja.html +0 -0
  265. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_go_to_doc.jinja +0 -0
  266. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_index.jinja.html +0 -0
  267. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_list.jinja.html +0 -0
  268. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_maximize.jinja +0 -0
  269. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_minimize.jinja +0 -0
  270. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_minusminus.jinja.html +0 -0
  271. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_move_down.jinja.html +0 -0
  272. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_move_up.jinja.html +0 -0
  273. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_plusplus.jinja.html +0 -0
  274. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_project.jinja.html +0 -0
  275. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_requirement.jinja.html +0 -0
  276. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_reset.jinja +0 -0
  277. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_search.jinja +0 -0
  278. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_source.jinja.html +0 -0
  279. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_stat.jinja +0 -0
  280. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_sync.jinja +0 -0
  281. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_toc.jinja.html +0 -0
  282. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_res/svg_ico16_tree.jinja +0 -0
  283. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_shared/nav.jinja.html +0 -0
  284. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_shared/requirement_tree_left.jinja.html +0 -0
  285. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_shared/requirement_tree_right.jinja.html +0 -0
  286. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/_shared/tags.jinja.html +0 -0
  287. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/_shared/stream_refresh_document.jinja.html +0 -0
  288. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/_shared/stream_updated_toc.jinja.html +0 -0
  289. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/add_requirement_comment/stream_add_requirement_comment.jinja.html +0 -0
  290. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/add_requirement_relation/stream_add_requirement_relation.jinja.html +0 -0
  291. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/create_requirement/stream_cancel_new_requirement.jinja.html +0 -0
  292. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/create_requirement/stream_created_requirement.jinja.html +0 -0
  293. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/create_requirement/stream_new_requirement.jinja.html +0 -0
  294. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/create_section/stream_cancel_new_section.jinja.html +0 -0
  295. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/create_section/stream_created_section.jinja.html +0 -0
  296. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/create_section/stream_new_section.jinja.html +0 -0
  297. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_confirm_delete_requirement.jinja +0 -0
  298. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_delete_requirement.jinja.html +0 -0
  299. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/delete_section/stream_confirm_delete_section.jinja +0 -0
  300. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/delete_section/stream_delete_section.jinja.html +0 -0
  301. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_cancel_edit_document_config.jinja.html +0 -0
  302. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_edit_document_config.jinja.html +0 -0
  303. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_save_document_config.jinja.html +0 -0
  304. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/edit_requirement/stream_edit_requirement.jinja.html +0 -0
  305. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/edit_section/stream_edit_section.jinja.html +0 -0
  306. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/document/edit_section/stream_updated_section.jinja.html +0 -0
  307. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_requirement.jinja +0 -0
  308. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_section.jinja +0 -0
  309. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_form_import_reqif_document.jinja.html +0 -0
  310. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_refresh_with_imported_reqif_document.jinja.html +0 -0
  311. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/project_index/stream_create_document.jinja.html +0 -0
  312. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/actions/project_index/stream_new_document.jinja.html +0 -0
  313. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/base.jinja.html +0 -0
  314. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/anchor/index.jinja +0 -0
  315. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/badge/index.jinja +0 -0
  316. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/button/cancel.jinja +0 -0
  317. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/button/confirm.jinja +0 -0
  318. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/button/delete.jinja +0 -0
  319. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/button/diff.jinja +0 -0
  320. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/button/search.jinja +0 -0
  321. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/button/submit.jinja +0 -0
  322. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/confirm/_usage_example.jinja +0 -0
  323. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/confirm/index.jinja +0 -0
  324. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/field/index.jinja +0 -0
  325. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/form/field/contenteditable/index.jinja +0 -0
  326. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/form/field/file/index.jinja +0 -0
  327. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/form/field/text/index.jinja +0 -0
  328. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/form/field_action_button/index.jinja +0 -0
  329. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/form/index.jinja +0 -0
  330. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/form/row/index.jinja +0 -0
  331. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/example.jinja.html +0 -0
  332. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/frame.jinja +0 -0
  333. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/stream.jinja +0 -0
  334. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/form/row/row_with_comment.jinja +0 -0
  335. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/form/row/row_with_relation.jinja +0 -0
  336. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/form/row/row_with_text_field.jinja +0 -0
  337. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/form/search.jinja +0 -0
  338. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/grammar_form/index.jinja +0 -0
  339. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/grammar_form/row_with_grammar_element/index.jinja +0 -0
  340. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/grammar_form/row_with_new_grammar_element/index.jinja +0 -0
  341. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/grammar_form_element/index.jinja +0 -0
  342. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/grammar_form_element/row_with_custom_field/index.jinja +0 -0
  343. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/grammar_form_element/row_with_relation/index.jinja +0 -0
  344. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/grammar_form_element/row_with_reserved_field/index.jinja +0 -0
  345. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/header/_usage_example.jinja +0 -0
  346. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/header/header_pagetype.jinja +0 -0
  347. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/header/index.jinja +0 -0
  348. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/included_document_form/index.jinja +0 -0
  349. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/modal/_usage_example.jinja +0 -0
  350. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/modal/form.jinja +0 -0
  351. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/modal/index.jinja +0 -0
  352. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node/card.jinja +0 -0
  353. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node/index.jinja +0 -0
  354. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node/node_controls/card.jinja +0 -0
  355. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node/node_controls/index.jinja +0 -0
  356. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node/root.jinja +0 -0
  357. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/README.txt +0 -0
  358. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/comments/index.jinja +0 -0
  359. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/document_meta/index.jinja +0 -0
  360. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/document_title/index.jinja +0 -0
  361. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/files/index.jinja +0 -0
  362. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/links/index.jinja +0 -0
  363. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/meta/index.jinja +0 -0
  364. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/multiline/index.jinja +0 -0
  365. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/rationale/index.jinja +0 -0
  366. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/section_h/index.jinja +0 -0
  367. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/section_h/pdf.jinja +0 -0
  368. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/section_title/index.jinja +0 -0
  369. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/statement/index.jinja +0 -0
  370. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/text/index.jinja +0 -0
  371. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/title/index.jinja +0 -0
  372. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/title/pdf.jinja +0 -0
  373. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/uid/index.jinja +0 -0
  374. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/node_field/uid_standalone/index.jinja +0 -0
  375. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/requirement/card.jinja +0 -0
  376. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/requirement/card_extends_card.jinja +0 -0
  377. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/requirement/index.jinja +0 -0
  378. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/requirement/index_extends_node.jinja +0 -0
  379. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/requirement/pdf.jinja +0 -0
  380. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/requirement/tiny.jinja +0 -0
  381. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/requirement/tiny_extends_card.jinja +0 -0
  382. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/resizable_bar/index.jinja +0 -0
  383. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/section/card.jinja +0 -0
  384. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/section/card_extends_card.jinja +0 -0
  385. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/section/index.jinja +0 -0
  386. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/section/index_extends_node.jinja +0 -0
  387. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/section/pdf.jinja +0 -0
  388. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/section/tiny.jinja +0 -0
  389. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/section/tiny_extends_card.jinja +0 -0
  390. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/table_key_value/index.jinja +0 -0
  391. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/text_node/card.jinja +0 -0
  392. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/text_node/card_extends_card.jinja +0 -0
  393. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/text_node/index.jinja +0 -0
  394. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/text_node/index_extends_node.jinja +0 -0
  395. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/text_node/pdf.jinja +0 -0
  396. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/text_node/tiny.jinja +0 -0
  397. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/components/text_node/tiny_extends_card.jinja +0 -0
  398. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/rst/anchor.jinja +0 -0
  399. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/_shared/frame_header_document_title.jinja +0 -0
  400. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_requirement.jinja +0 -0
  401. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_section.jinja +0 -0
  402. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/_shared/frame_toc.jinja +0 -0
  403. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/_shared/project_tree.jinja +0 -0
  404. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/_shared/project_tree_child_documents.jinja +0 -0
  405. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_project_tree.jinja +0 -0
  406. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_toc.jinja +0 -0
  407. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/_shared/toc.jinja +0 -0
  408. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/_shared/viewtype_menu.jinja +0 -0
  409. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/document/actions.jinja +0 -0
  410. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/document/frame_document_config.jinja.html +0 -0
  411. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/document/frame_document_config_edit.jinja.html +0 -0
  412. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/document/frame_document_content.jinja.html +0 -0
  413. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/document/frame_requirement_form.jinja +0 -0
  414. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/document/frame_section_form.jinja +0 -0
  415. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/document/index.jinja +0 -0
  416. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/document/main.jinja +0 -0
  417. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/pdf/index.jinja +0 -0
  418. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/pdf/main.jinja +0 -0
  419. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/pdf/template/footer.jinja +0 -0
  420. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/pdf/template/frontpage.jinja +0 -0
  421. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/pdf/template/header.jinja +0 -0
  422. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/pdf/toc.jinja +0 -0
  423. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/table/index.jinja +0 -0
  424. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/table/main.jinja +0 -0
  425. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/traceability/index.jinja +0 -0
  426. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/traceability/main.jinja +0 -0
  427. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/traceability_deep/index.jinja +0 -0
  428. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/document/traceability_deep/main.jinja +0 -0
  429. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/git/changelog_content.jinja +0 -0
  430. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/git/diff_content.jinja +0 -0
  431. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/git/diff_controls.jinja +0 -0
  432. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/git/fields/document_fields.jinja +0 -0
  433. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/git/fields/requirement_fields.jinja +0 -0
  434. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/git/fields/section_fields.jinja +0 -0
  435. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/git/form.jinja +0 -0
  436. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/git/frame_changelog_result.jinja +0 -0
  437. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/git/frame_diff_result.jinja +0 -0
  438. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/git/index.jinja +0 -0
  439. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/git/legend.jinja +0 -0
  440. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/git/main.jinja +0 -0
  441. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/git/nav_tabs.jinja +0 -0
  442. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/git/node/requirement.jinja +0 -0
  443. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/git/node/section.jinja +0 -0
  444. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/git/skeleton.jinja +0 -0
  445. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/git/sync/button.jinja +0 -0
  446. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/nestor/index.jinja +0 -0
  447. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/project_index/actions.jinja +0 -0
  448. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/project_index/frame_form_import_reqif.jinja.html +0 -0
  449. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/project_index/frame_form_new_document.jinja.html +0 -0
  450. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/project_index/frame_project_tree.jinja.html +0 -0
  451. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/project_index/index.jinja +0 -0
  452. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/project_index/main.jinja +0 -0
  453. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/project_index/project_tree.jinja +0 -0
  454. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/project_index/project_tree_file.jinja +0 -0
  455. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/project_index/project_tree_folder.jinja +0 -0
  456. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/project_statistics/index.jinja +0 -0
  457. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/project_statistics/main.jinja +0 -0
  458. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/search/index.jinja +0 -0
  459. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/search/legend.jinja +0 -0
  460. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/search/main.jinja +0 -0
  461. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/source_file_coverage/file.jinja +0 -0
  462. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/source_file_coverage/folder.jinja +0 -0
  463. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/source_file_coverage/index.jinja +0 -0
  464. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/source_file_coverage/main.jinja +0 -0
  465. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/source_file_view/aside.jinja +0 -0
  466. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/source_file_view/header__source_file_name.jinja +0 -0
  467. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/source_file_view/index.jinja +0 -0
  468. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/source_file_view/main.jinja +0 -0
  469. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/source_file_view/requirement.jinja +0 -0
  470. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/traceability_matrix/file.jinja +0 -0
  471. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/traceability_matrix/index.jinja +0 -0
  472. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/traceability_matrix/main.jinja +0 -0
  473. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/traceability_matrix/project_tree_flat_anchor_list.jinja +0 -0
  474. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/traceability_matrix/requirement.jinja.html +0 -0
  475. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/screens/traceability_matrix/resizable_bar_with_project_tree.jinja +0 -0
  476. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/website/document/index.jinja +0 -0
  477. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/templates/websocket.jinja.html +0 -0
  478. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/tools/__init__.py +0 -0
  479. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html/tools/html_embedded.py +0 -0
  480. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html2pdf/html2pdf.py +0 -0
  481. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html2pdf/html2pdf_generator.py +0 -0
  482. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/html2pdf/pdf_print_driver.py +0 -0
  483. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/json/json_generator.py +0 -0
  484. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/rst/__init__.py +0 -0
  485. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/rst/directives/raw_html_role.py +0 -0
  486. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/rst/directives/wildcard_enhanced_image.py +0 -0
  487. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/rst/document_rst_generator.py +0 -0
  488. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/rst/rst_templates.py +0 -0
  489. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/rst/rst_to_html_fragment_writer.py +0 -0
  490. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/rst/templates/requirement.jinja.rst +0 -0
  491. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/rst/writer.py +0 -0
  492. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/spdx/spdx_generator.py +0 -0
  493. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/spdx/spdx_sdoc_container.py +0 -0
  494. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/export/spdx/spdx_to_sdoc_converter.py +0 -0
  495. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/git/change.py +0 -0
  496. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/git/change_generator.py +0 -0
  497. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/git/git_client.py +0 -0
  498. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/git/project_diff_analyzer.py +0 -0
  499. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/__init__.py +0 -0
  500. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/auto_described.py +0 -0
  501. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/cast.py +0 -0
  502. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/diff.py +0 -0
  503. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/exception.py +0 -0
  504. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/file_modification_time.py +0 -0
  505. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/file_system.py +0 -0
  506. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/form_data.py +0 -0
  507. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/git_client.py +0 -0
  508. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/math.py +0 -0
  509. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/md5.py +0 -0
  510. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/mid.py +0 -0
  511. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/ordered_set.py +0 -0
  512. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/parallelizer.py +0 -0
  513. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/path_filter.py +0 -0
  514. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/paths.py +0 -0
  515. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/pickle.py +0 -0
  516. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/rst.py +0 -0
  517. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/sha256.py +0 -0
  518. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/shard.py +0 -0
  519. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/sorting.py +0 -0
  520. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/string.py +0 -0
  521. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/textx.py +0 -0
  522. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/helpers/timing.py +0 -0
  523. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/server/__init__.py +0 -0
  524. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/server/app.py +0 -0
  525. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/server/config.py +0 -0
  526. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/server/error_object.py +0 -0
  527. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/server/helpers/turbo.py +0 -0
  528. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/server/main.py +0 -0
  529. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/server/routers/main_router.py +0 -0
  530. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/server/routers/other_router.py +0 -0
  531. {strictdoc-0.2.1 → strictdoc-0.3.0}/strictdoc/server/server.py +0 -0
@@ -1,11 +1,12 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: strictdoc
3
- Version: 0.2.1
3
+ Version: 0.3.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/
7
7
  Project-URL: Source, https://github.com/strictdoc-project/strictdoc
8
8
  Author-email: Stanislav Pankevich <s.pankevich@gmail.com>, Maryna Balioura <mettta@gmail.com>
9
+ License: Apache-2.0
9
10
  Classifier: License :: OSI Approved :: BSD License
10
11
  Classifier: Operating System :: OS Independent
11
12
  Classifier: Programming Language :: Python :: 3
@@ -1,6 +1,6 @@
1
1
  from strictdoc.core.environment import SDocRuntimeEnvironment
2
2
 
3
- __version__ = "0.2.1"
3
+ __version__ = "0.3.0"
4
4
 
5
5
 
6
6
  environment = SDocRuntimeEnvironment(__file__)
@@ -5,7 +5,7 @@ from strictdoc.helpers.auto_described import auto_described
5
5
 
6
6
 
7
7
  @auto_described
8
- class DocumentConfig: # pylint: disable=too-many-instance-attributes
8
+ class DocumentConfig:
9
9
  @staticmethod
10
10
  def default_config(document) -> "DocumentConfig":
11
11
  return DocumentConfig(
@@ -20,7 +20,7 @@ class SectionContext:
20
20
 
21
21
 
22
22
  @auto_described
23
- class SDocSection(SDocObject): # pylint: disable=too-many-instance-attributes
23
+ class SDocSection(SDocObject):
24
24
  def __init__(
25
25
  self,
26
26
  parent,
@@ -54,6 +54,6 @@ class SourceFileTraceabilityCachingReader:
54
54
  if project_config.is_activated_source_file_language_parsers():
55
55
  if path_to_file.endswith(".py"):
56
56
  return SourceFileTraceabilityReader_Python()
57
- if path_to_file.endswith(".c"):
57
+ if path_to_file.endswith(".c") or path_to_file.endswith(".h"):
58
58
  return SourceFileTraceabilityReader_C()
59
59
  return SourceFileTraceabilityReader()
@@ -0,0 +1,7 @@
1
+ from enum import Enum
2
+
3
+
4
+ class FunctionAttribute(Enum):
5
+ STATIC = "static"
6
+ DECLARATION = "declaration"
7
+ DEFINITION = "definition"
@@ -1,6 +1,6 @@
1
1
  SOURCE_FILE_GRAMMAR = """
2
2
  SourceFileTraceabilityInfo[noskipws]:
3
- parts += Part
3
+ g_parts += Part
4
4
  ;
5
5
 
6
6
  Part[noskipws]:
@@ -33,7 +33,7 @@ RangeMarker[noskipws]:
33
33
 
34
34
  FunctionRangeMarker[noskipws]:
35
35
  /^.*?@relation/
36
- "(" (reqs_objs += Req[', ']) ', scope=file)' '\n'?
36
+ "(" (reqs_objs += Req[', ']) ', scope=' scope="file" ')' '\n'?
37
37
  ;
38
38
 
39
39
  LineMarker[noskipws]:
@@ -58,7 +58,9 @@ class MarkerParser:
58
58
  requirements.append(requirement)
59
59
 
60
60
  if marker_type in ("file", "class", "function"):
61
- function_marker = FunctionRangeMarker(None, requirements)
61
+ function_marker = FunctionRangeMarker(
62
+ None, requirements, scope=marker_type
63
+ )
62
64
  function_marker.ng_source_line_begin = line_start
63
65
  function_marker.ng_range_line_begin = line_start
64
66
  function_marker.ng_range_line_end = line_end
@@ -0,0 +1,42 @@
1
+ from typing import Any, List, Set
2
+
3
+ from strictdoc.backend.sdoc_source_code.constants import FunctionAttribute
4
+ from strictdoc.backend.sdoc_source_code.models.function_range_marker import (
5
+ FunctionRangeMarker,
6
+ )
7
+ from strictdoc.helpers.auto_described import auto_described
8
+
9
+
10
+ @auto_described
11
+ class Function:
12
+ def __init__(
13
+ self,
14
+ parent: Any,
15
+ name: str,
16
+ line_begin: int,
17
+ line_end: int,
18
+ child_functions: List[Any],
19
+ markers: List[FunctionRangeMarker],
20
+ attributes: Set[FunctionAttribute],
21
+ ):
22
+ assert parent is not None
23
+ self.parent = parent
24
+ self.name = name
25
+ # Child functions are supported in programming languages that can nest
26
+ # functions, for example, Python.
27
+ self.child_functions: List[Function] = child_functions
28
+ self.markers: List[FunctionRangeMarker] = markers
29
+ self.line_begin = line_begin
30
+ self.line_end = line_end
31
+ self.attributes: Set[FunctionAttribute] = attributes
32
+
33
+ def is_declaration(self) -> bool:
34
+ return FunctionAttribute.DECLARATION in self.attributes
35
+
36
+ def is_definition(self) -> bool:
37
+ return FunctionAttribute.DEFINITION in self.attributes
38
+
39
+ def is_public(self) -> bool:
40
+ if FunctionAttribute.STATIC in self.attributes:
41
+ return False
42
+ return True
@@ -14,12 +14,15 @@ class RangeMarkerType(Enum):
14
14
 
15
15
  @auto_described
16
16
  class FunctionRangeMarker:
17
- def __init__(self, parent, reqs_objs: List[Req]):
17
+ def __init__(self, parent, reqs_objs: List[Req], scope: str):
18
18
  assert isinstance(reqs_objs, list)
19
+ assert isinstance(scope, str), scope
19
20
  self.parent = parent
20
21
  self.reqs_objs: List[Req] = reqs_objs
21
22
  self.reqs: List[str] = list(map(lambda req: req.uid, reqs_objs))
22
23
 
24
+ self.scope: RangeMarkerType = RangeMarkerType(scope)
25
+
23
26
  # Line number of the marker in the source code.
24
27
  self.ng_source_line_begin: Optional[int] = None
25
28
  self.ng_source_column_begin: Optional[int] = None
@@ -64,5 +67,5 @@ class FunctionRangeMarker:
64
67
 
65
68
  @auto_described
66
69
  class ForwardFunctionRangeMarker(FunctionRangeMarker):
67
- def __init__(self, parent, reqs_objs: List[Req]):
68
- super().__init__(parent, reqs_objs)
70
+ def __init__(self, parent, reqs_objs: List[Req], scope: str):
71
+ super().__init__(parent, reqs_objs, scope)
@@ -45,7 +45,7 @@ class RangeMarker:
45
45
  self.ng_range_line_end: Optional[int] = None
46
46
 
47
47
  self.ng_is_nodoc = "nosdoc" in self.reqs
48
- self.ng_new_relation_keyword = False
48
+ self.ng_new_relation_keyword = scope is not None and len(scope) > 0
49
49
 
50
50
  def is_begin(self) -> bool:
51
51
  return self.begin_or_end == "["
@@ -1,5 +1,5 @@
1
1
  # mypy: disable-error-code="no-untyped-def,type-arg,var-annotated"
2
- from typing import List, Union
2
+ from typing import Dict, List, Union
3
3
 
4
4
  from strictdoc.backend.sdoc_source_code.models.function import Function
5
5
  from strictdoc.backend.sdoc_source_code.models.function_range_marker import (
@@ -15,7 +15,7 @@ from strictdoc.helpers.auto_described import auto_described
15
15
 
16
16
  @auto_described
17
17
  class SourceFileTraceabilityInfo:
18
- def __init__(self, parts: List):
18
+ def __init__(self, g_parts: List):
19
19
  """
20
20
  At the init time, only the backward RangeMarkers are available from
21
21
  a source file. At runtime, the ForwardRangeMarkers are mixed in
@@ -23,7 +23,7 @@ class SourceFileTraceabilityInfo:
23
23
  is a union.
24
24
  """
25
25
 
26
- self.parts: List = parts
26
+ self.g_parts: List = g_parts
27
27
  self.functions: List[Function] = []
28
28
 
29
29
  """
@@ -34,6 +34,9 @@ class SourceFileTraceabilityInfo:
34
34
  """
35
35
  self.ng_map_reqs_to_markers = {}
36
36
 
37
+ self.ng_map_names_to_markers: Dict[str, List] = {}
38
+ self.ng_map_names_to_definition_functions: Dict[str, Function] = {}
39
+
37
40
  self.ng_lines_total = 0
38
41
  self.ng_lines_covered = 0
39
42
  self._coverage: float = 0
@@ -7,6 +7,7 @@ import tree_sitter_c
7
7
  from tree_sitter import Language, Node, Parser
8
8
 
9
9
  from strictdoc.backend.sdoc.error_handling import StrictDocSemanticError
10
+ from strictdoc.backend.sdoc_source_code.constants import FunctionAttribute
10
11
  from strictdoc.backend.sdoc_source_code.marker_parser import MarkerParser
11
12
  from strictdoc.backend.sdoc_source_code.models.function import Function
12
13
  from strictdoc.backend.sdoc_source_code.models.function_range_marker import (
@@ -26,7 +27,11 @@ from strictdoc.backend.sdoc_source_code.processors.general_language_marker_proce
26
27
  range_marker_processor,
27
28
  source_file_traceability_info_processor,
28
29
  )
29
- from strictdoc.backend.sdoc_source_code.tree_sitter_helpers import traverse_tree
30
+ from strictdoc.backend.sdoc_source_code.tree_sitter_helpers import (
31
+ traverse_tree,
32
+ ts_find_child_node_by_type,
33
+ ts_find_child_nodes_by_type,
34
+ )
30
35
  from strictdoc.helpers.string import get_lines_count
31
36
 
32
37
 
@@ -86,6 +91,83 @@ class SourceFileTraceabilityReader_C:
86
91
  traceability_info.markers.append(
87
92
  function_range_marker_
88
93
  )
94
+ elif node_.type == "declaration":
95
+ function_declarator_node = ts_find_child_node_by_type(
96
+ node_, "function_declarator"
97
+ )
98
+ if function_declarator_node is None:
99
+ continue
100
+
101
+ function_identifier_node = ts_find_child_node_by_type(
102
+ function_declarator_node, "identifier"
103
+ )
104
+ if function_identifier_node is None:
105
+ continue
106
+
107
+ if function_identifier_node.text is None:
108
+ continue
109
+
110
+ function_name: str = function_identifier_node.text.decode(
111
+ "utf8"
112
+ )
113
+ assert function_name is not None, function_name
114
+
115
+ function_attributes = {FunctionAttribute.DECLARATION}
116
+ for specifier_node_ in ts_find_child_nodes_by_type(
117
+ node_, "storage_class_specifier"
118
+ ):
119
+ if specifier_node_.text == b"static":
120
+ function_attributes.add(FunctionAttribute.STATIC)
121
+
122
+ function_markers: List[FunctionRangeMarker] = []
123
+ function_comment_node: Optional[Node] = None
124
+ function_comment_text = None
125
+ if (
126
+ node_.prev_sibling is not None
127
+ and node_.prev_sibling.type == "comment"
128
+ ):
129
+ function_comment_node = node_.prev_sibling
130
+ assert function_comment_node.text is not None
131
+ function_comment_text = function_comment_node.text.decode(
132
+ "utf8"
133
+ )
134
+
135
+ function_last_line = node_.end_point[0] + 1
136
+
137
+ markers = MarkerParser.parse(
138
+ function_comment_text,
139
+ function_comment_node.start_point[0] + 1,
140
+ function_last_line,
141
+ function_comment_node.start_point[0] + 1,
142
+ function_comment_node.start_point[1] + 1,
143
+ entity_name=function_name,
144
+ )
145
+ for marker_ in markers:
146
+ if isinstance(marker_, FunctionRangeMarker) and (
147
+ function_range_marker_ := marker_
148
+ ):
149
+ function_range_marker_processor(
150
+ function_range_marker_, parse_context
151
+ )
152
+ traceability_info.markers.append(
153
+ function_range_marker_
154
+ )
155
+ function_markers.append(marker_)
156
+
157
+ # The function range includes the top comment if it exists.
158
+ new_function = Function(
159
+ parent=traceability_info,
160
+ name=function_name,
161
+ line_begin=function_comment_node.start_point[0] + 1
162
+ if function_comment_node is not None
163
+ else node_.range.start_point[0] + 1,
164
+ line_end=node_.range.end_point[0] + 1,
165
+ child_functions=[],
166
+ markers=function_markers,
167
+ attributes=function_attributes,
168
+ )
169
+ traceability_info.functions.append(new_function)
170
+
89
171
  elif node_.type == "function_definition":
90
172
  function_name: str = ""
91
173
 
@@ -97,6 +179,7 @@ class SourceFileTraceabilityReader_C:
97
179
  function_name = child_.children[0].text.decode("utf8")
98
180
  assert function_name is not None, "Function name"
99
181
 
182
+ function_markers: List[FunctionRangeMarker] = []
100
183
  function_comment_node: Optional[Node] = None
101
184
  function_comment_text = None
102
185
  if (
@@ -111,9 +194,7 @@ class SourceFileTraceabilityReader_C:
111
194
 
112
195
  function_last_line = node_.end_point[0] + 1
113
196
 
114
- markers: List[
115
- Union[FunctionRangeMarker, RangeMarker, LineMarker]
116
- ] = MarkerParser.parse(
197
+ markers = MarkerParser.parse(
117
198
  function_comment_text,
118
199
  function_comment_node.start_point[0] + 1,
119
200
  function_last_line,
@@ -131,21 +212,28 @@ class SourceFileTraceabilityReader_C:
131
212
  traceability_info.markers.append(
132
213
  function_range_marker_
133
214
  )
134
- traceability_info.parts.append(
135
- function_range_marker_
136
- )
215
+ function_markers.append(marker_)
137
216
 
138
217
  # The function range includes the top comment if it exists.
139
218
  new_function = Function(
140
- parent=None,
219
+ parent=traceability_info,
141
220
  name=function_name,
142
221
  line_begin=function_comment_node.start_point[0] + 1
143
222
  if function_comment_node is not None
144
223
  else node_.range.start_point[0] + 1,
145
224
  line_end=node_.range.end_point[0] + 1,
146
- parts=[],
225
+ child_functions=[],
226
+ markers=function_markers,
227
+ attributes={FunctionAttribute.DEFINITION},
147
228
  )
148
229
  traceability_info.functions.append(new_function)
230
+ if len(function_markers) > 0:
231
+ traceability_info.ng_map_names_to_markers[function_name] = (
232
+ function_markers
233
+ )
234
+ traceability_info.ng_map_names_to_definition_functions[
235
+ function_name
236
+ ] = new_function
149
237
  elif node_.type == "comment":
150
238
  if node_.text is None:
151
239
  raise NotImplementedError("Comment without a text")
@@ -166,12 +254,10 @@ class SourceFileTraceabilityReader_C:
166
254
  range_marker_ := marker_
167
255
  ):
168
256
  range_marker_processor(range_marker_, parse_context)
169
- traceability_info.parts.append(range_marker_)
170
257
  elif isinstance(marker_, LineMarker) and (
171
258
  line_marker_ := marker_
172
259
  ):
173
260
  line_marker_processor(line_marker_, parse_context)
174
- traceability_info.parts.append(line_marker_)
175
261
  else:
176
262
  continue
177
263
  else:
@@ -62,11 +62,13 @@ class SourceFileTraceabilityReader_Python:
62
62
  for node_ in nodes:
63
63
  if node_.type == "module":
64
64
  function = Function(
65
- parent=None,
65
+ parent=traceability_info,
66
66
  name="module",
67
67
  line_begin=node_.start_point[0] + 1,
68
68
  line_end=node_.end_point[0] + 1,
69
- parts=[],
69
+ child_functions=[],
70
+ markers=[],
71
+ attributes=set(),
70
72
  )
71
73
  functions_stack.append(function)
72
74
  map_function_to_node[function] = node_
@@ -183,17 +185,20 @@ class SourceFileTraceabilityReader_Python:
183
185
  functions_stack = functions_stack[:1]
184
186
 
185
187
  new_function = Function(
186
- parent=None,
188
+ parent=traceability_info,
187
189
  name=function_name,
188
190
  line_begin=node_.range.start_point[0] + 1,
189
191
  line_end=node_.range.end_point[0] + 1,
190
- parts=[],
192
+ child_functions=[],
193
+ # Python functions do not need to track markers.
194
+ markers=[],
195
+ attributes=set(),
191
196
  )
192
197
  map_function_to_node[new_function] = node_
193
198
 
194
199
  parent_function = functions_stack[-1]
195
200
 
196
- parent_function.parts.append(new_function)
201
+ parent_function.child_functions.append(new_function)
197
202
  functions_stack.append(new_function)
198
203
  traceability_info.functions.append(new_function)
199
204
  elif node_.type == "comment":
@@ -231,8 +236,6 @@ class SourceFileTraceabilityReader_Python:
231
236
  or functions_stack[0].name == "translation_unit"
232
237
  )
233
238
 
234
- traceability_info.parts = functions_stack[0].parts
235
-
236
239
  source_file_traceability_info_processor(
237
240
  traceability_info, parse_context
238
241
  )
@@ -1,4 +1,4 @@
1
- from typing import Generator
1
+ from typing import Generator, Optional
2
2
 
3
3
  from tree_sitter import Node, Tree
4
4
 
@@ -16,3 +16,18 @@ def traverse_tree(tree: Tree) -> Generator[Node, None, None]:
16
16
  visited_children = False
17
17
  elif not cursor.goto_parent():
18
18
  break
19
+
20
+
21
+ def ts_find_child_node_by_type(node: Node, node_type: str) -> Optional[Node]:
22
+ for child_ in node.children:
23
+ if child_.type == node_type:
24
+ return child_
25
+ return None
26
+
27
+
28
+ def ts_find_child_nodes_by_type(
29
+ node: Node, node_type: str
30
+ ) -> Generator[Node, None, None]:
31
+ for child_ in node.children:
32
+ if child_.type == node_type:
33
+ yield child_
@@ -109,7 +109,7 @@ class ServerCommandConfig:
109
109
 
110
110
 
111
111
  @auto_described
112
- class ExportCommandConfig: # pylint: disable=too-many-instance-attributes
112
+ class ExportCommandConfig:
113
113
  def __init__(
114
114
  self,
115
115
  input_paths,
@@ -3,6 +3,8 @@ from typing import Any, Dict, List, Optional, Set, Tuple, Union
3
3
 
4
4
  from strictdoc.backend.sdoc.models.node import SDocNode
5
5
  from strictdoc.backend.sdoc.models.reference import FileReference, Reference
6
+ from strictdoc.backend.sdoc_source_code.constants import FunctionAttribute
7
+ from strictdoc.backend.sdoc_source_code.models.function import Function
6
8
  from strictdoc.backend.sdoc_source_code.models.function_range_marker import (
7
9
  ForwardFunctionRangeMarker,
8
10
  FunctionRangeMarker,
@@ -45,6 +47,11 @@ class FileTraceabilityIndex:
45
47
  str, Dict[str, List[str]]
46
48
  ] = {}
47
49
 
50
+ # This is only public non-static functions from languages like C.
51
+ self.map_all_function_names_to_definition_functions: Dict[
52
+ str, Function
53
+ ] = {}
54
+
48
55
  # "file.py" -> (
49
56
  # general_requirements: [SDocNode], # noqa: ERA001
50
57
  # range_requirements: [SDocNode] # noqa: ERA001
@@ -52,7 +59,13 @@ class FileTraceabilityIndex:
52
59
  self.source_file_reqs_cache = {}
53
60
 
54
61
  def has_source_file_reqs(self, source_file_rel_path: str) -> bool:
55
- return self.map_paths_to_reqs.get(source_file_rel_path) is not None
62
+ path_reqs = self.map_paths_to_reqs.get(source_file_rel_path)
63
+ if path_reqs is not None and len(path_reqs) > 0:
64
+ return True
65
+ file_trace_info = self.map_paths_to_source_file_traceability_info[
66
+ source_file_rel_path
67
+ ]
68
+ return len(file_trace_info.markers) > 0
56
69
 
57
70
  def get_requirement_file_links(
58
71
  self, requirement: SDocNode
@@ -153,7 +166,7 @@ class FileTraceabilityIndex:
153
166
  )
154
167
  return source_file_tr_info
155
168
 
156
- def validate(self):
169
+ def validate_and_resolve(self, traceability_index):
157
170
  for requirement_uid, file_links in self.map_reqs_uids_to_paths.items():
158
171
  for file_link in file_links:
159
172
  source_file_traceability_info: Optional[
@@ -204,6 +217,89 @@ class FileTraceabilityIndex:
204
217
  source_file_info.markers.append(start_marker)
205
218
  source_file_info.markers.append(end_marker)
206
219
 
220
+ """
221
+ Resolve definitions to declarations (only applicable for C and C++).
222
+ """
223
+
224
+ reversed_trace_info = {
225
+ value: key
226
+ for key, value in self.map_paths_to_source_file_traceability_info.items()
227
+ }
228
+
229
+ for (
230
+ traceability_info_
231
+ ) in self.map_paths_to_source_file_traceability_info.values():
232
+ for function_ in traceability_info_.functions:
233
+ if (
234
+ FunctionAttribute.DECLARATION in function_.attributes
235
+ and function_.name
236
+ in self.map_all_function_names_to_definition_functions
237
+ ):
238
+ definition_function: Optional[Function]
239
+ if not function_.is_public():
240
+ definition_function = traceability_info_.ng_map_names_to_definition_functions.get(
241
+ function_.name
242
+ )
243
+ else:
244
+ definition_function = (
245
+ self.map_all_function_names_to_definition_functions[
246
+ function_.name
247
+ ]
248
+ )
249
+ if definition_function is None:
250
+ continue
251
+ definition_function_trace_info: SourceFileTraceabilityInfo = definition_function.parent
252
+
253
+ for marker_ in function_.markers:
254
+ function_marker = ForwardFunctionRangeMarker(
255
+ parent=None,
256
+ reqs_objs=marker_.reqs_objs,
257
+ scope="function",
258
+ )
259
+ function_marker.ng_source_line_begin = (
260
+ definition_function.line_begin
261
+ )
262
+ function_marker.ng_source_column_begin = 1
263
+ function_marker.ng_range_line_begin = (
264
+ definition_function.line_begin
265
+ )
266
+ function_marker.ng_range_line_end = (
267
+ definition_function.line_end
268
+ )
269
+ function_marker.ng_marker_line = (
270
+ definition_function.line_begin
271
+ )
272
+ function_marker.ng_marker_column = 1
273
+ function_marker.set_description(
274
+ f"function {function_.name}"
275
+ )
276
+
277
+ for req_uid_ in marker_.reqs:
278
+ markers = definition_function_trace_info.ng_map_reqs_to_markers.setdefault(
279
+ req_uid_, []
280
+ )
281
+ markers.append(function_marker)
282
+
283
+ path_to_info = reversed_trace_info[
284
+ definition_function_trace_info
285
+ ]
286
+ self.map_reqs_uids_to_paths.setdefault(
287
+ req_uid_, OrderedSet()
288
+ )
289
+ self.map_reqs_uids_to_paths[req_uid_].add(
290
+ path_to_info
291
+ )
292
+
293
+ node = traceability_index.get_node_by_uid(req_uid_)
294
+ self.map_paths_to_reqs.setdefault(
295
+ path_to_info, OrderedSet()
296
+ )
297
+ self.map_paths_to_reqs[path_to_info].add(node)
298
+
299
+ definition_function_trace_info.markers.append(
300
+ function_marker
301
+ )
302
+
207
303
  for (
208
304
  traceability_info_
209
305
  ) in self.map_paths_to_source_file_traceability_info.values():
@@ -336,6 +432,15 @@ class FileTraceabilityIndex:
336
432
  for function_ in traceability_info.functions:
337
433
  marker_type: RangeMarkerType
338
434
 
435
+ if FunctionAttribute.DEFINITION in function_.attributes:
436
+ assert (
437
+ function_.name
438
+ not in self.map_all_function_names_to_definition_functions
439
+ )
440
+ self.map_all_function_names_to_definition_functions[
441
+ function_.name
442
+ ] = function_
443
+
339
444
  if (
340
445
  source_file_rel_path
341
446
  in self.map_file_function_names_to_reqs_uids
@@ -365,7 +470,7 @@ class FileTraceabilityIndex:
365
470
  reqs.append(req)
366
471
 
367
472
  function_marker = ForwardFunctionRangeMarker(
368
- parent=None, reqs_objs=reqs
473
+ parent=None, reqs_objs=reqs, scope=marker_type.value
369
474
  )
370
475
  function_marker.ng_source_line_begin = function_.line_begin
371
476
  function_marker.ng_source_column_begin = 1
@@ -62,7 +62,7 @@ class File(FileOrFolderEntry):
62
62
  return os.path.basename(os.path.dirname(self.root_path))
63
63
 
64
64
 
65
- class Folder(FileOrFolderEntry): # pylint: disable=too-many-instance-attributes
65
+ class Folder(FileOrFolderEntry):
66
66
  def __init__(self, root_path: str, rel_path: str, level):
67
67
  assert os.path.isdir(root_path)
68
68
  assert os.path.isabs(root_path)
@@ -12,7 +12,7 @@ from strictdoc.helpers.auto_described import auto_described
12
12
 
13
13
  class SourceFileType(Enum):
14
14
  PYTHON = [".py"]
15
- C = [".c"]
15
+ C = [".h", ".c"]
16
16
  CPP = [".cpp", ".cc"]
17
17
  TEX = [".tex"]
18
18
  # Is there an idiomatic file extension for Jinja templates?
@@ -30,7 +30,7 @@ class SourceFileType(Enum):
30
30
  def create_from_path(cls, path_to_file: str) -> "SourceFileType":
31
31
  if path_to_file.endswith(".py"):
32
32
  return cls.PYTHON
33
- if path_to_file.endswith(".c"):
33
+ if path_to_file.endswith(".h") or path_to_file.endswith(".c"):
34
34
  return cls.C
35
35
  for enum_value in SourceFileType.CPP.value:
36
36
  if path_to_file.endswith(enum_value):
@@ -64,7 +64,7 @@ class SourceFileType(Enum):
64
64
 
65
65
 
66
66
  @auto_described
67
- class SourceFile: # pylint: disable=too-many-instance-attributes
67
+ class SourceFile:
68
68
  def __init__(
69
69
  self,
70
70
  level,
@@ -147,12 +147,14 @@ class SourceFilesFinder:
147
147
 
148
148
  assert isinstance(project_config.output_dir, str)
149
149
 
150
+ exclude_paths = project_config.exclude_source_paths + ["**.DS_Store"]
151
+
150
152
  file_tree = FileFinder.find_files_with_extensions(
151
153
  root_path=doctree_root_abs_path,
152
154
  ignored_dirs=[project_config.output_dir],
153
155
  extensions=None,
154
156
  include_paths=project_config.include_source_paths,
155
- exclude_paths=project_config.exclude_source_paths,
157
+ exclude_paths=exclude_paths,
156
158
  )
157
159
  root_level = doctree_root_abs_path.count(os.sep)
158
160