diff --git a/mypyc/doc/differences_from_python.rst b/mypyc/doc/differences_from_python.rst index f1d4d05a3a87..65ad709677af 100644 --- a/mypyc/doc/differences_from_python.rst +++ b/mypyc/doc/differences_from_python.rst @@ -107,7 +107,7 @@ performance. integer values. A side effect of this is that the exact runtime type of ``int`` values is lost. For example, consider this simple function:: - def first_int(x: List[int]) -> int: + def first_int(x: list[int]) -> int: return x[0] print(first_int([True])) # Output is 1, instead of True! diff --git a/mypyc/doc/native_classes.rst b/mypyc/doc/native_classes.rst index b2935a6f7185..7f892de3e239 100644 --- a/mypyc/doc/native_classes.rst +++ b/mypyc/doc/native_classes.rst @@ -56,7 +56,7 @@ These non-native classes can be used as base classes of native classes: * ``object`` -* ``dict`` (and ``Dict[k, v]``) +* ``dict`` (and ``dict[k, v]``) * ``BaseException`` * ``Exception`` * ``ValueError`` diff --git a/mypyc/doc/performance_tips_and_tricks.rst b/mypyc/doc/performance_tips_and_tricks.rst index ae0b2950814c..5b3c1cb42cd7 100644 --- a/mypyc/doc/performance_tips_and_tricks.rst +++ b/mypyc/doc/performance_tips_and_tricks.rst @@ -57,12 +57,11 @@ here we call ``acme.get_items()``, but it has no type annotation. We can use an explicit type annotation for the variable to which we assign the result:: - from typing import List, Tuple import acme def work() -> None: # Annotate "items" to help mypyc - items: List[Tuple[int, str]] = acme.get_items() + items: list[tuple[int, str]] = acme.get_items() for item in items: ... # Do some work here @@ -140,7 +139,7 @@ Similarly, caching a frequently called method in a local variable can help in CPython, but it can slow things down in compiled code, since the code won't use :ref:`early binding `:: - def squares(n: int) -> List[int]: + def squares(n: int) -> list[int]: a = [] append = a.append # Not a good idea in compiled code! for i in range(n): diff --git a/mypyc/doc/using_type_annotations.rst b/mypyc/doc/using_type_annotations.rst index 04c923819d54..dc0b04a974fd 100644 --- a/mypyc/doc/using_type_annotations.rst +++ b/mypyc/doc/using_type_annotations.rst @@ -37,10 +37,10 @@ implementations: * ``float`` (:ref:`native operations `) * ``bool`` (:ref:`native operations `) * ``str`` (:ref:`native operations `) -* ``List[T]`` (:ref:`native operations `) -* ``Dict[K, V]`` (:ref:`native operations `) -* ``Set[T]`` (:ref:`native operations `) -* ``Tuple[T, ...]`` (variable-length tuple; :ref:`native operations `) +* ``list[T]`` (:ref:`native operations `) +* ``dict[K, V]`` (:ref:`native operations `) +* ``set[T]`` (:ref:`native operations `) +* ``tuple[T, ...]`` (variable-length tuple; :ref:`native operations `) * ``None`` The link after each type lists all supported native, optimized @@ -61,10 +61,10 @@ variable. For example, here we have a runtime type error on the final line of ``example`` (the ``Any`` type means an arbitrary, unchecked value):: - from typing import List, Any + from typing import Any - def example(a: List[Any]) -> None: - b: List[int] = a # No error -- items are not checked + def example(a: list[Any]) -> None: + b: list[int] = a # No error -- items are not checked print(b[0]) # Error here -- got str, but expected int example(["x"]) @@ -126,7 +126,7 @@ Tuple types Fixed-length `tuple types `_ -such as ``Tuple[int, str]`` are represented +such as ``tuple[int, str]`` are represented as :ref:`value types ` when stored in variables, passed as arguments, or returned from functions. Value types are allocated in the low-level machine stack or in CPU registers, as