sphinx-needs 9.0.0__tar.gz → 9.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.
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/PKG-INFO +5 -2
- sphinx_needs-9.2.0/docs/_static/_css/furo.css +51 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/ubc-theme.css +6 -4
- sphinx_needs-9.2.0/docs/api.rst +462 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/builders.rst +10 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/card_layouts.rst +3 -4
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/changelog.rst +1369 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/conf.py +23 -20
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/configuration.rst +931 -513
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/contributing.rst +9 -2
- sphinx_needs-9.2.0/docs/derived_fields.rst +1490 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/needbar.rst +4 -8
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/needflow.rst +9 -2
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/needimport.rst +7 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/needpie.rst +4 -8
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/needservice.rst +2 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/needtable.rst +21 -2
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/dynamic_functions.rst +184 -76
- sphinx_needs-9.2.0/docs/filter.rst +853 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/index.rst +6 -4
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/installation.rst +1 -1
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/layout_styles.rst +12 -0
- sphinx_needs-9.2.0/docs/need_types.rst +539 -0
- sphinx_needs-9.2.0/docs/performance/incremental.rst +79 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/performance/index.rst +1 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/roles.rst +4 -3
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/schema/index.rst +331 -7
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/services/github.rst +51 -5
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/services/index.rst +3 -2
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/tutorial.rst +37 -3
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/ubproject.toml +45 -53
- sphinx_needs-9.2.0/docs/v_model.rst +92 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/pyproject.toml +5 -2
- sphinx_needs-9.2.0/src/sphinx_needs/__init__.py +16 -0
- sphinx_needs-9.2.0/src/sphinx_needs/_incremental.py +792 -0
- sphinx_needs-9.2.0/src/sphinx_needs/_need_source.py +1295 -0
- sphinx_needs-9.2.0/src/sphinx_needs/_read_watch.py +166 -0
- sphinx_needs-9.2.0/src/sphinx_needs/_source_facets.py +316 -0
- sphinx_needs-9.2.0/src/sphinx_needs/_wording.py +24 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/api/__init__.py +18 -0
- sphinx_needs-9.2.0/src/sphinx_needs/api/configuration.py +530 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/api/need.py +753 -162
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/builder.py +32 -13
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/card_layouts.py +5 -4
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/config.py +644 -57
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/data.py +212 -13
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/debug.py +45 -7
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/derive.py +497 -59
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/diagrams_common.py +4 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/list2need.py +139 -42
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/need.py +257 -124
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needbar.py +46 -38
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needextend.py +161 -52
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needextract.py +24 -11
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needflow/_directive.py +8 -4
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needflow/_graphviz.py +6 -5
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needflow/_model.py +11 -10
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needflow/_plantuml.py +10 -11
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needflow/_shared.py +2 -2
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needgantt.py +18 -4
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needimport.py +35 -15
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needlist.py +17 -3
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needpie.py +18 -4
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needreport.py +1 -1
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needsequence.py +17 -4
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needservice.py +151 -28
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needtable.py +50 -35
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needuml.py +7 -3
- sphinx_needs-9.2.0/src/sphinx_needs/exchange.py +61 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/external_needs.py +24 -10
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/filter_common.py +521 -138
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/functions/__init__.py +2 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/functions/common.py +340 -22
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/functions/functions.py +691 -85
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/functions/order.py +507 -26
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/layout.py +37 -15
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/logging.py +18 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/need_constraints.py +1 -3
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/need_content.py +5 -5
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/need_item.py +589 -106
- sphinx_needs-9.2.0/src/sphinx_needs/needs.py +4715 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/needs_schema.py +1373 -371
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/needsfile.py +176 -42
- sphinx_needs-9.2.0/src/sphinx_needs/roles/__init__.py +40 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/roles/need_count.py +1 -1
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/roles/need_func.py +1 -1
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/roles/need_incoming.py +6 -2
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/roles/need_outgoing.py +56 -3
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/roles/need_ref.py +5 -1
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/schema/config.py +126 -5
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/schema/config_utils.py +11 -1
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/schema/core.py +163 -34
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/schema/reporting.py +17 -18
- sphinx_needs-9.2.0/src/sphinx_needs/services/config/__init__.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/services/config/github.py +16 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/services/github.py +81 -15
- sphinx_needs-9.2.0/src/sphinx_needs/services/manager.py +113 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/string_links.py +8 -2
- sphinx_needs-9.2.0/src/sphinx_needs/ubquery.py +801 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/utils.py +85 -9
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/variant_data.py +3 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/variants.py +3 -1
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/views.py +16 -7
- sphinx_needs-9.0.0/docs/_static/_css/furo.css +0 -327
- sphinx_needs-9.0.0/docs/_static/_templates/furo/side-github.html +0 -37
- sphinx_needs-9.0.0/docs/api.rst +0 -149
- sphinx_needs-9.0.0/docs/filter.rst +0 -554
- sphinx_needs-9.0.0/src/sphinx_needs/__init__.py +0 -9
- sphinx_needs-9.0.0/src/sphinx_needs/api/configuration.py +0 -274
- sphinx_needs-9.0.0/src/sphinx_needs/exchange.py +0 -286
- sphinx_needs-9.0.0/src/sphinx_needs/needs.py +0 -1988
- sphinx_needs-9.0.0/src/sphinx_needs/roles/__init__.py +0 -22
- sphinx_needs-9.0.0/src/sphinx_needs/services/manager.py +0 -59
- sphinx_needs-9.0.0/src/sphinx_needs/ubquery.py +0 -299
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/AUTHORS +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/LICENSE +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/README.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/Makefile +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/activity.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/car.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/daniel.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/diagram.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/github_issue_1.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/github_issue_2.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/github_issue_3.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/github_issue_4.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/logos/sphinx-needs-enterprise-card.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/logos/sphinx-needs-logo-old.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/logos/sphinx-test-reports-logo.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/logos/sphinx_bazel_logo.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/logos/sphinx_collections_logo.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/logos/useblocks_logo.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/need_1.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/need_2.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/need_blank.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/need_dark.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/need_modern.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/need_part_as_flow.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/need_pie_overlapping_labels.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/needflow_1.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/needflow_flow.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/needflow_flow_legend.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/needflow_link_names.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/needpie_1.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/needs_logo.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/needtable_1.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/ons_example.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/ons_table.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/service_github_1.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/sn_debug_measurement_html_report.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_images/snakeviz_needtable.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/_css/pydata_sphinx_theme.css +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/_css/shared.css +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/_css/sphinx_immaterial.css +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/_css/sphinx_rtd_theme.css +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/_templates/sphinx_immaterial/layout.html +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/_templates/sphinx_immaterial/partials/nav.html +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/architecture_bg-dark.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/architecture_bg-dark.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/architecture_bg-light.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/architecture_bg-light.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/flow_chart.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/sphinx-needs-logo-long-dark.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/sphinx-needs-logo-long-light.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/sphinx-needs-logo-square-dark.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/sphinx-needs-logo-square-light.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/sphinx_needs_paper.odt +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/sphinx_needs_paper.pdf +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/useblocks-logo-long-dark.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/_static/useblocks-logo-long-light.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/choose.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/if.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/index.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/list2need.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/need.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/needarch.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/needextend.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/needextract.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/needgantt.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/needlist.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/needreport.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/needsequence.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/directives/needuml.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/docker.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/license.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/make.bat +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/needs_templates/report_template.need +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/needs_templates/spec_post_template.need +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/needs_templates/spec_pre_template.need +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/needs_templates/spec_template.need +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/performance/complex.txt +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/performance/debug.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/performance/help.txt +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/performance/script.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/performance/series_output.txt +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/schema/01_basic_setup.drawio.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/schema/02_local_check.drawio.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/schema/03_network_check.drawio.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/support.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/docs/utils.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/_jinja.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/api/exceptions.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/css/common/need_core.css +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/css/common/need_links.css +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/css/common/need_style.css +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/css/common/need_toggle.css +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/css/common/needstable.css +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/css/themes/blank.css +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/css/themes/dark.css +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/css/themes/modern.css +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/defaults.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/__init__.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needchoose.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needflow/__init__.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needflow/_options.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needif.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needimport_template.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/needreport_template.rst +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/directives/utils.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/environment.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/errors.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/exceptions.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/avatar.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/avatar.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/activity.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/airplay.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/alert-circle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/alert-octagon.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/alert-triangle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/align-center.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/align-justify.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/align-left.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/align-right.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/anchor.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/aperture.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/archive.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/arrow-down-circle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/arrow-down-left.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/arrow-down-right.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/arrow-down.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/arrow-left-circle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/arrow-left.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/arrow-right-circle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/arrow-right.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/arrow-up-circle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/arrow-up-left.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/arrow-up-right.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/arrow-up.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/at-sign.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/award.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/bar-chart-2.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/bar-chart.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/battery-charging.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/battery.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/bell-off.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/bell.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/bluetooth.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/bold.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/book-open.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/book.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/bookmark.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/box.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/briefcase.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/calendar.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/camera-off.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/camera.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/cast.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/check-circle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/check-square.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/check.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/chevron-down.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/chevron-left.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/chevron-right.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/chevron-up.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/chevrons-down.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/chevrons-left.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/chevrons-right.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/chevrons-up.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/chrome.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/circle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/clipboard.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/clock.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/cloud-drizzle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/cloud-lightning.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/cloud-off.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/cloud-rain.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/cloud-snow.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/cloud.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/code.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/codepen.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/codesandbox.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/coffee.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/columns.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/command.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/compass.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/copy.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/corner-down-left.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/corner-down-right.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/corner-left-down.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/corner-left-up.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/corner-right-down.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/corner-right-up.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/corner-up-left.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/corner-up-right.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/cpu.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/credit-card.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/crop.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/crosshair.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/database.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/delete.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/disc.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/dollar-sign.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/download-cloud.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/download.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/droplet.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/edit-2.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/edit-3.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/edit.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/external-link.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/eye-off.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/eye.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/facebook.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/fast-forward.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/feather.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/figma.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/file-minus.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/file-plus.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/file-text.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/file.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/film.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/filter.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/flag.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/folder-minus.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/folder-plus.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/folder.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/framer.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/frown.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/gift.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/git-branch.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/git-commit.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/git-merge.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/git-pull-request.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/github.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/gitlab.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/globe.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/grid.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/hard-drive.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/hash.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/headphones.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/heart.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/help-circle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/hexagon.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/home.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/image.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/inbox.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/info.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/instagram.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/italic.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/key.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/layers.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/layout.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/life-buoy.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/link-2.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/link.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/linkedin.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/list.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/loader.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/lock.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/log-in.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/log-out.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/mail.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/map-pin.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/map.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/maximize-2.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/maximize.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/meh.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/menu.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/message-circle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/message-square.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/mic-off.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/mic.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/minimize-2.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/minimize.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/minus-circle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/minus-square.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/minus.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/monitor.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/moon.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/more-horizontal.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/more-vertical.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/mouse-pointer.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/move.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/music.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/navigation-2.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/navigation.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/octagon.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/package.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/paperclip.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/pause-circle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/pause.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/pen-tool.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/percent.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/phone-call.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/phone-forwarded.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/phone-incoming.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/phone-missed.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/phone-off.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/phone-outgoing.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/phone.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/pie-chart.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/play-circle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/play.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/plus-circle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/plus-square.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/plus.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/pocket.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/power.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/printer.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/radio.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/refresh-ccw.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/refresh-cw.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/repeat.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/rewind.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/rotate-ccw.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/rotate-cw.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/rss.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/save.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/scissors.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/search.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/send.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/server.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/settings.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/share-2.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/share.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/shield-off.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/shield.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/shopping-bag.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/shopping-cart.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/shuffle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/sidebar.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/skip-back.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/skip-forward.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/slack.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/slash.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/sliders.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/smartphone.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/smile.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/speaker.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/square.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/star.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/stop-circle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/sun.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/sunrise.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/sunset.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/tablet.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/tag.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/target.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/terminal.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/thermometer.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/thumbs-down.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/thumbs-up.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/toggle-left.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/toggle-right.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/tool.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/trash-2.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/trash.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/trello.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/trending-down.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/trending-up.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/triangle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/truck.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/tv.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/twitch.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/twitter.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/type.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/umbrella.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/underline.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/unlock.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/upload-cloud.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/upload.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/user-check.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/user-minus.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/user-plus.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/user-x.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/user.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/users.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/video-off.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/video.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/voicemail.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/volume-1.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/volume-2.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/volume-x.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/volume.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/watch.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/wifi-off.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/wifi.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/wind.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/x-circle.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/x-octagon.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/x-square.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/x.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/youtube.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/zap-off.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/zap.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/zoom-in.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_png/zoom-out.png +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/activity.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/airplay.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/alert-circle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/alert-octagon.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/alert-triangle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/align-center.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/align-justify.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/align-left.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/align-right.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/anchor.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/aperture.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/archive.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/arrow-down-circle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/arrow-down-left.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/arrow-down-right.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/arrow-down.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/arrow-left-circle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/arrow-left.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/arrow-right-circle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/arrow-right.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/arrow-up-circle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/arrow-up-left.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/arrow-up-right.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/arrow-up.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/at-sign.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/award.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/bar-chart-2.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/bar-chart.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/battery-charging.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/battery.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/bell-off.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/bell.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/bluetooth.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/bold.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/book-open.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/book.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/bookmark.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/box.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/briefcase.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/calendar.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/camera-off.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/camera.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/cast.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/check-circle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/check-square.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/check.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/chevron-down.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/chevron-left.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/chevron-right.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/chevron-up.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/chevrons-down.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/chevrons-left.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/chevrons-right.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/chevrons-up.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/chrome.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/circle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/clipboard.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/clock.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/cloud-drizzle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/cloud-lightning.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/cloud-off.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/cloud-rain.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/cloud-snow.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/cloud.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/code.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/codepen.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/codesandbox.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/coffee.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/columns.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/command.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/compass.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/copy.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/corner-down-left.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/corner-down-right.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/corner-left-down.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/corner-left-up.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/corner-right-down.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/corner-right-up.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/corner-up-left.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/corner-up-right.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/cpu.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/credit-card.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/crop.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/crosshair.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/database.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/delete.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/disc.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/dollar-sign.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/download-cloud.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/download.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/droplet.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/edit-2.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/edit-3.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/edit.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/external-link.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/eye-off.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/eye.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/facebook.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/fast-forward.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/feather.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/figma.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/file-minus.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/file-plus.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/file-text.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/file.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/film.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/filter.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/flag.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/folder-minus.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/folder-plus.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/folder.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/framer.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/frown.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/gift.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/git-branch.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/git-commit.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/git-merge.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/git-pull-request.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/github.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/gitlab.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/globe.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/grid.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/hard-drive.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/hash.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/headphones.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/heart.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/help-circle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/hexagon.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/home.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/image.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/inbox.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/info.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/instagram.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/italic.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/key.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/layers.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/layout.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/life-buoy.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/link-2.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/link.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/linkedin.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/list.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/loader.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/lock.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/log-in.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/log-out.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/mail.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/map-pin.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/map.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/maximize-2.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/maximize.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/meh.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/menu.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/message-circle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/message-square.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/mic-off.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/mic.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/minimize-2.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/minimize.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/minus-circle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/minus-square.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/minus.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/monitor.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/moon.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/more-horizontal.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/more-vertical.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/mouse-pointer.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/move.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/music.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/navigation-2.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/navigation.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/octagon.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/package.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/paperclip.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/pause-circle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/pause.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/pen-tool.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/percent.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/phone-call.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/phone-forwarded.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/phone-incoming.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/phone-missed.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/phone-off.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/phone-outgoing.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/phone.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/pie-chart.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/play-circle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/play.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/plus-circle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/plus-square.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/plus.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/pocket.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/power.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/printer.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/radio.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/refresh-ccw.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/refresh-cw.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/repeat.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/rewind.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/rotate-ccw.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/rotate-cw.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/rss.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/save.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/scissors.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/search.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/send.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/server.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/settings.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/share-2.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/share.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/shield-off.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/shield.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/shopping-bag.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/shopping-cart.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/shuffle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/sidebar.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/skip-back.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/skip-forward.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/slack.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/slash.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/sliders.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/smartphone.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/smile.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/speaker.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/square.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/star.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/stop-circle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/sun.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/sunrise.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/sunset.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/tablet.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/tag.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/target.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/terminal.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/thermometer.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/thumbs-down.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/thumbs-up.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/toggle-left.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/toggle-right.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/tool.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/trash-2.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/trash.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/trello.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/trending-down.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/trending-up.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/triangle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/truck.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/tv.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/twitch.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/twitter.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/type.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/umbrella.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/underline.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/unlock.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/upload-cloud.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/upload.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/user-check.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/user-minus.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/user-plus.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/user-x.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/user.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/users.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/video-off.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/video.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/voicemail.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/volume-1.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/volume-2.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/volume-x.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/volume.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/watch.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/wifi-off.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/wifi.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/wind.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/x-circle.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/x-octagon.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/x-square.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/x.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/youtube.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/zap-off.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/zap.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/zoom-in.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/images/feather_svg/zoom-out.svg +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/libs/html/needstable.css +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/libs/html/needstable.js +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/libs/html/sphinx_needs_collapse.js +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/needsfile.json +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/nodes/__init__.py +0 -0
- /sphinx_needs-9.0.0/src/sphinx_needs/schema/__init__.py → /sphinx_needs-9.2.0/src/sphinx_needs/py.typed +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/roles/need_part.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/roles/variant.py +0 -0
- {sphinx_needs-9.0.0/src/sphinx_needs/services → sphinx_needs-9.2.0/src/sphinx_needs/schema}/__init__.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/schema/jsons/FieldBooleanSchemaType.schema.json +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/schema/jsons/FieldIntegerSchemaType.schema.json +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/schema/jsons/FieldMultiValueSchemaType.schema.json +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/schema/jsons/FieldNumberSchemaType.schema.json +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/schema/jsons/FieldStringSchemaType.schema.json +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/schema/jsons/LinkItemSchemaType.schema.json +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/schema/jsons/LinkSchemaType.schema.json +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/schema/jsons/SchemasRootType.schema.json +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/schema/process.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/schema/utils.py +0 -0
- {sphinx_needs-9.0.0/src/sphinx_needs/services/config → sphinx_needs-9.2.0/src/sphinx_needs/services}/__init__.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/services/base.py +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/templates/permalink.html +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/templates/time_measurements.html +0 -0
- {sphinx_needs-9.0.0 → sphinx_needs-9.2.0}/src/sphinx_needs/warnings.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: sphinx-needs
|
|
3
|
-
Version: 9.
|
|
3
|
+
Version: 9.2.0
|
|
4
4
|
Summary: Sphinx needs extension for managing needs/requirements and specifications
|
|
5
5
|
Author-email: team useblocks <info@useblocks.com>
|
|
6
6
|
Requires-Python: >=3.11,<4
|
|
@@ -17,6 +17,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.14
|
|
18
18
|
Classifier: Topic :: Documentation
|
|
19
19
|
Classifier: Topic :: Utilities
|
|
20
|
+
Classifier: Typing :: Typed
|
|
20
21
|
Classifier: Framework :: Sphinx :: Extension
|
|
21
22
|
License-File: AUTHORS
|
|
22
23
|
License-File: LICENSE
|
|
@@ -29,7 +30,8 @@ Requires-Dist: sphinx-data-viewer~=0.1.5
|
|
|
29
30
|
Requires-Dist: sphinxcontrib-jquery~=4.0
|
|
30
31
|
Requires-Dist: typing-extensions>=4.14.0
|
|
31
32
|
Requires-Dist: minijinja~=2.15
|
|
32
|
-
Requires-Dist: ub-project>=1.
|
|
33
|
+
Requires-Dist: ub-project>=1.2.0,<2
|
|
34
|
+
Requires-Dist: ub-needs-exchange>=1.1.0,<2
|
|
33
35
|
Requires-Dist: matplotlib>=3.3.0 ; extra == "docs"
|
|
34
36
|
Requires-Dist: sphinxcontrib-plantuml~=0.0 ; extra == "docs"
|
|
35
37
|
Requires-Dist: sphinx-copybutton~=0.5 ; extra == "docs"
|
|
@@ -37,6 +39,7 @@ Requires-Dist: sphinxcontrib-programoutput~=0.17 ; extra == "docs"
|
|
|
37
39
|
Requires-Dist: sphinx-design~=0.6 ; extra == "docs"
|
|
38
40
|
Requires-Dist: sphinx-ai-index>=1.0.0,<2 ; extra == "docs"
|
|
39
41
|
Requires-Dist: sphinx-syntax-example~=0.2.0 ; extra == "docs"
|
|
42
|
+
Requires-Dist: sphinxcontrib-mermaid>=1.0.0,<3 ; extra == "docs"
|
|
40
43
|
Requires-Dist: matplotlib>=3.3.0 ; extra == "plotting"
|
|
41
44
|
Requires-Dist: furo>=2025.12.19 ; extra == "theme-furo"
|
|
42
45
|
Requires-Dist: sphinx-immaterial>=0.11.11,<0.14.0 ; extra == "theme-im"
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/* This site's own rules for the https://pradyunsg.me/furo theme. The useblocks look every
|
|
2
|
+
furo site in this repository shares is docs-theme/static/ub-furo.css, which loads before
|
|
3
|
+
this file; what is here is used by these docs alone. */
|
|
4
|
+
|
|
5
|
+
/* the hero background on the landing page */
|
|
6
|
+
body {
|
|
7
|
+
--sn-architecture-bg: url(../architecture_bg-light.png);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
@media not print {
|
|
11
|
+
body[data-theme="dark"] {
|
|
12
|
+
--sn-architecture-bg: url(../architecture_bg-dark.png);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@media (prefers-color-scheme: dark) {
|
|
16
|
+
body:not([data-theme="light"]) {
|
|
17
|
+
--sn-architecture-bg: url(../architecture_bg-dark.png);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** styling for the flowchart diagram on the landing page **/
|
|
23
|
+
svg.sn-flow-chart path.text {
|
|
24
|
+
fill: var(--color-foreground-primary);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
svg.sn-flow-chart rect.box {
|
|
28
|
+
stroke: var(--color-foreground-border);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
svg.sn-flow-chart path.arrow {
|
|
32
|
+
fill: var(--ub-color-brand-main);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/** sphinx-design additional styling **/
|
|
36
|
+
svg.fill-primary {
|
|
37
|
+
fill: var(--sd-color-primary);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/* the `dropdown` these docs redefine in conf.py (`sd_custom_directives`) */
|
|
41
|
+
.sn-dropdown-default .sd-summary-icon svg {
|
|
42
|
+
color: var(--color-admonition-title--note);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.sn-dropdown-default {
|
|
46
|
+
border-left: .2rem solid var(--color-admonition-title--note) !important;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.sn-dropdown-default .sd-summary-title {
|
|
50
|
+
border-width: 0 !important;
|
|
51
|
+
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* useblocks branding for the `ubc build html` site.
|
|
3
3
|
*
|
|
4
|
-
* The ubCode counterpart of `furo.css
|
|
5
|
-
*
|
|
4
|
+
* The ubCode counterpart of `docs-theme/static/ub-furo.css` at the repository
|
|
5
|
+
* root (the look every furo site here shares, which brands the Sphinx build) and
|
|
6
|
+
* of this site's own `_css/furo.css`: same identity, different engine. Wired up by `extra_css` in `docs/ubproject.toml`,
|
|
6
7
|
* and written entirely against the documented theming surface — the `--ubc-*`
|
|
7
8
|
* custom properties and the `ub-*` class names
|
|
8
9
|
* (docs/source/configuration/build_html.rst). Nothing here reaches into a rule
|
|
@@ -17,8 +18,9 @@
|
|
|
17
18
|
* NOTE for the Sphinx side: this file sits under `html_static_path`, so
|
|
18
19
|
* `sphinx-build` copies it into its own `_static/` — but it is deliberately
|
|
19
20
|
* ABSENT from `html_css_files` in `docs/conf.py`. Sphinx is branded by
|
|
20
|
-
* `furo.css
|
|
21
|
-
* page. Leave it
|
|
21
|
+
* `ub-furo.css` (added by the `ub_docs_theme` extension) and `_css/furo.css`;
|
|
22
|
+
* linking this one there too would apply two theme layers to one page. Leave it
|
|
23
|
+
* unlinked.
|
|
22
24
|
*/
|
|
23
25
|
|
|
24
26
|
:root {
|
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
.. _api:
|
|
2
|
+
|
|
3
|
+
Python API
|
|
4
|
+
==========
|
|
5
|
+
|
|
6
|
+
**Sphinx-Needs** provides an open API for other Sphinx-extensions to provide specific need-types, create needs or
|
|
7
|
+
make usage of the filter possibilities.
|
|
8
|
+
|
|
9
|
+
The API allows the injection of extra configuration, but
|
|
10
|
+
does not support manipulation of it (e.g remove need types),
|
|
11
|
+
to keep the final configuration transparent for the Sphinx project authors.
|
|
12
|
+
|
|
13
|
+
.. _api_public:
|
|
14
|
+
|
|
15
|
+
What is public
|
|
16
|
+
--------------
|
|
17
|
+
|
|
18
|
+
A project or an extension may rely on the documented surface of Sphinx-Needs: its
|
|
19
|
+
configuration, its directives and their options, the filter names (``c.*`` included), the
|
|
20
|
+
``needs.json`` format, and the Python API this page documents (``create_need``,
|
|
21
|
+
``resolve_need_option`` and reading the configuration through ``NeedsSphinxConfig`` among
|
|
22
|
+
it). A name in it -- a configuration key, a directive or an option, a filter name, a
|
|
23
|
+
``needs.json`` key, a documented function, class, argument or attribute -- is renamed or
|
|
24
|
+
removed only after a deprecation: a ``needs.deprecated`` Sphinx warning (which
|
|
25
|
+
``suppress_warnings`` silences) or a Python ``DeprecationWarning``, naming the replacement;
|
|
26
|
+
the old spelling is removed only in a major release. What a name does is not frozen: a minor
|
|
27
|
+
release may fix what it outputs, or report with a new warning what it accepted in silence,
|
|
28
|
+
and the changelog says what changed and what to do.
|
|
29
|
+
|
|
30
|
+
What this page labels **provisional** follows its label. Through 9.x that is the hop types
|
|
31
|
+
and ``NeedItemSource``'s general constructor with its keywords: a minor release may add an
|
|
32
|
+
optional field, a hop kind or a keyword, while a rename, a removal, or a change to the
|
|
33
|
+
meaning or type of an existing one waits for 10.0, because published sibling extensions
|
|
34
|
+
construct them. They stay outside the stable surface until ``needs.json`` carries them.
|
|
35
|
+
|
|
36
|
+
Anything else is internal, and may change in a minor release without a deprecation: a name
|
|
37
|
+
this page does not document, a module or a name starting with ``_``, and whatever is reached
|
|
38
|
+
through one. The extensions developed in the Sphinx-Needs repository are changed with it in
|
|
39
|
+
the same pull request, and released with a raised minimum version of Sphinx-Needs; an older
|
|
40
|
+
release of one of them may need upgrading together with Sphinx-Needs. New internal modules
|
|
41
|
+
start with ``_``, and public names live in, or are re-exported from, a public module with
|
|
42
|
+
``__all__``; existing modules are not renamed wholesale.
|
|
43
|
+
|
|
44
|
+
.. _`api_configuration`:
|
|
45
|
+
|
|
46
|
+
Configuration
|
|
47
|
+
-------------
|
|
48
|
+
|
|
49
|
+
.. automodule:: sphinx_needs.api.configuration
|
|
50
|
+
:members:
|
|
51
|
+
|
|
52
|
+
.. _api_reading_configuration:
|
|
53
|
+
|
|
54
|
+
Reading the configuration
|
|
55
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
56
|
+
|
|
57
|
+
.. py:currentmodule:: sphinx_needs.config
|
|
58
|
+
|
|
59
|
+
.. py:class:: NeedsSphinxConfig(config)
|
|
60
|
+
|
|
61
|
+
The project's Sphinx-Needs configuration, for an extension to read:
|
|
62
|
+
``NeedsSphinxConfig(app.config).<name>`` is the configuration value ``needs_<name>`` as
|
|
63
|
+
resolved, with :ref:`needs_from_toml` applied, and for ``types``, ``layouts``,
|
|
64
|
+
``functions`` and ``warnings`` with what extensions and the configured services add
|
|
65
|
+
included. Read it from a ``builder-inited`` handler or later; in ``config-inited``, from
|
|
66
|
+
a handler at a priority above 600, once sphinx-needs has merged its defaults and compiled
|
|
67
|
+
the card layouts (``types`` alone is complete from a priority above 12). What an
|
|
68
|
+
extension adds is included once the extension has added it.
|
|
69
|
+
|
|
70
|
+
.. code-block:: python
|
|
71
|
+
|
|
72
|
+
from sphinx_needs.config import NeedsSphinxConfig
|
|
73
|
+
|
|
74
|
+
need_types = {t["directive"]: t for t in NeedsSphinxConfig(app.config).types}
|
|
75
|
+
|
|
76
|
+
Every attribute named after a Sphinx-Needs configuration value (:ref:`config`),
|
|
77
|
+
without the ``needs_`` prefix, is stable to read; ``functions`` gives the dynamic
|
|
78
|
+
functions by name, a mapping, where ``needs_functions`` is a list. Reading only: setting
|
|
79
|
+
a value through it is not supported. Its other members are internal, but one:
|
|
80
|
+
|
|
81
|
+
.. py:attribute:: variant_data_proxy
|
|
82
|
+
|
|
83
|
+
The ``var`` proxy that filters read over the variant data (``needs_variant_data``,
|
|
84
|
+
merged with its file), or ``None`` when there is none. Read-only.
|
|
85
|
+
|
|
86
|
+
.. py:currentmodule:: None
|
|
87
|
+
|
|
88
|
+
.. autoclass:: sphinx_needs.functions.functions.DynamicFunction
|
|
89
|
+
:members: __name__,__call__
|
|
90
|
+
|
|
91
|
+
.. autoclass:: sphinx_needs.functions.functions.Reads
|
|
92
|
+
|
|
93
|
+
Need
|
|
94
|
+
----
|
|
95
|
+
|
|
96
|
+
.. autofunction:: sphinx_needs.api.need.create_need
|
|
97
|
+
|
|
98
|
+
.. automodule:: sphinx_needs.api.need
|
|
99
|
+
:members:
|
|
100
|
+
:exclude-members: create_need
|
|
101
|
+
|
|
102
|
+
.. _api_migrating_add_need:
|
|
103
|
+
|
|
104
|
+
Migrating from ``add_need``
|
|
105
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
106
|
+
|
|
107
|
+
.. deprecated:: 9.2.0
|
|
108
|
+
|
|
109
|
+
:func:`~sphinx_needs.api.need.add_need` is deprecated, and is removed in 10.0. Each
|
|
110
|
+
call is one Python ``DeprecationWarning`` at the calling line (not a Sphinx warning, so
|
|
111
|
+
a ``-W`` build of a project using an extension that still calls it is not failed by
|
|
112
|
+
it).
|
|
113
|
+
|
|
114
|
+
:func:`~sphinx_needs.api.need.create_need` takes the need's location as one
|
|
115
|
+
:class:`~sphinx_needs.need_item.NeedItemSource`, and its field values and links as two
|
|
116
|
+
mappings, kept apart from its own arguments, so no name a project gives a field meets one
|
|
117
|
+
of them. In a directive the source is ``NeedItemSource.from_directive(self)``:
|
|
118
|
+
|
|
119
|
+
.. code-block:: python
|
|
120
|
+
|
|
121
|
+
# before
|
|
122
|
+
from sphinx.util.docutils import SphinxDirective
|
|
123
|
+
|
|
124
|
+
from sphinx_needs.api import add_need
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
class ReqDirective(SphinxDirective):
|
|
128
|
+
def run(self):
|
|
129
|
+
return add_need(
|
|
130
|
+
self.env.app, self.state, self.env.docname, self.lineno,
|
|
131
|
+
"req", self.arguments[0],
|
|
132
|
+
id=self.options.get("id"), status="open", priority="high", links="REQ_0",
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
.. code-block:: python
|
|
136
|
+
|
|
137
|
+
# after
|
|
138
|
+
from sphinx.util.docutils import SphinxDirective
|
|
139
|
+
|
|
140
|
+
from sphinx_needs.api import NeedItemSource, create_need
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
class ReqDirective(SphinxDirective):
|
|
144
|
+
def run(self):
|
|
145
|
+
need, nodes = create_need(
|
|
146
|
+
self.env.app, self.state, NeedItemSource.from_directive(self),
|
|
147
|
+
"req", self.arguments[0],
|
|
148
|
+
id=self.options.get("id"),
|
|
149
|
+
fields={"status": "open", "priority": "high"},
|
|
150
|
+
links={"links": "REQ_0"},
|
|
151
|
+
)
|
|
152
|
+
return nodes
|
|
153
|
+
|
|
154
|
+
``from_directive`` works for any docutils ``Directive``, not only a ``SphinxDirective``.
|
|
155
|
+
With it, ``need["lineno"]`` is the line the directive is written on, which differs from
|
|
156
|
+
``self.lineno`` where ``rst_prolog``, an include or generated input shifts the parser's
|
|
157
|
+
count; to keep the old number exactly, use
|
|
158
|
+
``NeedItemSource.on_page(self.env.docname, lineno=self.lineno)``, which is the source
|
|
159
|
+
``add_need`` built. ``on_page`` gives the need its page and the line the caller passes,
|
|
160
|
+
nothing more, so it is the source wherever the caller chooses the line: the directive's own
|
|
161
|
+
parser line, as ``add_need`` took it, or the lines a directive's data names. It works in a docutils
|
|
162
|
+
``Directive`` and in a nested parse alike, and is also the ``need_source`` to give
|
|
163
|
+
``generate_need``; ``create_need`` records the page's file on its hop, ``generate_need``,
|
|
164
|
+
which has no application, does not.
|
|
165
|
+
``from_directive`` and ``on_page`` are stable, as the class's name is; the hops they build,
|
|
166
|
+
and ``NeedItemSource``'s general constructor with its keywords (``hops``, ``lineno``,
|
|
167
|
+
``lineno_content``, ``parser_lineno``, ``is_import``), are provisional until needs.json
|
|
168
|
+
carries them: through 9.x a minor release only adds to them, and a rename or a removal
|
|
169
|
+
waits for 10.0 (see :ref:`api_public`, and the provisional note under "Data", below). The
|
|
170
|
+
constructor is for sphinx-needs' own producers and advanced use. ``create_need`` takes a
|
|
171
|
+
``NeedItemSource`` and nothing else: an object with the ``NeedItemSourceProtocol``
|
|
172
|
+
interface alone is refused with a ``TypeError``.
|
|
173
|
+
|
|
174
|
+
A need placed on a page is created with a parser state, through ``create_need`` as through
|
|
175
|
+
``add_need``: an event handler or a role, which has none, cannot create one, and without a
|
|
176
|
+
state only an external need can be created (``add_external_need``). Where ``add_need``
|
|
177
|
+
refused that with an ``AssertionError``, ``create_need`` raises ``ValueError``.
|
|
178
|
+
|
|
179
|
+
.. deprecated:: 9.2.0
|
|
180
|
+
|
|
181
|
+
A ``need_source`` that is not a ``NeedItemSource`` -- an object with the
|
|
182
|
+
``NeedItemSourceProtocol`` interface alone -- given to
|
|
183
|
+
:func:`~sphinx_needs.api.need.generate_need`,
|
|
184
|
+
:func:`~sphinx_needs.api.need.add_external_need` or
|
|
185
|
+
:func:`~sphinx_needs.api.need.ingest_need_record` is one Python ``DeprecationWarning``
|
|
186
|
+
at the calling line, and the need is created as before; it is refused from 10.0, as
|
|
187
|
+
``create_need`` refuses it now. ``add_need`` gives no second warning for it.
|
|
188
|
+
|
|
189
|
+
``add_need``'s other arguments:
|
|
190
|
+
|
|
191
|
+
.. list-table::
|
|
192
|
+
:header-rows: 1
|
|
193
|
+
:widths: 40 60
|
|
194
|
+
|
|
195
|
+
* - ``add_need``
|
|
196
|
+
- ``create_need``
|
|
197
|
+
* - ``docname``, ``lineno``
|
|
198
|
+
- ``source=NeedItemSource.from_directive(self)``; for a line the caller gives
|
|
199
|
+
(``add_need``'s ``self.lineno``), ``NeedItemSource.on_page(docname, lineno=lineno)``
|
|
200
|
+
* - ``lineno_content``
|
|
201
|
+
- ``from_directive`` sets it (the provisional constructor takes ``lineno_content=``)
|
|
202
|
+
* - ``need_source``
|
|
203
|
+
- ``source``, a ``NeedItemSource`` (an object with the ``NeedItemSourceProtocol``
|
|
204
|
+
interface alone, which ``add_need`` took, is refused)
|
|
205
|
+
* - ``status``, ``tags``, ``constraints``, ``hide``, ``collapse``, ``style``,
|
|
206
|
+
``layout``, ``template``, ``pre_template``, ``post_template``, and every field
|
|
207
|
+
- ``fields={...}``
|
|
208
|
+
* - every link type
|
|
209
|
+
- ``links={...}``
|
|
210
|
+
* - ``id``, ``content``, ``doctype``, ``jinja_content``, ``full_title``,
|
|
211
|
+
``allow_type_coercion``
|
|
212
|
+
- the same keyword
|
|
213
|
+
* - ``is_external``, ``external_url``, ``external_css``
|
|
214
|
+
- :func:`~sphinx_needs.api.need.add_external_need`, which is not deprecated (an
|
|
215
|
+
``external`` hop as ``create_need``'s source, with ``state=None``, is the
|
|
216
|
+
provisional hop type, and takes no ``external_css``)
|
|
217
|
+
* - ``is_import``
|
|
218
|
+
- ``NeedItemSource(..., is_import=True)`` (the provisional constructor), or
|
|
219
|
+
:func:`~sphinx_needs.api.need.ingest_need_record` for a needs.json-style record
|
|
220
|
+
* - ``parts``, ``arch``, ``sections``, ``signature``
|
|
221
|
+
- none: for a need on the page they are computed from its content and the page (a
|
|
222
|
+
record's ``parts`` and ``arch`` through
|
|
223
|
+
:func:`~sphinx_needs.api.need.ingest_need_record`); an external need ``add_need``
|
|
224
|
+
made kept them as given, which neither ``create_need`` nor ``add_external_need``
|
|
225
|
+
takes
|
|
226
|
+
* - the deprecated ``links_string``, ``hide_tags``, ``hide_status``, ``delete``,
|
|
227
|
+
``constraints_passed``
|
|
228
|
+
- none (``add_need`` drops them, with a warning)
|
|
229
|
+
* - the return value, ``list[nodes.Node]``
|
|
230
|
+
- ``(need, nodes)``: the need as recorded, and the nodes
|
|
231
|
+
|
|
232
|
+
The five source classes of 9.1.0, ``NeedItemSourceUnknown``, ``NeedItemSourceDirective``,
|
|
233
|
+
``NeedItemSourceService``, ``NeedItemSourceExternal`` and ``NeedItemSourceImport``, are
|
|
234
|
+
deprecated names of :mod:`sphinx_needs.need_item` until 10.0: each is a function taking its
|
|
235
|
+
class's keywords and returning the ``NeedItemSource`` with the legacy keys that class gave,
|
|
236
|
+
and reading one is a ``DeprecationWarning``. ``NeedItemSourceUnknown(docname=docname,
|
|
237
|
+
lineno=lineno)`` is ``NeedItemSource.on_page(docname, lineno=lineno)``.
|
|
238
|
+
|
|
239
|
+
.. _api_content_markup:
|
|
240
|
+
|
|
241
|
+
Content written in another markup
|
|
242
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
243
|
+
|
|
244
|
+
An extension that creates needs whose text was written somewhere else -- a comment in a
|
|
245
|
+
source file, an imported file -- in a markup that is not the page's passes
|
|
246
|
+
``MarkupContent(text, markup=..., source=...)`` as the ``content`` of
|
|
247
|
+
:func:`~sphinx_needs.api.need.create_need` (:func:`~sphinx_needs.api.need.add_need` takes
|
|
248
|
+
the same ``content``). ``markup`` is the source suffix of that markup
|
|
249
|
+
(``".rst"``, ``".md"``, or any suffix ``source_suffix`` maps to a reStructuredText or MyST
|
|
250
|
+
parser): the content is parsed by that parser, whatever the page's parser, and the need
|
|
251
|
+
records the suffix as its ``doctype``. With ``source=(path, first_line)``, the warnings
|
|
252
|
+
raised while parsing the content, and those for references in it that do not resolve,
|
|
253
|
+
name ``path`` and the line the content came from rather than the page -- through
|
|
254
|
+
``sphinx.util.docutils.switch_source_input``, the same mechanism ``sphinx.ext.autodoc`` uses
|
|
255
|
+
to report a docstring's lines at the Python file. ``create_need`` takes no other argument
|
|
256
|
+
for this, and takes the fields and links as mappings, so no field or link name is reserved.
|
|
257
|
+
:func:`~sphinx_needs.api.need.ingest_need_record` creates a need from a needs.json-style
|
|
258
|
+
record, and is the path :ref:`needimport` itself takes for each need it imports; with
|
|
259
|
+
:ref:`needs_import_parse_by_doctype` or its ``:parse_by_doctype:`` option set, needimport
|
|
260
|
+
passes a record's ``doctype`` as the content's markup when the project parses it and the
|
|
261
|
+
need is not rendered through a template.
|
|
262
|
+
|
|
263
|
+
.. autoclass:: sphinx_needs.api.MarkupContent
|
|
264
|
+
|
|
265
|
+
The content is parsed into the page it is rendered on, so a label defined in it belongs to
|
|
266
|
+
that page and other pages reference it there. The warnings myst-parser logs itself, such as
|
|
267
|
+
an unknown directive or role in Markdown content, name the page with the content's line;
|
|
268
|
+
with myst-parser 4 their file is the content's path with ``.rst`` appended. In a
|
|
269
|
+
reStructuredText page, MyST content's ``[text](#anchor)`` links are not resolved and a
|
|
270
|
+
missing anchor is not reported; use the ``{ref}`` and ``{need}`` roles, which work in both.
|
|
271
|
+
|
|
272
|
+
What such content should not contain
|
|
273
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
274
|
+
|
|
275
|
+
This version parses the content as the page would parse it, and refuses none of the
|
|
276
|
+
following; a later version will, as ubCode's reader already does:
|
|
277
|
+
|
|
278
|
+
- directives that read files (``include``, ``literalinclude``, ``csv-table`` with
|
|
279
|
+
``:file:``, ``raw`` with ``:file:``), and images and other references to files by a
|
|
280
|
+
relative path: Sphinx's ``include``, ``literalinclude`` and images, and everything in
|
|
281
|
+
MyST content, resolve against the page, while ``csv-table :file:`` and ``raw :file:``
|
|
282
|
+
in reStructuredText content resolve against the content's file;
|
|
283
|
+
- ``raw``, and raw HTML in Markdown;
|
|
284
|
+
- need or ``needimport`` directives: the needs they create are recorded against the page;
|
|
285
|
+
- anything relying on the page's substitutions or ``rst_prolog``: it works, but the same
|
|
286
|
+
text means something else on another page.
|
|
287
|
+
|
|
288
|
+
Events
|
|
289
|
+
------
|
|
290
|
+
|
|
291
|
+
**Sphinx-Needs** registers two Sphinx events, which an extension connects to with
|
|
292
|
+
``app.connect(event_name, callback)``. Both are emitted once per build, in the main
|
|
293
|
+
process (also in a parallel build), when the needs are first requested after all
|
|
294
|
+
documents are read. Each callback is called as ``callback(app, needs)``, where ``needs``
|
|
295
|
+
is the mutable mapping of need ids to needs, :py:obj:`~sphinx_needs.data.NeedsMutable`.
|
|
296
|
+
|
|
297
|
+
``needs-before-post-processing``
|
|
298
|
+
Emitted before the ``needextend`` directives are applied and before dynamic
|
|
299
|
+
functions, links and constraints are resolved. This is the hook for an extension that
|
|
300
|
+
writes into the needs: a ``needextend`` in a document is applied afterwards, and can
|
|
301
|
+
override what the extension wrote.
|
|
302
|
+
|
|
303
|
+
``needs-before-sealing``
|
|
304
|
+
Emitted after those steps, and before the needs become read-only. A callback sees
|
|
305
|
+
the needs as the ``needextend`` directives left them, with dynamic functions, links
|
|
306
|
+
and constraints resolved.
|
|
307
|
+
|
|
308
|
+
.. code-block:: python
|
|
309
|
+
|
|
310
|
+
def default_status(app, needs):
|
|
311
|
+
for need in needs.values():
|
|
312
|
+
if need["type"] == "req" and not need["status"]:
|
|
313
|
+
need["status"] = "draft"
|
|
314
|
+
|
|
315
|
+
def setup(app):
|
|
316
|
+
app.connect("needs-before-post-processing", default_status)
|
|
317
|
+
|
|
318
|
+
A field with a :ref:`derive <needs_derive>` rule cannot be set from a callback, a
|
|
319
|
+
:ref:`filter function <filter_func>` or a :ref:`dynamic function <dynamic_functions>`: it holds
|
|
320
|
+
what its rule computes, and ``need[name] = value`` raises ``KeyError``.
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
Exceptions
|
|
324
|
+
----------
|
|
325
|
+
|
|
326
|
+
.. automodule:: sphinx_needs.exceptions
|
|
327
|
+
:members:
|
|
328
|
+
|
|
329
|
+
Data
|
|
330
|
+
----
|
|
331
|
+
|
|
332
|
+
.. automodule:: sphinx_needs.need_item
|
|
333
|
+
:members: NeedItem, NeedLink, NeedPartItem, NeedItemSource, NeedItemSourceProtocol, NeedsContent, NeedPartData, NeedModification, NeedConstraintResults
|
|
334
|
+
|
|
335
|
+
.. note::
|
|
336
|
+
|
|
337
|
+
**Stable**: ``NeedItemSource``'s name, ``NeedItemSource.from_directive`` and ``NeedItemSource.on_page``, and
|
|
338
|
+
reading a source through ``NeedItemSourceProtocol`` (``dict_repr``). **Provisional**: ``NeedItemSource``'s general
|
|
339
|
+
constructor and its keywords (``hops``, ``lineno``, ``lineno_content``, ``parser_lineno``, ``is_import``), the
|
|
340
|
+
stored legacy facts a later release turns into projections, for sphinx-needs' own producers and advanced use; and
|
|
341
|
+
the hops, below. Provisional means additions only through 9.x: a minor release may add an optional field, a hop
|
|
342
|
+
kind or a keyword, and a rename, a removal, or a change to an existing one's meaning or type waits for 10.0,
|
|
343
|
+
because published sibling extensions construct them (:ref:`api_public`).
|
|
344
|
+
|
|
345
|
+
**Provisional**: a :class:`~sphinx_needs.need_item.NeedItemSource` has ``hops``, where the need's text came from,
|
|
346
|
+
innermost first; the hop types, ``NeedSourceHop``, ``NeedSourcePhysical`` and ``NeedSourceSemantic``, are
|
|
347
|
+
importable from ``sphinx_needs.api``. The first hop is the innermost place sphinx-needs knows the need came through: for a need
|
|
348
|
+
directive or ``list2need``, the file the need is written in (an included file's own, in an include; the module,
|
|
349
|
+
for an autodoc docstring); for an imported need, the ``needs.json`` it was read from (where the exporting project
|
|
350
|
+
wrote the need is not a hop yet); for a service, the service that made it, then the file of the ``needservice``
|
|
351
|
+
directive; for an external need, its page on the other site, its only hop, with the need's sections there as its
|
|
352
|
+
semantic location, outermost first (the legacy ``sections`` keeps them innermost first). In a nested reStructuredText include,
|
|
353
|
+
the included file's hop is followed by one ``file`` hop per file it was included through, innermost first, each
|
|
354
|
+
with its path and suffix and no line, as docutils' ``include_log`` names them. Two known gaps: myst-parser's
|
|
355
|
+
``{include}`` is never logged, so a chain through MyST includes records its reStructuredText links alone (a
|
|
356
|
+
reStructuredText include in ``eval-rst`` is logged, a MyST include around it is not), and under docutils 0.22 and
|
|
357
|
+
later a file included with ``:parser:`` is not logged (it is parsed into a document of its own), so it is no link
|
|
358
|
+
of a chain through it, and a need written in that file itself records no chain at all (docutils 0.21 logs it). A
|
|
359
|
+
need created
|
|
360
|
+
through ``add_need`` or ``NeedItemSource.on_page`` has its page alone, whose file ``create_need`` records with no line
|
|
361
|
+
(the line the caller gives is not checked in the file); ``generate_need`` has no application, so it records no
|
|
362
|
+
page path; and no hops without a document
|
|
363
|
+
(``NeedItemSource.from_directive`` records the directive's file and lines, as a need directive does). The last hop with a ``document`` is
|
|
364
|
+
the page the need is placed on (an external need has none), and carries its sections and the domain objects it
|
|
365
|
+
is written in, outermost first. A hop has a line
|
|
366
|
+
range only where the file, read from disk, holds the need's text there: in reStructuredText every line of the
|
|
367
|
+
directive equals the file's line (whole lines, after a block quote's or a table cell's border, and the bullets of
|
|
368
|
+
the list item the directive opens); in MyST the line opens the directive's fence with its name and title.
|
|
369
|
+
Elsewhere the hop has no line. A recorded line can still be wrong only where the file holds an identical copy of
|
|
370
|
+
the need's text at the line the parser claims: a MyST need nested at once inside an identical twin (same name, same
|
|
371
|
+
title). In reStructuredText, a need in an included slice (``:start-after:``, ``:start-line:``) records the line it
|
|
372
|
+
is written on in the file, as its ``lineno`` and on its file hop, although docutils' own messages about the same
|
|
373
|
+
text (an unknown role in its content, say) name the line counted from the slice's start. It keeps the slice's line
|
|
374
|
+
where the slice cannot be matched with the file (an ``include-read`` handler that rewrote it, a file decoded
|
|
375
|
+
otherwise than with the project's ``source_encoding``, a ``:parser:`` include), and for a need in a table cell, in
|
|
376
|
+
``list2need`` item content, in content parsed in a declared markup, or generated by a ``test-report``. Every path
|
|
377
|
+
is POSIX and relative to its hop's root: the source directory (``"srcdir"``, with ``..`` for a file outside it),
|
|
378
|
+
or, where ``root`` is ``None``, the producer's own root, which this build does not know, the path as the producer
|
|
379
|
+
gives it (a test report's test file, relative to the test run's root). A hop's ``semantic`` is ``None`` where it is
|
|
380
|
+
not determined, or where nothing finer than the file is known. Until the shape reaches ``needs.json``, a 9.x minor
|
|
381
|
+
release only adds to it, as above; ``NeedItemSourceProtocol`` does not include it, so read it with
|
|
382
|
+
``getattr(need.source, "hops", ())``. A filter reads it through the ``c.source`` facets (:ref:`filter_source`),
|
|
383
|
+
its stable view: each facet names a position in the hops (``c.source.path`` the innermost, ``c.source.paths`` every
|
|
384
|
+
one), and keeps its meaning when the hops change shape. Nothing a table or ``needs.json`` shows depends on it.
|
|
385
|
+
|
|
386
|
+
A hop's ``language`` is what its text is written in, by the kind of hop: for a ``page`` hop, the page's suffix
|
|
387
|
+
its parser keys on (``.rst``, ``.md``); for a ``file`` hop, the file's own suffix (``.rst``, ``.json``; an
|
|
388
|
+
included ``inc.rst.txt`` records ``.txt``, whichever parser reads it); for a ``code`` hop, the language's name
|
|
389
|
+
(``python``, ``cpp``, ...), as sphinx-codelinks records it, as the ``code`` hop of a docstring autodoc reads
|
|
390
|
+
records it (``python``), and as sphinx-test-reports names a test case's file by its suffix (none for a suffix it
|
|
391
|
+
does not know).
|
|
392
|
+
|
|
393
|
+
A semantic entry's ``kind`` is in the vocabulary of its hop's kind and producer: a ``page`` hop's entries use the
|
|
394
|
+
document's (``section``, ``<domain>:<objtype>``), an ``external`` hop's are the ``section`` entries of the other
|
|
395
|
+
site's page, a ``generated`` hop's name its generator (``service``), and a
|
|
396
|
+
``code`` hop's use its producer's entity kinds, read with the hop's ``language``: sphinx-codelinks' bare ones
|
|
397
|
+
(``function``, ``method``, ``class``, ``impl``, ...). In a ``code`` hop the kinds may carry
|
|
398
|
+
identity the names alone do not (Python's ``<locals>`` boundary is implied by a function or method followed by
|
|
399
|
+
another entry), so code hops compare by their producer's identity rule, not entry by entry. The innermost entry
|
|
400
|
+
of a ``code`` hop, the entity, carries its qualified name in its file as the producer renders it, a
|
|
401
|
+
``("qualified_name", ...)`` extra: sphinx-codelinks' analysis renders it by the language (``ns::Widget::draw``,
|
|
402
|
+
``<Widget as Shape>::area``, ``Shape.area.<locals>.inner``), and autodoc's docstring hop renders a Python entity
|
|
403
|
+
as sphinx-codelinks does (``make.<locals>.Made.go``), except a name CPython NFKC-normalises (``file`` reads
|
|
404
|
+
``file`` in autodoc's hop and as written in sphinx-codelinks'). It is the producer's rendering of the entries'
|
|
405
|
+
names, so it adds no identity, and identity comparisons (sphinx-codelinks' ``name_chain``) leave it out. The
|
|
406
|
+
entity's own line range is not recorded: it is not identity.
|
|
407
|
+
|
|
408
|
+
Autodoc's docstring hop uses the same Python kinds as sphinx-codelinks, read from the syntax of the file the
|
|
409
|
+
docstring is defined in: ``class``, ``method`` for a ``def`` directly in a class, ``function`` for any other
|
|
410
|
+
``def``, with ``<locals>`` implied, so a method of a class made in a function is ``function make > class Made >
|
|
411
|
+
method go``. A ``property``, a ``staticmethod`` or a ``classmethod`` is a ``method``, an exception a ``class``:
|
|
412
|
+
the page hop keeps autodoc's object type (``py:property``). An attribute documented with ``#:`` is a leaf
|
|
413
|
+
``attribute`` (``class Shape > attribute sides``), where sphinx-codelinks attaches the same comment to the
|
|
414
|
+
enclosing class, or to the file. Autodoc names a docstring by its object's module and qualified name; the name is
|
|
415
|
+
tried at each module it starts with, longest first, and the definition it resolves to is trusted only where its
|
|
416
|
+
docstring holds every line of the need. The file is then that definition's, so a member inherited from another
|
|
417
|
+
module records that module's file. A module docstring
|
|
418
|
+
records its file alone. Where no definition holds the text, the hop records the file autodoc gives and nothing
|
|
419
|
+
finer, never another entity: an alias (autodoc names it by the object it aliases), an override that inherits its
|
|
420
|
+
docstring, an object made at run time, a function with no Python source. A function whose ``__module__`` is
|
|
421
|
+
rewritten to another module records that module's file, which does not hold the text either: a known gap.
|
|
422
|
+
|
|
423
|
+
.. autoclass:: sphinx_needs.api.NeedSourceHop
|
|
424
|
+
:members:
|
|
425
|
+
|
|
426
|
+
.. autoclass:: sphinx_needs.api.NeedSourcePhysical
|
|
427
|
+
:members:
|
|
428
|
+
|
|
429
|
+
.. autoclass:: sphinx_needs.api.NeedSourceSemantic
|
|
430
|
+
:members:
|
|
431
|
+
|
|
432
|
+
.. automodule:: sphinx_needs.data
|
|
433
|
+
:members: NeedsInfoType, NeedsInfoComputedType, NeedsSourceInfoType, NeedsMutable, NeedsPartType
|
|
434
|
+
|
|
435
|
+
Views
|
|
436
|
+
-----
|
|
437
|
+
|
|
438
|
+
These views are returned by certain functions, and injected into filters,
|
|
439
|
+
but should not be instantiated directly.
|
|
440
|
+
|
|
441
|
+
.. automodule:: sphinx_needs.views
|
|
442
|
+
:members:
|
|
443
|
+
:undoc-members:
|
|
444
|
+
:special-members: __iter__, __getitem__, __len__
|
|
445
|
+
|
|
446
|
+
Schema
|
|
447
|
+
------
|
|
448
|
+
|
|
449
|
+
.. automodule:: sphinx_needs.needs_schema
|
|
450
|
+
:members: FieldsSchema, TypeFieldsSchema, FieldShape, LinkShape, FieldSchema,
|
|
451
|
+
FieldFunctionArray, LinksFunctionArray, FieldLiteralValue, LinkSchema,
|
|
452
|
+
LinkDisplayConfig, LinkTargetTypes, LinksLiteralValue, BackLinksSchema,
|
|
453
|
+
AllowedTypes, narrowing_problems
|
|
454
|
+
|
|
455
|
+
.. automodule:: sphinx_needs.derive
|
|
456
|
+
:members: DeriveRule, DeriveJoin, DeriveInvalid, DeriveCall
|
|
457
|
+
|
|
458
|
+
.. automodule:: sphinx_needs.schema.config
|
|
459
|
+
:members: FieldStringSchemaType, FieldBooleanSchemaType,
|
|
460
|
+
FieldIntegerSchemaType, FieldNumberSchemaType,
|
|
461
|
+
FieldMultiValueSchemaType,
|
|
462
|
+
LinkSchemaType, LinkItemSchemaType
|
|
@@ -47,6 +47,16 @@ As well as the ``needs`` data, each version in the **needs.json** file carries a
|
|
|
47
47
|
This is a JSON schema for the data structure of a single need,
|
|
48
48
|
and also includes a ``field_type`` for each field, to denote the source of the field,
|
|
49
49
|
that can be one of: ``core``, ``links``, ``backlinks``, ``extra``.
|
|
50
|
+
A field, core or extra, is written as the project declares it for all need types together (a need type's own declaration is not written),
|
|
51
|
+
a :ref:`needs_fields` entry narrowing a core field included:
|
|
52
|
+
its type (with ``null`` where it is nullable), its item type and its default, but not its other constraints, such as an ``enum``.
|
|
53
|
+
A link type is written with its default links as a need holding them writes its links --
|
|
54
|
+
sorted and deduplicated, each with its condition under :ref:`needs_json_include_link_conditions` (the default) and without it otherwise:
|
|
55
|
+
the literal ``default`` of its :ref:`needs_links` entry
|
|
56
|
+
(a default a dynamic function or a variant computes is written ``[]``, as is a derived link type's,
|
|
57
|
+
but for one derived by type alone, whose default is the links of a need type without a rule).
|
|
58
|
+
|
|
59
|
+
How a needs.json is read is specified once, in the `needs.json exchange contract <https://github.com/useblocks/sphinx-needs/blob/master/packages/ub-needs-exchange/design/exchange-contract.md>`__ of the ``ub-needs-exchange`` library, through which :ref:`needimport` and :ref:`needs_external_needs` read it (ubCode is to vendor the contract's conformance corpus, and to be held to it); :ref:`needs_file` still reads the file with Python's ``json`` module, and moves to the library with the writer.
|
|
50
60
|
|
|
51
61
|
See also :ref:`needs_json_exclude_fields`, :ref:`needs_json_remove_defaults`, :ref:`needs_reproducible_json`, and :ref:`needs_json_include_link_conditions` for more options on modifying the content of the ``needs.json`` file.
|
|
52
62
|
|
|
@@ -447,10 +447,9 @@ A header without a meta region leaves an empty band
|
|
|
447
447
|
id in the normal reading direction.
|
|
448
448
|
|
|
449
449
|
Layouts registered by services are not part of the collision set
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
does today.
|
|
450
|
+
A layout a service registers is read after every configured layout, so a card named after
|
|
451
|
+
one of them — ``github``, for a configured :ref:`GitHub service <github_service>` — takes
|
|
452
|
+
precedence over it silently, exactly as a :ref:`needs_layouts` entry of that name does.
|
|
454
453
|
|
|
455
454
|
Invalid specifications
|
|
456
455
|
----------------------
|