Change to -stubs over _stubs (#568)

Also note that a py.typed file is not needed for stub only packages.
This commit is contained in:
Ethan Smith 2018-02-05 15:30:57 -08:00 committed by Guido van Rossum
parent 8c4563933f
commit 69eb6508e1
1 changed files with 20 additions and 6 deletions

View File

@ -131,9 +131,10 @@ type information, it is preferred that the ``*.pyi`` stubs are alongside the
corresponding ``*.py`` files. However, the stubs can also be put in a separate corresponding ``*.py`` files. However, the stubs can also be put in a separate
package and distributed separately. Third parties can also find this method package and distributed separately. Third parties can also find this method
useful if they wish to distribute stub files. The name of the stub package useful if they wish to distribute stub files. The name of the stub package
MUST follow the scheme ``foopkg_stubs`` for type stubs for the package named MUST follow the scheme ``foopkg-stubs`` for type stubs for the package named
``foopkg``. The normal resolution order of checking ``*.pyi`` before ``*.py`` ``foopkg``. Note that for stub only packages adding a py.typed marker is not
will be maintained. needed since the name ``*-stubs`` is enough to indicate it is a source of typing
information.
Third parties seeking to distribute stub files are encouraged to contact the Third parties seeking to distribute stub files are encouraged to contact the
maintainer of the package about distribution alongside the package. If the maintainer of the package about distribution alongside the package. If the
@ -143,9 +144,13 @@ inline, then a third party stub only package can be created.
In addition, stub-only distributions SHOULD indicate which version(s) In addition, stub-only distributions SHOULD indicate which version(s)
of the runtime package are supported by indicating the runtime distribution's of the runtime package are supported by indicating the runtime distribution's
version(s) through normal dependency data. For example, the version(s) through normal dependency data. For example, the
stub package ``flyingcircus_stubs`` can indicate the versions of the stub package ``flyingcircus-stubs`` can indicate the versions of the
runtime ``flyingcircus`` distribution it supports through ``install_requires`` runtime ``flyingcircus`` distribution it supports through ``install_requires``
in distutils-based tools, or the equivalent in other packaging tools. in distutils-based tools, or the equivalent in other packaging tools. Note that
in pip 9.0, if you update ``flyingcircus-stubs``, it will update
``flyingcircus``. In pip 9.0, you can use the
``--upgrade-strategy=only-if-needed`` flag. In pip 10.0 this is the default
behavior.
Type Checker Module Resolution Order Type Checker Module Resolution Order
@ -161,7 +166,7 @@ resolve modules containing type information:
stubs to use, and patch broken stubs/inline types from packages. stubs to use, and patch broken stubs/inline types from packages.
3. Stub packages - these packages can supersede the installed packages. 3. Stub packages - these packages can supersede the installed packages.
They can be found at ``foopkg_stubs`` for package ``foopkg``. They can be found at ``foopkg-stubs`` for package ``foopkg``.
4. Inline packages - if there is nothing overriding the installed 4. Inline packages - if there is nothing overriding the installed
package, and it opts into type checking, inline types SHOULD be used. package, and it opts into type checking, inline types SHOULD be used.
@ -176,6 +181,9 @@ of that Python version. This can be queried e.g.
that the type checker allow for the user to point to a particular Python that the type checker allow for the user to point to a particular Python
binary, in case it is not in the path. binary, in case it is not in the path.
The normal resolution order of checking ``*.pyi`` before ``*.py``
will be maintained.
Implementation Implementation
============== ==============
@ -198,6 +206,12 @@ Smith, and Guido van Rossum.
Version History Version History
=============== ===============
* 2018-02-02
* Change stub only package suffix to be -stubs not _stubs.
* Note that py.typed is not needed for stub only packages.
* Add note about pip and upgrading stub packages.
* 2017-11-12 * 2017-11-12
* Rewritten to use existing tooling only * Rewritten to use existing tooling only