How to auto-generate the type of a field in a docstring in PyCharm?

FunkySayu picture FunkySayu · Jun 26, 2015 · Viewed 22.4k times · Source

When I create a function with parameters, PyCharm offers me to create the docstring with :param param_name: field, which is pretty good. But I also need to add the :type param_name:.

So from that :

def foo(bar, xyz):
    return bar + xyz

With the generate docstring option i have that (even with Insert 'type' and 'rtype' to the documentation stub enable) :

def foo(bar, xyz):
    """
    :param bar:
    :param xyz:
    """
    return bar + xyz

And I would like that :

def foo(bar, xyz):
    """
    :param bar:
    :type bar:
    :param xyz:
    :type xyz:
    """
    return bar + xyz

Answer

jonrsharpe picture jonrsharpe · Jun 26, 2015

Per the documentation:

If configured, the documentation comment stubs can be generated with type and rtype tags.

Following the link:

...

  1. In the Smart Keys page, select the check box Insert 'type' and 'rtype' to the documentation comment stub.

Note that the documentation has since been updated, the configuration guidance currently reads:

Enable documentation comments

  1. Open the Editor | General | Smart Keys page of PyCharm settings ⌃⌥S.

  2. In the Enter section, select or clear Insert documentation comment stub checkbox.

  3. Then, scroll to the Insert type placeholders in the documentation comment stub option and select or clear the checkbox as required. Refer to the option description for details.


Once you have done this, put the cursor in a parameter name in the definition, activate the Smart Keys feature (Alt+Enter, by default) and select Specify type for reference in docstring. This will insert the appropriate comment line . Similarly you can put the cursor in the function/method name and select Specify return type in docstring.