Metadata-Version: 2.4
Name: sphinx-needs
Version: 5.1.0
Summary: Sphinx needs extension for managing needs/requirements and specifications
Author-email: team useblocks <info@useblocks.com>
Requires-Python: >=3.9,<4
Description-Content-Type: text/x-rst
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Documentation
Classifier: Topic :: Utilities
Classifier: Framework :: Sphinx :: Extension
License-File: LICENSE
Requires-Dist: sphinx>=7.0,<10
Requires-Dist: requests-file~=2.1
Requires-Dist: requests~=2.32
Requires-Dist: jsonschema>=3.2.0
Requires-Dist: sphinx-data-viewer~=0.1.5
Requires-Dist: sphinxcontrib-jquery~=4.0
Requires-Dist: tomli; python_version < '3.11'
Requires-Dist: pytest-benchmark~=5.0 ; extra == "benchmark"
Requires-Dist: memray>=1.3.1,<2.0.0 ; extra == "benchmark"
Requires-Dist: matplotlib>=3.3.0 ; extra == "docs"
Requires-Dist: sphinxcontrib-plantuml~=0.0 ; extra == "docs"
Requires-Dist: sphinx-copybutton~=0.5 ; extra == "docs"
Requires-Dist: sphinxcontrib-programoutput~=0.17 ; extra == "docs"
Requires-Dist: sphinx-design~=0.6 ; extra == "docs"
Requires-Dist: matplotlib>=3.3.0 ; extra == "plotting"
Requires-Dist: defusedxml~=0.7.1 ; extra == "test"
Requires-Dist: matplotlib>=3.3.0 ; extra == "test"
Requires-Dist: pytest~=8.0 ; extra == "test"
Requires-Dist: pytest-cov~=6.0 ; extra == "test"
Requires-Dist: syrupy~=4.0 ; extra == "test"
Requires-Dist: sphinxcontrib-plantuml~=0.0 ; extra == "test"
Requires-Dist: lxml>=4.6.5,<6.0 ; extra == "test"
Requires-Dist: responses~=0.22.0 ; extra == "test"
Requires-Dist: pytest-xprocess~=1.0 ; extra == "test"
Requires-Dist: pytest-xdist ; extra == "test-parallel"
Requires-Dist: furo~=2024.8.6 ; extra == "theme-furo"
Requires-Dist: sphinx-immaterial~=0.11.11 ; extra == "theme-im"
Requires-Dist: pydata-sphinx-theme~=0.15.2 ; extra == "theme-pds"
Requires-Dist: sphinx_rtd_theme>=3.0.2,<4 ; extra == "theme-rtd"
Project-URL: Documentation, https://sphinx-needs.readthedocs.io/en/latest/
Project-URL: Repository, http://github.com/useblocks/sphinx-needs
Provides-Extra: benchmark
Provides-Extra: docs
Provides-Extra: plotting
Provides-Extra: test
Provides-Extra: test-parallel
Provides-Extra: theme-furo
Provides-Extra: theme-im
Provides-Extra: theme-pds
Provides-Extra: theme-rtd

**Complete documentation**: http://sphinx-needs.readthedocs.io/en/latest/

**Attention**: ``sphinxcontrib-needs`` got renamed to ``sphinx-needs``. This affects also the URLs for documentation and repository:

* Docs: https://sphinx-needs.readthedocs.io/en/latest/
* Repo: https://github.com/useblocks/sphinx-needs


Introduction
============

``Sphinx-Needs`` allows the definition, linking and filtering of class-like need-objects, which are by default:

* requirements
* specifications
* implementations
* test cases.

This list can be easily customized via configuration (for instance to support bugs or user stories).

A default requirement need looks like:

.. image:: https://raw.githubusercontent.com/useblocks/sphinxcontrib-needs/master/docs/_images/need_1.png
   :align: center

Layout and style of needs can be highly customized, so that a need can also look like:

.. image:: https://raw.githubusercontent.com/useblocks/sphinxcontrib-needs/master/docs/_images/need_2.png
   :align: center

Take a look into our `Examples <https://sphinxcontrib-needs.readthedocs.io/en/latest/examples/index.html>`_ for more
pictures and ideas how to use ``Sphinx-Needs``.

For filtering and analyzing needs, ``Sphinx-Needs`` provides different, powerful possibilities:

.. list-table::
   :header-rows: 1
   :widths: 46,14,40

   - * `needtable <https://sphinxcontrib-needs.readthedocs.io/en/latest/directives/needtable.html>`_
     * `needflow <https://sphinxcontrib-needs.readthedocs.io/en/latest/directives/needflow.html>`_
     * `needpie <https://sphinxcontrib-needs.readthedocs.io/en/latest/directives/needpie.html>`_
   - * .. image:: https://raw.githubusercontent.com/useblocks/sphinxcontrib-needs/master/docs/_images/needtable_1.png
     * .. image:: https://raw.githubusercontent.com/useblocks/sphinxcontrib-needs/master/docs/_images/needflow_1.png
     * .. image:: https://raw.githubusercontent.com/useblocks/sphinxcontrib-needs/master/docs/_images/needpie_1.png

Installation
============

Using pip
---------

.. code-block:: bash

    pip install sphinx-needs

If you wish to also use the plotting features of sphinx-needs (see ``needbar`` and ``needpie``), you need to also install ``matplotlib``, which is available *via* the ``plotting`` extra:

.. code-block:: bash

    pip install sphinx-needs[plotting]

.. note::

   Prior version **1.0.1** the package was named ``sphinxcontrib-needs``.

Using sources
-------------

.. code-block:: bash

    git clone https://github.com/useblocks/sphinx-needs
    cd sphinx-needs
    pip install .


Activation
----------

For final activation, please add `sphinx_needs` to the project's extension list of your **conf.py** file.

.. code-block:: python

   extensions = ["sphinx_needs",]

.. note::

   Prior version **1.0.1** the extensions was called ``sphinxcontrib.needs``.


