[3.12] Glossary: Add "static type checker" (GH-111837) (#111854)

Glossary: Add "static type checker" (GH-111837)
(cherry picked from commit 8ab7ad6308)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
This commit is contained in:
Miss Islington (bot) 2023-11-08 15:45:17 +01:00 committed by GitHub
parent d35c94566a
commit 42699c82d7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 7 deletions

View file

@ -1132,6 +1132,11 @@ Glossary
an :term:`expression` or one of several constructs with a keyword, such an :term:`expression` or one of several constructs with a keyword, such
as :keyword:`if`, :keyword:`while` or :keyword:`for`. as :keyword:`if`, :keyword:`while` or :keyword:`for`.
static type checker
An external tool that reads Python code and analyzes it, looking for
issues such as incorrect types. See also :term:`type hints <type hint>`
and the :mod:`typing` module.
strong reference strong reference
In Python's C API, a strong reference is a reference to an object In Python's C API, a strong reference is a reference to an object
which is owned by the code holding the reference. The strong which is owned by the code holding the reference. The strong
@ -1208,8 +1213,8 @@ Glossary
attribute, or a function parameter or return value. attribute, or a function parameter or return value.
Type hints are optional and are not enforced by Python but Type hints are optional and are not enforced by Python but
they are useful to static type analysis tools, and aid IDEs with code they are useful to :term:`static type checkers <static type checker>`.
completion and refactoring. They can also aid IDEs with code completion and refactoring.
Type hints of global variables, class attributes, and functions, Type hints of global variables, class attributes, and functions,
but not local variables, can be accessed using but not local variables, can be accessed using

View file

@ -39,7 +39,8 @@ are:
#. Once your dependencies are no longer blocking you, use continuous integration #. Once your dependencies are no longer blocking you, use continuous integration
to make sure you stay compatible with Python 2 and 3 (tox_ can help test to make sure you stay compatible with Python 2 and 3 (tox_ can help test
against multiple versions of Python; ``python -m pip install tox``) against multiple versions of Python; ``python -m pip install tox``)
#. Consider using optional static type checking to make sure your type usage #. Consider using optional :term:`static type checking <static type checker>`
to make sure your type usage
works in both Python 2 and 3 (e.g. use mypy_ to check your typing under both works in both Python 2 and 3 (e.g. use mypy_ to check your typing under both
Python 2 and Python 3; ``python -m pip install mypy``). Python 2 and Python 3; ``python -m pip install mypy``).
@ -395,7 +396,7 @@ comparisons occur, making the mistake much easier to track down.
Consider using optional static type checking Consider using optional static type checking
-------------------------------------------- --------------------------------------------
Another way to help port your code is to use a static type checker like Another way to help port your code is to use a :term:`static type checker` like
mypy_ or pytype_ on your code. These tools can be used to analyze your code as mypy_ or pytype_ on your code. These tools can be used to analyze your code as
if it's being run under Python 2, then you can run the tool a second time as if if it's being run under Python 2, then you can run the tool a second time as if
your code is running under Python 3. By running a static type checker twice like your code is running under Python 3. By running a static type checker twice like

View file

@ -38,7 +38,8 @@ on efficient attribute extraction for output formatting and manipulation.
Third-party library with expanded time zone and parsing support. Third-party library with expanded time zone and parsing support.
Package `DateType <https://pypi.org/project/datetype/>`_ Package `DateType <https://pypi.org/project/datetype/>`_
Third-party library that introduces distinct static types to e.g. allow static type checkers Third-party library that introduces distinct static types to e.g. allow
:term:`static type checkers <static type checker>`
to differentiate between naive and aware datetimes. to differentiate between naive and aware datetimes.
.. _datetime-naive-aware: .. _datetime-naive-aware:

View file

@ -18,8 +18,8 @@
.. note:: .. note::
The Python runtime does not enforce function and variable type annotations. The Python runtime does not enforce function and variable type annotations.
They can be used by third party tools such as type checkers, IDEs, linters, They can be used by third party tools such as :term:`type checkers <static type checker>`,
etc. IDEs, linters, etc.
-------------- --------------