Docstring generator.
$ pip install doq
$ 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
$ 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
doq use Jinja2 template. So you can create your own template.
Note
You must create 3 template files.
| File name | Description |
|---|---|
| class.txt | class docstring |
| def.txt | def / method docstring |
| noarg.txt | def / method without argument docstring |
| 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
doq will automatically search setup.cfg or pyproject.toml in your
project.
Note
ignore_exception, ignore_exception and ignore_init can set true only. If you want turn off, remove from configuration.
The section must be [doq].
configuration file example:
[doq] style = "json" template_path = "/path/to/template"
The section must be [tool.doq].
configuration file example:
[tool.doq] style = "json" template_path = "/path/to/template"
This program provides shell completions. It should be out of box if you install it from a wheel file.
NEW BSD LICENSE.