Sphinx-needs-data-explorer is a Sphinx extension to visualize Sphinx-Needs data
Project description
Sphinx Needs Data Explorer
The sphinx_needs_data_explorer is a web application built with HTML, CSS, and JavaScript, offered as a Sphinx extension. Created as a personal open-source project, it enhances the interactivity of Sphinx-generated documentation by enabling users to explore the needs.json data produced by the Sphinx-Needs extension. Users can filter data attributes and view the data in three distinct modes: network-view, table-view , and file-view. Additionally, it supports generating reports in various formats, making it a powerful and flexible tool for analyzing and presenting documentation data.
Goals and Realization
Features
Three Sphinx-Needs Data View Perspectives
Network-View
In Network-View-Perspective you can see how sphinx-needs data are interconnected in data networks.
You can choose which data context to see - incoming connections from in-neighbours - outgoing connections from out-neighbours - incoming and outgoing connections
You can choose network layout - hierarchical bottom-up - hierarchical right-to-left - hierarchical with repulsion
Table-View
In Table-View-Perspective you can see sphinx-needs data in table. You can select which columns should be visible and which hidden.
File-View
In File-View-Perspective, you can see a list of files in which Sphinx-needs data were found.
Powerfull Interactive Data Filtering
You can predefine filtering expressions during documentation generation or interactively while browsing documentation, and apply the data filtering across all three view perspectives.
You can use attribute lookup table while writing your filters.
Exploring In-Neighbours, Out-Neighbours or both
Visualizing Constraint Violations in Network Transitions
Controlling Neighborhood Depth in Network Visualization
Switching between Perspective Views and Documentation
Interaction
Installation
You can install sphinx-needs-data-explorer with pip
pip install sphinx-needs-data-explorer
Alternatively (Linux)
git clone https://github.com/mi-parkes/sphinx-needs-data-explorer.git
cd sphinx-needs-data-explorer
poetry install
poetry build
poetry run task doc
# you can then install the package in your virtual environment
pip install dist/sphinx_needs_data_explorer*.whl
Activation
In your conf.py configuration file, add sphinx_needs_data_explorer to your extensions list. And, please, make sure that sphinx_needs extension is configured to generate needs.json file in the root of your documentation E.g.:
extensions = [
...
'sphinx_needs_data_explorer'
...
]
...
needs_build_json = True
or you can include it only if the extension is available in your virtual environment:
...
try:
import sphinx_needs_data_explorer
extensions.add('sphinx_needs_data_explorer')
except ImportError:
pass
...
needs_build_json = True
If your project uses sphinx_book_theme, sphinx_needs_data_explorer supports full integration in your documentation by adding E header button accesible from any documentation page.
Otherwise, you can create hyperlink to sphinx_needs_data_explorer by adding the following role in your .rst file(s)
:sphinx_needs_data_explorer:`Sphinx Needs Data Explorer Test`
Configuration
If defined, the following parameters are used for configuration:
needs_extra_options - the parameter defines extra sphinx-needs options
needs_extra_links - the parameter defines the type links to use when extracting sphinx-needs linkage
needs_types - the parameter defines sphinx-needs types and their attributes like node colors
You can predefine filtering expressions to populate the filter drop-down list:
sphinx_needs_data_explorer_config = {
"filters":[
"status=='open'",
"['15','16'] in id",
"title ~ /r.*[0-9]+5'$/i",
"type != 'req' && incoming==[]",
"type=='spec' && outgoing!=[] && title ~ /5'$/"
]
}
sphinx_needs_data_explorer Help lists all attributes found in your project that can be used for data filtering.
Visualizing Constraint Violations in Network Transitions:
sphinx_needs_data_explorer_config = {
"valid-linkage-color":"Black",
"invalid-linkage-color":"OrangeRed",
"valid-linkage":{
'need': {
'need':'refinement'
},
'feat': {
'feat':'refinement',
'need':'links'
},
...
}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file sphinx_needs_data_explorer-0.9.6.tar.gz
.
File metadata
- Download URL: sphinx_needs_data_explorer-0.9.6.tar.gz
- Upload date:
- Size: 755.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.6 Darwin/22.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb7baff0701b33de0b7536935c26d3c1833a50f44ce1585f599d299f07cacdb3 |
|
MD5 | e70e49f374eaae06c7ba4484ec7e09ff |
|
BLAKE2b-256 | 716f65a79d27b1d8ec57445ec6cd5eb4c8063eca8587b27148c295d7a2e889ad |
File details
Details for the file sphinx_needs_data_explorer-0.9.6-py3-none-any.whl
.
File metadata
- Download URL: sphinx_needs_data_explorer-0.9.6-py3-none-any.whl
- Upload date:
- Size: 763.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.6 Darwin/22.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2360f25d17fbfc8297146dea2b2f5f14be70672cb3229a1de6aa42066fc42f59 |
|
MD5 | 010e651424208764c05d7c996eb09072 |
|
BLAKE2b-256 | 9f6643b0555dc89c9ab2fc9336570719c871686e0a9ae78e833c3590d7801a66 |