# Copyright (C) 2001-2018, Python Software Foundation
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Python 3.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-06-28 15:29+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: ../Doc/library/typing.rst:2
msgid ":mod:`typing` --- Support for type hints"
msgstr ""

#: ../Doc/library/typing.rst:9
msgid "**Source code:** :source:`Lib/typing.py`"
msgstr "**Code source :** :source:`Lib/typing.py`"

#: ../Doc/library/typing.rst:13
msgid ""
"The typing module has been included in the standard library on a :term:"
"`provisional basis <provisional api>`. New features might be added and API "
"may change even between minor releases if deemed necessary by the core "
"developers."
msgstr ""

#: ../Doc/library/typing.rst:20
msgid ""
"This module supports type hints as specified by :pep:`484` and :pep:`526`. "
"The most fundamental support consists of the types :data:`Any`, :data:"
"`Union`, :data:`Tuple`, :data:`Callable`, :class:`TypeVar`, and :class:"
"`Generic`.  For full specification please see :pep:`484`.  For a simplified "
"introduction to type hints see :pep:`483`."
msgstr ""

#: ../Doc/library/typing.rst:27
msgid ""
"The function below takes and returns a string and is annotated as follows::"
msgstr ""

#: ../Doc/library/typing.rst:32
msgid ""
"In the function ``greeting``, the argument ``name`` is expected to be of "
"type :class:`str` and the return type :class:`str`. Subtypes are accepted as "
"arguments."
msgstr ""

#: ../Doc/library/typing.rst:37
msgid "Type aliases"
msgstr ""

#: ../Doc/library/typing.rst:39
msgid ""
"A type alias is defined by assigning the type to the alias. In this example, "
"``Vector`` and ``List[float]`` will be treated as interchangeable synonyms::"
msgstr ""

#: ../Doc/library/typing.rst:51
msgid ""
"Type aliases are useful for simplifying complex type signatures. For "
"example::"
msgstr ""

#: ../Doc/library/typing.rst:69
msgid ""
"Note that ``None`` as a type hint is a special case and is replaced by "
"``type(None)``."
msgstr ""

#: ../Doc/library/typing.rst:75
msgid "NewType"
msgstr ""

#: ../Doc/library/typing.rst:77
msgid "Use the :func:`NewType` helper function to create distinct types::"
msgstr ""

#: ../Doc/library/typing.rst:84
msgid ""
"The static type checker will treat the new type as if it were a subclass of "
"the original type. This is useful in helping catch logical errors::"
msgstr ""

#: ../Doc/library/typing.rst:96
msgid ""
"You may still perform all ``int`` operations on a variable of type "
"``UserId``, but the result will always be of type ``int``. This lets you "
"pass in a ``UserId`` wherever an ``int`` might be expected, but will prevent "
"you from accidentally creating a ``UserId`` in an invalid way::"
msgstr ""

#: ../Doc/library/typing.rst:104
msgid ""
"Note that these checks are enforced only by the static type checker. At "
"runtime the statement ``Derived = NewType('Derived', Base)`` will make "
"``Derived`` a function that immediately returns whatever parameter you pass "
"it. That means the expression ``Derived(some_value)`` does not create a new "
"class or introduce any overhead beyond that of a regular function call."
msgstr ""

#: ../Doc/library/typing.rst:110
msgid ""
"More precisely, the expression ``some_value is Derived(some_value)`` is "
"always true at runtime."
msgstr ""

#: ../Doc/library/typing.rst:113
msgid ""
"This also means that it is not possible to create a subtype of ``Derived`` "
"since it is an identity function at runtime, not an actual type::"
msgstr ""

#: ../Doc/library/typing.rst:123
msgid ""
"However, it is possible to create a :func:`NewType` based on a 'derived' "
"``NewType``::"
msgstr ""

#: ../Doc/library/typing.rst:131
msgid "and typechecking for ``ProUserId`` will work as expected."
msgstr ""

#: ../Doc/library/typing.rst:133
msgid "See :pep:`484` for more details."
msgstr ""

#: ../Doc/library/typing.rst:137
msgid ""
"Recall that the use of a type alias declares two types to be *equivalent* to "
"one another. Doing ``Alias = Original`` will make the static type checker "
"treat ``Alias`` as being *exactly equivalent* to ``Original`` in all cases. "
"This is useful when you want to simplify complex type signatures."
msgstr ""

#: ../Doc/library/typing.rst:142
msgid ""
"In contrast, ``NewType`` declares one type to be a *subtype* of another. "
"Doing ``Derived = NewType('Derived', Original)`` will make the static type "
"checker treat ``Derived`` as a *subclass* of ``Original``, which means a "
"value of type ``Original`` cannot be used in places where a value of type "
"``Derived`` is expected. This is useful when you want to prevent logic "
"errors with minimal runtime cost."
msgstr ""

#: ../Doc/library/typing.rst:152
msgid "Callable"
msgstr ""

#: ../Doc/library/typing.rst:154
msgid ""
"Frameworks expecting callback functions of specific signatures might be type "
"hinted using ``Callable[[Arg1Type, Arg2Type], ReturnType]``."
msgstr ""

#: ../Doc/library/typing.rst:157
msgid "For example::"
msgstr "Par exemple ::"

#: ../Doc/library/typing.rst:168
msgid ""
"It is possible to declare the return type of a callable without specifying "
"the call signature by substituting a literal ellipsis for the list of "
"arguments in the type hint: ``Callable[..., ReturnType]``."
msgstr ""

#: ../Doc/library/typing.rst:173
msgid "Generics"
msgstr ""

#: ../Doc/library/typing.rst:175
msgid ""
"Since type information about objects kept in containers cannot be statically "
"inferred in a generic way, abstract base classes have been extended to "
"support subscription to denote expected types for container elements."
msgstr ""

#: ../Doc/library/typing.rst:186
msgid ""
"Generics can be parametrized by using a new factory available in typing "
"called :class:`TypeVar`."
msgstr ""

#: ../Doc/library/typing.rst:200
msgid "User-defined generic types"
msgstr ""

#: ../Doc/library/typing.rst:202
msgid "A user-defined class can be defined as a generic class."
msgstr ""

#: ../Doc/library/typing.rst:228
msgid ""
"``Generic[T]`` as a base class defines that the class ``LoggedVar`` takes a "
"single type parameter ``T`` . This also makes ``T`` valid as a type within "
"the class body."
msgstr ""

#: ../Doc/library/typing.rst:232
msgid ""
"The :class:`Generic` base class uses a metaclass that defines :meth:"
"`__getitem__` so that ``LoggedVar[t]`` is valid as a type::"
msgstr ""

#: ../Doc/library/typing.rst:241
msgid ""
"A generic type can have any number of type variables, and type variables may "
"be constrained::"
msgstr ""

#: ../Doc/library/typing.rst:253
msgid ""
"Each type variable argument to :class:`Generic` must be distinct. This is "
"thus invalid::"
msgstr ""

#: ../Doc/library/typing.rst:264
msgid "You can use multiple inheritance with :class:`Generic`::"
msgstr ""

#: ../Doc/library/typing.rst:273
msgid ""
"When inheriting from generic classes, some type variables could be fixed::"
msgstr ""

#: ../Doc/library/typing.rst:282
msgid "In this case ``MyDict`` has a single parameter, ``T``."
msgstr ""

#: ../Doc/library/typing.rst:284
msgid ""
"Using a generic class without specifying type parameters assumes :data:`Any` "
"for each position. In the following example, ``MyIterable`` is not generic "
"but implicitly inherits from ``Iterable[Any]``::"
msgstr ""

#: ../Doc/library/typing.rst:292
msgid "User defined generic type aliases are also supported. Examples::"
msgstr ""

#: ../Doc/library/typing.rst:308
msgid ""
"The metaclass used by :class:`Generic` is a subclass of :class:`abc."
"ABCMeta`. A generic class can be an ABC by including abstract methods or "
"properties, and generic classes can also have ABCs as base classes without a "
"metaclass conflict. Generic metaclasses are not supported. The outcome of "
"parameterizing generics is cached, and most types in the typing module are "
"hashable and comparable for equality."
msgstr ""

#: ../Doc/library/typing.rst:317
msgid "The :data:`Any` type"
msgstr ""

#: ../Doc/library/typing.rst:319
msgid ""
"A special kind of type is :data:`Any`. A static type checker will treat "
"every type as being compatible with :data:`Any` and :data:`Any` as being "
"compatible with every type."
msgstr ""

#: ../Doc/library/typing.rst:323
msgid ""
"This means that it is possible to perform any operation or method call on a "
"value of type on :data:`Any` and assign it to any variable::"
msgstr ""

#: ../Doc/library/typing.rst:341
msgid ""
"Notice that no typechecking is performed when assigning a value of type :"
"data:`Any` to a more precise type. For example, the static type checker did "
"not report an error when assigning ``a`` to ``s`` even though ``s`` was "
"declared to be of type :class:`str` and receives an :class:`int` value at "
"runtime!"
msgstr ""

#: ../Doc/library/typing.rst:347
msgid ""
"Furthermore, all functions without a return type or parameter types will "
"implicitly default to using :data:`Any`::"
msgstr ""

#: ../Doc/library/typing.rst:360
msgid ""
"This behavior allows :data:`Any` to be used as an *escape hatch* when you "
"need to mix dynamically and statically typed code."
msgstr ""

#: ../Doc/library/typing.rst:363
msgid ""
"Contrast the behavior of :data:`Any` with the behavior of :class:`object`. "
"Similar to :data:`Any`, every type is a subtype of :class:`object`. However, "
"unlike :data:`Any`, the reverse is not true: :class:`object` is *not* a "
"subtype of every other type."
msgstr ""

#: ../Doc/library/typing.rst:368
msgid ""
"That means when the type of a value is :class:`object`, a type checker will "
"reject almost all operations on it, and assigning it to a variable (or using "
"it as a return value) of a more specialized type is a type error. For "
"example::"
msgstr ""

#: ../Doc/library/typing.rst:390
msgid ""
"Use :class:`object` to indicate that a value could be any type in a typesafe "
"manner. Use :data:`Any` to indicate that a value is dynamically typed."
msgstr ""

#: ../Doc/library/typing.rst:394
msgid "Classes, functions, and decorators"
msgstr ""

#: ../Doc/library/typing.rst:396
msgid "The module defines the following classes, functions and decorators:"
msgstr ""

#: ../Doc/library/typing.rst:400
msgid "Type variable."
msgstr ""

#: ../Doc/library/typing.rst:402 ../Doc/library/typing.rst:809
msgid "Usage::"
msgstr ""

#: ../Doc/library/typing.rst:407
msgid ""
"Type variables exist primarily for the benefit of static type checkers.  "
"They serve as the parameters for generic types as well as for generic "
"function definitions.  See class Generic for more information on generic "
"types.  Generic functions work as follows::"
msgstr ""

#: ../Doc/library/typing.rst:420
msgid ""
"The latter example's signature is essentially the overloading of ``(str, "
"str) -> str`` and ``(bytes, bytes) -> bytes``.  Also note that if the "
"arguments are instances of some subclass of :class:`str`, the return type is "
"still plain :class:`str`."
msgstr ""

#: ../Doc/library/typing.rst:425
msgid ""
"At runtime, ``isinstance(x, T)`` will raise :exc:`TypeError`.  In general, :"
"func:`isinstance` and :func:`issubclass` should not be used with types."
msgstr ""

#: ../Doc/library/typing.rst:428
msgid ""
"Type variables may be marked covariant or contravariant by passing "
"``covariant=True`` or ``contravariant=True``.  See :pep:`484` for more "
"details.  By default type variables are invariant.  Alternatively, a type "
"variable may specify an upper bound using ``bound=<type>``. This means that "
"an actual type substituted (explicitly or implicitly) for the type variable "
"must be a subclass of the boundary type, see :pep:`484`."
msgstr ""

#: ../Doc/library/typing.rst:438
msgid "Abstract base class for generic types."
msgstr ""

#: ../Doc/library/typing.rst:440
msgid ""
"A generic type is typically declared by inheriting from an instantiation of "
"this class with one or more type variables. For example, a generic mapping "
"type might be defined as::"
msgstr ""

#: ../Doc/library/typing.rst:449
msgid "This class can then be used as follows::"
msgstr ""

#: ../Doc/library/typing.rst:462
msgid ""
"A variable annotated with ``C`` may accept a value of type ``C``. In "
"contrast, a variable annotated with ``Type[C]`` may accept values that are "
"classes themselves -- specifically, it will accept the *class object* of "
"``C``. For example::"
msgstr ""

#: ../Doc/library/typing.rst:471
msgid "Note that ``Type[C]`` is covariant::"
msgstr ""

#: ../Doc/library/typing.rst:483
msgid ""
"The fact that ``Type[C]`` is covariant implies that all subclasses of ``C`` "
"should implement the same constructor signature and class method signatures "
"as ``C``. The type checker should flag violations of this, but should also "
"allow constructor calls in subclasses that match the constructor calls in "
"the indicated base class. How the type checker is required to handle this "
"particular case may change in future revisions of :pep:`484`."
msgstr ""

#: ../Doc/library/typing.rst:491
msgid ""
"The only legal parameters for :class:`Type` are classes, unions of classes, "
"and :data:`Any`. For example::"
msgstr ""

#: ../Doc/library/typing.rst:496
msgid ""
"``Type[Any]`` is equivalent to ``Type`` which in turn is equivalent to "
"``type``, which is the root of Python's metaclass hierarchy."
msgstr ""

#: ../Doc/library/typing.rst:503
msgid "A generic version of :class:`collections.abc.Iterable`."
msgstr ""

#: ../Doc/library/typing.rst:507
msgid "A generic version of :class:`collections.abc.Iterator`."
msgstr ""

#: ../Doc/library/typing.rst:511
msgid "A generic version of :class:`collections.abc.Reversible`."
msgstr ""

#: ../Doc/library/typing.rst:515
msgid "An ABC with one abstract method ``__int__``."
msgstr ""

#: ../Doc/library/typing.rst:519
msgid "An ABC with one abstract method ``__float__``."
msgstr ""

#: ../Doc/library/typing.rst:523
msgid "An ABC with one abstract method ``__complex__``."
msgstr ""

#: ../Doc/library/typing.rst:527
msgid "An ABC with one abstract method ``__bytes__``."
msgstr ""

#: ../Doc/library/typing.rst:531
msgid ""
"An ABC with one abstract method ``__abs__`` that is covariant in its return "
"type."
msgstr ""

#: ../Doc/library/typing.rst:536
msgid ""
"An ABC with one abstract method ``__round__`` that is covariant in its "
"return type."
msgstr ""

#: ../Doc/library/typing.rst:541
msgid "A generic version of :class:`collections.abc.Container`."
msgstr ""

#: ../Doc/library/typing.rst:545
msgid "An alias to :class:`collections.abc.Hashable`"
msgstr ""

#: ../Doc/library/typing.rst:549
msgid "An alias to :class:`collections.abc.Sized`"
msgstr ""

#: ../Doc/library/typing.rst:553
msgid "A generic version of :class:`collections.abc.Collection`"
msgstr ""

#: ../Doc/library/typing.rst:559
msgid "A generic version of :class:`collections.abc.Set`."
msgstr ""

#: ../Doc/library/typing.rst:563
msgid "A generic version of :class:`collections.abc.MutableSet`."
msgstr ""

#: ../Doc/library/typing.rst:567
msgid "A generic version of :class:`collections.abc.Mapping`."
msgstr ""

#: ../Doc/library/typing.rst:571
msgid "A generic version of :class:`collections.abc.MutableMapping`."
msgstr ""

#: ../Doc/library/typing.rst:575
msgid "A generic version of :class:`collections.abc.Sequence`."
msgstr ""

#: ../Doc/library/typing.rst:579
msgid "A generic version of :class:`collections.abc.MutableSequence`."
msgstr ""

#: ../Doc/library/typing.rst:583
msgid "A generic version of :class:`collections.abc.ByteString`."
msgstr ""

#: ../Doc/library/typing.rst:585
msgid ""
"This type represents the types :class:`bytes`, :class:`bytearray`, and :"
"class:`memoryview`."
msgstr ""

#: ../Doc/library/typing.rst:588
msgid ""
"As a shorthand for this type, :class:`bytes` can be used to annotate "
"arguments of any of the types mentioned above."
msgstr ""

#: ../Doc/library/typing.rst:593
msgid "A generic version of :class:`collections.deque`."
msgstr ""

#: ../Doc/library/typing.rst:599
msgid ""
"Generic version of :class:`list`. Useful for annotating return types. To "
"annotate arguments it is preferred to use abstract collection types such as :"
"class:`Mapping`, :class:`Sequence`, or :class:`AbstractSet`."
msgstr ""

#: ../Doc/library/typing.rst:604
msgid "This type may be used as follows::"
msgstr ""

#: ../Doc/library/typing.rst:616
msgid "A generic version of :class:`builtins.set <set>`."
msgstr ""

#: ../Doc/library/typing.rst:620
msgid "A generic version of :class:`builtins.frozenset <frozenset>`."
msgstr ""

#: ../Doc/library/typing.rst:624
msgid "A generic version of :class:`collections.abc.MappingView`."
msgstr ""

#: ../Doc/library/typing.rst:628
msgid "A generic version of :class:`collections.abc.KeysView`."
msgstr ""

#: ../Doc/library/typing.rst:632
msgid "A generic version of :class:`collections.abc.ItemsView`."
msgstr ""

#: ../Doc/library/typing.rst:636
msgid "A generic version of :class:`collections.abc.ValuesView`."
msgstr ""

#: ../Doc/library/typing.rst:640
msgid "A generic version of :class:`collections.abc.Awaitable`."
msgstr ""

#: ../Doc/library/typing.rst:644
msgid ""
"A generic version of :class:`collections.abc.Coroutine`. The variance and "
"order of type variables correspond to those of :class:`Generator`, for "
"example::"
msgstr ""

#: ../Doc/library/typing.rst:657
msgid "A generic version of :class:`collections.abc.AsyncIterable`."
msgstr ""

#: ../Doc/library/typing.rst:661
msgid "A generic version of :class:`collections.abc.AsyncIterator`."
msgstr ""

#: ../Doc/library/typing.rst:665
msgid "A generic version of :class:`contextlib.AbstractContextManager`."
msgstr ""

#: ../Doc/library/typing.rst:671
msgid "A generic version of :class:`contextlib.AbstractAsyncContextManager`."
msgstr ""

#: ../Doc/library/typing.rst:677
msgid ""
"A generic version of :class:`dict`. The usage of this type is as follows::"
msgstr ""

#: ../Doc/library/typing.rst:685
msgid "A generic version of :class:`collections.defaultdict`."
msgstr ""

#: ../Doc/library/typing.rst:691
msgid "A generic version of :class:`collections.Counter`."
msgstr ""

#: ../Doc/library/typing.rst:697
msgid "A generic version of :class:`collections.ChainMap`."
msgstr ""

#: ../Doc/library/typing.rst:703
msgid ""
"A generator can be annotated by the generic type ``Generator[YieldType, "
"SendType, ReturnType]``. For example::"
msgstr ""

#: ../Doc/library/typing.rst:712
msgid ""
"Note that unlike many other generics in the typing module, the ``SendType`` "
"of :class:`Generator` behaves contravariantly, not covariantly or "
"invariantly."
msgstr ""

#: ../Doc/library/typing.rst:716
msgid ""
"If your generator will only yield values, set the ``SendType`` and "
"``ReturnType`` to ``None``::"
msgstr ""

#: ../Doc/library/typing.rst:724
msgid ""
"Alternatively, annotate your generator as having a return type of either "
"``Iterable[YieldType]`` or ``Iterator[YieldType]``::"
msgstr ""

#: ../Doc/library/typing.rst:734
msgid ""
"An async generator can be annotated by the generic type "
"``AsyncGenerator[YieldType, SendType]``. For example::"
msgstr ""

#: ../Doc/library/typing.rst:743
msgid ""
"Unlike normal generators, async generators cannot return a value, so there "
"is no ``ReturnType`` type parameter. As with :class:`Generator`, the "
"``SendType`` behaves contravariantly."
msgstr ""

#: ../Doc/library/typing.rst:747
msgid ""
"If your generator will only yield values, set the ``SendType`` to ``None``::"
msgstr ""

#: ../Doc/library/typing.rst:755
msgid ""
"Alternatively, annotate your generator as having a return type of either "
"``AsyncIterable[YieldType]`` or ``AsyncIterator[YieldType]``::"
msgstr ""

#: ../Doc/library/typing.rst:767
msgid ""
"``Text`` is an alias for ``str``. It is provided to supply a forward "
"compatible path for Python 2 code: in Python 2, ``Text`` is an alias for "
"``unicode``."
msgstr ""

#: ../Doc/library/typing.rst:771
msgid ""
"Use ``Text`` to indicate that a value must contain a unicode string in a "
"manner that is compatible with both Python 2 and Python 3::"
msgstr ""

#: ../Doc/library/typing.rst:781
msgid "Wrapper namespace for I/O stream types."
msgstr ""

#: ../Doc/library/typing.rst:783
msgid ""
"This defines the generic type ``IO[AnyStr]`` and subclasses ``TextIO`` and "
"``BinaryIO``, deriving from ``IO[str]`` and ``IO[bytes]``, respectively. "
"These represent the types of I/O streams such as returned by :func:`open`."
msgstr ""

#: ../Doc/library/typing.rst:788
msgid ""
"These types are also accessible directly as ``typing.IO``, ``typing."
"TextIO``, and ``typing.BinaryIO``."
msgstr ""

#: ../Doc/library/typing.rst:793
msgid "Wrapper namespace for regular expression matching types."
msgstr ""

#: ../Doc/library/typing.rst:795
msgid ""
"This defines the type aliases ``Pattern`` and ``Match`` which correspond to "
"the return types from :func:`re.compile` and :func:`re.match`.  These types "
"(and the corresponding functions) are generic in ``AnyStr`` and can be made "
"specific by writing ``Pattern[str]``, ``Pattern[bytes]``, ``Match[str]``, or "
"``Match[bytes]``."
msgstr ""

#: ../Doc/library/typing.rst:802
msgid ""
"These types are also accessible directly as ``typing.Pattern`` and ``typing."
"Match``."
msgstr ""

#: ../Doc/library/typing.rst:807
msgid "Typed version of namedtuple."
msgstr ""

#: ../Doc/library/typing.rst:815
msgid "This is equivalent to::"
msgstr "C’est équivalent à ::"

#: ../Doc/library/typing.rst:819
msgid ""
"To give a field a default value, you can assign to it in the class body::"
msgstr ""

#: ../Doc/library/typing.rst:828
msgid ""
"Fields with a default value must come after any fields without a default."
msgstr ""

#: ../Doc/library/typing.rst:830
msgid ""
"The resulting class has two extra attributes: ``_field_types``, giving a "
"dict mapping field names to types, and ``_field_defaults``, a dict mapping "
"field names to default values.  (The field names are in the ``_fields`` "
"attribute, which is part of the namedtuple API.)"
msgstr ""

#: ../Doc/library/typing.rst:835
msgid "``NamedTuple`` subclasses can also have docstrings and methods::"
msgstr ""

#: ../Doc/library/typing.rst:845
msgid "Backward-compatible usage::"
msgstr ""

#: ../Doc/library/typing.rst:849
msgid "Added support for :pep:`526` variable annotation syntax."
msgstr ""

#: ../Doc/library/typing.rst:852
msgid "Added support for default values, methods, and docstrings."
msgstr ""

#: ../Doc/library/typing.rst:857
msgid ""
"A helper function to indicate a distinct types to a typechecker, see :ref:"
"`distinct`. At runtime it returns a function that returns its argument. "
"Usage::"
msgstr ""

#: ../Doc/library/typing.rst:868
msgid "Cast a value to a type."
msgstr ""

#: ../Doc/library/typing.rst:870
msgid ""
"This returns the value unchanged.  To the type checker this signals that the "
"return value has the designated type, but at runtime we intentionally don't "
"check anything (we want this to be as fast as possible)."
msgstr ""

#: ../Doc/library/typing.rst:877
msgid ""
"Return a dictionary containing type hints for a function, method, module or "
"class object."
msgstr ""

#: ../Doc/library/typing.rst:880
msgid ""
"This is often the same as ``obj.__annotations__``. In addition, forward "
"references encoded as string literals are handled by evaluating them in "
"``globals`` and ``locals`` namespaces. If necessary, ``Optional[t]`` is "
"added for function and method annotations if a default value equal to "
"``None`` is set. For a class ``C``, return a dictionary constructed by "
"merging all the ``__annotations__`` along ``C.__mro__`` in reverse order."
msgstr ""

#: ../Doc/library/typing.rst:890
msgid ""
"The ``@overload`` decorator allows describing functions and methods that "
"support multiple different combinations of argument types. A series of "
"``@overload``-decorated definitions must be followed by exactly one non-"
"``@overload``-decorated definition (for the same function/method). The "
"``@overload``-decorated definitions are for the benefit of the type checker "
"only, since they will be overwritten by the non-``@overload``-decorated "
"definition, while the latter is used at runtime but should be ignored by a "
"type checker.  At runtime, calling a ``@overload``-decorated function "
"directly will raise ``NotImplementedError``. An example of overload that "
"gives a more precise type than can be expressed using a union or a type "
"variable::"
msgstr ""

#: ../Doc/library/typing.rst:914
msgid "See :pep:`484` for details and comparison with other typing semantics."
msgstr ""

#: ../Doc/library/typing.rst:918
msgid "Decorator to indicate that annotations are not type hints."
msgstr ""

#: ../Doc/library/typing.rst:920
msgid ""
"This works as class or function :term:`decorator`.  With a class, it applies "
"recursively to all methods defined in that class (but not to methods defined "
"in its superclasses or subclasses)."
msgstr ""

#: ../Doc/library/typing.rst:924
msgid "This mutates the function(s) in place."
msgstr ""

#: ../Doc/library/typing.rst:928
msgid "Decorator to give another decorator the :func:`no_type_check` effect."
msgstr ""

#: ../Doc/library/typing.rst:930
msgid ""
"This wraps the decorator with something that wraps the decorated function "
"in :func:`no_type_check`."
msgstr ""

#: ../Doc/library/typing.rst:935
msgid "Special type indicating an unconstrained type."
msgstr ""

#: ../Doc/library/typing.rst:937
msgid "Every type is compatible with :data:`Any`."
msgstr ""

#: ../Doc/library/typing.rst:938
msgid ":data:`Any` is compatible with every type."
msgstr ""

#: ../Doc/library/typing.rst:942
msgid "Special type indicating that a function never returns. For example::"
msgstr ""

#: ../Doc/library/typing.rst:954
msgid "Union type; ``Union[X, Y]`` means either X or Y."
msgstr ""

#: ../Doc/library/typing.rst:956
msgid "To define a union, use e.g. ``Union[int, str]``.  Details:"
msgstr ""

#: ../Doc/library/typing.rst:958
msgid "The arguments must be types and there must be at least one."
msgstr ""

#: ../Doc/library/typing.rst:960
msgid "Unions of unions are flattened, e.g.::"
msgstr ""

#: ../Doc/library/typing.rst:964
msgid "Unions of a single argument vanish, e.g.::"
msgstr ""

#: ../Doc/library/typing.rst:968
msgid "Redundant arguments are skipped, e.g.::"
msgstr ""

#: ../Doc/library/typing.rst:972
msgid "When comparing unions, the argument order is ignored, e.g.::"
msgstr ""

#: ../Doc/library/typing.rst:976
msgid "You cannot subclass or instantiate a union."
msgstr ""

#: ../Doc/library/typing.rst:978
msgid "You cannot write ``Union[X][Y]``."
msgstr ""

#: ../Doc/library/typing.rst:980
msgid "You can use ``Optional[X]`` as a shorthand for ``Union[X, None]``."
msgstr ""

#: ../Doc/library/typing.rst:982
msgid "Don't remove explicit subclasses from unions at runtime."
msgstr ""

#: ../Doc/library/typing.rst:987
msgid "Optional type."
msgstr ""

#: ../Doc/library/typing.rst:989
msgid "``Optional[X]`` is equivalent to ``Union[X, None]``."
msgstr ""

#: ../Doc/library/typing.rst:991
msgid ""
"Note that this is not the same concept as an optional argument, which is one "
"that has a default.  An optional argument with a default needn't use the "
"``Optional`` qualifier on its type annotation (although it is inferred if "
"the default is ``None``). A mandatory argument may still have an "
"``Optional`` type if an explicit value of ``None`` is allowed."
msgstr ""

#: ../Doc/library/typing.rst:1000
msgid ""
"Tuple type; ``Tuple[X, Y]`` is the type of a tuple of two items with the "
"first item of type X and the second of type Y."
msgstr ""

#: ../Doc/library/typing.rst:1003
msgid ""
"Example: ``Tuple[T1, T2]`` is a tuple of two elements corresponding to type "
"variables T1 and T2.  ``Tuple[int, float, str]`` is a tuple of an int, a "
"float and a string."
msgstr ""

#: ../Doc/library/typing.rst:1007
msgid ""
"To specify a variable-length tuple of homogeneous type, use literal "
"ellipsis, e.g. ``Tuple[int, ...]``. A plain :data:`Tuple` is equivalent to "
"``Tuple[Any, ...]``, and in turn to :class:`tuple`."
msgstr ""

#: ../Doc/library/typing.rst:1013
msgid "Callable type; ``Callable[[int], str]`` is a function of (int) -> str."
msgstr ""

#: ../Doc/library/typing.rst:1015
msgid ""
"The subscription syntax must always be used with exactly two values: the "
"argument list and the return type.  The argument list must be a list of "
"types or an ellipsis; the return type must be a single type."
msgstr ""

#: ../Doc/library/typing.rst:1020
msgid ""
"There is no syntax to indicate optional or keyword arguments; such function "
"types are rarely used as callback types. ``Callable[..., ReturnType]`` "
"(literal ellipsis) can be used to type hint a callable taking any number of "
"arguments and returning ``ReturnType``.  A plain :data:`Callable` is "
"equivalent to ``Callable[..., Any]``, and in turn to :class:`collections.abc."
"Callable`."
msgstr ""

#: ../Doc/library/typing.rst:1030
msgid "Special type construct to mark class variables."
msgstr ""

#: ../Doc/library/typing.rst:1032
msgid ""
"As introduced in :pep:`526`, a variable annotation wrapped in ClassVar "
"indicates that a given attribute is intended to be used as a class variable "
"and should not be set on instances of that class. Usage::"
msgstr ""

#: ../Doc/library/typing.rst:1040
msgid ":data:`ClassVar` accepts only types and cannot be further subscribed."
msgstr ""

#: ../Doc/library/typing.rst:1042
msgid ""
":data:`ClassVar` is not a class itself, and should not be used with :func:"
"`isinstance` or :func:`issubclass`. :data:`ClassVar` does not change Python "
"runtime behavior, but it can be used by third-party type checkers. For "
"example, a type checker might flag the following code as an error::"
msgstr ""

#: ../Doc/library/typing.rst:1056
msgid ""
"``AnyStr`` is a type variable defined as ``AnyStr = TypeVar('AnyStr', str, "
"bytes)``."
msgstr ""

#: ../Doc/library/typing.rst:1059
msgid ""
"It is meant to be used for functions that may accept any kind of string "
"without allowing different kinds of strings to mix. For example::"
msgstr ""

#: ../Doc/library/typing.rst:1071
msgid ""
"A special constant that is assumed to be ``True`` by 3rd party static type "
"checkers. It is ``False`` at runtime. Usage::"
msgstr ""

#: ../Doc/library/typing.rst:1080
msgid ""
"Note that the first type annotation must be enclosed in quotes, making it a "
"\"forward reference\", to hide the ``expensive_mod`` reference from the "
"interpreter runtime.  Type annotations for local variables are not "
"evaluated, so the second annotation does not need to be enclosed in quotes."
msgstr ""
