Skip to main content
https://github.com/heavenshell/py-doq/workflows/build/badge.svg Python 3 Updates

Docstring generator.

Installation

$ pip install doq

How to use

$ cat spam.py
def spam(arg1, arg2: str) -> str:
    pass
$ cat spam.py | doq
def spam(arg1, arg2: str) -> str:
  """spam.

  :param arg1:
  :param arg2:
  :type arg2: str
  :rtype: str
  """
  pass

Default formatter is sphinx. You can choose sphinx, google or numpy.

$ cat spam.py | doq --formatter=google
def spam(arg1, arg2: str) -> str:
  """spam.

  Args:
      arg1 : arg1
      arg2 (str): arg2

  Returns:
      str:
  """
  pass
$ cat spam.py | doq --formatter=numpy
def spam(arg1, arg2: str) -> str:
  """spam.

  Parameters
  ----------
  arg1
        arg1
  arg2 : str
       arg2

  Returns
  -------
  str

  """
  pass

Usage

$ python -m doq.cli --help
usage: doq [-h] [-f FILE] [--start START] [--end END] [-t TEMPLATE_PATH]
           [-s STYLE] [--formatter FORMATTER] [--indent INDENT] [--omit OMIT]
           [-r] [-d DIRECTORY] [-w] [-v] [-c CONFIG] [--ignore_exception]
           [--ignore_yield] [--ignore_init]

Docstring generator.

optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  File or STDIN
  --start START         Start lineno
  --end END             End lineno
  -t TEMPLATE_PATH, --template_path TEMPLATE_PATH
                        Path to template directory
  -s STYLE, --style STYLE
                        Output style string or json
  --formatter FORMATTER
                        Docstring formatter. sphinx,google or numpy
  --indent INDENT       Indent number
  --omit OMIT           Omit first argument such as self
  -r, --recursive       Run recursively over directories
  -d DIRECTORY, --directory DIRECTORY
                        Path to directory
  -w, --write           Edit files in-place
  -v, --version         Output the version number
  -c CONFIG, --config CONFIG
                        Path to a setup.cfg or pyproject.toml
  --ignore_exception    Ignore exception statements
  --ignore_yield        Ignore yield statements
  --ignore_init         Ignore generate docstring to __init__ method

Customize template

doq use Jinja2 template. So you can create your own template.

File name

Description

class.txt

class docstring

def.txt

def / method docstring

noarg.txt

def / method without argument docstring

Available Jinja2’s variable

Name

Description

name

class, method, def’s name

params

argument

Method, def’s argument

annotation

Argument’s type hint

default

Defaut keyword argument

exceptions

List of exception

yields

List of yield

return_type

Return type hint

See examples

Configuration

doq will automatically search setup.cfg or pyproject.toml in your project.

setup.cfg

The section must be [doq].

configuration file example:

[doq]
style = "json"
template_path = "/path/to/template"

pyproject.toml

The section must be [tool.doq].

configuration file example:

[tool.doq]
style = "json"
template_path = "/path/to/template"

Completion

This program provides shell completions. It should be out of box if you install it from a wheel file.

LICENSE

NEW BSD LICENSE.

Release files for doq 0.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for doq 0.10.0
File Size Uploaded
doq-0.10.0.tar.gz 14.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for doq 0.10.0
File Interpreter ABI Platform
doq-0.10.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 31.6 kB

Release files / doq-0.10.0.tar.gz

Download URL doq-0.10.0.tar.gz
Size 14.9 kB
Tags Source
SHA-256 checksum
How to use checksums
672b80c1aeb9f02cda3bcbe95b3046e96319385820bacc70662cc486f4c34a86
BLAKE2b-256 checksum
How to use checksums
bc625d0ac8652ecfaf4470b22db21ca281c3c4dc2db47de8273ec46b4f99183a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release files / doq-0.10.0-py2.py3-none-any.whl

Download URL doq-0.10.0-py2.py3-none-any.whl
Size 16.8 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
19b4a3b776b14f4fbe150fb271e177a5443d563e8de12c4853eee4c1c81992f3
BLAKE2b-256 checksum
How to use checksums
3b5a6bed88a117a245cb1a2ba611013226fd8a89a347224b6bad17dd6fc99f3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release history Release notifications | RSS feed

This release

0.10.0 This release

2 release files

0.9.1

1 release file

0.9.0

1 release file

0.8.1

1 release file

0.8.0

1 release file

0.7.0

1 release file

0.6.4

1 release file

0.6.3

1 release file

0.6.2

1 release file

0.6.1

1 release file

0.6.0

1 release file

0.5.1

1 release file

0.5.0

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page