Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Python stub file generator.

Project description

pygenstub is a utility for generating stub files from docstrings in source files. It takes a source file as input and creates a stub file with the same base name and the .pyi extension.

If the docstring of a function includes a sig field, the value of that field will be used to generate a prototype by matching the types to the parameters in the same order. For example, for the code given below:

def foo(a, b):
    """Do foo.

    :sig: (int, str) -> None

pygenstub will generate the following stub:

def foo(a: int, b: str) -> None: ...

pygenstub consists of a single module which itself contains signatures. You can see the source code and the autogenerated stub file as an example.

Getting started

pygenstub has been tested with Python 2.7, Python 3.4+, and compatible versions of PyPy. You can install the latest version using pip:

pip install pygenstub

Installation creates a script named pygenstub which can be used as follows:


This command will generate the file foo.pyi in the same directory as the input file. If the output file already exists, it will be overwritten.

If pygenstub is activated as a Sphinx extension (after autodoc), it will insert type comments for parameters and return values in the docstring. It will also remove the signature fields to exclude them from the output:

extensions = [

As an example of the output, you can see the API documentation for pygenstub itself.

Getting help

The documentation is available on:

The source code can be obtained from:


Copyright (C) 2016-2019 H. Turgut Uyar <>

pygenstub is released under the GPL license, version 3 or later. Read the included LICENSE.txt for details.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pygenstub, version 1.4.0
Filename, size File type Python version Upload date Hashes
Filename, size pygenstub-1.4.0-py2.py3-none-any.whl (110.2 kB) File type Wheel Python version py2.py3 Upload date Hashes View hashes
Filename, size pygenstub-1.4.0.tar.gz (32.7 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page