diff --git a/.btd.yml b/.btd.yml new file mode 100644 index 00000000..296c029b --- /dev/null +++ b/.btd.yml @@ -0,0 +1,9 @@ +input: doc +output: _build +requirements: requirements.txt +target: gh-pages +formats: [ html ] +images: + base: btdi/sphinx:pytooling + latex: btdi/latex +theme: https://codeload.GitHub.com/buildthedocs/sphinx.theme/tar.gz/v1 diff --git a/dist/requirements.txt b/dist/requirements.txt new file mode 100644 index 00000000..9fd7921c --- /dev/null +++ b/dist/requirements.txt @@ -0,0 +1,2 @@ +wheel>=0.38.1 +twine >= 4.0.2 diff --git a/doc/Dependency.rst b/doc/Dependency.rst new file mode 100644 index 00000000..e5d867d2 --- /dev/null +++ b/doc/Dependency.rst @@ -0,0 +1,179 @@ +.. _DEP: + +Dependency +########## + +.. |img-ProjectModel-lib-status| image:: https://img.shields.io/librariesio/release/pypi/pyVersioning + :alt: Libraries.io status for latest release + :height: 22 + :target: https://libraries.io/github/Paebbels/pyVersioning +.. |img-ProjectModel-req-status| image:: https://img.shields.io/requires/github/Paebbels/pyVersioning + :alt: Requires.io + :height: 22 + :target: https://requires.io/github/Paebbels/pyVersioning/requirements/?branch=main + ++------------------------------------------+------------------------------------------+ +| `Libraries.io `_ | `Requires.io `_ | ++==========================================+==========================================+ +| |img-ProjectModel-lib-status| | |img-ProjectModel-req-status| | ++------------------------------------------+------------------------------------------+ + + +.. _DEP/package: + +pyVersioning Package +******************** + ++-------------------------------------------------------------------------------+-------------+------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Package** | **Version** | **License** | **Dependencies** | ++===============================================================================+=============+======================================================================================================+===========================================================================================================================================================+ +| `pyTooling `__ | ≥5.0.0 | `Apache License, 2.0 `__ | *None* | ++-------------------------------------------------------------------------------+-------------+------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ + +.. TODO:: document the dependency to + + * Sphinx + * docstr_coverage + * interrogate + + +.. _DEP/testing: + +Unit Testing / Coverage / Type Checking (Optional) +************************************************** + +Additional Python packages needed for testing, code coverage collection and static type checking. These packages are +only needed for developers or on a CI server, thus sub-dependencies are not evaluated further. + + +.. rubric:: Manually Installing Test Requirements + +Use the :file:`tests/requirements.txt` file to install all dependencies via ``pip3``. The file will recursively install +the mandatory dependencies too. + +.. code-block:: shell + + pip3 install -U -r tests/requirements.txt + + +.. rubric:: Dependency List + ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| **Package** | **Version** | **License** | **Dependencies** | ++=====================================================================+=============+========================================================================================+======================+ +| `pytest `__ | ≥7.4.0 | `MIT `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| `pytest-cov `__ | ≥4.1.0 | `MIT `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| `Coverage `__ | ≥7.3 | `Apache License, 2.0 `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| `mypy `__ | ≥1.5.0 | `MIT `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| `typing-extensions `__ | ≥4.7.1 | `PSF-2.0 `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| `lxml `__ | ≥4.6.4 | `BSD 3-Clause `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ + + +.. _DEP/documentation: + +Sphinx Documentation (Optional) +******************************* + +Additional Python packages needed for documentation generation. These packages are only needed for developers or on a +CI server, thus sub-dependencies are not evaluated further. + + +.. rubric:: Manually Installing Documentation Requirements + +Use the :file:`doc/requirements.txt` file to install all dependencies via ``pip3``. The file will recursively install +the mandatory dependencies too. + +.. code-block:: shell + + pip3 install -U -r doc/requirements.txt + + +.. rubric:: Dependency List + ++-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Package** | **Version** | **License** | **Dependencies** | ++=================================================================================================+==============+==========================================================================================================+======================================================================================================================================================+ +| `pyTooling `__ | ≥5.0.0 | `Apache License, 2.0 `__ | *None* | ++-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ +| `Sphinx `__ | ≥5.3.0 | `BSD 3-Clause `__ | *Not yet evaluated.* | ++-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ +| `sphinx_btd_theme `__ | ≥0.5.2 | `MIT `__ | *Not yet evaluated.* | ++-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ +| !! `sphinx_fontawesome `__ | ≥0.0.6 | `GPL 2.0 `__ | *Not yet evaluated.* | ++-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ +| `sphinx_autodoc_typehints `__ | ≥1.24.0 | `MIT `__ | *Not yet evaluated.* | ++-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ + +.. TODO:: document the usage of + + * autoapi + * sphinxcontrib-mermaid + * theme v2? + * sphinx-design + + +.. _DEP/packaging: + +Packaging (Optional) +******************** + +Additional Python packages needed for installation package generation. These packages are only needed for developers or +on a CI server, thus sub-dependencies are not evaluated further. + + +.. rubric:: Manually Installing Packaging Requirements + +Use the :file:`build/requirements.txt` file to install all dependencies via ``pip3``. The file will recursively +install the mandatory dependencies too. + +.. code-block:: shell + + pip3 install -U -r build/requirements.txt + + +.. rubric:: Dependency List + ++----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Package** | **Version** | **License** | **Dependencies** | ++============================================================================+==============+==========================================================================================================+======================================================================================================================================================+ +| `pyTooling `__ | ≥5.0.0 | `Apache License, 2.0 `__ | *None* | ++----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ +| `wheel `__ | ≥0.38.1 | `MIT `__ | *Not yet evaluated.* | ++----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ + + +.. _DEP/publishing: + +Publishing (CI-Server only) +*************************** + +Additional Python packages needed for publishing the generated installation package to e.g, PyPI or any equivalent +services. These packages are only needed for maintainers or on a CI server, thus sub-dependencies are not evaluated +further. + + +.. rubric:: Manually Installing Publishing Requirements + +Use the :file:`dist/requirements.txt` file to install all dependencies via ``pip3``. The file will recursively +install the mandatory dependencies too. + +.. code-block:: shell + + pip3 install -U -r dist/requirements.txt + + +.. rubric:: Dependency List + ++----------------------------------------------------------+--------------+-------------------------------------------------------------------------------------------+----------------------+ +| **Package** | **Version** | **License** | **Dependencies** | ++==========================================================+==============+===========================================================================================+======================+ +| `wheel `__ | ≥0.38.1 | `MIT `__ | *Not yet evaluated.* | ++----------------------------------------------------------+--------------+-------------------------------------------------------------------------------------------+----------------------+ +| `Twine `__ | any | `Apache License, 2.0 `__ | *Not yet evaluated.* | ++----------------------------------------------------------+--------------+-------------------------------------------------------------------------------------------+----------------------+ diff --git a/doc/DocCoverage.rst b/doc/DocCoverage.rst new file mode 100644 index 00000000..a83cfc1d --- /dev/null +++ b/doc/DocCoverage.rst @@ -0,0 +1,7 @@ +Documentation Coverage +###################### + +Documentation coverage generated by `docstr-coverage `__. + +.. doc-coverage:: + :packageid: src diff --git a/doc/Glossary.rst b/doc/Glossary.rst new file mode 100644 index 00000000..ca1acba5 --- /dev/null +++ b/doc/Glossary.rst @@ -0,0 +1,19 @@ +Glossary +######## + +.. glossary:: + + Branch Coverage + tbd + + Code Coverage + tbd + + Documentation Coverage + tbd + + Python doc-string + tbd + + Statement Coverage + tbd diff --git a/doc/Installation.rst b/doc/Installation.rst new file mode 100644 index 00000000..d1f377a2 --- /dev/null +++ b/doc/Installation.rst @@ -0,0 +1,202 @@ +.. _INSTALL: + +Installation/Updates +#################### + +.. _INSTALL/pip: + +Using PIP to Install from PyPI +****************************** + +The following instruction are using PIP (Package Installer for Python) as a package manager and PyPI (Python Package +Index) as a source of Python packages. + +Installing a Wheel Package from PyPI using PIP +============================================== + +Users of pyTooling can select if the want to install a basic variant of pyTooling. See :ref:`DEP` for more +details. + +.. tab-set:: + + .. tab-item:: Linux/MacOS + :sync: Linux + + .. code-block:: bash + + # Basic sphinx-reports package + pip3 install sphinx_reports + + .. tab-item:: Windows + :sync: Windows + + .. code-block:: powershell + + # Basic sphinx-reports package + pip install sphinx_reports + +Developers can install further dependencies for documentation generation (``doc``) or running unit tests (``test``) or +just all (``all``) dependencies. + +.. tab-set:: + + .. tab-item:: Linux/MacOS + :sync: Linux + + .. tab-set:: + + .. tab-item:: With Documentation Dependencies + :sync: Doc + + .. code-block:: bash + + # Install with dependencies to generate documentation + pip3 install sphinx_reports[doc] + + .. tab-item:: With Unit Testing Dependencies + :sync: Unit + + .. code-block:: bash + + # Install with dependencies to run unit tests + pip3 install sphinx_reports[test] + + .. tab-item:: All Developer Dependencies + :sync: All + + .. code-block:: bash + + # Install with all developer dependencies + pip install sphinx_reports[all] + + .. tab-item:: Windows + :sync: Windows + + .. tab-set:: + + .. tab-item:: With Documentation Dependencies + :sync: Doc + + .. code-block:: powershell + + # Install with dependencies to generate documentation + pip install sphinx_reports[doc] + + .. tab-item:: With Unit Testing Dependencies + :sync: Unit + + .. code-block:: powershell + + # Install with dependencies to run unit tests + pip install sphinx_reports[test] + + .. tab-item:: All Developer Dependencies + :sync: All + + .. code-block:: powershell + + # Install with all developer dependencies + pip install sphinx_reports[all] + + +Updating from PyPI using PIP +============================ + +.. tab-set:: + + .. tab-item:: Linux/MacOS + :sync: Linux + + .. code-block:: bash + + pip install -U sphinx_reports + + .. tab-item:: Windows + :sync: Windows + + .. code-block:: powershell + + pip3 install -U sphinx_reports + + +Uninstallation using PIP +======================== + +.. tab-set:: + + .. tab-item:: Linux/MacOS + :sync: Linux + + .. code-block:: bash + + pip uninstall sphinx_reports + + .. tab-item:: Windows + :sync: Windows + + .. code-block:: powershell + + pip3 uninstall sphinx_reports + + +.. _INSTALL/setup: + +Using ``setup.py`` (legacy) +*************************** + +See sections above on how to use PIP. + +Installation using ``setup.py`` +=============================== + +.. code-block:: bash + + setup.py install + + +.. _INSTALL/building: + +Local Packaging and Installation via PIP +**************************************** + +For development and bug fixing it might be handy to create a local wheel package and also install it locally on the +development machine. The following instructions will create a local wheel package (``*.whl``) and then use PIP to +install it. As a user might have a sphinx-reports installation from PyPI, it's recommended to uninstall any previous +sphinx-reports packages. (This step is also needed if installing an updated local wheel file with same version number. PIP +will not detect a new version and thus not overwrite/reinstall the updated package contents.) + +Ensure :ref:`packaging requirements ` are installed. + +.. tab-set:: + + .. tab-item:: Linux/MacOS + :sync: Linux + + .. code-block:: bash + + cd + + # Package the code in a wheel (*.whl) + python -m build --wheel + + # Uninstall the old package + python -m pip uninstall -y sphinx_reports + + # Install from wheel + python -m pip install ./dist/sphinx_reports-4.1.0-py3-none-any.whl + + .. tab-item:: Windows + :sync: Windows + + .. code-block:: powershell + + cd + + # Package the code in a wheel (*.whl) + py -m build --wheel + + # Uninstall the old package + py -m pip uninstall -y sphinx_reports + + # Install from wheel + py -m pip install .\dist\sphinx_reports-4.1.0-py3-none-any.whl diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 00000000..d4bb2cbb --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/doc/TODO.rst b/doc/TODO.rst new file mode 100644 index 00000000..3144da04 --- /dev/null +++ b/doc/TODO.rst @@ -0,0 +1,4 @@ +TODOs +##### + +.. todolist:: diff --git a/doc/_static/css/override.css b/doc/_static/css/override.css new file mode 100644 index 00000000..1f5974a0 --- /dev/null +++ b/doc/_static/css/override.css @@ -0,0 +1,125 @@ +/* theme overrides */ +.rst-content h1, +.rst-content h2 { + margin-top: 24px; + margin-bottom: 6px; + text-decoration: underline; +} + +.rst-content h3, +.rst-content h4, +.rst-content h5, +.rst-content h6 { + margin-top: 12px; + margin-bottom: 6px; +} + +.rst-content p { + margin-bottom: 6px +} + +/* general overrides */ +html { + font-size: 15px; +} + +footer { + font-size: 95%; + text-align: center +} + +footer p { + margin-bottom: 0px /* 12px */; + font-size: 95% +} + +section > p, +.section p, +.simple li { + text-align: justify +} + +/* wyrm overrides */ +.wy-menu-vertical header, +.wy-menu-vertical p.caption { + color: #9b9b9b /* #55a5d9 */; + padding: 0 0.809em /* 0 1.618em */; + margin: 6px 0 0 0 /* 12px 0 0 */; + border-top: 1px solid #9b9b9b; +} + +.wy-side-nav-search { + margin-bottom: 0 /* .809em */; + background-color: #333333 /* #2980b9 */; + /* BTD: */ + /*color: #fcfcfc*/ +} + +.wy-side-nav-search input[type=text] { + border-radius: 0px /* 50px */; +} + +.wy-side-nav-search .wy-dropdown > a, .wy-side-nav-search > a { + /* BTD: */ + /*color: #fcfcfc;*/ + margin-bottom: 0.404em /* .809em */; +} + +.wy-side-nav-search > div.version { + margin: 0 0 6px 0; + /* BTD: */ + /*margin-top: -.4045em;*/ +} + +.wy-nav .wy-menu-vertical a:hover { + background-color: #333333 /* #2980b9 */; +} + +.wy-nav-content { + max-width: 1600px /* 800px */ ; +} + +.wy-nav-top { + background: #333333 /* #2980b9 */; +} + +/* Sphinx Design */ +.sd-tab-set { + margin: 0 +} + +.sd-tab-set > label { + padding-top: .5em; + padding-right: 1em; + padding-bottom: .5em; + padding-left: 1em +} + +.sd-container-fluid { + padding-left: 0; + padding-right: 0; +} + +.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td { + background-color: unset; +} + +.doccov-below100 { + background: rgba(0, 200, 82, .4); +} +.doccov-below90 { + background: rgba(0, 200, 82, .2); +} +.doccov-below80 { + background: rgba(255, 145, 0, .2); +} +.doccov-below50 { + background: rgba(255, 82, 82, .2); +} +.doccov-below30 { + background: rgba(101, 31, 255, .2); +} + +.doccov-summary-row { + font-weight: bold; +} diff --git a/doc/_static/icon.png b/doc/_static/icon.png new file mode 100644 index 00000000..79763da1 Binary files /dev/null and b/doc/_static/icon.png differ diff --git a/doc/_static/logo.png b/doc/_static/logo.png new file mode 100644 index 00000000..6c62cad2 Binary files /dev/null and b/doc/_static/logo.png differ diff --git a/doc/_templates/autoapi/module.rst b/doc/_templates/autoapi/module.rst new file mode 100644 index 00000000..4dded81f --- /dev/null +++ b/doc/_templates/autoapi/module.rst @@ -0,0 +1,160 @@ +.. # Template modified by Patrick Lehmann + * removed automodule on top, because private members are activated for autodoc (no doubled documentation). + * Made sections like 'submodules' bold text, but no headlines to reduce number of ToC levels. + +{{ '=' * node.name|length }} +{{ node.name }} +{{ '=' * node.name|length }} + +.. automodule:: {{ node.name }} + +{##} +{%- block modules -%} +{%- if subnodes %} + +**Submodules** + +.. toctree:: + :maxdepth: 1 +{% for item in subnodes %} + {{ item.name }} +{%- endfor %} +{##} +{%- endif -%} +{%- endblock -%} +{##} +.. currentmodule:: {{ node.name }} +{##} + +{%- if node.variables %} + +**Variables** + +{% for item, obj in node.variables.items() -%} +- :py:data:`{{ item }}` + {#{ obj|summary }#} +{% endfor -%} +{%- endif -%} + +{%- if node.functions %} + +**Functions** + +{% for item, obj in node.functions.items() -%} +- :py:func:`{{ item }}`: + {{ obj|summary }} + +{% endfor -%} +{%- endif -%} + +{%- if node.exceptions %} + +**Exceptions** + +{% for item, obj in node.exceptions.items() -%} +- :py:exc:`{{ item }}`: + {{ obj|summary }} + +{% endfor -%} +{%- endif -%} + +{%- if node.classes %} + +**Classes** + +{% for item, obj in node.classes.items() -%} +- :py:class:`{{ item }}`: + {{ obj|summary }} + +{% endfor -%} +{%- endif -%} + +{%- block variables -%} +{%- if node.variables %} + +--------------------- + +**Variables** + +{#% for item, obj in node.variables.items() -%} +- :py:data:`{{ item }}` +{% endfor -%#} + +{% for item, obj in node.variables.items() %} +.. autodata:: {{ item }} + :annotation: + + .. code-block:: text + + {{ obj|pprint|indent(6) }} +{##} +{%- endfor -%} +{%- endif -%} +{%- endblock -%} + +{%- block functions -%} +{%- if node.functions %} + +--------------------- + +**Functions** + +{% for item in node.functions %} +.. autofunction:: {{ item }} +{##} +{%- endfor -%} +{%- endif -%} +{%- endblock -%} + +{%- block exceptions -%} +{%- if node.exceptions %} + +--------------------- + +**Exceptions** + +{#% for item, obj in node.exceptions.items() -%} +- :py:exc:`{{ item }}`: + {{ obj|summary }} + +{% endfor -%#} + +{% for item in node.exceptions %} +.. autoexception:: {{ item }} + + .. rubric:: Inheritance + .. inheritance-diagram:: {{ item }} + :parts: 1 +{##} +{%- endfor -%} +{%- endif -%} +{%- endblock -%} + +{%- block classes -%} +{%- if node.classes %} + +--------------------- + +**Classes** + +{#% for item, obj in node.classes.items() -%} +- :py:class:`{{ item }}`: + {{ obj|summary }} + +{% endfor -%#} + +{% for item in node.classes %} +.. autoclass:: {{ item }} + :members: + :private-members: + :special-members: + :inherited-members: + :exclude-members: __weakref__ + + .. rubric:: Inheritance + .. inheritance-diagram:: {{ item }} + :parts: 1 +{##} +{%- endfor -%} +{%- endif -%} +{%- endblock -%} diff --git a/doc/conf.py b/doc/conf.py new file mode 100644 index 00000000..74657cc9 --- /dev/null +++ b/doc/conf.py @@ -0,0 +1,295 @@ +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +from importlib.util import find_spec +from sys import path as sys_path +from os.path import abspath +from pathlib import Path +from json import loads + +from pyTooling.Packaging import extractVersionInformation + +ROOT = Path(__file__).resolve().parent + +sys_path.insert(0, abspath(".")) +sys_path.insert(0, abspath("..")) +sys_path.insert(0, abspath("../sphinx_reports")) +# sys_path.insert(0, abspath("_extensions")) + + +# ============================================================================== +# Project information and versioning +# ============================================================================== +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +project = "sphinx_reports" + +packageInformationFile = Path(f"../{project.replace('.', '/')}/__init__.py") +versionInformation = extractVersionInformation(packageInformationFile) + +author = versionInformation.Author +copyright = versionInformation.Copyright +version = ".".join(versionInformation.Version.split(".")[:2]) # e.g. 2.3 The short X.Y version. +release = versionInformation.Version + + +# ============================================================================== +# Miscellaneous settings +# ============================================================================== +# The master toctree document. +master_doc = "index" + +# Add any paths that contain templates here, relative to this directory. +templates_path = ["_templates"] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = [ + "_build", + "_theme", + "Thumbs.db", + ".DS_Store" +] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = "manni" + + +# ============================================================================== +# Restructured Text settings +# ============================================================================== +prologPath = "prolog.inc" +try: + with open(prologPath, "r") as prologFile: + rst_prolog = prologFile.read() +except Exception as ex: + print(f"[ERROR:] While reading '{prologPath}'.") + print(ex) + rst_prolog = "" + + +# ============================================================================== +# Options for HTML output +# ============================================================================== +html_context = {} +ctx = ROOT / "context.json" +if ctx.is_file(): + html_context.update(loads(ctx.open('r').read())) + +# ============================================================================== +# Options for HTML output +# ============================================================================== +html_theme = "sphinx_rtd_theme" +html_theme_options = { + "logo_only": True, + "vcs_pageview_mode": 'blob', + "navigation_depth": 5, +} +html_css_files = [ + 'css/override.css', +] + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ["_static"] + +html_logo = str(Path(html_static_path[0]) / "logo.png") +html_favicon = str(Path(html_static_path[0]) / "icon.png") + +# Output file base name for HTML help builder. +htmlhelp_basename = "sphinx_reportsDoc" + +# If not None, a 'Last updated on:' timestamp is inserted at every page +# bottom, using the given strftime format. +# The empty string is equivalent to '%b %d, %Y'. +html_last_updated_fmt = "%d.%m.%Y" + +# ============================================================================== +# Python settings +# ============================================================================== +modindex_common_prefix = [ + f"{project}." +] + +# ============================================================================== +# Options for LaTeX / PDF output +# ============================================================================== +from textwrap import dedent + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + "papersize": "a4paper", + + # The font size ('10pt', '11pt' or '12pt'). + #'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + "preamble": dedent(r""" + % ================================================================================ + % User defined additional preamble code + % ================================================================================ + % Add more Unicode characters for pdfLaTeX. + % - Alternatively, compile with XeLaTeX or LuaLaTeX. + % - https://GitHub.com/sphinx-doc/sphinx/issues/3511 + % + \ifdefined\DeclareUnicodeCharacter + \DeclareUnicodeCharacter{2265}{$\geq$} + \DeclareUnicodeCharacter{21D2}{$\Rightarrow$} + \fi + + + % ================================================================================ + """), + + # Latex figure (float) alignment + #'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + ( master_doc, + "sphinx_reports.tex", + "The sphinx_reports Documentation", + "Patrick Lehmann", + "manual" + ), +] + + +# ============================================================================== +# Extensions +# ============================================================================== +extensions = [ +# Standard Sphinx extensions + "sphinx.ext.autodoc", + "sphinx.ext.extlinks", + "sphinx.ext.intersphinx", + "sphinx.ext.inheritance_diagram", + "sphinx.ext.todo", + "sphinx.ext.graphviz", + "sphinx.ext.mathjax", + "sphinx.ext.ifconfig", + "sphinx.ext.viewcode", +# SphinxContrib extensions + "sphinxcontrib.mermaid", +# Other extensions + "sphinx_design", + "sphinx_copybutton", + "sphinx_autodoc_typehints", + "autoapi.sphinx", +# User defined extensions + "CoverageReports", +] + + +# ============================================================================== +# Sphinx.Ext.InterSphinx +# ============================================================================== +intersphinx_mapping = { + "python": ("https://docs.python.org/3", None), +} + + +# ============================================================================== +# Sphinx.Ext.AutoDoc +# ============================================================================== +# see: https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html#configuration +#autodoc_default_options = { +# "private-members": True, +# "special-members": True, +# "inherited-members": True, +# "exclude-members": "__weakref__" +#} +#autodoc_class_signature = "separated" +autodoc_member_order = "bysource" # alphabetical, groupwise, bysource +autodoc_typehints = "both" +#autoclass_content = "both" + + +# ============================================================================== +# Sphinx.Ext.ExtLinks +# ============================================================================== +extlinks = { + "gh": ("https://GitHub.com/%s", "gh:%s"), + "ghissue": ("https://GitHub.com/pytooling/sphinx_reports/issues/%s", "issue #%s"), + "ghpull": ("https://GitHub.com/pytooling/sphinx_reports/pull/%s", "pull request #%s"), + "ghsrc": ("https://GitHub.com/pytooling/sphinx_reports/blob/main/%s", None), + "wiki": ("https://en.wikipedia.org/wiki/%s", None), +} + + +# ============================================================================== +# Sphinx.Ext.Graphviz +# ============================================================================== +graphviz_output_format = "svg" + + +# ============================================================================== +# SphinxContrib.Mermaid +# ============================================================================== +mermaid_params = [ + '--backgroundColor', 'transparent', +] +mermaid_verbose = True + + +# ============================================================================== +# Sphinx.Ext.Inheritance_Diagram +# ============================================================================== +inheritance_node_attrs = { +# "shape": "ellipse", +# "fontsize": 14, +# "height": 0.75, + "color": "dodgerblue1", + "style": "filled" +} + + +# ============================================================================== +# Sphinx.Ext.ToDo +# ============================================================================== +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = True +todo_link_only = True + + +# ============================================================================== +# DocCov +# ============================================================================== +doccov_packages = { + "src": { + "name": "sphinx_reports", + "directory": "../sphinx_reports", + "fail_below": 80, + "levels": { + 30: {"class": "doccov-below30", "background": "rgba(101, 31, 255, .2)", "desc": "almost undocumented"}, + 50: {"class": "doccov-below50", "background": "rgba(255, 82, 82, .2)", "desc": "poorly documented"}, + 80: {"class": "doccov-below80", "background": "rgba(255, 145, 0, .2)", "desc": "roughly documented"}, + 90: {"class": "doccov-below90", "background": "rgba( 0, 200, 82, .2)", "desc": "well documented"}, + 100: {"class": "doccov-below100", "background": "rgba( 0, 200, 82, .2)", "desc": "excellent documented"} + } + } +} + + +# ============================================================================== +# Sphinx_Design +# ============================================================================== +sd_fontawesome_latex = True + + +# ============================================================================== +# AutoAPI.Sphinx +# ============================================================================== +autoapi_modules = { + "sphinx_reports": { + "template": "module", + "output": "sphinx_reports", + "override": True + } +} diff --git a/doc/coverage/index.rst b/doc/coverage/index.rst new file mode 100644 index 00000000..80bbad2e --- /dev/null +++ b/doc/coverage/index.rst @@ -0,0 +1,4 @@ +Coverage Report +############### + +*Placeholder for the Coverage report generated with* ``pytest`` *and* ``coverage``. diff --git a/doc/genindex.rst b/doc/genindex.rst new file mode 100644 index 00000000..c07da40d --- /dev/null +++ b/doc/genindex.rst @@ -0,0 +1,4 @@ +.. This file is a placeholder and will be replaced + +Index +##### diff --git a/doc/index.rst b/doc/index.rst new file mode 100644 index 00000000..50c352a7 --- /dev/null +++ b/doc/index.rst @@ -0,0 +1,155 @@ +.. |img-sphinx-reports-github| image:: https://img.shields.io/badge/pyTooling-sphinx-reports-323131.svg?logo=github&longCache=true + :alt: Sourcecode on GitHub + :height: 22 + :target: https://github.com/pyTooling/sphinx-reports +.. |img-sphinx-reports-license| image:: https://img.shields.io/badge/Apache%20License,%202.0-bd0000.svg?longCache=true&label=license&logo=Apache&logoColor=D22128 + :alt: License + :height: 22 +.. |img-sphinx-reports-tag| image:: https://img.shields.io/github/v/tag/pyTooling/sphinx-reports?logo=GitHub&include_prereleases + :alt: GitHub tag (latest SemVer incl. pre-release + :height: 22 + :target: https://github.com/pyTooling/sphinx-reports/tags +.. |img-sphinx-reports-release| image:: https://img.shields.io/github/v/release/pyTooling/sphinx-reports?logo=GitHub&include_prereleases + :alt: GitHub release (latest SemVer incl. including pre-releases + :height: 22 + :target: https://github.com/pyTooling/sphinx-reports/releases/latest +.. |img-sphinx-reports-date| image:: https://img.shields.io/github/release-date/pyTooling/sphinx-reports?logo=GitHub + :alt: GitHub release date + :height: 22 + :target: https://github.com/pyTooling/sphinx-reports/releases +.. |img-sphinx-reports-lib-status| image:: https://img.shields.io/librariesio/release/pypi/sphinx-reports + :alt: Libraries.io status for latest release + :height: 22 + :target: https://libraries.io/github/pyTooling/sphinx-reports +.. |img-sphinx-reports-req-status| image:: https://img.shields.io/requires/github/pyTooling/sphinx-reports + :alt: Requires.io + :height: 22 + :target: https://requires.io/github/pyTooling/sphinx-reports/requirements/?branch=master +.. |img-sphinx-reports-travis| image:: https://img.shields.io/travis/com/pyTooling/sphinx-reports?logo=Travis + :alt: Travis - Build on 'master' + :height: 22 + :target: https://travis-ci.com/pyTooling/sphinx-reports +.. |img-sphinx-reports-pypi-tag| image:: https://img.shields.io/pypi/v/sphinx-reports?logo=PyPI + :alt: PyPI - Tag + :height: 22 + :target: https://pypi.org/project/sphinx-reports/ +.. |img-sphinx-reports-pypi-status| image:: https://img.shields.io/pypi/status/sphinx-reports?logo=PyPI + :alt: PyPI - Status + :height: 22 +.. |img-sphinx-reports-pypi-python| image:: https://img.shields.io/pypi/pyversions/sphinx-reports?logo=PyPI + :alt: PyPI - Python Version + :height: 22 +.. |img-sphinx-reports-lib-dep| image:: https://img.shields.io/librariesio/dependent-repos/pypi/sphinx-reports + :alt: Dependent repos (via libraries.io) + :height: 22 + :target: https://github.com/pyTooling/sphinx-reports/network/dependents +.. |img-sphinx-reports-codacy-quality| image:: https://img.shields.io/codacy/grade/b63aac7ef7e34baf829f11a61574bbaf?logo=codacy + :alt: Codacy - Quality + :height: 22 + :target: https://www.codacy.com/manual/pyTooling/sphinx-reports +.. |img-sphinx-reports-codacy-coverage| image:: https://img.shields.io/codacy/coverage/b63aac7ef7e34baf829f11a61574bbaf?logo=codacy + :alt: Codacy - Line Coverage + :height: 22 + :target: https://www.codacy.com/manual/pyTooling/sphinx-reports +.. |img-sphinx-reports-codecov-coverage| image:: https://codecov.io/gh/pyTooling/sphinx-reports/branch/master/graph/badge.svg + :alt: Codecov - Branch Coverage + :height: 22 + :target: https://codecov.io/gh/pyTooling/sphinx-reports +.. |img-sphinx-reports-lib-rank| image:: https://img.shields.io/librariesio/sourcerank/pypi/sphinx-reports + :alt: Libraries.io SourceRank + :height: 22 + :target: https://libraries.io/github/pyTooling/sphinx-reports/sourcerank +.. |img-sphinx-reports-rtd| image:: https://img.shields.io/readthedocs/sphinx-reports + :alt: Read the Docs + :height: 22 + :target: https://sphinx-reports.readthedocs.io/en/latest/ + +|img-sphinx-reports-github| |img-sphinx-reports-tag| |img-sphinx-reports-release| |img-sphinx-reports-date| |br| +|img-sphinx-reports-lib-status| |img-sphinx-reports-req-status| |img-sphinx-reports-lib-dep| |br| +|img-sphinx-reports-travis| |img-sphinx-reports-pypi-tag| |img-sphinx-reports-pypi-status| |img-sphinx-reports-pypi-python| |br| +|img-sphinx-reports-codacy-quality| |img-sphinx-reports-codacy-coverage| |img-sphinx-reports-codecov-coverage| |img-sphinx-reports-lib-rank| |br| +|img-sphinx-reports-rtd| |img-sphinx-reports-license| + + +sphinx-reports Documentation +############################ + + +Supported Report Formats +************************ + + + +Contributors +************ + +* `Patrick Lehmann `__ (Maintainer) +* `and more... `__ + + +License +******* + +.. only:: html + + This Python package (source code) is licensed under `Apache License 2.0 `__. |br| + The accompanying documentation is licensed under `Creative Commons - Attribution 4.0 (CC-BY 4.0) `__. + +.. only:: latex + + This Python package (source code) is licensed under **Apache License 2.0**. |br| + The accompanying documentation is licensed under **Creative Commons - Attribution 4.0 (CC-BY 4.0)**. + + +.. toctree:: + :caption: Overview + :hidden: + + Installation + Dependency + +.. raw:: latex + + \part{Main Documentation} + +.. toctree:: + :caption: Examples + :hidden: + + + +.. toctree:: + :caption: Details + :hidden: + + sphinx-reports + + +.. raw:: latex + + \part{References and Reports} + +.. toctree:: + :caption: References and Reports + :hidden: + + sphinx-reports/sphinx-reports + Unittest Report ➚ + Code Coverage Report ➚ + Doc. Coverage Report + Static Type Check Report ➚ + +.. raw:: latex + + \part{Appendix} + +.. toctree:: + :caption: Appendix + :hidden: + + License + Doc-License + Glossary + genindex + Python Module Index + TODO diff --git a/doc/make.bat b/doc/make.bat new file mode 100644 index 00000000..53ac3a7c --- /dev/null +++ b/doc/make.bat @@ -0,0 +1,36 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=py -3.12 -m sphinx.cmd.build +) +set SOURCEDIR=. +set BUILDDIR=_build +set SPHINXOPTS=-v + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/doc/prolog.inc b/doc/prolog.inc new file mode 100644 index 00000000..75463a87 --- /dev/null +++ b/doc/prolog.inc @@ -0,0 +1,59 @@ +.. # Load pre-defined aliases and graphical characters like © from docutils + # is used to denote the special path + # \Lib\site-packages\docutils\parsers\rst\include +.. include:: +.. include:: + +.. # define a hard line break for HTML +.. |br| raw:: html + +
+ +.. # define horizontal line for HTML +.. |hr| raw:: html + +
+ +.. # define additional CSS based styles and ReST roles for HTML +.. raw:: html + + + +.. role:: bolditalic + :class: bolditalic + +.. role:: underline + :class: underline + +.. role:: strike + :class: strike + +.. role:: xlarge + :class: xlarge + +.. role:: red + :class: colorred +.. role:: green + :class: colorgreen +.. role:: blue + :class: colorblue +.. role:: purple + :class: colorpurple + +.. role:: deletion + :class: colorred strike +.. role:: addition + :class: colorgreen + +.. role:: pycode(code) + :language: python + :class: highlight diff --git a/doc/requirements.txt b/doc/requirements.txt new file mode 100644 index 00000000..e5bab80d --- /dev/null +++ b/doc/requirements.txt @@ -0,0 +1,12 @@ +-r ../requirements.txt + +pyTooling >= 5.0.0, < 6.0 + +# Enforce latest version on ReadTheDocs +sphinx >= 7.1.0, < 8.0 + +# Sphinx Extenstions +sphinxcontrib-mermaid>=0.7.1 +autoapi>=2.0.1 +sphinx_fontawesome>=0.0.6 +sphinx_autodoc_typehints >= 1.24.0 diff --git a/doc/shields.inc b/doc/shields.inc new file mode 100644 index 00000000..d24cc43b --- /dev/null +++ b/doc/shields.inc @@ -0,0 +1,170 @@ +.. # Use http://b64.io/ to encode any image to base64. Then replace `/` with + # `%2F` and `+` with `%2B` (or use http://meyerweb.com/eric/tools/dencoder/). + # Beware that `?logo=data:image/png;base64,` must also be converted to + # percent encoding so that the URL is properly parsed. + +.. # Sourcecode link to GitHub +.. |SHIELD:svgreports-github| image:: https://img.shields.io/badge/pyTooling-sphinx-reports-63bf7f.svg?longCache=true&style=flat-square&longCache=true&logo=GitHub + :alt: Sourcecode on GitHub + :height: 22 + :target: https://GitHub.com/pyTooling/sphinx-reports +.. |SHIELD:pngreports-github| image:: https://raster.shields.io/badge/pyTooling-sphinx-reports-63bf7f.svg?longCache=true&style=flat-square&longCache=true&logo=GitHub + :alt: Sourcecode on GitHub + :height: 22 + :target: https://GitHub.com/pyTooling/sphinx-reports + +.. # Sourcecode license +.. |SHIELD:svgreports-src-license| image:: https://img.shields.io/pypi/l/sphinx-reports?longCache=true&style=flat-square&logo=Apache&label=code + :alt: Code license + :height: 22 + :target: Code-License.html +.. |SHIELD:pngreports-src-license| image:: https://img.shields.io/pypi/l/sphinx-reports?longCache=true&style=flat-square&logo=Apache&label=code + :alt: Code license + :height: 22 + :target: https://GitHub.com/pyTooling/sphinx-reports/blob/main/LICENSE.md + +.. # GitHub tag +.. |SHIELD:svgreports-tag| image:: https://img.shields.io/github/v/tag/pyTooling/sphinx-reports?longCache=true&style=flat-square&logo=GitHub&include_prereleases + :alt: GitHub tag (latest SemVer incl. pre-release + :height: 22 + :target: https://GitHub.com/pyTooling/sphinx-reports/tags +.. |SHIELD:pngreports-tag| image:: https://raster.shields.io/github/v/tag/pyTooling/sphinx-reports?longCache=true&style=flat-square&logo=GitHub&include_prereleases + :alt: GitHub tag (latest SemVer incl. pre-release + :height: 22 + :target: https://GitHub.com/pyTooling/sphinx-reports/tags + +.. # GitHub release date +.. |SHIELD:svgreports-date| image:: https://img.shields.io/github/release-date/pyTooling/sphinx-reports?longCache=true&style=flat-square&logo=GitHub + :alt: GitHub release date + :height: 22 + :target: https://GitHub.com/pyTooling/sphinx-reports/releases +.. |SHIELD:pngreports-date| image:: https://raster.shields.io/github/release-date/pyTooling/sphinx-reports?longCache=true&style=flat-square&logo=GitHub + :alt: GitHub release date + :height: 22 + :target: https://GitHub.com/pyTooling/sphinx-reports/releases + +.. # GitHub/Libraries dependent projects +.. |SHIELD:svgreports-lib-dep| image:: https://img.shields.io/librariesio/dependent-repos/pypi/sphinx-reports?longCache=true&style=flat-square&logo=Libraries.io&logoColor=fff + :alt: Dependent repos (via libraries.io) + :height: 22 + :target: https://GitHub.com/pyTooling/sphinx-reports/network/dependents +.. |SHIELD:pngreports-lib-dep| image:: https://raster.shields.io/librariesio/dependent-repos/pypi/sphinx-reports?longCache=true&style=flat-square&logo=Libraries.io&logoColor=fff + :alt: Dependent repos (via libraries.io) + :height: 22 + :target: https://GitHub.com/pyTooling/sphinx-reports/network/dependents + +.. # GHA test and coverage +.. |SHIELD:svgreports-gha-test| image:: https://img.shields.io/github/actions/workflow/status/pyTooling/sphinx-reports/Pipeline.yml?branch=main&longCache=true&style=flat-square&label=Build%20and%20Test&logo=GitHub%20Actions&logoColor=FFFFFF + :alt: GitHub Workflow - Build and Test Status + :height: 22 + :target: https://GitHub.com/pyTooling/sphinx-reports/actions/workflows/Pipeline.yml +.. |SHIELD:pngreports-gha-test| image:: https://raster.shields.io/github/actions/workflow/status/pyTooling/sphinx-reports/Pipeline.yml?branch=main&longCache=true&style=flat-square&label=Build%20and%20Test&logo=GitHub%20Actions&logoColor=FFFFFF + :alt: GitHub Workflow - Build and Test Status + :height: 22 + :target: https://GitHub.com/pyTooling/sphinx-reports/actions/workflows/Pipeline.yml + +.. # Codacy - quality +.. |SHIELD:svgreports-codacy-quality| image:: https://img.shields.io/codacy/grade/8dc5205ba8b24e008f2287759096e181?longCache=true&style=flat-square&logo=codacy + :alt: Codacy - Quality + :height: 22 + :target: https://www.codacy.com/gh/pyTooling/sphinx-reports +.. |SHIELD:pngreports-codacy-quality| image:: https://raster.shields.io/codacy/grade/8dc5205ba8b24e008f2287759096e181?longCache=true&style=flat-square&logo=codacy + :alt: Codacy - Quality + :height: 22 + :target: https://www.codacy.com/gh/pyTooling/sphinx-reports + +.. # Codacy - coverage +.. |SHIELD:svgreports-codacy-coverage| image:: https://img.shields.io/codacy/coverage/8dc5205ba8b24e008f2287759096e181?longCache=true&style=flat-square&logo=codacy + :alt: Codacy - Line Coverage + :height: 22 + :target: https://www.codacy.com/gh/pyTooling/sphinx-reports +.. |SHIELD:pngreports-codacy-coverage| image:: https://raster.shields.io/codacy/coverage/8dc5205ba8b24e008f2287759096e181?longCache=true&style=flat-square&logo=codacy + :alt: Codacy - Line Coverage + :height: 22 + :target: https://www.codacy.com/gh/pyTooling/sphinx-reports + +.. # Codecov - coverage +.. |SHIELD:svgreports-codecov-coverage| image:: https://img.shields.io/codecov/c/github/pyTooling/sphinx-reports?longCache=true&style=flat-square&logo=Codecov + :alt: Codecov - Branch Coverage + :height: 22 + :target: https://codecov.io/gh/pyTooling/sphinx-reports +.. |SHIELD:pngreports-codecov-coverage| image:: https://raster.shields.io/codecov/c/github/pyTooling/sphinx-reports?longCache=true&style=flat-square&logo=Codecov + :alt: Codecov - Branch Coverage + :height: 22 + :target: https://codecov.io/gh/pyTooling/sphinx-reports + +.. # Libraries - source rank +.. |SHIELD:svgreports-lib-rank| image:: https://img.shields.io/librariesio/sourcerank/pypi/sphinx-reports?longCache=true&style=flat-square&logo=Libraries.io&logoColor=fff + :alt: Libraries.io SourceRank + :height: 22 + :target: https://libraries.io/github/pyTooling/sphinx-reports/sourcerank +.. |SHIELD:pngreports-lib-rank| image:: https://raster.shields.io/librariesio/sourcerank/pypi/sphinx-reports?longCache=true&style=flat-square&logo=Libraries.io&logoColor=fff + :alt: Libraries.io SourceRank + :height: 22 + :target: https://libraries.io/github/pyTooling/sphinx-reports/sourcerank + +.. # PyPI tag +.. |SHIELD:svgreports-pypi-tag| image:: https://img.shields.io/pypi/v/sphinx-reports?longCache=true&style=flat-square&logo=PyPI&logoColor=FBE072 + :alt: PyPI - Tag + :height: 22 + :target: https://pypi.org/project/sphinx-reports/ +.. |SHIELD:pngreports-pypi-tag| image:: https://raster.shields.io/pypi/v/sphinx-reports?longCache=true&style=flat-square&logo=PyPI&logoColor=FBE072 + :alt: PyPI - Tag + :height: 22 + :target: https://pypi.org/project/sphinx-reports/ + +.. # PyPI project status +.. |SHIELD:svgreports-pypi-status| image:: https://img.shields.io/pypi/status/sphinx-reports?longCache=true&style=flat-square&logo=PyPI&logoColor=FBE072 + :alt: PyPI - Status + :height: 22 +.. |SHIELD:pngreports-pypi-status| image:: https://raster.shields.io/pypi/status/sphinx-reports?longCache=true&style=flat-square&logo=PyPI&logoColor=FBE072 + :alt: PyPI - Status + :height: 22 + +.. # PyPI Python versions +.. |SHIELD:svgreports-pypi-python| image:: https://img.shields.io/pypi/pyversions/sphinx-reports?longCache=true&style=flat-square&logo=PyPI&logoColor=FBE072 + :alt: PyPI - Python Version + :height: 22 +.. |SHIELD:pngreports-pypi-python| image:: https://raster.shields.io/pypi/pyversions/sphinx-reports?longCache=true&style=flat-square&logo=PyPI&logoColor=FBE072 + :alt: PyPI - Python Version + :height: 22 + +.. # Libraries - status +.. |SHIELD:svgreports-lib-status| image:: https://img.shields.io/librariesio/release/pypi/sphinx-reports?longCache=true&style=flat-square&logo=Libraries.io&logoColor=fff + :alt: Libraries.io status for latest release + :height: 22 + :target: https://libraries.io/github/pyTooling/sphinx-reports +.. |SHIELD:pngreports-lib-status| image:: https://raster.shields.io/librariesio/release/pypi/sphinx-reports?longCache=true&style=flat-square&logo=Libraries.io&logoColor=fff + :alt: Libraries.io status for latest release + :height: 22 + :target: https://libraries.io/github/pyTooling/sphinx-reports + +.. # Documentation license +.. |SHIELD:svgreports-doc-license| image:: https://img.shields.io/badge/doc-CC--BY%204.0-green?longCache=true&style=flat-square&logo=CreativeCommons&logoColor=fff + :alt: Documentation License + :height: 22 + :target: License.html +.. |SHIELD:pngreports-doc-license| image:: https://raster.shields.io/badge/doc-CC--BY%204.0-green?longCache=true&style=flat-square&logo=CreativeCommons&logoColor=fff + :alt: Documentation License + :height: 22 + :target: https://GitHub.com/pyTooling/sphinx-reports/blob/main/doc/License.rst + +.. # GHPages - read now +.. |SHIELD:svgreports-ghp-doc| image:: https://img.shields.io/website?longCache=true&style=flat-square&label=pyTooling.github.io%2Fsphinx-reports&logo=GitHub&logoColor=fff&up_color=blueviolet&up_message=Read%20now%20%E2%9E%9A&url=https%3A%2F%2FpyTooling.github.io%2Fsphinx-reports%2Findex.html + :alt: Documentation - Read Now! + :height: 22 + :target: https://pyTooling.github.io/sphinx-reports/ +.. |SHIELD:pngreports-ghp-doc| image:: https://raster.shields.io/website?longCache=true&style=flat-square&label=pyTooling.github.io%2Fsphinx-reports&logo=GitHub&logoColor=fff&up_color=blueviolet&up_message=Read%20now%20%E2%9E%9A&url=https%3A%2F%2FpyTooling.github.io%2Fsphinx-reports%2Findex.html + :alt: Documentation - Read Now! + :height: 22 + :target: https://pyTooling.github.io/sphinx-reports/ + +.. # Gitter +.. |SHIELD:svgreports-gitter| image:: https://img.shields.io/badge/chat-on%20gitter-4db797.svg?longCache=true&style=flat-square&logo=gitter&logoColor=e8ecef + :alt: Documentation License + :height: 22 + :target: https://gitter.im/hdl/community +.. |SHIELD:pngreports-gitter| image:: https://raster.shields.io/badge/chat-on%20gitter-4db797.svg?longCache=true&style=flat-square&logo=gitter&logoColor=e8ecef + :alt: Documentation License + :height: 22 + :target: https://gitter.im/hdl/community diff --git a/doc/typing/index.rst b/doc/typing/index.rst new file mode 100644 index 00000000..3a22a255 --- /dev/null +++ b/doc/typing/index.rst @@ -0,0 +1,8 @@ +Static Type Checking Report +########################### + +*Placeholder for the Static Type Checking report generated with* ``mypy``. + +.. #raw:: html + +