Command-line interface

In the simplest form, pygenstub takes a Python source file as parameter and generates a stub in the same directory:

$ pygenstub foo.py

New in version 1.4.0: It can also generate stubs for multiple source files:

$ pygenstub foo.py bar.py baz.py

New in version 1.4.0: If the input is a directory, it will recursively generate stubs for all Python source files in the hierarchy:

$ pygenstub foodir

New in version 1.4.0: By default, stub files will be placed in the same directory as their corresponding source files. The -o option can be used to change the directory where the stub files will be stored:

$ pygenstub foo.py -o out

New in version 1.4.0: By default, pygenstub will ignore any function, method, or variable that doesn’t have a type signature. If used with the --generic option, it will generate output and use the type Any in such cases:

$ pygenstub --generic foo.py

New in version 1.4.0: pygenstub can also generate stubs for modules using the -m option. In this case, an output directory must be given:

$ pygenstub -m foo -o out

Multiple modules are also supported:

$ pygenstub -m foo -m bar -o out

When used together with the --generic option, it can generate stub templates for existing modules, even without any signatures in the expected format:

$ pygenstub --generic -m xml -o out

Note that this is not a main feature for pygenstub; the stubgen utility in mypy is probably better suited for this job.