strictdoc 0.0.49a1__tar.gz → 0.0.49a3__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 (506) hide show
  1. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/PKG-INFO +1 -1
  2. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/mypy.ini +5 -1
  3. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/requirements.check.txt +1 -1
  4. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/__init__.py +1 -1
  5. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/excel/import_/excel_to_sdoc_converter.py +4 -1
  6. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/reqif/p01_sdoc/reqif_to_sdoc_converter.py +4 -0
  7. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/reqif/p11_polarion/reqif_to_sdoc_converter.py +4 -0
  8. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/error_handling.py +66 -0
  9. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/grammar/grammar.py +4 -0
  10. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/constants.py +12 -0
  11. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/document.py +1 -13
  12. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/document_config.py +1 -1
  13. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/document_grammar.py +15 -3
  14. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/document_view.py +4 -1
  15. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/requirement.py +19 -6
  16. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/type_system.py +39 -8
  17. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/processor.py +29 -0
  18. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/reader.py +8 -5
  19. strictdoc-0.0.49a3/strictdoc/backend/sdoc/validations/sdoc_validator.py +38 -0
  20. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/form_objects/document_grammar_form_object.py +1 -0
  21. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/requirement/comments/index.jinja +1 -1
  22. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/requirement/rationale/index.jinja +1 -1
  23. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/requirement/statement/index.jinja +1 -1
  24. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/rst/templates/requirement.jinja.rst +2 -2
  25. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/spdx/spdx_to_sdoc_converter.py +22 -0
  26. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/.gitignore +0 -0
  27. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/CHANGELOG.md +0 -0
  28. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/CONTRIBUTING.md +0 -0
  29. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/Dockerfile +0 -0
  30. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/LICENSE +0 -0
  31. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/NOTICE +0 -0
  32. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/README.md +0 -0
  33. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/docs_extra/DO178_requirements.sdoc +0 -0
  34. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/docs_extra/Zephyr_requirements.sdoc +0 -0
  35. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/drafts/requirements/strictdoc.toml +0 -0
  36. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/drafts/strictdoc_low_level_requirements.sdoc_.sdoc +0 -0
  37. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/pyproject.toml +0 -0
  38. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/requirements.bootstrap.txt +0 -0
  39. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/ruff.toml +0 -0
  40. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/__init__.py +0 -0
  41. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/excel/__init__.py +0 -0
  42. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/excel/excel_import.py +0 -0
  43. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/excel/export/__init__.py +0 -0
  44. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/excel/export/excel_generator.py +0 -0
  45. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/excel/import_/__init__.py +0 -0
  46. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/reqif/__init__.py +0 -0
  47. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/reqif/p01_sdoc/__init__.py +0 -0
  48. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/reqif/p01_sdoc/sdoc_to_reqif_converter.py +0 -0
  49. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/reqif/p11_polarion/__init__.py +0 -0
  50. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/reqif/reqif_export.py +0 -0
  51. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/reqif/reqif_import.py +0 -0
  52. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/reqif/sdoc_reqif_fields.py +0 -0
  53. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/__init__.py +0 -0
  54. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/document_reference.py +0 -0
  55. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/errors/__init__.py +0 -0
  56. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/errors/document_tree_error.py +0 -0
  57. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/free_text_reader.py +0 -0
  58. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/grammar/__init__.py +0 -0
  59. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/grammar/grammar_builder.py +0 -0
  60. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/grammar/type_system.py +0 -0
  61. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/include_reader.py +0 -0
  62. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/__init__.py +0 -0
  63. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/anchor.py +0 -0
  64. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/document_bibliography.py +0 -0
  65. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/fragment.py +0 -0
  66. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/fragment_from_file.py +0 -0
  67. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/free_text.py +0 -0
  68. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/inline_link.py +0 -0
  69. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/node.py +0 -0
  70. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/object_factory.py +0 -0
  71. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/reference.py +0 -0
  72. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/models/section.py +0 -0
  73. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/validations/__init__.py +0 -0
  74. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/validations/requirement.py +0 -0
  75. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc/writer.py +0 -0
  76. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc_source_code/__init__.py +0 -0
  77. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc_source_code/grammar.py +0 -0
  78. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc_source_code/models/__init__.py +0 -0
  79. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc_source_code/models/range_marker.py +0 -0
  80. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc_source_code/models/requirement_marker.py +0 -0
  81. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc_source_code/models/source_file_info.py +0 -0
  82. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/backend/sdoc_source_code/reader.py +0 -0
  83. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/cli/__init__.py +0 -0
  84. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/cli/argument_int_range.py +0 -0
  85. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/cli/cli_arg_parser.py +0 -0
  86. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/cli/command_parser_builder.py +0 -0
  87. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/cli/main.py +0 -0
  88. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/commands/__init__.py +0 -0
  89. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/commands/about_command.py +0 -0
  90. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/commands/diff_command.py +0 -0
  91. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/commands/dump_grammar_command.py +0 -0
  92. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/commands/manage_autouid_command.py +0 -0
  93. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/commands/version_command.py +0 -0
  94. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/__init__.py +0 -0
  95. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/actions/__init__.py +0 -0
  96. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/actions/export_action.py +0 -0
  97. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/actions/import_action.py +0 -0
  98. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/actions/passthrough_action.py +0 -0
  99. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/analyzers/document_stats.py +0 -0
  100. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/analyzers/document_uid_analyzer.py +0 -0
  101. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/document_finder.py +0 -0
  102. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/document_iterator.py +0 -0
  103. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/document_meta.py +0 -0
  104. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/document_tree.py +0 -0
  105. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/document_tree_iterator.py +0 -0
  106. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/environment.py +0 -0
  107. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/file_traceability_index.py +0 -0
  108. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/file_tree.py +0 -0
  109. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/finders/__init__.py +0 -0
  110. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/finders/source_files_finder.py +0 -0
  111. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/graph/abstract_bucket.py +0 -0
  112. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/graph/many_to_many_set.py +0 -0
  113. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/graph/one_to_one_dictionary.py +0 -0
  114. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/graph/validations.py +0 -0
  115. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/graph_database.py +0 -0
  116. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/level_counter.py +0 -0
  117. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/project_config.py +0 -0
  118. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/query_engine/grammar.py +0 -0
  119. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/query_engine/query_object.py +0 -0
  120. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/query_engine/query_reader.py +0 -0
  121. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/source_tree.py +0 -0
  122. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/traceability_index.py +0 -0
  123. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/traceability_index_builder.py +0 -0
  124. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/transforms/constants.py +0 -0
  125. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/transforms/create_requirement.py +0 -0
  126. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/transforms/delete_section.py +0 -0
  127. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/transforms/section.py +0 -0
  128. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/transforms/update_document_config.py +0 -0
  129. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/transforms/update_free_text.py +0 -0
  130. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/transforms/update_grammar.py +0 -0
  131. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/transforms/update_requirement.py +0 -0
  132. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/transforms/validation_error.py +0 -0
  133. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/core/tree_cycle_detector.py +0 -0
  134. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/__init__.py +0 -0
  135. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/dot/document_dot_generator.py +0 -0
  136. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/dot/dot_templates.py +0 -0
  137. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/dot/templates/profile1/document.dot +0 -0
  138. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/dot/templates/profile1/folder.dot +0 -0
  139. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/dot/templates/profile1/legend.dot +0 -0
  140. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/dot/templates/profile1/requirement.dot +0 -0
  141. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/dot/templates/profile1/section.dot +0 -0
  142. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/dot/templates/profile1/top_level.dot +0 -0
  143. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/dot/templates/profile2/document.dot +0 -0
  144. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/dot/templates/profile2/folder.dot +0 -0
  145. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/dot/templates/profile2/requirement.dot +0 -0
  146. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/dot/templates/profile2/section.dot +0 -0
  147. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/dot/templates/profile2/top_level.dot +0 -0
  148. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/__init__.py +0 -0
  149. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/autogen.css +0 -0
  150. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/base.css +0 -0
  151. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/content.css +0 -0
  152. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/controllers/anchor_controller.js +0 -0
  153. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/controllers/collapsible_list_controller.js +0 -0
  154. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/controllers/copy_to_clipboard_controller.js +0 -0
  155. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/controllers/deletable_field_controller.js +0 -0
  156. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/controllers/draggable_list_controller.js +0 -0
  157. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/controllers/dropdown_menu_controller.js +0 -0
  158. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/controllers/editable_field_controller.js +0 -0
  159. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/controllers/modal_controller.js +0 -0
  160. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/controllers/movable_field_controller.js +0 -0
  161. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/controllers/scroll_into_view_controller.js +0 -0
  162. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/controllers/tabs_controller.js +0 -0
  163. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/diff.css +0 -0
  164. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/diff.js +0 -0
  165. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/element.css +0 -0
  166. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/favicon.ico +0 -0
  167. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/form.css +0 -0
  168. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/html2pdf/bundle.js +0 -0
  169. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/layout.css +0 -0
  170. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/node.css +0 -0
  171. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/pan_with_space.js +0 -0
  172. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/requirement-tree.css +0 -0
  173. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/requirement.css +0 -0
  174. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/requirement__temporary.css +0 -0
  175. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/requirements-coverage.js +0 -0
  176. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/resizable_bar.js +0 -0
  177. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/source-code-coverage.js +0 -0
  178. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/source.css +0 -0
  179. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/stimulus.min.js +0 -0
  180. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/table_vew.css +0 -0
  181. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/toc_highlighting.js +0 -0
  182. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/traceability_matrix.css +0 -0
  183. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/tree.css +0 -0
  184. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/turbo.min.js +0 -0
  185. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static/viewtype_menu.js +0 -0
  186. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/LICENSE-MATHJAX +0 -0
  187. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/tex.js +0 -0
  188. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff +0 -0
  189. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff +0 -0
  190. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff +0 -0
  191. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff +0 -0
  192. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff +0 -0
  193. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff +0 -0
  194. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff +0 -0
  195. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +0 -0
  196. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff +0 -0
  197. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +0 -0
  198. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff +0 -0
  199. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff +0 -0
  200. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff +0 -0
  201. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff +0 -0
  202. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff +0 -0
  203. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff +0 -0
  204. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +0 -0
  205. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +0 -0
  206. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff +0 -0
  207. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff +0 -0
  208. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff +0 -0
  209. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff +0 -0
  210. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff +0 -0
  211. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mathjax/tex-mml-chtml.js +0 -0
  212. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/mermaid/mermaid.min.js +0 -0
  213. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/_static_extra/rapidoc/rapidoc-min.js +0 -0
  214. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/document_type.py +0 -0
  215. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/form_objects/document_config_form_object.py +0 -0
  216. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/form_objects/requirement_form_object.py +0 -0
  217. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/form_objects/section_form_object.py +0 -0
  218. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/generators/__init__.py +0 -0
  219. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/generators/document.py +0 -0
  220. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/generators/document_deep_trace.py +0 -0
  221. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/generators/document_pdf.py +0 -0
  222. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/generators/document_table.py +0 -0
  223. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/generators/document_trace.py +0 -0
  224. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/generators/document_tree.py +0 -0
  225. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/generators/project_statistics.py +0 -0
  226. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/generators/source_file_coverage.py +0 -0
  227. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/generators/source_file_view_generator.py +0 -0
  228. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/generators/traceability_matrix.py +0 -0
  229. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/html_generator.py +0 -0
  230. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/html_templates.py +0 -0
  231. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/renderers/__init__.py +0 -0
  232. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/renderers/html_fragment_writer.py +0 -0
  233. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/renderers/link_renderer.py +0 -0
  234. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/renderers/markup_renderer.py +0 -0
  235. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/renderers/text_to_html_writer.py +0 -0
  236. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg__separator.jinja.html +0 -0
  237. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_add.jinja.html +0 -0
  238. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_anchor.jinja +0 -0
  239. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_back.jinja.html +0 -0
  240. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_book.jinja.html +0 -0
  241. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_close.jinja +0 -0
  242. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_code.jinja.html +0 -0
  243. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_copy.jinja +0 -0
  244. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_delete.jinja.html +0 -0
  245. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_diff.jinja +0 -0
  246. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_document.jinja.html +0 -0
  247. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_done.jinja +0 -0
  248. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_edit.jinja.html +0 -0
  249. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_expand.jinja.html +0 -0
  250. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_folder.jinja +0 -0
  251. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_folder_sm.jinja +0 -0
  252. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_gear.jinja.html +0 -0
  253. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_go_to_doc.jinja +0 -0
  254. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_index.jinja.html +0 -0
  255. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_list.jinja.html +0 -0
  256. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_maximize.jinja +0 -0
  257. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_minimize.jinja +0 -0
  258. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_minusminus.jinja.html +0 -0
  259. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_move_down.jinja.html +0 -0
  260. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_move_up.jinja.html +0 -0
  261. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_plusplus.jinja.html +0 -0
  262. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_project.jinja.html +0 -0
  263. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_requirement.jinja.html +0 -0
  264. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_reset.jinja +0 -0
  265. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_search.jinja +0 -0
  266. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_source.jinja.html +0 -0
  267. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_stat.jinja +0 -0
  268. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_sync.jinja +0 -0
  269. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_toc.jinja.html +0 -0
  270. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_res/svg_ico16_tree.jinja +0 -0
  271. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_shared/nav.jinja.html +0 -0
  272. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_shared/requirement_block/files_tree.jinja.html +0 -0
  273. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_shared/requirement_tree_left.jinja.html +0 -0
  274. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_shared/requirement_tree_right.jinja.html +0 -0
  275. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/_shared/tags.jinja.html +0 -0
  276. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/_shared/stream_refresh_document.jinja.html +0 -0
  277. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/_shared/stream_updated_toc.jinja.html +0 -0
  278. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/add_requirement_comment/stream_add_requirement_comment.jinja.html +0 -0
  279. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/add_requirement_relation/stream_add_requirement_relation.jinja.html +0 -0
  280. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/create_requirement/stream_cancel_new_requirement.jinja.html +0 -0
  281. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/create_requirement/stream_created_requirement.jinja.html +0 -0
  282. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/create_requirement/stream_new_requirement.jinja.html +0 -0
  283. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/create_section/stream_cancel_new_section.jinja.html +0 -0
  284. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/create_section/stream_created_section.jinja.html +0 -0
  285. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/create_section/stream_new_section.jinja.html +0 -0
  286. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_confirm_delete_requirement.jinja +0 -0
  287. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_delete_requirement.jinja.html +0 -0
  288. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/delete_section/stream_confirm_delete_section.jinja +0 -0
  289. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/delete_section/stream_delete_section.jinja.html +0 -0
  290. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_cancel_edit_document_config.jinja.html +0 -0
  291. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_edit_document_config.jinja.html +0 -0
  292. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_save_document_config.jinja.html +0 -0
  293. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/edit_document_grammar/stream_add_grammar_field.jinja.html +0 -0
  294. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/edit_document_grammar/stream_add_grammar_relation.jinja.html +0 -0
  295. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/edit_document_grammar/stream_edit_document_grammar.jinja.html +0 -0
  296. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/edit_document_grammar/stream_save_document_grammar.jinja.html +0 -0
  297. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/edit_requirement/stream_edit_requirement.jinja.html +0 -0
  298. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/edit_requirement/stream_update_requirement.jinja.html +0 -0
  299. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/edit_section/stream_edit_section.jinja.html +0 -0
  300. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/edit_section/stream_updated_section.jinja.html +0 -0
  301. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/document/move_node/stream_update_document_content.jinja +0 -0
  302. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_requirement.jinja +0 -0
  303. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_section.jinja +0 -0
  304. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_form_import_reqif_document.jinja.html +0 -0
  305. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_refresh_with_imported_reqif_document.jinja.html +0 -0
  306. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/project_index/stream_create_document.jinja.html +0 -0
  307. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/actions/project_index/stream_new_document.jinja.html +0 -0
  308. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/base.jinja.html +0 -0
  309. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/abstract/index.jinja +0 -0
  310. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/abstract/pdf.jinja +0 -0
  311. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/anchor/index.jinja +0 -0
  312. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/badge/index.jinja +0 -0
  313. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/button/cancel.jinja +0 -0
  314. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/button/confirm.jinja +0 -0
  315. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/button/delete.jinja +0 -0
  316. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/button/diff.jinja +0 -0
  317. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/button/search.jinja +0 -0
  318. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/button/submit.jinja +0 -0
  319. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/confirm/_usage_example.jinja +0 -0
  320. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/confirm/index.jinja +0 -0
  321. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/document_title/index.jinja +0 -0
  322. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/field/index.jinja +0 -0
  323. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/form/field/contenteditable/index.jinja +0 -0
  324. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/form/field/file/index.jinja +0 -0
  325. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/form/field/text/index.jinja +0 -0
  326. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/form/field_action_button/index.jinja +0 -0
  327. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/form/index.jinja +0 -0
  328. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/form/row/index.jinja +0 -0
  329. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/example.jinja.html +0 -0
  330. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/frame.jinja +0 -0
  331. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/stream.jinja +0 -0
  332. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/form/row/row_with_comment.jinja +0 -0
  333. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/form/row/row_with_relation.jinja +0 -0
  334. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/form/row/row_with_text_field.jinja +0 -0
  335. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/form/search.jinja +0 -0
  336. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/grammar_form/index.jinja +0 -0
  337. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/grammar_form/row_with_custom_field.jinja +0 -0
  338. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/grammar_form/row_with_relation.jinja +0 -0
  339. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/grammar_form/row_with_reserved_field.jinja +0 -0
  340. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/header/_usage_example.jinja +0 -0
  341. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/header/header_pagetype.jinja +0 -0
  342. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/header/index.jinja +0 -0
  343. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/meta/index.jinja +0 -0
  344. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/modal/_usage_example.jinja +0 -0
  345. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/modal/form.jinja +0 -0
  346. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/modal/index.jinja +0 -0
  347. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/node/card.jinja +0 -0
  348. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/node/index.jinja +0 -0
  349. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/node/node_controls/card.jinja +0 -0
  350. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/node/node_controls/index.jinja +0 -0
  351. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/node/root.jinja +0 -0
  352. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/requirement/card.jinja +0 -0
  353. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/requirement/card_extends_card.jinja +0 -0
  354. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/requirement/files/index.jinja +0 -0
  355. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/requirement/index.jinja +0 -0
  356. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/requirement/index_extends_node.jinja +0 -0
  357. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/requirement/links/index.jinja +0 -0
  358. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/requirement/meta/index.jinja +0 -0
  359. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/requirement/multiline/index.jinja +0 -0
  360. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/requirement/pdf.jinja +0 -0
  361. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/requirement/tiny.jinja +0 -0
  362. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/requirement/tiny_extends_card.jinja +0 -0
  363. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/requirement/title/index.jinja +0 -0
  364. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/requirement/title/pdf.jinja +0 -0
  365. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/requirement/uid/index.jinja +0 -0
  366. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/resizable_bar/index.jinja +0 -0
  367. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/section/card.jinja +0 -0
  368. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/section/card_extends_card.jinja +0 -0
  369. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/section/h/index.jinja +0 -0
  370. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/section/h/pdf.jinja +0 -0
  371. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/section/index.jinja +0 -0
  372. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/section/index_extends_node.jinja +0 -0
  373. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/section/pdf.jinja +0 -0
  374. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/section/text/index.jinja +0 -0
  375. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/section/tiny.jinja +0 -0
  376. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/section/tiny_extends_card.jinja +0 -0
  377. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/section/title/index.jinja +0 -0
  378. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/section/uid/index.jinja +0 -0
  379. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/components/table_key_value/index.jinja +0 -0
  380. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/rst/anchor.jinja +0 -0
  381. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/_shared/frame_header_document_title.jinja +0 -0
  382. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_requirement.jinja +0 -0
  383. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_section.jinja +0 -0
  384. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/_shared/frame_toc.jinja +0 -0
  385. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/_shared/project_tree.jinja +0 -0
  386. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_project_tree.jinja +0 -0
  387. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_toc.jinja +0 -0
  388. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/_shared/toc.jinja +0 -0
  389. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/_shared/viewtype_menu.jinja +0 -0
  390. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/document/actions.jinja +0 -0
  391. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/document/frame_document_config.jinja.html +0 -0
  392. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/document/frame_document_config_edit.jinja.html +0 -0
  393. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/document/frame_document_content.jinja.html +0 -0
  394. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/document/frame_requirement_form.jinja +0 -0
  395. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/document/frame_section_form.jinja +0 -0
  396. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/document/index.jinja +0 -0
  397. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/document/main.jinja +0 -0
  398. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/pdf/index.jinja +0 -0
  399. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/pdf/main.jinja +0 -0
  400. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/pdf/template/footer.jinja +0 -0
  401. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/pdf/template/frontpage.jinja +0 -0
  402. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/pdf/template/header.jinja +0 -0
  403. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/pdf/toc.jinja +0 -0
  404. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/table/index.jinja +0 -0
  405. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/table/main.jinja +0 -0
  406. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/traceability/index.jinja +0 -0
  407. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/traceability/main.jinja +0 -0
  408. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/traceability_deep/index.jinja +0 -0
  409. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/document/traceability_deep/main.jinja +0 -0
  410. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/git/changelog_content.jinja +0 -0
  411. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/git/diff_content.jinja +0 -0
  412. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/git/diff_controls.jinja +0 -0
  413. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/git/fields/document_fields.jinja +0 -0
  414. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/git/fields/requirement_fields.jinja +0 -0
  415. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/git/fields/section_fields.jinja +0 -0
  416. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/git/form.jinja +0 -0
  417. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/git/frame_changelog_result.jinja +0 -0
  418. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/git/frame_diff_result.jinja +0 -0
  419. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/git/index.jinja +0 -0
  420. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/git/legend.jinja +0 -0
  421. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/git/main.jinja +0 -0
  422. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/git/nav_tabs.jinja +0 -0
  423. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/git/node/requirement.jinja +0 -0
  424. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/git/node/section.jinja +0 -0
  425. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/git/skeleton.jinja +0 -0
  426. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/git/sync/button.jinja +0 -0
  427. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/project_index/actions.jinja +0 -0
  428. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/project_index/frame_form_import_reqif.jinja.html +0 -0
  429. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/project_index/frame_form_new_document.jinja.html +0 -0
  430. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/project_index/frame_project_tree.jinja.html +0 -0
  431. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/project_index/index.jinja +0 -0
  432. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/project_index/main.jinja +0 -0
  433. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/project_statistics/index.jinja +0 -0
  434. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/project_statistics/main.jinja +0 -0
  435. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/search/index.jinja +0 -0
  436. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/search/legend.jinja +0 -0
  437. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/search/main.jinja +0 -0
  438. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/source_file_coverage/index.jinja +0 -0
  439. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/source_file_coverage/main.jinja +0 -0
  440. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/source_file_view/aside.jinja +0 -0
  441. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/source_file_view/header__source_file_name.jinja +0 -0
  442. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/source_file_view/index.jinja +0 -0
  443. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/source_file_view/main.jinja +0 -0
  444. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/source_file_view/requirement.jinja +0 -0
  445. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/traceability_matrix/file.jinja +0 -0
  446. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/traceability_matrix/index.jinja +0 -0
  447. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/traceability_matrix/main.jinja +0 -0
  448. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/traceability_matrix/project_tree_flat_anchor_list.jinja +0 -0
  449. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/traceability_matrix/requirement.jinja.html +0 -0
  450. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/screens/traceability_matrix/resizable_bar_with_project_tree.jinja +0 -0
  451. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/templates/websocket.jinja.html +0 -0
  452. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/tools/__init__.py +0 -0
  453. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html/tools/html_embedded.py +0 -0
  454. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html2pdf/html2pdf.py +0 -0
  455. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html2pdf/html2pdf_generator.py +0 -0
  456. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/html2pdf/pdf_print_driver.py +0 -0
  457. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/rst/__init__.py +0 -0
  458. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/rst/directives/raw_html_role.py +0 -0
  459. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/rst/directives/wildcard_enhanced_image.py +0 -0
  460. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/rst/document_rst_generator.py +0 -0
  461. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/rst/rst_templates.py +0 -0
  462. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/rst/rst_to_html_fragment_writer.py +0 -0
  463. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/rst/writer.py +0 -0
  464. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/spdx/spdx_generator.py +0 -0
  465. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/export/spdx/spdx_sdoc_container.py +0 -0
  466. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/git/change.py +0 -0
  467. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/git/change_generator.py +0 -0
  468. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/git/git_client.py +0 -0
  469. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/git/project_diff_analyzer.py +0 -0
  470. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/__init__.py +0 -0
  471. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/auto_described.py +0 -0
  472. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/cast.py +0 -0
  473. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/diff.py +0 -0
  474. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/exception.py +0 -0
  475. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/file_modification_time.py +0 -0
  476. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/file_system.py +0 -0
  477. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/form_data.py +0 -0
  478. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/git_client.py +0 -0
  479. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/math.py +0 -0
  480. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/md5.py +0 -0
  481. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/mid.py +0 -0
  482. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/ordered_set.py +0 -0
  483. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/parallelizer.py +0 -0
  484. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/path_filter.py +0 -0
  485. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/pickle.py +0 -0
  486. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/rst.py +0 -0
  487. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/sha256.py +0 -0
  488. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/shard.py +0 -0
  489. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/sorting.py +0 -0
  490. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/string.py +0 -0
  491. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/textx.py +0 -0
  492. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/helpers/timing.py +0 -0
  493. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/server/__init__.py +0 -0
  494. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/server/app.py +0 -0
  495. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/server/config.py +0 -0
  496. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/server/error_object.py +0 -0
  497. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/server/main.py +0 -0
  498. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/server/routers/main_router.py +0 -0
  499. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/server/routers/other_router.py +0 -0
  500. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc/server/server.py +0 -0
  501. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/strictdoc.toml +0 -0
  502. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/tasks.py +0 -0
  503. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/tasks_wine.py +0 -0
  504. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/tools/confluence_html_table_import.py +0 -0
  505. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/tools/link_health.py +0 -0
  506. {strictdoc-0.0.49a1 → strictdoc-0.0.49a3}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: strictdoc
3
- Version: 0.0.49a1
3
+ Version: 0.0.49a3
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/
@@ -22,8 +22,12 @@ ignore_missing_imports = True
22
22
  ignore_missing_imports = True
23
23
 
24
24
  # We ignore build folder but mypy still follows into the Python packages,
25
- # in this case starlette. This StackOverflow answers suggests a solution.
25
+ # in this case pydantic, starlette, selenium.
26
+ # This StackOverflow answers suggests a solution:
26
27
  # https://stackoverflow.com/a/70367929/598057
28
+ [mypy-pydantic.*]
29
+ follow_imports = skip
30
+
27
31
  [mypy-starlette.*]
28
32
  follow_imports = skip
29
33
 
@@ -20,7 +20,7 @@ pytidylib>=0.3.2
20
20
  openpyxl>=3.0.5
21
21
 
22
22
  # End2end tests
23
- seleniumbase; python_version<="3.7"
23
+ seleniumbase
24
24
 
25
25
  # psutil is needed to reap Uvicorn's zombie processes when running end2end
26
26
  # tests. One day someone finds a better solution.
@@ -1,6 +1,6 @@
1
1
  from strictdoc.core.environment import SDocRuntimeEnvironment
2
2
 
3
- __version__ = "0.0.49a1"
3
+ __version__ = "0.0.49a3"
4
4
 
5
5
 
6
6
  environment = SDocRuntimeEnvironment(__file__)
@@ -132,7 +132,10 @@ class ExcelToSDocConverter:
132
132
  fields.extend(
133
133
  [
134
134
  GrammarElementFieldString(
135
- parent=None, title=name, required="False"
135
+ parent=None,
136
+ title=name,
137
+ human_title=None,
138
+ required="False",
136
139
  ),
137
140
  ]
138
141
  )
@@ -204,6 +204,7 @@ class P01_ReqIFToSDocConverter: # pylint: disable=invalid-name
204
204
  GrammarElementFieldString(
205
205
  parent=None,
206
206
  title=field_name,
207
+ human_title=None,
207
208
  required="False",
208
209
  )
209
210
  )
@@ -212,6 +213,7 @@ class P01_ReqIFToSDocConverter: # pylint: disable=invalid-name
212
213
  GrammarElementFieldString(
213
214
  parent=None,
214
215
  title=field_name,
216
+ human_title=None,
215
217
  required="False",
216
218
  )
217
219
  )
@@ -229,6 +231,7 @@ class P01_ReqIFToSDocConverter: # pylint: disable=invalid-name
229
231
  GrammarElementFieldMultipleChoice(
230
232
  parent=None,
231
233
  title=field_name,
234
+ human_title=None,
232
235
  options=options,
233
236
  required="False",
234
237
  )
@@ -238,6 +241,7 @@ class P01_ReqIFToSDocConverter: # pylint: disable=invalid-name
238
241
  GrammarElementFieldSingleChoice(
239
242
  parent=None,
240
243
  title=field_name,
244
+ human_title=None,
241
245
  options=options,
242
246
  required="False",
243
247
  )
@@ -233,6 +233,7 @@ class P11_ReqIFToSDocConverter: # pylint: disable=invalid-name
233
233
  GrammarElementFieldString(
234
234
  parent=None,
235
235
  title=field_name,
236
+ human_title=None,
236
237
  required="False",
237
238
  )
238
239
  )
@@ -241,6 +242,7 @@ class P11_ReqIFToSDocConverter: # pylint: disable=invalid-name
241
242
  GrammarElementFieldString(
242
243
  parent=None,
243
244
  title=field_name,
245
+ human_title=None,
244
246
  required="False",
245
247
  )
246
248
  )
@@ -258,6 +260,7 @@ class P11_ReqIFToSDocConverter: # pylint: disable=invalid-name
258
260
  GrammarElementFieldMultipleChoice(
259
261
  parent=None,
260
262
  title=field_name,
263
+ human_title=None,
261
264
  options=options,
262
265
  required="False",
263
266
  )
@@ -267,6 +270,7 @@ class P11_ReqIFToSDocConverter: # pylint: disable=invalid-name
267
270
  GrammarElementFieldSingleChoice(
268
271
  parent=None,
269
272
  title=field_name,
273
+ human_title=None,
270
274
  options=options,
271
275
  required="False",
272
276
  )
@@ -5,6 +5,7 @@ from strictdoc.backend.sdoc.models.document_grammar import (
5
5
  GrammarElement,
6
6
  GrammarElementField,
7
7
  )
8
+ from strictdoc.backend.sdoc.models.document_view import ViewElement
8
9
  from strictdoc.backend.sdoc.models.reference import Reference
9
10
  from strictdoc.backend.sdoc.models.requirement import (
10
11
  Requirement,
@@ -291,6 +292,71 @@ class StrictDocSemanticError(Exception):
291
292
  filename=filename,
292
293
  )
293
294
 
295
+ @staticmethod
296
+ def view_references_nonexisting_grammar_element(
297
+ view_element: ViewElement,
298
+ object_type: str,
299
+ line=None,
300
+ col=None,
301
+ filename=None,
302
+ ):
303
+ return StrictDocSemanticError(
304
+ title=(
305
+ f"View element '{view_element.view_id}' references a non-existing"
306
+ f" grammar element '{object_type}'."
307
+ ),
308
+ hint=(
309
+ "Make sure that each View element references an existing "
310
+ "object in the grammar or the default REQUIREMENT object."
311
+ ),
312
+ example=None,
313
+ line=line,
314
+ col=col,
315
+ filename=filename,
316
+ )
317
+
318
+ @staticmethod
319
+ def view_references_nonexisting_field(
320
+ view_element: ViewElement,
321
+ object_type: str,
322
+ field_name: str,
323
+ line=None,
324
+ col=None,
325
+ filename=None,
326
+ ):
327
+ return StrictDocSemanticError(
328
+ title=(
329
+ f"View element '{view_element.view_id}' references a non-existing"
330
+ f" field '{field_name}' for grammar element '{object_type}'."
331
+ ),
332
+ hint=(
333
+ "Make sure that each View element references an existing "
334
+ "field in the grammar for the given grammar element."
335
+ ),
336
+ example=None,
337
+ line=line,
338
+ col=col,
339
+ filename=filename,
340
+ )
341
+
342
+ @staticmethod
343
+ def default_view_doesnt_exist(
344
+ default_view: str, line=None, col=None, filename=None
345
+ ):
346
+ return StrictDocSemanticError(
347
+ title=(
348
+ f"Default view '{default_view}' does not exist in the document."
349
+ ),
350
+ hint=(
351
+ "Make sure that the specified default view is created in the "
352
+ "VIEWS configuration."
353
+ ),
354
+ example=None,
355
+ line=line,
356
+ col=col,
357
+ filename=filename,
358
+ )
359
+
294
360
  def to_print_message(self):
295
361
  message = ""
296
362
  message += f"error: could not parse file: {self.file_path}.\n"
@@ -102,12 +102,14 @@ GrammarElementField[noskipws]:
102
102
 
103
103
  GrammarElementFieldString[noskipws]:
104
104
  ' - TITLE: ' title=FieldName '\n'
105
+ (' HUMAN_TITLE: ' human_title=SingleLineString '\n')?
105
106
  ' TYPE: String' '\n'
106
107
  ' REQUIRED: ' (required = BooleanChoice) '\n'
107
108
  ;
108
109
 
109
110
  GrammarElementFieldSingleChoice[noskipws]:
110
111
  ' - TITLE: ' title=FieldName '\n'
112
+ (' HUMAN_TITLE: ' human_title=SingleLineString '\n')?
111
113
  ' TYPE: SingleChoice'
112
114
  '(' ((options = ChoiceOption) (options *= ChoiceOptionXs)) ')' '\n'
113
115
  ' REQUIRED: ' (required = BooleanChoice) '\n'
@@ -115,6 +117,7 @@ GrammarElementFieldSingleChoice[noskipws]:
115
117
 
116
118
  GrammarElementFieldMultipleChoice[noskipws]:
117
119
  ' - TITLE: ' title=FieldName '\n'
120
+ (' HUMAN_TITLE: ' human_title=SingleLineString '\n')?
118
121
  ' TYPE: MultipleChoice'
119
122
  '(' ((options = ChoiceOption) (options *= ChoiceOptionXs)) ')' '\n'
120
123
  ' REQUIRED: ' (required = BooleanChoice) '\n'
@@ -122,6 +125,7 @@ GrammarElementFieldMultipleChoice[noskipws]:
122
125
 
123
126
  GrammarElementFieldTag[noskipws]:
124
127
  ' - TITLE: ' title=FieldName '\n'
128
+ (' HUMAN_TITLE: ' human_title=SingleLineString '\n')?
125
129
  ' TYPE: Tag' '\n'
126
130
  ' REQUIRED: ' (required = BooleanChoice) '\n'
127
131
  ;
@@ -8,6 +8,10 @@ from strictdoc.backend.sdoc.models.document_grammar import (
8
8
  DocumentGrammar,
9
9
  GrammarElement,
10
10
  )
11
+ from strictdoc.backend.sdoc.models.document_view import (
12
+ DocumentView,
13
+ ViewElement,
14
+ )
11
15
  from strictdoc.backend.sdoc.models.fragment import Fragment
12
16
  from strictdoc.backend.sdoc.models.fragment_from_file import FragmentFromFile
13
17
  from strictdoc.backend.sdoc.models.inline_link import InlineLink
@@ -37,6 +41,9 @@ from strictdoc.backend.sdoc.models.type_system import (
37
41
  GrammarElementRelationChild,
38
42
  GrammarElementRelationFile,
39
43
  GrammarElementRelationParent,
44
+ ViewElementField,
45
+ ViewElementHiddenTag,
46
+ ViewElementTags,
40
47
  )
41
48
 
42
49
  SECTION_MODELS = [
@@ -62,6 +69,7 @@ DOCUMENT_MODELS = [
62
69
  DocumentConfig,
63
70
  Document,
64
71
  DocumentGrammar,
72
+ DocumentView,
65
73
  DocumentBibliography,
66
74
  GrammarElement,
67
75
  GrammarElementFieldString,
@@ -73,6 +81,10 @@ DOCUMENT_MODELS = [
73
81
  GrammarElementRelationParent,
74
82
  GrammarElementRelationChild,
75
83
  GrammarElementRelationFile,
84
+ ViewElement,
85
+ ViewElementField,
86
+ ViewElementTags,
87
+ ViewElementHiddenTag,
76
88
  ]
77
89
  DOCUMENT_MODELS.extend(SECTION_MODELS)
78
90
 
@@ -92,20 +92,8 @@ class Document: # pylint: disable=too-many-instance-attributes
92
92
  def ng_resolved_custom_level(self):
93
93
  return None
94
94
 
95
- @property
96
- def requirement_prefix(self) -> str:
97
- return (
98
- self.config.requirement_prefix
99
- if self.config.requirement_prefix is not None
100
- else "REQ-"
101
- )
102
-
103
95
  def get_requirement_prefix(self) -> str:
104
- return (
105
- self.config.requirement_prefix
106
- if self.config.requirement_prefix is not None
107
- else "REQ-"
108
- )
96
+ return self.config.get_requirement_prefix()
109
97
 
110
98
  def enumerate_meta_field_titles(self):
111
99
  # TODO: currently only enumerating a single element ([0])
@@ -85,7 +85,7 @@ class DocumentConfig: # pylint: disable=too-many-instance-attributes
85
85
  self.requirement_in_toc is None or self.requirement_in_toc == "True"
86
86
  )
87
87
 
88
- def get_requirement_prefix_or_default(self) -> str:
88
+ def get_requirement_prefix(self) -> str:
89
89
  if self.requirement_prefix is not None:
90
90
  return self.requirement_prefix
91
91
  return "REQ-"
@@ -68,7 +68,7 @@ class GrammarElement:
68
68
  fields_map: OrderedDict = OrderedDict()
69
69
  for field in fields:
70
70
  fields_map[field.title] = field
71
- self.fields_map = fields_map
71
+ self.fields_map: Dict[str, GrammarElementField] = fields_map
72
72
 
73
73
  if "REFS" in fields_map:
74
74
  field = fields_map["REFS"]
@@ -156,39 +156,51 @@ class DocumentGrammar:
156
156
  # @sdoc[SDOC-SRS-132]
157
157
  fields = [
158
158
  GrammarElementFieldString(
159
- parent=None, title=RequirementFieldName.UID, required="False"
159
+ parent=None,
160
+ title=RequirementFieldName.UID,
161
+ human_title=None,
162
+ required="False",
160
163
  ),
161
164
  GrammarElementFieldString(
162
165
  parent=None,
163
166
  title=RequirementFieldName.LEVEL,
167
+ human_title=None,
164
168
  required="False",
165
169
  ),
166
170
  GrammarElementFieldString(
167
171
  parent=None,
168
172
  title=RequirementFieldName.STATUS,
173
+ human_title=None,
169
174
  required="False",
170
175
  ),
171
176
  GrammarElementFieldString(
172
- parent=None, title=RequirementFieldName.TAGS, required="False"
177
+ parent=None,
178
+ title=RequirementFieldName.TAGS,
179
+ human_title=None,
180
+ required="False",
173
181
  ),
174
182
  GrammarElementFieldString(
175
183
  parent=None,
176
184
  title=RequirementFieldName.TITLE,
185
+ human_title=None,
177
186
  required="False",
178
187
  ),
179
188
  GrammarElementFieldString(
180
189
  parent=None,
181
190
  title=RequirementFieldName.STATEMENT,
191
+ human_title=None,
182
192
  required="False",
183
193
  ),
184
194
  GrammarElementFieldString(
185
195
  parent=None,
186
196
  title=RequirementFieldName.RATIONALE,
197
+ human_title=None,
187
198
  required="False",
188
199
  ),
189
200
  GrammarElementFieldString(
190
201
  parent=None,
191
202
  title=RequirementFieldName.COMMENT,
203
+ human_title=None,
192
204
  required="False",
193
205
  ),
194
206
  GrammarElementFieldReference(
@@ -11,11 +11,13 @@ from strictdoc.helpers.auto_described import auto_described
11
11
  class ViewElement:
12
12
  def __init__(
13
13
  self,
14
+ parent,
14
15
  view_id: str,
15
16
  tags: List[ViewElementTags],
16
17
  hidden_tags: Optional[List[ViewElementHiddenTag]],
17
18
  name: Optional[str],
18
19
  ):
20
+ self.parent = parent
19
21
  self.view_id: str = view_id
20
22
  self.tags: List[ViewElementTags] = tags
21
23
  self.hidden_tags: Optional[List[ViewElementHiddenTag]] = hidden_tags
@@ -23,5 +25,6 @@ class ViewElement:
23
25
 
24
26
 
25
27
  class DocumentView:
26
- def __init__(self, views: List[ViewElement]):
28
+ def __init__(self, parent, views: List[ViewElement]):
29
+ self.parent = parent
27
30
  self.views: List[ViewElement] = views
@@ -445,7 +445,8 @@ class Requirement(Node): # pylint: disable=too-many-instance-attributes, too-ma
445
445
  if (not is_single_line_field) and skip_multi_lines:
446
446
  continue
447
447
 
448
- yield field.field_name, meta_field_value
448
+ field_human_title = element.fields_map[field.field_name]
449
+ yield field_human_title.get_field_human_name(), meta_field_value
449
450
 
450
451
  def get_meta_field_value_by_title(self, field_title: str) -> Optional[str]:
451
452
  assert isinstance(field_title, str)
@@ -461,12 +462,18 @@ class Requirement(Node): # pylint: disable=too-many-instance-attributes, too-ma
461
462
  meta_field_value = meta_field_value_or_none
462
463
  return meta_field_value
463
464
 
465
+ def get_field_human_title(self, field_name: str) -> str:
466
+ element: GrammarElement = self.document.grammar.elements_by_type[
467
+ self.requirement_type
468
+ ]
469
+ field_human_title = element.fields_map[field_name]
470
+ return field_human_title.get_field_human_name()
471
+
464
472
  def get_requirement_prefix(self) -> str:
465
- parent: Union[Section, Document] = self.parent
466
- while parent.requirement_prefix is None:
467
- parent = parent.parent
468
- assert parent.requirement_prefix is not None
469
- return parent.requirement_prefix
473
+ parent: Union[Section, Document] = assert_cast(
474
+ self.parent, (Section, Document, CompositeRequirement)
475
+ )
476
+ return parent.get_requirement_prefix()
470
477
 
471
478
  def dump_fields_as_parsed(self):
472
479
  return ", ".join(
@@ -542,6 +549,9 @@ class Requirement(Node): # pylint: disable=too-many-instance-attributes, too-ma
542
549
  self.requirement_type
543
550
  ]
544
551
  grammar_field_titles = list(map(lambda f: f.title, element.fields))
552
+ # FIXME: This will go away very soon when the RELATIONS become a
553
+ # separate field in SDoc REQUIREMENT's grammar.
554
+ grammar_field_titles.append("REFS")
545
555
  field_index = grammar_field_titles.index(field_name)
546
556
  title_field_index = grammar_field_titles.index(
547
557
  RequirementFieldName.TITLE
@@ -625,3 +635,6 @@ class CompositeRequirement(Requirement):
625
635
  @property
626
636
  def document(self):
627
637
  return self.ng_document_reference.get_document()
638
+
639
+ def get_requirement_prefix(self) -> str:
640
+ return self.parent.get_requirement_prefix()
@@ -172,17 +172,26 @@ class ReferenceType:
172
172
  class GrammarElementField:
173
173
  def __init__(self):
174
174
  self.title: str = ""
175
+ self.human_title: Optional[str] = None
175
176
  self.gef_type: str = ""
176
177
  self.required: bool = False
177
178
  self.mid: MID = MID.create()
178
179
 
180
+ def get_field_human_name(self) -> str:
181
+ if self.human_title is not None:
182
+ return self.human_title
183
+ return self.title
184
+
179
185
 
180
186
  @auto_described
181
187
  class GrammarElementFieldString(GrammarElementField):
182
- def __init__(self, parent, title: str, required: str):
188
+ def __init__(
189
+ self, parent, title: str, human_title: Optional[str], required: str
190
+ ):
183
191
  super().__init__()
184
192
  self.parent = parent
185
193
  self.title: str = title
194
+ self.human_title: Optional[str] = human_title
186
195
  self.gef_type = RequirementFieldType.STRING
187
196
  self.required: bool = required == "True"
188
197
  self.mid: MID = MID.create()
@@ -190,10 +199,18 @@ class GrammarElementFieldString(GrammarElementField):
190
199
 
191
200
  @auto_described
192
201
  class GrammarElementFieldSingleChoice(GrammarElementField):
193
- def __init__(self, parent, title: str, options: List[str], required: str):
202
+ def __init__(
203
+ self,
204
+ parent,
205
+ title: str,
206
+ human_title: Optional[str],
207
+ options: List[str],
208
+ required: str,
209
+ ):
194
210
  super().__init__()
195
211
  self.parent = parent
196
212
  self.title: str = title
213
+ self.human_title: Optional[str] = human_title
197
214
  self.gef_type = RequirementFieldType.SINGLE_CHOICE
198
215
  self.options: List[str] = options
199
216
  self.required: bool = required == "True"
@@ -202,10 +219,18 @@ class GrammarElementFieldSingleChoice(GrammarElementField):
202
219
 
203
220
  @auto_described
204
221
  class GrammarElementFieldMultipleChoice(GrammarElementField):
205
- def __init__(self, parent, title: str, options: List[str], required: str):
222
+ def __init__(
223
+ self,
224
+ parent,
225
+ title: str,
226
+ human_title: Optional[str],
227
+ options: List[str],
228
+ required: str,
229
+ ):
206
230
  super().__init__()
207
231
  self.parent = parent
208
232
  self.title: str = title
233
+ self.human_title: Optional[str] = human_title
209
234
  self.gef_type = RequirementFieldType.MULTIPLE_CHOICE
210
235
  self.options: List[str] = options
211
236
  self.required: bool = required == "True"
@@ -214,10 +239,13 @@ class GrammarElementFieldMultipleChoice(GrammarElementField):
214
239
 
215
240
  @auto_described
216
241
  class GrammarElementFieldTag(GrammarElementField):
217
- def __init__(self, parent, title: str, required: str):
242
+ def __init__(
243
+ self, parent, title: str, human_title: Optional[str], required: str
244
+ ):
218
245
  super().__init__()
219
246
  self.parent = parent
220
247
  self.title: str = title
248
+ self.human_title: Optional[str] = human_title
221
249
  self.gef_type = RequirementFieldType.TAG
222
250
  self.required: bool = required == "True"
223
251
  self.mid: MID = MID.create()
@@ -344,7 +372,8 @@ class GrammarElementFieldReference(GrammarElementField):
344
372
 
345
373
  @auto_described
346
374
  class ViewElementField:
347
- def __init__(self, name: str, placement: Optional[str]):
375
+ def __init__(self, parent, name: str, placement: Optional[str]):
376
+ self.parent = parent
348
377
  self.name: str = name
349
378
  self.placement: Optional[str] = placement
350
379
 
@@ -352,13 +381,15 @@ class ViewElementField:
352
381
  @auto_described
353
382
  class ViewElementTags:
354
383
  def __init__(
355
- self, object_type: str, visibile_fields: List[ViewElementField]
384
+ self, parent, object_type: str, visible_fields: List[ViewElementField]
356
385
  ):
386
+ self.parent = parent
357
387
  self.object_type: str = object_type
358
- self.visible_fields: List[ViewElementField] = visibile_fields
388
+ self.visible_fields: List[ViewElementField] = visible_fields
359
389
 
360
390
 
361
391
  @auto_described
362
392
  class ViewElementHiddenTag:
363
- def __init__(self, hidden_tag: str):
393
+ def __init__(self, parent, hidden_tag: str):
394
+ self.parent = parent
364
395
  self.hidden_tag: str = hidden_tag
@@ -7,6 +7,7 @@ from strictdoc.backend.sdoc.error_handling import StrictDocSemanticError
7
7
  from strictdoc.backend.sdoc.models.document import Document
8
8
  from strictdoc.backend.sdoc.models.document_config import DocumentConfig
9
9
  from strictdoc.backend.sdoc.models.document_grammar import DocumentGrammar
10
+ from strictdoc.backend.sdoc.models.document_view import DocumentView
10
11
  from strictdoc.backend.sdoc.models.fragment import Fragment
11
12
  from strictdoc.backend.sdoc.models.fragment_from_file import FragmentFromFile
12
13
  from strictdoc.backend.sdoc.models.requirement import (
@@ -25,6 +26,7 @@ class ParseContext:
25
26
  self.document_grammar: DocumentGrammar = DocumentGrammar.create_default(
26
27
  None
27
28
  )
29
+ self.document_view: Optional[DocumentView] = None
28
30
  self.current_include_parent = None
29
31
  self.uses_old_refs_field: bool = False
30
32
  self.at_least_one_relations_field: bool = False
@@ -43,6 +45,7 @@ class SDocParsingProcessor:
43
45
  "Document": self.process_document,
44
46
  "DocumentConfig": self.process_document_config,
45
47
  "DocumentGrammar": self.process_document_grammar,
48
+ "DocumentView": self.process_document_view,
46
49
  "Section": self.process_section,
47
50
  "FragmentFromFile": self.process_include,
48
51
  "CompositeRequirement": self.process_composite_requirement,
@@ -63,6 +66,32 @@ class SDocParsingProcessor:
63
66
  )
64
67
  self.parse_context.document_grammar = document_grammar
65
68
 
69
+ def process_document_view(self, document_view: DocumentView):
70
+ for view in document_view.views:
71
+ for tag in view.tags:
72
+ if (
73
+ tag.object_type
74
+ not in self.parse_context.document_grammar.registered_elements
75
+ ):
76
+ raise StrictDocSemanticError.view_references_nonexisting_grammar_element(
77
+ view,
78
+ tag.object_type,
79
+ **get_location(document_view),
80
+ )
81
+ for field in tag.visible_fields:
82
+ for (
83
+ grammar_element
84
+ ) in self.parse_context.document_grammar.elements:
85
+ if field.name not in grammar_element.fields_map:
86
+ raise StrictDocSemanticError.view_references_nonexisting_field(
87
+ view,
88
+ tag.object_type,
89
+ field.name,
90
+ **get_location(document_view),
91
+ )
92
+
93
+ self.parse_context.document_view = document_view
94
+
66
95
  def process_section(self, section: Section):
67
96
  section.ng_document_reference = self.parse_context.document_reference
68
97
 
@@ -14,6 +14,7 @@ from strictdoc.backend.sdoc.models.constants import DOCUMENT_MODELS
14
14
  from strictdoc.backend.sdoc.models.document import Document
15
15
  from strictdoc.backend.sdoc.models.fragment import Fragment
16
16
  from strictdoc.backend.sdoc.processor import ParseContext, SDocParsingProcessor
17
+ from strictdoc.backend.sdoc.validations.sdoc_validator import SDocValidator
17
18
  from strictdoc.helpers.cast import assert_cast
18
19
  from strictdoc.helpers.exception import StrictDocException
19
20
  from strictdoc.helpers.md5 import get_file_md5
@@ -65,17 +66,19 @@ class SDReader:
65
66
  " VALUE: REQ-1"
66
67
  )
67
68
 
69
+ return document, parse_context
70
+
71
+ @staticmethod
72
+ def read(input_string, file_path=None):
73
+ document, _ = SDReader._read(input_string, file_path)
74
+ SDocValidator.validate_document(document)
75
+
68
76
  # HACK:
69
77
  # ProcessPoolExecutor doesn't work because of non-picklable parts
70
78
  # of textx. The offending fields are stripped down because they
71
79
  # are not used anyway.
72
80
  drop_textx_meta(document)
73
81
 
74
- return document, parse_context
75
-
76
- @staticmethod
77
- def read(input_string, file_path=None):
78
- document, _ = SDReader._read(input_string, file_path)
79
82
  return document
80
83
 
81
84
  def read_from_file(self, file_path: str) -> Document: