Skip to content

Commit

Permalink
Distribute and install py.typed to provide type information
Browse files Browse the repository at this point in the history
Complies with PEP 561:
https://www.python.org/dev/peps/pep-0561/#packaging-type-information

By distributing and installing the py.typed file, mypy will use pip's
type information when imported into other projects. For example, the
pip-tools project can use pip's types and mypy to help verify
correctness.

mypy docs:
https://mypy.readthedocs.io/en/stable/installed_packages.html#making-pep-561-compatible-packages
  • Loading branch information
jdufresne committed Dec 15, 2020
1 parent b4fb710 commit 09e8fa9
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 0 deletions.
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ def get_version(rel_path):
exclude=["contrib", "docs", "tests*", "tasks"],
),
package_data={
"pip": ["py.typed"],
"pip._vendor": ["vendor.txt"],
"pip._vendor.certifi": ["*.pem"],
"pip._vendor.requests": ["*.pem"],
Expand Down
4 changes: 4 additions & 0 deletions src/pip/py.typed
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
pip is a command line program. While it is implemented in Python, and so is
available for import, you must not use pip's internal APIs in this way. Typing
information is provided as a convenience only and is not a gaurantee. Expect
unannounced changes to the API and types in releases.

0 comments on commit 09e8fa9

Please sign in to comment.