Apply get_args fix from bpo-40398 to typing_extensions (#770)

Applies the fix from https://bugs.python.org/issue40398 to typing_extensions: typing.get_args() now always returns an empty tuple for special generic aliases.
1 file changed
tree: 7d994e13a850303540c7724599496c4d92398eba
  1. drafts/
  2. python2/
  3. src/
  4. typing_extensions/
  5. .flake8-tests
  6. .gitignore
  7. .travis.yml
  8. LICENSE
  9. MANIFEST.in
  10. README.md
  11. setup.cfg
  12. setup.py
  13. test-requirements.txt
  14. tox.ini
  15. update-mypy.sh
  16. update-stdlib.sh
README.md

Chat at https://gitter.im/python/typing

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 typing module for older Python versions (2.7 and 3.4) is maintained here. Note that the canonical source lives upstream in the CPython repo.

  • The typing_extensions module lives here.

Workflow

  • The typing.py module and its unittests are edited in the src subdirectory of this repo. The python2 subdirectory 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:

    • xcode-select --install
    • 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 tox to automate running tests.

  • Update the version number in setup.py.

  • 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/*.