docsig


Namedocsig JSON
Version 0.66.0 PyPI version JSON
download
home_pagehttps://pypi.org/project/docsig/
SummaryCheck signature params for proper documentation
upload_time2024-12-24 06:07:46
maintainerjshwi
docs_urlNone
authorjshwi
requires_python<4.0.0,>=3.8.1
licenseMIT
keywords check docs docstring params signature
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            |

.. image:: https://raw.githubusercontent.com/jshwi/docsig/master/docs/static/docsig.svg
   :alt: docsig logo
   :width: 50%
   :align: center

|

|License| |PyPI| |CI| |CodeQL| |pre-commit.ci status| |codecov.io| |readthedocs.org| |python3.8| |Black| |isort| |docformatter| |pylint| |Security Status| |Known Vulnerabilities| |docsig|

.. |License| image:: https://img.shields.io/badge/License-MIT-yellow.svg
   :target: https://opensource.org/licenses/MIT
   :alt: License
.. |PyPI| image:: https://img.shields.io/pypi/v/docsig
   :target: https://pypi.org/project/docsig/
   :alt: PyPI
.. |CI| image:: https://github.com/jshwi/docsig/actions/workflows/build.yaml/badge.svg
   :target: https://github.com/jshwi/docsig/actions/workflows/build.yaml
   :alt: CI
.. |CodeQL| image:: https://github.com/jshwi/docsig/actions/workflows/codeql-analysis.yml/badge.svg
   :target: https://github.com/jshwi/docsig/actions/workflows/codeql-analysis.yml
   :alt: CodeQL
.. |pre-commit.ci status| image:: https://results.pre-commit.ci/badge/github/jshwi/docsig/master.svg
   :target: https://results.pre-commit.ci/latest/github/jshwi/docsig/master
   :alt: pre-commit.ci status
.. |codecov.io| image:: https://codecov.io/gh/jshwi/docsig/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/jshwi/docsig
   :alt: codecov.io
.. |readthedocs.org| image:: https://readthedocs.org/projects/docsig/badge/?version=latest
   :target: https://docsig.readthedocs.io/en/latest/?badge=latest
   :alt: readthedocs.org
.. |python3.8| image:: https://img.shields.io/badge/python-3.8-blue.svg
   :target: https://www.python.org/downloads/release/python-380
   :alt: python3.8
.. |Black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
   :target: https://github.com/psf/black
   :alt: Black
.. |isort| image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336
   :target: https://pycqa.github.io/isort/
   :alt: isort
.. |docformatter| image:: https://img.shields.io/badge/%20formatter-docformatter-fedcba.svg
   :target: https://github.com/PyCQA/docformatter
   :alt: docformatter
.. |pylint| image:: https://img.shields.io/badge/linting-pylint-yellowgreen
   :target: https://github.com/PyCQA/pylint
   :alt: pylint
.. |Security Status| image:: https://img.shields.io/badge/security-bandit-yellow.svg
   :target: https://github.com/PyCQA/bandit
   :alt: Security Status
.. |Known Vulnerabilities| image:: https://snyk.io/test/github/jshwi/docsig/badge.svg
   :target: https://snyk.io/test/github/jshwi/docsig/badge.svg
   :alt: Known Vulnerabilities
.. |docsig| image:: https://snyk.io/advisor/python/docsig/badge.svg
   :target: https://snyk.io/advisor/python/docsig
   :alt: docsig

Check signature params for proper documentation
-----------------------------------------------

Supports reStructuredText (``Sphinx``), ``NumPy``, and ``Google``

Contributing
------------
If you are interested in contributing to ``docsig`` please read about contributing `here <https://docsig.readthedocs.io/en/latest/development/contributing.html>`__

Installation
------------

.. code-block:: console

    $ pip install docsig

Usage
-----

Commandline
***********

.. code-block:: console

    usage: docsig [-h] [-V] [-l] [-c | -C] [-D] [-m] [-N] [-o] [-p] [-P] [-i] [-a] [-k] [-T]
                  [-I] [-n] [-v] [-s STR] [-d LIST] [-t LIST] [-e PATTERN] [-E PATH [PATH ...]]
                  [path [path ...]]

    Check signature params for proper documentation

    positional arguments:
      path                  directories or files to check

    optional arguments:
      -h, --help            show this help message and exit
      -V, --version         show program's version number and exit
      -l, --list-checks     display a list of all checks and their messages
      -c, --check-class     check class docstrings
      -C, --check-class-constructor
                            check __init__ methods. Note: mutually incompatible with -c
      -D, --check-dunders   check dunder methods
      -m, --check-protected-class-methods
                            check public methods belonging to protected classes
      -N, --check-nested    check nested functions and classes
      -o, --check-overridden
                            check overridden methods
      -p, --check-protected
                            check protected functions and classes
      -P, --check-property-returns
                            check property return values
      -i, --ignore-no-params
                            ignore docstrings where parameters are not documented
      -a, --ignore-args     ignore args prefixed with an asterisk
      -k, --ignore-kwargs   ignore kwargs prefixed with two asterisks
      -T, --ignore-typechecker
                            ignore checking return values
      -I, --include-ignored
                            check files even if they match a gitignore pattern
      -n, --no-ansi         disable ansi output
      -v, --verbose         increase output verbosity
      -s STR, --string STR  string to parse instead of files
      -d LIST, --disable LIST
                            comma separated list of rules to disable
      -t LIST, --target LIST
                            comma separated list of rules to target
      -e PATTERN, --exclude PATTERN
                            regular expression of files or dirs to exclude from checks
      -E PATH [PATH ...], --excludes PATH [PATH ...]
                            path glob patterns to exclude from checks

Options can also be configured with the pyproject.toml file

.. code-block:: toml

    [tool.docsig]
    check-dunders = false
    check-overridden = false
    check-protected = false
    disable = [
        "SIG101",
        "SIG102",
        "SIG402",
    ]
    target = [
        "SIG202",
        "SIG203",
        "SIG201",
    ]

Flake8
******

``docsig`` can also be used as a ``flake8`` plugin. Install ``flake8`` and
ensure your installation has registered `docsig`

.. code-block:: console

    $ flake8 --version
    7.1.0 (docsig: 0.66.0, mccabe: 0.7.0, pycodestyle: 2.12.0, pyflakes: 3.2.0) CPython 3.8.13 on Darwin

And now use `flake8` to lint your files

.. code-block:: console

    $ flake8 example.py
    example.py:1:1: SIG202 includes parameters that do not exist (params-do-not-exist) 'function'

With ``flake8`` the pyproject.toml config will still be the base config, though the
`ini files <https://flake8.pycqa.org/en/latest/user/configuration.html#configuration-locations>`_ ``flake8`` gets it config from will override the pyproject.toml config.
For ``flake8`` all args and config options are prefixed with ``sig`` to
avoid any potential conflicts with other plugins

.. code-block:: ini

    [flake8]
    sig-check-dunders = True
    sig-check-overridden = True
    sig-check-protected = True

..
   end flake8

API
***

.. code-block:: python

    >>> from docsig import docsig

.. code-block:: python

    >>> string = """
    ... def function(param1, param2, param3) -> None:
    ...     '''
    ...
    ...     :param param1: About param1.
    ...     :param param2: About param2.
    ...     :param param3: About param3.
    ...     '''
    ...     """
    >>> docsig(string=string, no_ansi=True)
    0

.. code-block:: python

    >>> string = """
    ... def function(param1, param2) -> None:
    ...     '''
    ...
    ...     :param param1: About param1.
    ...     :param param2: About param2.
    ...     :param param3: About param3.
    ...     '''
    ... """
    >>> docsig(string=string, no_ansi=True)
    2 in function
        SIG202: includes parameters that do not exist (params-do-not-exist)
    1

A full list of checks can be found `here <https://docsig.readthedocs.io/en/latest/usage/messages.html>`__

Message Control
***************

If you have been using ``docsig`` prior to ``v0.56.0``, please see
`updated messages <https://docsig.readthedocs.io/en/latest/deprecated/messages.html>`_

`Documentation on message control <https://docsig.readthedocs.io/en/latest/usage/message-control.html>`_

Classes
*******

`Documenting classes <https://docsig.readthedocs.io/en/latest/usage/configuration.html#classes>`_

pre-commit
**********

``docsig`` can be used as a `pre-commit <https://pre-commit.com>`_ hook

It can be added to your .pre-commit-config.yaml as follows:

Standalone

.. code-block:: yaml

    repos:
      - repo: https://github.com/jshwi/docsig
        rev: v0.66.0
        hooks:
          - id: docsig
            args:
              - "--check-class"
              - "--check-dunders"
              - "--check-overridden"
              - "--check-protected"

or integrated with ``flake8``

.. code-block:: yaml

    repos:
      - repo: https://github.com/PyCQA/flake8
        rev: "7.1.0"
        hooks:
          - id: flake8
            additional_dependencies:
              - docsig==0.66.0
            args:
              - "--sig-check-class"
              - "--sig-check-dunders"
              - "--sig-check-overridden"
              - "--sig-check-protected"

            

Raw data

            {
    "_id": null,
    "home_page": "https://pypi.org/project/docsig/",
    "name": "docsig",
    "maintainer": "jshwi",
    "docs_url": null,
    "requires_python": "<4.0.0,>=3.8.1",
    "maintainer_email": "stephen@jshwisolutions.com",
    "keywords": "check, docs, docstring, params, signature",
    "author": "jshwi",
    "author_email": "stephen@jshwisolutions.com",
    "download_url": "https://files.pythonhosted.org/packages/5b/ed/33614863211c470f0f14ae734589f82c768efc51cc1150d802d147cd1015/docsig-0.66.0.tar.gz",
    "platform": null,
    "description": "|\n\n.. image:: https://raw.githubusercontent.com/jshwi/docsig/master/docs/static/docsig.svg\n   :alt: docsig logo\n   :width: 50%\n   :align: center\n\n|\n\n|License| |PyPI| |CI| |CodeQL| |pre-commit.ci status| |codecov.io| |readthedocs.org| |python3.8| |Black| |isort| |docformatter| |pylint| |Security Status| |Known Vulnerabilities| |docsig|\n\n.. |License| image:: https://img.shields.io/badge/License-MIT-yellow.svg\n   :target: https://opensource.org/licenses/MIT\n   :alt: License\n.. |PyPI| image:: https://img.shields.io/pypi/v/docsig\n   :target: https://pypi.org/project/docsig/\n   :alt: PyPI\n.. |CI| image:: https://github.com/jshwi/docsig/actions/workflows/build.yaml/badge.svg\n   :target: https://github.com/jshwi/docsig/actions/workflows/build.yaml\n   :alt: CI\n.. |CodeQL| image:: https://github.com/jshwi/docsig/actions/workflows/codeql-analysis.yml/badge.svg\n   :target: https://github.com/jshwi/docsig/actions/workflows/codeql-analysis.yml\n   :alt: CodeQL\n.. |pre-commit.ci status| image:: https://results.pre-commit.ci/badge/github/jshwi/docsig/master.svg\n   :target: https://results.pre-commit.ci/latest/github/jshwi/docsig/master\n   :alt: pre-commit.ci status\n.. |codecov.io| image:: https://codecov.io/gh/jshwi/docsig/branch/master/graph/badge.svg\n   :target: https://codecov.io/gh/jshwi/docsig\n   :alt: codecov.io\n.. |readthedocs.org| image:: https://readthedocs.org/projects/docsig/badge/?version=latest\n   :target: https://docsig.readthedocs.io/en/latest/?badge=latest\n   :alt: readthedocs.org\n.. |python3.8| image:: https://img.shields.io/badge/python-3.8-blue.svg\n   :target: https://www.python.org/downloads/release/python-380\n   :alt: python3.8\n.. |Black| image:: https://img.shields.io/badge/code%20style-black-000000.svg\n   :target: https://github.com/psf/black\n   :alt: Black\n.. |isort| image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336\n   :target: https://pycqa.github.io/isort/\n   :alt: isort\n.. |docformatter| image:: https://img.shields.io/badge/%20formatter-docformatter-fedcba.svg\n   :target: https://github.com/PyCQA/docformatter\n   :alt: docformatter\n.. |pylint| image:: https://img.shields.io/badge/linting-pylint-yellowgreen\n   :target: https://github.com/PyCQA/pylint\n   :alt: pylint\n.. |Security Status| image:: https://img.shields.io/badge/security-bandit-yellow.svg\n   :target: https://github.com/PyCQA/bandit\n   :alt: Security Status\n.. |Known Vulnerabilities| image:: https://snyk.io/test/github/jshwi/docsig/badge.svg\n   :target: https://snyk.io/test/github/jshwi/docsig/badge.svg\n   :alt: Known Vulnerabilities\n.. |docsig| image:: https://snyk.io/advisor/python/docsig/badge.svg\n   :target: https://snyk.io/advisor/python/docsig\n   :alt: docsig\n\nCheck signature params for proper documentation\n-----------------------------------------------\n\nSupports reStructuredText (``Sphinx``), ``NumPy``, and ``Google``\n\nContributing\n------------\nIf you are interested in contributing to ``docsig`` please read about contributing `here <https://docsig.readthedocs.io/en/latest/development/contributing.html>`__\n\nInstallation\n------------\n\n.. code-block:: console\n\n    $ pip install docsig\n\nUsage\n-----\n\nCommandline\n***********\n\n.. code-block:: console\n\n    usage: docsig [-h] [-V] [-l] [-c | -C] [-D] [-m] [-N] [-o] [-p] [-P] [-i] [-a] [-k] [-T]\n                  [-I] [-n] [-v] [-s STR] [-d LIST] [-t LIST] [-e PATTERN] [-E PATH [PATH ...]]\n                  [path [path ...]]\n\n    Check signature params for proper documentation\n\n    positional arguments:\n      path                  directories or files to check\n\n    optional arguments:\n      -h, --help            show this help message and exit\n      -V, --version         show program's version number and exit\n      -l, --list-checks     display a list of all checks and their messages\n      -c, --check-class     check class docstrings\n      -C, --check-class-constructor\n                            check __init__ methods. Note: mutually incompatible with -c\n      -D, --check-dunders   check dunder methods\n      -m, --check-protected-class-methods\n                            check public methods belonging to protected classes\n      -N, --check-nested    check nested functions and classes\n      -o, --check-overridden\n                            check overridden methods\n      -p, --check-protected\n                            check protected functions and classes\n      -P, --check-property-returns\n                            check property return values\n      -i, --ignore-no-params\n                            ignore docstrings where parameters are not documented\n      -a, --ignore-args     ignore args prefixed with an asterisk\n      -k, --ignore-kwargs   ignore kwargs prefixed with two asterisks\n      -T, --ignore-typechecker\n                            ignore checking return values\n      -I, --include-ignored\n                            check files even if they match a gitignore pattern\n      -n, --no-ansi         disable ansi output\n      -v, --verbose         increase output verbosity\n      -s STR, --string STR  string to parse instead of files\n      -d LIST, --disable LIST\n                            comma separated list of rules to disable\n      -t LIST, --target LIST\n                            comma separated list of rules to target\n      -e PATTERN, --exclude PATTERN\n                            regular expression of files or dirs to exclude from checks\n      -E PATH [PATH ...], --excludes PATH [PATH ...]\n                            path glob patterns to exclude from checks\n\nOptions can also be configured with the pyproject.toml file\n\n.. code-block:: toml\n\n    [tool.docsig]\n    check-dunders = false\n    check-overridden = false\n    check-protected = false\n    disable = [\n        \"SIG101\",\n        \"SIG102\",\n        \"SIG402\",\n    ]\n    target = [\n        \"SIG202\",\n        \"SIG203\",\n        \"SIG201\",\n    ]\n\nFlake8\n******\n\n``docsig`` can also be used as a ``flake8`` plugin. Install ``flake8`` and\nensure your installation has registered `docsig`\n\n.. code-block:: console\n\n    $ flake8 --version\n    7.1.0 (docsig: 0.66.0, mccabe: 0.7.0, pycodestyle: 2.12.0, pyflakes: 3.2.0) CPython 3.8.13 on Darwin\n\nAnd now use `flake8` to lint your files\n\n.. code-block:: console\n\n    $ flake8 example.py\n    example.py:1:1: SIG202 includes parameters that do not exist (params-do-not-exist) 'function'\n\nWith ``flake8`` the pyproject.toml config will still be the base config, though the\n`ini files <https://flake8.pycqa.org/en/latest/user/configuration.html#configuration-locations>`_ ``flake8`` gets it config from will override the pyproject.toml config.\nFor ``flake8`` all args and config options are prefixed with ``sig`` to\navoid any potential conflicts with other plugins\n\n.. code-block:: ini\n\n    [flake8]\n    sig-check-dunders = True\n    sig-check-overridden = True\n    sig-check-protected = True\n\n..\n   end flake8\n\nAPI\n***\n\n.. code-block:: python\n\n    >>> from docsig import docsig\n\n.. code-block:: python\n\n    >>> string = \"\"\"\n    ... def function(param1, param2, param3) -> None:\n    ...     '''\n    ...\n    ...     :param param1: About param1.\n    ...     :param param2: About param2.\n    ...     :param param3: About param3.\n    ...     '''\n    ...     \"\"\"\n    >>> docsig(string=string, no_ansi=True)\n    0\n\n.. code-block:: python\n\n    >>> string = \"\"\"\n    ... def function(param1, param2) -> None:\n    ...     '''\n    ...\n    ...     :param param1: About param1.\n    ...     :param param2: About param2.\n    ...     :param param3: About param3.\n    ...     '''\n    ... \"\"\"\n    >>> docsig(string=string, no_ansi=True)\n    2 in function\n        SIG202: includes parameters that do not exist (params-do-not-exist)\n    1\n\nA full list of checks can be found `here <https://docsig.readthedocs.io/en/latest/usage/messages.html>`__\n\nMessage Control\n***************\n\nIf you have been using ``docsig`` prior to ``v0.56.0``, please see\n`updated messages <https://docsig.readthedocs.io/en/latest/deprecated/messages.html>`_\n\n`Documentation on message control <https://docsig.readthedocs.io/en/latest/usage/message-control.html>`_\n\nClasses\n*******\n\n`Documenting classes <https://docsig.readthedocs.io/en/latest/usage/configuration.html#classes>`_\n\npre-commit\n**********\n\n``docsig`` can be used as a `pre-commit <https://pre-commit.com>`_ hook\n\nIt can be added to your .pre-commit-config.yaml as follows:\n\nStandalone\n\n.. code-block:: yaml\n\n    repos:\n      - repo: https://github.com/jshwi/docsig\n        rev: v0.66.0\n        hooks:\n          - id: docsig\n            args:\n              - \"--check-class\"\n              - \"--check-dunders\"\n              - \"--check-overridden\"\n              - \"--check-protected\"\n\nor integrated with ``flake8``\n\n.. code-block:: yaml\n\n    repos:\n      - repo: https://github.com/PyCQA/flake8\n        rev: \"7.1.0\"\n        hooks:\n          - id: flake8\n            additional_dependencies:\n              - docsig==0.66.0\n            args:\n              - \"--sig-check-class\"\n              - \"--sig-check-dunders\"\n              - \"--sig-check-overridden\"\n              - \"--sig-check-protected\"\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Check signature params for proper documentation",
    "version": "0.66.0",
    "project_urls": {
        "Documentation": "https://docsig.readthedocs.io/en/latest",
        "Homepage": "https://pypi.org/project/docsig/",
        "Repository": "https://github.com/jshwi/docsig"
    },
    "split_keywords": [
        "check",
        " docs",
        " docstring",
        " params",
        " signature"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2e4d9113dacf543abc74cd227e5da1d92f6d1648410dbc6b190edb714e1148b7",
                "md5": "e9ef6d523567dc4b383cda7240b3247f",
                "sha256": "8fa9cd40c650d25232860c999d0c044fe8440826c4144f4bcc711f843951771a"
            },
            "downloads": -1,
            "filename": "docsig-0.66.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e9ef6d523567dc4b383cda7240b3247f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0.0,>=3.8.1",
            "size": 29592,
            "upload_time": "2024-12-24T06:07:43",
            "upload_time_iso_8601": "2024-12-24T06:07:43.537312Z",
            "url": "https://files.pythonhosted.org/packages/2e/4d/9113dacf543abc74cd227e5da1d92f6d1648410dbc6b190edb714e1148b7/docsig-0.66.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5bed33614863211c470f0f14ae734589f82c768efc51cc1150d802d147cd1015",
                "md5": "0d49c955b5c7ab323d5613f14b2f923f",
                "sha256": "211c7d5244c3eee7af4793861275e1d0cb1aa4daae9da0512ef672ed0d4251b2"
            },
            "downloads": -1,
            "filename": "docsig-0.66.0.tar.gz",
            "has_sig": false,
            "md5_digest": "0d49c955b5c7ab323d5613f14b2f923f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0.0,>=3.8.1",
            "size": 26691,
            "upload_time": "2024-12-24T06:07:46",
            "upload_time_iso_8601": "2024-12-24T06:07:46.537632Z",
            "url": "https://files.pythonhosted.org/packages/5b/ed/33614863211c470f0f14ae734589f82c768efc51cc1150d802d147cd1015/docsig-0.66.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-24 06:07:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jshwi",
    "github_project": "docsig",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "docsig"
}
        
Elapsed time: 0.39957s