Skip to content

orsinium-labs/typeforce

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

typeforce

Typeforce is a CLI tool that enriches your Python environment with type annotations, empowering mypy.

In particular:

  • Generates py.typed for annotated packages.
  • Installs missed stub files and plugins.

py.typed

PEP-561 says the following:

Package maintainers who wish to support type checking of their code MUST add a marker file named py.typed to their package supporting typing.

In practice, many maintainers don't know about this marker. So there are tons of packages that do have type annotations but don't have py.typed.

Typeforce checks all installed third-party packages and adds py.typed into packages that have type annotations.

stubs and plugins

One of the breaking changes mypy 0.900 introduced is moving out all stubs and plugins for third-party packages out of mypy itself. Now, stub files for every such package should be installed manually.

Typeforce scans all installed third-party packages and installs all needed stub files and plugins if available.

Installation

python3 -m pip install --user typeforce

Usage

python3 -m typeforce --exe python3.9