PEP 484: Type Hints
This GitHub repo is used for three separate things:
The issue tracker is used to discuss PEP-level type system issues. However, typing-sig is more appropriate these days.
A copy of the
typingmodule for older Python versions (2.7 and 3.4) is maintained here. Note that the canonical source lives upstream in the CPython repo.
typing_extensionsmodule lives here.
- The typing.py module and its unittests are edited in the
srcsubdirectory of this repo. The
python2subdirectory contains the Python 2 backport.
Workflow for PyPI releases
Run tests under all supported versions. As of May 2019 this includes 2.7, 3.4, 3.5, 3.6, 3.7.
On macOS, you can use
pyenv <https://github.com/pyenv/pyenv>_ to manage multiple Python installations. Long story short:
brew install pyenv
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
- Open a new shell
pyenv install 3.5.3
pyenv install 3.4.6
- (assuming you already have 2.7.13 and 3.6.1 from Homebrew)
pyenv global system 3.5.3 3.4.6
You can use
toxto automate running tests.
Update the version number in
Build the source and wheel distributions:
pip3 install -U setuptools wheel
pip2 install -U setuptools wheel
rm -rf dist/ build/
python3 setup.py sdist bdist_wheel
rm -rf build/(Works around
a Wheel bug <https://bitbucket.org/pypa/wheel/issues/147/bdist_wheel-should-start-by-cleaning-up>_)
python2 setup.py bdist_wheel
Install the built distributions locally and test (if you were using
tox, you already tested the source distribution).
Make sure twine is up to date, then run
twine upload dist/*.