strictdoc 0.0.60__tar.gz → 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {strictdoc-0.0.60 → strictdoc-0.2.0}/PKG-INFO +4 -1
- {strictdoc-0.0.60 → strictdoc-0.2.0}/pyproject.toml +5 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/__init__.py +1 -1
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/error_handling.py +9 -1
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/grammar/type_system.py +2 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/grammar_reader.py +6 -6
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/type_system.py +10 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/pickle_cache.py +18 -9
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/reader.py +6 -6
- strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/caching_reader.py +59 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc_source_code/grammar.py +22 -2
- strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/marker_parser.py +94 -0
- strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/models/function.py +20 -0
- strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/models/function_range_marker.py +68 -0
- strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/models/range_marker.py +127 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc_source_code/models/requirement_marker.py +5 -4
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc_source_code/models/source_file_info.py +17 -14
- strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/parse_context.py +12 -0
- strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/processors/general_language_marker_processors.py +225 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc_source_code/reader.py +43 -45
- strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/reader_c.py +209 -0
- strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/reader_python.py +289 -0
- strictdoc-0.2.0/strictdoc/backend/sdoc_source_code/tree_sitter_helpers.py +18 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/document_finder.py +10 -6
- strictdoc-0.2.0/strictdoc/core/file_traceability_index.py +411 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/project_config.py +25 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/traceability_index.py +11 -1
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/traceability_index_builder.py +20 -10
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/create_requirement.py +1 -1
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/update_requirement.py +1 -1
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/form_objects/requirement_form_object.py +3 -1
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/source_file_view_generator.py +22 -1
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/source_file_view_object.py +6 -1
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/html_templates.py +2 -6
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/renderers/link_renderer.py +13 -12
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/renderers/markup_renderer.py +1 -1
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/files/index.jinja +6 -2
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/table/main.jinja +2 -2
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_view/requirement.jinja +11 -7
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/traceability_matrix/file.jinja +2 -2
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html2pdf/html2pdf.py +34 -26
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html2pdf/pdf_print_driver.py +8 -1
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/rst/rst_to_html_fragment_writer.py +10 -9
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/spdx/spdx_generator.py +14 -17
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/spdx/spdx_to_sdoc_converter.py +4 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/git/git_client.py +19 -22
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/string.py +6 -7
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/routers/other_router.py +2 -2
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/server.py +16 -0
- strictdoc-0.0.60/strictdoc/backend/sdoc_source_code/models/range_marker.py +0 -99
- strictdoc-0.0.60/strictdoc/core/file_traceability_index.py +0 -229
- strictdoc-0.0.60/strictdoc/export/html/templates/_shared/requirement_block/files_tree.jinja.html +0 -31
- {strictdoc-0.0.60 → strictdoc-0.2.0}/.gitignore +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/LICENSE +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/NOTICE +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/README.md +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/excel/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/excel/excel_import.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/excel/export/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/excel/export/excel_generator.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/excel/import_/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/excel/import_/excel_to_sdoc_converter.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/reqif/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/reqif/p01_sdoc/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/reqif/p01_sdoc/reqif_to_sdoc_converter.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/reqif/p01_sdoc/sdoc_to_reqif_converter.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/reqif/reqif_export.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/reqif/reqif_import.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/reqif/sdoc_reqif_fields.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/constants.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/document_reference.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/errors/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/errors/document_tree_error.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/free_text_reader.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/grammar/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/grammar/grammar.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/grammar/grammar_builder.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/grammar/grammar_grammar.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/anchor.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/any_node.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/constants.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/document.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/document_config.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/document_from_file.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/document_grammar.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/document_view.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/free_text.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/inline_link.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/node.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/object_factory.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/reference.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/models/section.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/processor.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/validations/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/validations/sdoc_validator.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc/writer.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc_source_code/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/backend/sdoc_source_code/models/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/cli/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/cli/argument_int_range.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/cli/cli_arg_parser.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/cli/command_parser_builder.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/cli/main.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/commands/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/commands/about_command.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/commands/diff_command.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/commands/dump_grammar_command.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/commands/manage_autouid_command.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/commands/version_command.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/actions/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/actions/export_action.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/actions/import_action.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/analyzers/document_stats.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/analyzers/document_uid_analyzer.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/asset_manager.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/document_iterator.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/document_meta.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/document_tree.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/document_tree_iterator.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/environment.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/file_tree.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/finders/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/finders/source_files_finder.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/graph/abstract_bucket.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/graph/many_to_many_set.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/graph/one_to_one_dictionary.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/graph/validations.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/graph_database.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/query_engine/grammar.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/query_engine/query_object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/query_engine/query_reader.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/source_tree.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/constants.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/delete_requirement.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/delete_section.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/section.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/update_document_config.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/update_grammar.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/update_grammar_element.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/update_included_document.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/transforms/validation_error.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/core/tree_cycle_detector.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/autogen.css +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/base.css +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/collapsible_list.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/collapsible_toc.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/collapsible_tree.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/content.css +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/anchor_controller.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/copy_to_clipboard_controller.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/deletable_field_controller.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/draggable_list_controller.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/dropdown_menu_controller.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/editable_field_controller.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/modal_controller.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/movable_field_controller.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/scroll_into_view_controller.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/controllers/tabs_controller.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/diff.css +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/diff.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/element.css +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/favicon.ico +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/fonts/NotoSans-Italic-VariableFont_wdth,wght.ttf +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/fonts/NotoSans-VariableFont_wdth,wght.ttf +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/fonts/NotoSansMono-VariableFont_wdth,wght.ttf +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/form.css +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/html2pdf/bundle.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/layout.css +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/node.css +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/pan_with_space.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/project_tree.css +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/project_tree.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/requirement-tree.css +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/requirement.css +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/requirement__temporary.css +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/requirements-coverage.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/resizable_bar.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/source-code-coverage.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/source.css +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/stimulus.min.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/table_vew.css +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/toc_highlighting.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/traceability_matrix.css +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/tree(not_in_use).css +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/turbo.min.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/viewtype_menu.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static/zoomable.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/LICENSE-MATHJAX +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/tex.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mathjax/tex-mml-chtml.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/mermaid/mermaid.min.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/nestor/bundle.umd.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/_static_extra/rapidoc/rapidoc-min.js +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/document_type.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/form_objects/document_config_form_object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/form_objects/form_object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/form_objects/grammar_element_form_object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/form_objects/grammar_form_object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/form_objects/included_document_form_object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/form_objects/rows/row_with_grammar_element_form_object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/form_objects/section_form_object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/document.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/document_deep_trace.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/document_pdf.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/document_table.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/document_trace.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/document_tree.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/project_statistics.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/source_file_coverage.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/traceability_matrix.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/diff_screen_results_view_object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/diff_screen_view_object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/document_screen_view_object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/nestor_view_object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/project_statistics_view_object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/project_tree_stats.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/project_tree_view_object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/search_screen_view_object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/generators/view_objects/traceability_matrix_view_object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/html_generator.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/renderers/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/renderers/html_fragment_writer.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/renderers/text_to_html_writer.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg__separator.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_add.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_add_above.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_add_below.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_add_child.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_anchor.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_back.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_book.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_close.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_code.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_copy.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_delete.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_diff.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_document.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_done.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_edit.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_expand.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_file.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_folder.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_folder_collapse.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_folder_sm.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_fragment.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_fragment_draft.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_gear.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_go_to_doc.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_index.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_list.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_maximize.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_minimize.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_minusminus.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_move_down.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_move_up.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_plusplus.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_project.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_requirement.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_reset.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_search.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_source.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_stat.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_sync.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_toc.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_res/svg_ico16_tree.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_shared/nav.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_shared/requirement_tree_left.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_shared/requirement_tree_right.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/_shared/tags.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/_shared/stream_refresh_document.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/_shared/stream_updated_toc.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/add_requirement_comment/stream_add_requirement_comment.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/add_requirement_relation/stream_add_requirement_relation.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/create_requirement/stream_cancel_new_requirement.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/create_requirement/stream_created_requirement.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/create_requirement/stream_new_requirement.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/create_section/stream_cancel_new_section.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/create_section/stream_created_section.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/create_section/stream_new_section.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_confirm_delete_requirement.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/delete_requirement/stream_delete_requirement.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/delete_section/stream_confirm_delete_section.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/delete_section/stream_delete_section.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_cancel_edit_document_config.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_edit_document_config.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/edit_document_config/stream_save_document_config.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/edit_requirement/stream_edit_requirement.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/edit_section/stream_edit_section.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/document/edit_section/stream_updated_section.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_requirement.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/node/show_full_node/stream_show_full_section.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_form_import_reqif_document.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/project_index/import_reqif_document/stream_refresh_with_imported_reqif_document.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/project_index/stream_create_document.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/actions/project_index/stream_new_document.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/base.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/anchor/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/badge/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/button/cancel.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/button/confirm.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/button/delete.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/button/diff.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/button/search.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/button/submit.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/confirm/_usage_example.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/confirm/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/field/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/field/contenteditable/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/field/file/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/field/text/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/field_action_button/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/row/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/example.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/frame.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/row/row_uid_with_reset/stream.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/row/row_with_comment.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/row/row_with_relation.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/row/row_with_text_field.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/form/search.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/grammar_form/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/grammar_form/row_with_grammar_element/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/grammar_form/row_with_new_grammar_element/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/grammar_form_element/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/grammar_form_element/row_with_custom_field/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/grammar_form_element/row_with_relation/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/grammar_form_element/row_with_reserved_field/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/header/_usage_example.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/header/header_pagetype.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/header/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/included_document_form/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/modal/_usage_example.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/modal/form.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/modal/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node/card.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node/node_controls/card.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node/node_controls/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node/root.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/README.txt +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/comments/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/document_meta/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/document_title/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/links/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/meta/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/multiline/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/rationale/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/section_h/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/section_h/pdf.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/section_title/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/statement/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/text/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/title/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/title/pdf.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/uid/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/node_field/uid_standalone/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/requirement/card.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/requirement/card_extends_card.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/requirement/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/requirement/index_extends_node.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/requirement/pdf.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/requirement/tiny.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/requirement/tiny_extends_card.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/resizable_bar/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/section/card.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/section/card_extends_card.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/section/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/section/index_extends_node.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/section/pdf.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/section/tiny.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/section/tiny_extends_card.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/table_key_value/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/text_node/card.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/text_node/card_extends_card.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/text_node/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/text_node/index_extends_node.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/text_node/pdf.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/text_node/tiny.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/components/text_node/tiny_extends_card.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/rst/anchor.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/frame_header_document_title.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_requirement.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/frame_show_full_section.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/frame_toc.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/project_tree.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/project_tree_child_documents.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_project_tree.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/resizable_bar_with_toc.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/toc.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/_shared/viewtype_menu.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/document/actions.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/document/frame_document_config.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/document/frame_document_config_edit.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/document/frame_document_content.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/document/frame_requirement_form.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/document/frame_section_form.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/document/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/document/main.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/pdf/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/pdf/main.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/pdf/template/footer.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/pdf/template/frontpage.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/pdf/template/header.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/pdf/toc.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/table/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/traceability/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/traceability/main.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/traceability_deep/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/document/traceability_deep/main.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/changelog_content.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/diff_content.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/diff_controls.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/fields/document_fields.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/fields/requirement_fields.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/fields/section_fields.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/form.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/frame_changelog_result.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/frame_diff_result.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/legend.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/main.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/nav_tabs.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/node/requirement.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/node/section.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/skeleton.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/git/sync/button.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/nestor/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/actions.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/frame_form_import_reqif.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/frame_form_new_document.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/frame_project_tree.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/main.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/project_tree.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/project_tree_file.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_index/project_tree_folder.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_statistics/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/project_statistics/main.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/search/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/search/legend.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/search/main.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_coverage/file.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_coverage/folder.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_coverage/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_coverage/main.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_view/aside.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_view/header__source_file_name.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_view/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/source_file_view/main.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/traceability_matrix/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/traceability_matrix/main.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/traceability_matrix/project_tree_flat_anchor_list.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/traceability_matrix/requirement.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/screens/traceability_matrix/resizable_bar_with_project_tree.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/website/document/index.jinja +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/templates/websocket.jinja.html +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/tools/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html/tools/html_embedded.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/html2pdf/html2pdf_generator.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/json/json_generator.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/rst/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/rst/directives/raw_html_role.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/rst/directives/wildcard_enhanced_image.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/rst/document_rst_generator.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/rst/rst_templates.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/rst/templates/requirement.jinja.rst +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/rst/writer.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/export/spdx/spdx_sdoc_container.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/git/change.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/git/change_generator.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/git/project_diff_analyzer.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/auto_described.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/cast.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/diff.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/exception.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/file_modification_time.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/file_system.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/form_data.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/git_client.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/math.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/md5.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/mid.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/ordered_set.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/parallelizer.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/path_filter.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/paths.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/pickle.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/rst.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/sha256.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/shard.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/sorting.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/textx.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/helpers/timing.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/__init__.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/app.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/config.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/error_object.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/helpers/turbo.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/main.py +0 -0
- {strictdoc-0.0.60 → strictdoc-0.2.0}/strictdoc/server/routers/main_router.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: strictdoc
|
3
|
-
Version: 0.0
|
3
|
+
Version: 0.2.0
|
4
4
|
Summary: StrictDoc is open-source software for technical documentation and requirements management.
|
5
5
|
Project-URL: Changelog, https://github.com/strictdoc-project/strictdoc/blob/main/CHANGELOG.md
|
6
6
|
Project-URL: Homepage, https://strictdoc.readthedocs.io/en/stable/
|
@@ -33,6 +33,9 @@ Requires-Dist: selenium
|
|
33
33
|
Requires-Dist: spdx-tools
|
34
34
|
Requires-Dist: textx==3.*,>=3.0.0
|
35
35
|
Requires-Dist: toml
|
36
|
+
Requires-Dist: tree-sitter
|
37
|
+
Requires-Dist: tree-sitter-c
|
38
|
+
Requires-Dist: tree-sitter-python
|
36
39
|
Requires-Dist: uvicorn[standard]>=0.14.0
|
37
40
|
Requires-Dist: webdriver-manager
|
38
41
|
Requires-Dist: websockets
|
@@ -56,6 +56,11 @@ dependencies = [
|
|
56
56
|
# Parsing and rendering RST.
|
57
57
|
"docutils >= 0.16, == 0.*",
|
58
58
|
|
59
|
+
# Tree Sitter is used for language/AST-aware parsing of Python, C and other files.
|
60
|
+
"tree-sitter",
|
61
|
+
"tree-sitter-c",
|
62
|
+
"tree-sitter-python",
|
63
|
+
|
59
64
|
# Requirements-to-source traceability. Colored syntax for source files.
|
60
65
|
"pygments >= 2.10.0, == 2.*",
|
61
66
|
|
@@ -1,4 +1,6 @@
|
|
1
1
|
# mypy: disable-error-code="attr-defined,no-untyped-call,no-untyped-def,union-attr"
|
2
|
+
from typing import Optional
|
3
|
+
|
2
4
|
from textx import TextXSyntaxError
|
3
5
|
|
4
6
|
from strictdoc.backend.sdoc.models.document import SDocDocument
|
@@ -25,7 +27,13 @@ def get_textx_syntax_error_message(exception: TextXSyntaxError):
|
|
25
27
|
|
26
28
|
class StrictDocSemanticError(Exception):
|
27
29
|
def __init__(
|
28
|
-
self,
|
30
|
+
self,
|
31
|
+
title: str,
|
32
|
+
hint: Optional[str],
|
33
|
+
example: Optional[str],
|
34
|
+
line: Optional[int] = None,
|
35
|
+
col: Optional[int] = None,
|
36
|
+
filename: Optional[str] = None,
|
29
37
|
):
|
30
38
|
super().__init__(title, hint, line, col, filename)
|
31
39
|
self.title = title
|
@@ -47,6 +47,8 @@ FileEntry[noskipws]:
|
|
47
47
|
(' FORMAT: ' g_file_format = FileEntryFormat '\n')?
|
48
48
|
' VALUE: ' g_file_path = /.*$/ '\n'
|
49
49
|
(' LINE_RANGE: ' g_line_range = /.*$/ '\n')?
|
50
|
+
(' FUNCTION: ' function = /.*$/ '\n')?
|
51
|
+
(' CLASS: ' clazz = /.*$/ '\n')?
|
50
52
|
;
|
51
53
|
|
52
54
|
FileEntryFormat[noskipws]:
|
@@ -12,6 +12,7 @@ from strictdoc.backend.sdoc.models.document_grammar import (
|
|
12
12
|
DocumentGrammarWrapper,
|
13
13
|
)
|
14
14
|
from strictdoc.backend.sdoc.pickle_cache import PickleCache
|
15
|
+
from strictdoc.core.project_config import ProjectConfig
|
15
16
|
from strictdoc.helpers.cast import assert_optional_cast
|
16
17
|
from strictdoc.helpers.textx import (
|
17
18
|
drop_textx_meta,
|
@@ -26,9 +27,6 @@ class SDocGrammarReader:
|
|
26
27
|
use_regexp_group=True,
|
27
28
|
)
|
28
29
|
|
29
|
-
def __init__(self, path_to_output_root: str) -> None:
|
30
|
-
self.path_to_output_root: str = path_to_output_root
|
31
|
-
|
32
30
|
@staticmethod
|
33
31
|
def read(
|
34
32
|
input_string: str, file_path: Optional[str] = None
|
@@ -60,9 +58,11 @@ class SDocGrammarReader:
|
|
60
58
|
|
61
59
|
return grammar
|
62
60
|
|
63
|
-
def read_from_file(
|
61
|
+
def read_from_file(
|
62
|
+
self, file_path: str, project_config: ProjectConfig
|
63
|
+
) -> DocumentGrammar:
|
64
64
|
unpickled_content: Optional[DocumentGrammar] = assert_optional_cast(
|
65
|
-
PickleCache.read_from_cache(file_path,
|
65
|
+
PickleCache.read_from_cache(file_path, project_config, "grammar"),
|
66
66
|
DocumentGrammar,
|
67
67
|
)
|
68
68
|
if unpickled_content is not None:
|
@@ -76,7 +76,7 @@ class SDocGrammarReader:
|
|
76
76
|
grammar_content, file_path=file_path
|
77
77
|
)
|
78
78
|
PickleCache.save_to_cache(
|
79
|
-
grammar, file_path,
|
79
|
+
grammar, file_path, project_config, "grammar"
|
80
80
|
)
|
81
81
|
|
82
82
|
return grammar
|
@@ -56,6 +56,8 @@ class FileEntry:
|
|
56
56
|
g_file_format: Optional[str],
|
57
57
|
g_file_path: str,
|
58
58
|
g_line_range: Optional[str],
|
59
|
+
function: Optional[str],
|
60
|
+
clazz: Optional[str],
|
59
61
|
):
|
60
62
|
self.parent = parent
|
61
63
|
|
@@ -85,6 +87,14 @@ class FileEntry:
|
|
85
87
|
int(range_components_str[1]),
|
86
88
|
)
|
87
89
|
|
90
|
+
# textX parses an optional element as an empty string. We make it to None ourselves.
|
91
|
+
self.function: Optional[str] = (
|
92
|
+
function if function is not None and len(function) > 0 else None
|
93
|
+
)
|
94
|
+
self.clazz: Optional[str] = (
|
95
|
+
clazz if clazz is not None and len(clazz) > 0 else None
|
96
|
+
)
|
97
|
+
|
88
98
|
|
89
99
|
class FileEntryFormat:
|
90
100
|
SOURCECODE = "Sourcecode"
|
@@ -1,18 +1,20 @@
|
|
1
1
|
import hashlib
|
2
2
|
import os
|
3
|
-
import tempfile
|
4
3
|
from pathlib import Path
|
5
4
|
from typing import Any
|
6
5
|
|
6
|
+
from strictdoc.core.project_config import ProjectConfig
|
7
7
|
from strictdoc.helpers.md5 import get_file_md5
|
8
8
|
from strictdoc.helpers.pickle import pickle_dump, pickle_load
|
9
9
|
|
10
10
|
|
11
11
|
class PickleCache:
|
12
12
|
@staticmethod
|
13
|
-
def read_from_cache(
|
13
|
+
def read_from_cache(
|
14
|
+
file_path: str, project_config: ProjectConfig, content_kind: str
|
15
|
+
) -> Any:
|
14
16
|
path_to_cached_file: str = PickleCache.get_cached_file_path(
|
15
|
-
file_path,
|
17
|
+
file_path, project_config, content_kind
|
16
18
|
)
|
17
19
|
if os.path.isfile(path_to_cached_file):
|
18
20
|
with open(path_to_cached_file, "rb") as cache_file:
|
@@ -30,9 +32,14 @@ class PickleCache:
|
|
30
32
|
return None
|
31
33
|
|
32
34
|
@staticmethod
|
33
|
-
def save_to_cache(
|
35
|
+
def save_to_cache(
|
36
|
+
content: Any,
|
37
|
+
file_path: str,
|
38
|
+
project_config: ProjectConfig,
|
39
|
+
content_kind: str,
|
40
|
+
) -> None:
|
34
41
|
path_to_cached_file: str = PickleCache.get_cached_file_path(
|
35
|
-
file_path,
|
42
|
+
file_path, project_config, content_kind
|
36
43
|
)
|
37
44
|
path_to_cached_file_dir: str = os.path.dirname(path_to_cached_file)
|
38
45
|
Path(path_to_cached_file_dir).mkdir(parents=True, exist_ok=True)
|
@@ -41,8 +48,10 @@ class PickleCache:
|
|
41
48
|
cache_file.write(pickled_content)
|
42
49
|
|
43
50
|
@staticmethod
|
44
|
-
def get_cached_file_path(
|
45
|
-
|
51
|
+
def get_cached_file_path(
|
52
|
+
file_path: str, project_config: ProjectConfig, content_kind: str
|
53
|
+
) -> str:
|
54
|
+
path_to_tmp_dir = project_config.get_path_to_cache_dir()
|
46
55
|
|
47
56
|
full_path_to_file = (
|
48
57
|
file_path
|
@@ -57,7 +66,7 @@ class PickleCache:
|
|
57
66
|
# contains a full path to the output root to prevent collisions
|
58
67
|
# between StrictDoc invocations running against the same set of SDoc
|
59
68
|
# files in parallel.
|
60
|
-
unique_identifier =
|
69
|
+
unique_identifier = project_config.output_dir + full_path_to_file
|
61
70
|
unique_identifier_md5 = hashlib.md5(
|
62
71
|
unique_identifier.encode("utf-8")
|
63
72
|
).hexdigest()
|
@@ -66,7 +75,7 @@ class PickleCache:
|
|
66
75
|
|
67
76
|
path_to_cached_file = os.path.join(
|
68
77
|
path_to_tmp_dir,
|
69
|
-
|
78
|
+
content_kind,
|
70
79
|
file_name,
|
71
80
|
)
|
72
81
|
|
@@ -11,6 +11,7 @@ from strictdoc.backend.sdoc.models.constants import DOCUMENT_MODELS
|
|
11
11
|
from strictdoc.backend.sdoc.models.document import SDocDocument
|
12
12
|
from strictdoc.backend.sdoc.pickle_cache import PickleCache
|
13
13
|
from strictdoc.backend.sdoc.processor import ParseContext, SDocParsingProcessor
|
14
|
+
from strictdoc.core.project_config import ProjectConfig
|
14
15
|
from strictdoc.helpers.cast import assert_cast
|
15
16
|
from strictdoc.helpers.exception import StrictDocException
|
16
17
|
from strictdoc.helpers.textx import drop_textx_meta
|
@@ -23,9 +24,6 @@ class SDReader:
|
|
23
24
|
use_regexp_group=True,
|
24
25
|
)
|
25
26
|
|
26
|
-
def __init__(self, path_to_output_root: str = "NOT_RELEVANT"):
|
27
|
-
self.path_to_output_root = path_to_output_root
|
28
|
-
|
29
27
|
@staticmethod
|
30
28
|
def _read(input_string, file_path=None):
|
31
29
|
parse_context = ParseContext(path_to_sdoc_file=file_path)
|
@@ -54,14 +52,16 @@ class SDReader:
|
|
54
52
|
document, parse_context = SDReader._read(input_string, file_path)
|
55
53
|
return document, parse_context
|
56
54
|
|
57
|
-
def read_from_file(
|
55
|
+
def read_from_file(
|
56
|
+
self, file_path: str, project_config: ProjectConfig
|
57
|
+
) -> SDocDocument:
|
58
58
|
"""
|
59
59
|
This function parses the provided .sdoc file and returns a Document
|
60
60
|
object.
|
61
61
|
"""
|
62
62
|
|
63
63
|
unpickled_content = PickleCache.read_from_cache(
|
64
|
-
file_path,
|
64
|
+
file_path, project_config, "sdoc"
|
65
65
|
)
|
66
66
|
if unpickled_content:
|
67
67
|
return assert_cast(unpickled_content, SDocDocument)
|
@@ -82,7 +82,7 @@ class SDReader:
|
|
82
82
|
# are not used anyway.
|
83
83
|
drop_textx_meta(sdoc)
|
84
84
|
|
85
|
-
PickleCache.save_to_cache(sdoc, file_path,
|
85
|
+
PickleCache.save_to_cache(sdoc, file_path, project_config, "sdoc")
|
86
86
|
|
87
87
|
return sdoc
|
88
88
|
except StrictDocException as exception:
|
@@ -0,0 +1,59 @@
|
|
1
|
+
from typing import Union
|
2
|
+
|
3
|
+
from strictdoc.backend.sdoc.pickle_cache import PickleCache
|
4
|
+
from strictdoc.backend.sdoc_source_code.models.source_file_info import (
|
5
|
+
SourceFileTraceabilityInfo,
|
6
|
+
)
|
7
|
+
from strictdoc.backend.sdoc_source_code.reader import (
|
8
|
+
SourceFileTraceabilityReader,
|
9
|
+
)
|
10
|
+
from strictdoc.backend.sdoc_source_code.reader_c import (
|
11
|
+
SourceFileTraceabilityReader_C,
|
12
|
+
)
|
13
|
+
from strictdoc.backend.sdoc_source_code.reader_python import (
|
14
|
+
SourceFileTraceabilityReader_Python,
|
15
|
+
)
|
16
|
+
from strictdoc.core.project_config import ProjectConfig
|
17
|
+
|
18
|
+
|
19
|
+
class SourceFileTraceabilityCachingReader:
|
20
|
+
@staticmethod
|
21
|
+
def read_from_file(
|
22
|
+
path_to_file: str, project_config: ProjectConfig
|
23
|
+
) -> SourceFileTraceabilityInfo:
|
24
|
+
unpickled_content = PickleCache.read_from_cache(
|
25
|
+
path_to_file, project_config, "source_file"
|
26
|
+
)
|
27
|
+
if unpickled_content is not None:
|
28
|
+
assert isinstance(unpickled_content, SourceFileTraceabilityInfo), (
|
29
|
+
path_to_file,
|
30
|
+
unpickled_content,
|
31
|
+
)
|
32
|
+
return unpickled_content
|
33
|
+
|
34
|
+
reader = SourceFileTraceabilityCachingReader._get_reader(
|
35
|
+
path_to_file, project_config
|
36
|
+
)
|
37
|
+
traceability_info: SourceFileTraceabilityInfo = reader.read_from_file(
|
38
|
+
path_to_file
|
39
|
+
)
|
40
|
+
PickleCache.save_to_cache(
|
41
|
+
traceability_info, path_to_file, project_config, "source_file"
|
42
|
+
)
|
43
|
+
|
44
|
+
return traceability_info
|
45
|
+
|
46
|
+
@staticmethod
|
47
|
+
def _get_reader(
|
48
|
+
path_to_file: str, project_config: ProjectConfig
|
49
|
+
) -> Union[
|
50
|
+
SourceFileTraceabilityReader,
|
51
|
+
SourceFileTraceabilityReader_Python,
|
52
|
+
SourceFileTraceabilityReader_C,
|
53
|
+
]:
|
54
|
+
if project_config.is_activated_source_file_language_parsers():
|
55
|
+
if path_to_file.endswith(".py"):
|
56
|
+
return SourceFileTraceabilityReader_Python()
|
57
|
+
if path_to_file.endswith(".c"):
|
58
|
+
return SourceFileTraceabilityReader_C()
|
59
|
+
return SourceFileTraceabilityReader()
|
@@ -7,7 +7,7 @@ Part[noskipws]:
|
|
7
7
|
// The EmptyLine is needed in addition to the SingleLineString because
|
8
8
|
// otherwise textX's get_location() ignores the whitespaces.
|
9
9
|
// TODO: Maybe there is a trick to disable that and only use SingleLineString.
|
10
|
-
EmptyLine | RangeMarker | LineMarker | SingleLineString
|
10
|
+
EmptyLine | RangeMarker | LineMarker | FunctionRangeMarker | SingleLineString
|
11
11
|
;
|
12
12
|
|
13
13
|
EmptyLine[noskipws]:
|
@@ -18,21 +18,41 @@ RangeMarker[noskipws]:
|
|
18
18
|
// It is a hard-won result: it is important that the "@sdoc" is within the
|
19
19
|
// regex. Putting it next to the regex as "@sdoc" does not work.
|
20
20
|
// TODO: It would be great to check this with the TextX developers.
|
21
|
+
(
|
21
22
|
/^.*?@sdoc/
|
22
23
|
(begin_or_end = "[/" | begin_or_end = "[")
|
23
24
|
(reqs_objs += Req[', ']) ']' '\n'?
|
25
|
+
)
|
26
|
+
|
|
27
|
+
(
|
28
|
+
/^.*?@relation/
|
29
|
+
'('
|
30
|
+
(reqs_objs += Req[', ']) ', scope=' scope=/(range_start|range_end)/ ')' '\n'?
|
31
|
+
)
|
32
|
+
;
|
33
|
+
|
34
|
+
FunctionRangeMarker[noskipws]:
|
35
|
+
/^.*?@relation/
|
36
|
+
"(" (reqs_objs += Req[', ']) ', scope=file)' '\n'?
|
24
37
|
;
|
25
38
|
|
26
39
|
LineMarker[noskipws]:
|
27
40
|
// It is a hard-won result: it is important that the "@sdoc" is within the
|
28
41
|
// regex. Putting it next to the regex as "@sdoc" does not work.
|
29
42
|
// TODO: It would be great to check this with the TextX developers.
|
43
|
+
(
|
30
44
|
/^.*?@sdoc/
|
31
45
|
"(" (reqs_objs += Req[', ']) ')' '\n'?
|
46
|
+
)
|
47
|
+
|
|
48
|
+
(
|
49
|
+
/^.*?@relation/
|
50
|
+
"(" (reqs_objs += Req[', ']) ', scope=line)' '\n'?
|
51
|
+
)
|
32
52
|
;
|
33
53
|
|
34
54
|
Req[noskipws]:
|
35
|
-
uid = /[A-Za-z][A-Za-z0-9\\-]+/
|
55
|
+
uid = /(?!scope=)[A-Za-z][A-Za-z0-9\\-]+/
|
36
56
|
;
|
37
57
|
|
38
58
|
SingleLineString[noskipws]:
|
@@ -0,0 +1,94 @@
|
|
1
|
+
import re
|
2
|
+
from typing import List, Optional, Union
|
3
|
+
|
4
|
+
from strictdoc.backend.sdoc_source_code.models.function_range_marker import (
|
5
|
+
FunctionRangeMarker,
|
6
|
+
)
|
7
|
+
from strictdoc.backend.sdoc_source_code.models.range_marker import (
|
8
|
+
LineMarker,
|
9
|
+
RangeMarker,
|
10
|
+
)
|
11
|
+
from strictdoc.backend.sdoc_source_code.models.requirement_marker import Req
|
12
|
+
|
13
|
+
REGEX_REQ = r"[A-Za-z][A-Za-z0-9\\-]+"
|
14
|
+
# @relation(REQ-1, scope=function)
|
15
|
+
REGEX_MARKER = rf"@relation\(({REGEX_REQ}(?:, {REGEX_REQ})*)\, scope=(file|class|function|line|range_start|range_end)\)"
|
16
|
+
|
17
|
+
|
18
|
+
class MarkerParser:
|
19
|
+
@staticmethod
|
20
|
+
def parse(
|
21
|
+
input_string: str,
|
22
|
+
line_start: int,
|
23
|
+
line_end: int,
|
24
|
+
comment_line_start: int,
|
25
|
+
comment_column_start: int,
|
26
|
+
entity_name: Optional[str] = None,
|
27
|
+
) -> List[Union[FunctionRangeMarker, RangeMarker, LineMarker]]:
|
28
|
+
markers: List[Union[FunctionRangeMarker, RangeMarker, LineMarker]] = []
|
29
|
+
for input_line_idx_, input_line_ in enumerate(
|
30
|
+
input_string.splitlines()
|
31
|
+
):
|
32
|
+
match = re.search(REGEX_MARKER, input_line_)
|
33
|
+
if match is None:
|
34
|
+
continue
|
35
|
+
|
36
|
+
assert match.lastindex is not None
|
37
|
+
marker_type = match.group(match.lastindex)
|
38
|
+
req_list = match.group(1)
|
39
|
+
|
40
|
+
first_requirement_index = match.start(1)
|
41
|
+
|
42
|
+
current_line = comment_line_start + input_line_idx_
|
43
|
+
first_requirement_column = first_requirement_index + 1
|
44
|
+
if input_line_idx_ == 0:
|
45
|
+
first_requirement_column += comment_column_start - 1
|
46
|
+
requirements = []
|
47
|
+
for req_match in re.finditer(REGEX_REQ, req_list):
|
48
|
+
req_item = req_match.group(0) # Matched REQ-XXX item
|
49
|
+
# Calculate actual position relative to the original string
|
50
|
+
start_index = (
|
51
|
+
req_match.start()
|
52
|
+
) # Offset by where group 1 starts
|
53
|
+
requirement = Req(None, req_item)
|
54
|
+
requirement.ng_source_line = current_line
|
55
|
+
requirement.ng_source_column = (
|
56
|
+
first_requirement_column + start_index
|
57
|
+
)
|
58
|
+
requirements.append(requirement)
|
59
|
+
|
60
|
+
if marker_type in ("file", "class", "function"):
|
61
|
+
function_marker = FunctionRangeMarker(None, requirements)
|
62
|
+
function_marker.ng_source_line_begin = line_start
|
63
|
+
function_marker.ng_range_line_begin = line_start
|
64
|
+
function_marker.ng_range_line_end = line_end
|
65
|
+
function_marker.ng_marker_line = current_line
|
66
|
+
function_marker.ng_marker_column = first_requirement_column
|
67
|
+
if marker_type == "file":
|
68
|
+
function_marker.set_description("the whole file")
|
69
|
+
elif marker_type == "function":
|
70
|
+
function_marker.set_description(f"function {entity_name}")
|
71
|
+
elif marker_type == "class":
|
72
|
+
function_marker.set_description(f"class {entity_name}")
|
73
|
+
markers.append(function_marker)
|
74
|
+
elif marker_type in ("range_start", "range_end"):
|
75
|
+
start_or_end = marker_type == "range_start"
|
76
|
+
range_marker = RangeMarker(
|
77
|
+
None, "[" if start_or_end else "[/", requirements
|
78
|
+
)
|
79
|
+
range_marker.ng_source_line_begin = line_start
|
80
|
+
range_marker.ng_source_column_begin = first_requirement_column
|
81
|
+
range_marker.ng_range_line_begin = line_start
|
82
|
+
range_marker.ng_range_line_end = line_end
|
83
|
+
range_marker.ng_is_language_parsed = True
|
84
|
+
markers.append(range_marker)
|
85
|
+
elif marker_type == "line":
|
86
|
+
line_marker = LineMarker(None, requirements)
|
87
|
+
line_marker.ng_source_line_begin = line_start
|
88
|
+
line_marker.ng_range_line_begin = line_start
|
89
|
+
line_marker.ng_range_line_end = line_end
|
90
|
+
markers.append(line_marker)
|
91
|
+
else:
|
92
|
+
continue
|
93
|
+
|
94
|
+
return markers
|
@@ -0,0 +1,20 @@
|
|
1
|
+
from typing import Any, List
|
2
|
+
|
3
|
+
from strictdoc.helpers.auto_described import auto_described
|
4
|
+
|
5
|
+
|
6
|
+
@auto_described
|
7
|
+
class Function:
|
8
|
+
def __init__(
|
9
|
+
self,
|
10
|
+
parent: Any,
|
11
|
+
name: str,
|
12
|
+
line_begin: int,
|
13
|
+
line_end: int,
|
14
|
+
parts: List[Any],
|
15
|
+
):
|
16
|
+
self.parent = parent
|
17
|
+
self.name = name
|
18
|
+
self.parts: List[Any] = parts
|
19
|
+
self.line_begin = line_begin
|
20
|
+
self.line_end = line_end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# mypy: disable-error-code="no-untyped-def,type-arg"
|
2
|
+
from enum import Enum
|
3
|
+
from typing import List, Optional
|
4
|
+
|
5
|
+
from strictdoc.backend.sdoc_source_code.models.requirement_marker import Req
|
6
|
+
from strictdoc.helpers.auto_described import auto_described
|
7
|
+
|
8
|
+
|
9
|
+
class RangeMarkerType(Enum):
|
10
|
+
FUNCTION = "function"
|
11
|
+
CLASS = "class"
|
12
|
+
FILE = "file"
|
13
|
+
|
14
|
+
|
15
|
+
@auto_described
|
16
|
+
class FunctionRangeMarker:
|
17
|
+
def __init__(self, parent, reqs_objs: List[Req]):
|
18
|
+
assert isinstance(reqs_objs, list)
|
19
|
+
self.parent = parent
|
20
|
+
self.reqs_objs: List[Req] = reqs_objs
|
21
|
+
self.reqs: List[str] = list(map(lambda req: req.uid, reqs_objs))
|
22
|
+
|
23
|
+
# Line number of the marker in the source code.
|
24
|
+
self.ng_source_line_begin: Optional[int] = None
|
25
|
+
self.ng_source_column_begin: Optional[int] = None
|
26
|
+
|
27
|
+
# Line number of the marker range in the source code:
|
28
|
+
# TODO: Improve description.
|
29
|
+
# For Begin ranges:
|
30
|
+
# ng_range_line_begin == ng_source_line_begin # noqa: ERA001
|
31
|
+
# ng_range_line_end == ng_source_line_begin of the End marker # noqa: ERA001, E501
|
32
|
+
# For End ranges:
|
33
|
+
# ng_range_line_begin == ng_range_line_begin of the Begin marker # noqa: ERA001, E501
|
34
|
+
# ng_range_line_end == ng_source_line_begin # noqa: ERA001
|
35
|
+
self.ng_range_line_begin: Optional[int] = None
|
36
|
+
self.ng_range_line_end: Optional[int] = None
|
37
|
+
|
38
|
+
self.ng_marker_line: Optional[int] = None
|
39
|
+
self.ng_marker_column: Optional[int] = None
|
40
|
+
|
41
|
+
self.ng_is_nodoc = "nosdoc" in self.reqs
|
42
|
+
|
43
|
+
self._description: Optional[str] = None
|
44
|
+
|
45
|
+
def is_range_marker(self) -> bool:
|
46
|
+
return True
|
47
|
+
|
48
|
+
def is_line_marker(self) -> bool:
|
49
|
+
return False
|
50
|
+
|
51
|
+
def is_begin(self) -> bool:
|
52
|
+
return True
|
53
|
+
|
54
|
+
def is_end(self) -> bool:
|
55
|
+
return False
|
56
|
+
|
57
|
+
def get_description(self) -> Optional[str]:
|
58
|
+
return self._description
|
59
|
+
|
60
|
+
def set_description(self, description: str) -> None:
|
61
|
+
assert isinstance(description, str)
|
62
|
+
self._description = description
|
63
|
+
|
64
|
+
|
65
|
+
@auto_described
|
66
|
+
class ForwardFunctionRangeMarker(FunctionRangeMarker):
|
67
|
+
def __init__(self, parent, reqs_objs: List[Req]):
|
68
|
+
super().__init__(parent, reqs_objs)
|
@@ -0,0 +1,127 @@
|
|
1
|
+
# mypy: disable-error-code="no-untyped-def,type-arg"
|
2
|
+
from typing import Any, List, Optional
|
3
|
+
|
4
|
+
from strictdoc.backend.sdoc_source_code.models.requirement_marker import Req
|
5
|
+
from strictdoc.helpers.auto_described import auto_described
|
6
|
+
|
7
|
+
|
8
|
+
@auto_described
|
9
|
+
class RangeMarker:
|
10
|
+
def __init__(
|
11
|
+
self,
|
12
|
+
parent: Any,
|
13
|
+
begin_or_end: str,
|
14
|
+
reqs_objs: List[Req],
|
15
|
+
scope: str = "",
|
16
|
+
):
|
17
|
+
assert isinstance(reqs_objs, list)
|
18
|
+
self.parent: Any = parent
|
19
|
+
assert len(begin_or_end) > 0 or scope is not None
|
20
|
+
|
21
|
+
self.begin_or_end: str
|
22
|
+
if len(begin_or_end) > 0:
|
23
|
+
self.begin_or_end = begin_or_end
|
24
|
+
else:
|
25
|
+
assert scope in ("range_start", "range_end")
|
26
|
+
self.begin_or_end = "[" if scope == "range_start" else "[/"
|
27
|
+
|
28
|
+
self.reqs_objs: List[Req] = reqs_objs
|
29
|
+
self.reqs: List[str] = list(map(lambda req: req.uid, reqs_objs))
|
30
|
+
|
31
|
+
# Line number of the marker in the source code.
|
32
|
+
self.ng_source_line_begin: Optional[int] = None
|
33
|
+
self.ng_source_column_begin: Optional[int] = None
|
34
|
+
|
35
|
+
# Line number of the marker range in the source code:
|
36
|
+
# TODO: Improve description.
|
37
|
+
# For Begin ranges:
|
38
|
+
# ng_range_line_begin == ng_source_line_begin # noqa: ERA001
|
39
|
+
# ng_range_line_end == ng_source_line_begin of the End marker # noqa: ERA001, E501
|
40
|
+
# For End ranges:
|
41
|
+
# ng_range_line_begin == ng_range_line_begin of the Begin marker # noqa: ERA001, E501
|
42
|
+
# ng_range_line_end == ng_source_line_begin # noqa: ERA001
|
43
|
+
self.ng_range_line_begin: Optional[int] = None
|
44
|
+
self.ng_range_line_end: Optional[int] = None
|
45
|
+
|
46
|
+
self.ng_is_nodoc = "nosdoc" in self.reqs
|
47
|
+
self.ng_is_language_parsed = False
|
48
|
+
|
49
|
+
def is_begin(self) -> bool:
|
50
|
+
return self.begin_or_end == "["
|
51
|
+
|
52
|
+
def is_end(self) -> bool:
|
53
|
+
return self.begin_or_end == "[/"
|
54
|
+
|
55
|
+
def is_range_marker(self) -> bool:
|
56
|
+
return True
|
57
|
+
|
58
|
+
def is_line_marker(self) -> bool:
|
59
|
+
return False
|
60
|
+
|
61
|
+
def get_description(self) -> Optional[str]:
|
62
|
+
return "range"
|
63
|
+
|
64
|
+
|
65
|
+
@auto_described
|
66
|
+
class LineMarker:
|
67
|
+
def __init__(self, parent: Any, reqs_objs: List[Req]) -> None:
|
68
|
+
assert isinstance(reqs_objs, list)
|
69
|
+
self.parent = parent
|
70
|
+
self.reqs_objs = reqs_objs
|
71
|
+
self.reqs = list(map(lambda req: req.uid, reqs_objs))
|
72
|
+
|
73
|
+
# Line number of the marker in the source code.
|
74
|
+
self.ng_source_line_begin: Optional[int] = None
|
75
|
+
self.ng_source_column_begin: Optional[int] = None
|
76
|
+
|
77
|
+
self.ng_range_line_begin: Optional[int] = None
|
78
|
+
self.ng_range_line_end: Optional[int] = None
|
79
|
+
|
80
|
+
self.ng_is_nodoc = "nosdoc" in self.reqs
|
81
|
+
|
82
|
+
def is_begin(self) -> bool:
|
83
|
+
return True
|
84
|
+
|
85
|
+
def is_end(self) -> bool:
|
86
|
+
return False
|
87
|
+
|
88
|
+
def is_range_marker(self) -> bool:
|
89
|
+
return False
|
90
|
+
|
91
|
+
def is_line_marker(self) -> bool:
|
92
|
+
return True
|
93
|
+
|
94
|
+
def get_description(self) -> Optional[str]:
|
95
|
+
return "line"
|
96
|
+
|
97
|
+
|
98
|
+
@auto_described
|
99
|
+
class ForwardRangeMarker:
|
100
|
+
def __init__(self, start_or_end: bool, reqs_objs: List):
|
101
|
+
assert len(reqs_objs) > 0
|
102
|
+
self.start_or_end: bool = start_or_end
|
103
|
+
|
104
|
+
self.reqs_objs = reqs_objs
|
105
|
+
|
106
|
+
# Line number of the marker in the source code.
|
107
|
+
self.ng_source_line_begin: Optional[int] = None
|
108
|
+
|
109
|
+
self.ng_range_line_begin: Optional[int] = None
|
110
|
+
self.ng_range_line_end: Optional[int] = None
|
111
|
+
|
112
|
+
self.ng_is_nodoc = False
|
113
|
+
|
114
|
+
def is_begin(self) -> bool:
|
115
|
+
return self.start_or_end
|
116
|
+
|
117
|
+
def is_end(self) -> bool:
|
118
|
+
return not self.start_or_end
|
119
|
+
|
120
|
+
def is_range_marker(self) -> bool:
|
121
|
+
return True
|
122
|
+
|
123
|
+
def is_line_marker(self) -> bool:
|
124
|
+
return False
|
125
|
+
|
126
|
+
def get_description(self) -> Optional[str]:
|
127
|
+
return "range"
|