Skip to main content

Generating type annotations from sampled production types

Project description

MonkeyType

MonkeyType collects runtime types of function arguments and return values, and can automatically generate stub files or even add draft type annotations directly to your Python code based on the types collected at runtime.

Examples

Run a script under call-trace logging:

$ monkeytype run myscript.py

Or enable call-trace logging for a block of code:

import monkeytype

with monkeytype.trace():
    ...

By default this will dump call traces into a sqlite database in the file monkeytype.sqlite3 in the current working directory. You can then use the monkeytype command to generate a stub file for a module, or apply the type annotations directly to your code:

$ monkeytype stub some.module
$ monkeytype apply some.module

Requirements

MonkeyType requires Python 3.6+ and the retype library (for applying type stubs to code files).

Installing

Install MonkeyType with pip:

pip install MonkeyType

How MonkeyType works

MonkeyType uses the sys.setprofile hook provided by Python to interpose on function calls, function returns, and generator yields, and record the types of arguments / return values / yield values.

It generates stub files based on that data, and can use retype to apply those stub files directly to your code.

See the full documentation for details.

LICENSE

MonkeyType is BSD licensed. We also provide an additional patent grant.

Changelog

17.12.0

  • Initial public version.

Project details


Download files

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

Source Distribution

MonkeyType-17.12.0.tar.gz (20.2 kB view details)

Uploaded Source

Built Distribution

MonkeyType-17.12.0-py3-none-any.whl (27.2 kB view details)

Uploaded Python 3

File details

Details for the file MonkeyType-17.12.0.tar.gz.

File metadata

File hashes

Hashes for MonkeyType-17.12.0.tar.gz
Algorithm Hash digest
SHA256 9977ea0091813b07373e7d58515ad4cebd8e6bfb4cb95505ecfc3f74adaeae49
MD5 e93a506c59e30476d52c3eda9c2d9067
BLAKE2b-256 19633bea45a471de6dcd9bb43c1436ce748527d8ecd6e833730eedabb739309e

See more details on using hashes here.

File details

Details for the file MonkeyType-17.12.0-py3-none-any.whl.

File metadata

File hashes

Hashes for MonkeyType-17.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cef6cd7d1c07951545837f3ece347d2891621f299666b7566534cef66820e8db
MD5 aad978dc56f7cae926c782d2e0f85e82
BLAKE2b-256 a2f93aa10cd9c9902f34131ce13028d5adaf8096b06aaa9f01b6c557a47cbfb8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page