Ë
    r0žj®E  ã                   óÌ  — U d Z ddlZddlZddlZddlZddlZddlZddlm	Z	 ddl
mZmZmZ ddlmZmZ ddlZddlmZmZmZmZ dZej,                  dd d	k(  Zd
ededefd„Zd
ededefd„Z edd«      Zde_          edd«      Zde_          edd«      Zde_          edd«      Zde_          edd«      Zde_          edd«      Zd e_          ed!d"«      Z d#e _          ed$d%«      Z!d&e!_          ed'd(«      Z"d)e"_          ed*d+«      Z#d,e#_          ed-d.«      Z$d/e$_          ed0d1«      Z%d2e%_         d3ede&fd4„Z' ed5d6«      Z(d7e(_          ed8d9«      Z)d:e)_          ed;d<«      Z*d=e*_          ed>d?«      Z+d@e+_          edAdB«      Z,dCe,_          edDdE«      Z-dFe-_          edGdH«      Z.dIe._          edJdK«      Z/dLe/_          edMdN«      Z0dOe0_          edPdQ«      Z1dRe1_          edSdT«      Z2dUe2_          edVdW«      Z3dXe3_          edYdZ«      Z4d[e4_          ed\d]«      Z5d^e5_          ed_d`«      Z6dae6_          edbdc«      Z7er	d3edddfde„Z8n	 edbdf«      Z8dge8_          edhdi«      Z9dje9_         ej,                  dkk\  r!ej(                  ej(                  fZ:d3eddlfdm„Z;nej(                  Z<d3eddlfdn„Z;doe;_         i ejz                  ej|                  jz                  “ej~                  ej|                  j~                  “ej€                  ej|                  j€                  “ej‚                  ej|                  j‚                  “ej„                  ej|                  j„                  “ej†                  ej|                  j†                  “ejˆ                  ej|                  jˆ                  “ejŠ                  ej|                  jŠ                  “ejŒ                  ej|                  jŒ                  “ejŽ                  ej|                  jŽ                  “ej�                  ej|                  j�                  “ej’                  ej|                  j’                  “ej”                  ej|                  j–                  “ej˜                  ej|                  j˜                  “ejš                  ej|                  jš                  “ejœ                  ej|                  jœ                  “ejž                  ej|                  jž                  “i ej                   ej|                  j                   “ej¢                  eR“ej¦                  eT“ejª                  ej¬                  “ej–                  eW“ej°                  eY“ej´                  ej|                  j´                  “ej¶                  ej|                  j¶                  “ej¸                  ej|                  j¸                  “ejº                  ej|                  jº                  “ej¼                  e_“ejÀ                  ejÂ                  “ejÄ                  ejÄ                  “ejÆ                  ejÆ                  “ejÈ                  ejÈ                  “ejÊ                  ej|                  jÊ                  “ejÌ                  ej|                  jÌ                  “¥ejÎ                  ehejÒ                  ejÒ                  ejÔ                  ejÔ                  ejÖ                  ejØ                  ejÚ                  ejÜ                  i¥Zoee_eehe   f      epdp<   	 eojã                  «       D � �ci c]  \  } } er| «      |“Œ c}} Zsee_etehe   f      epdq<   	  eTeojã                  «       «      D ]!  \  ZuZv eweeujð                  d«      xZy€Œeveoey<   Œ# yc c}} w )rzÏLow-level introspection utilities for [`typing`][] members.

The provided functions in this module check against both the [`typing`][] and [`typing_extensions`][]
variants, if they exists and are different.
é    N)Údedent)ÚFunctionTypeÚGenericAliasÚNoneType)ÚAnyÚFinal)ÚLiteralStringÚTypeAliasTypeÚTypeIsÚ
deprecated)"ÚDEPRECATED_ALIASESÚDEPRECATED_ALIASES_IDSr   Úis_annotatedÚis_anyÚis_classvarÚis_concatenateÚis_deprecatedÚis_finalÚis_forwardrefÚ
is_genericÚ
is_literalÚis_literalstringÚis_namedtupleÚis_neverÚ
is_newtypeÚis_nodefaultÚis_noextraitemsÚis_noreturnÚis_notrequiredÚis_paramspecÚis_paramspecargsÚis_paramspeckwargsÚis_readonlyÚis_requiredÚis_selfÚis_typealiasÚis_typealiastypeÚis_typeguardÚ	is_typeisÚ
is_typevarÚis_typevartupleÚis_unionÚ	is_unpacké   )é   é
   ÚmemberÚfunction_nameÚreturnc                 ó„  — t        t        | «      }t        t        | «      }dt        i}|r;|r9t	        t        | «      }t	        t        | «      }||u r||d<   d}nC||d<   ||d<   d}n6|r|st	        t        | «      |d<   d}n|s|rt	        t        | «      |d<   d}nd}t        d|› d	|› d
�«      }i }	t        |||	«       |	|   S )as  Create a function checking that the function argument is the (unparameterized) typing `member`.

    The function will make sure to check against both the `typing` and `typing_extensions`
    variants as depending on the Python version, the `typing_extensions` variant might be different.
    For instance, on Python 3.9:

    ```pycon
    >>> from typing import Literal as t_Literal
    >>> from typing_extensions import Literal as te_Literal, get_origin

    >>> t_Literal is te_Literal
    False
    >>> get_origin(t_Literal[1])
    typing.Literal
    >>> get_origin(te_Literal[1])
    typing_extensions.Literal
    ```
    r   Ú_objzobj is _objÚ_t_objÚ_te_objzobj is _t_obj or obj is _te_objÚFalseú	
    def z&(obj: Any, /) -> bool:
        return ú
    ©ÚhasattrÚtypingÚtyping_extensionsr   Úgetattrr   Úexec©
r1   r2   Ú	in_typingÚin_typing_extensionsÚglobals_Út_objÚte_objÚ
check_codeÚ	func_codeÚlocals_s
             úX/home/Script/Script_env/lib/python3.12/site-packages/typing_inspection/typing_objects.pyÚ _compile_identity_check_functionrK   =   sû   € ô& œ Ó'€IÜ"Ô#4°fÓ=Ðà %¤s˜|€HáÑ)ô œ Ó'ˆÜÔ*¨FÓ3ˆØ�F‰?Ø$ˆH�VÑØ&‰Jà!&ˆH�XÑØ"(ˆH�YÑØ:‰JÙ	Ñ/Ü"¤6¨6Ó2ˆ�ÑØ"‰
ÙÑ/Ü"Ô#4°fÓ=ˆ�ÑØ"‰
àˆ
äð 	Ø	ˆð Øˆ|ð ðó 	€Ið
 !€GÜˆ�H˜gÔ&Ø�=Ñ!Ð!ó    c           	      ó„  — t        t        | «      }t        t        | «      }dt        i}|r8|r6t	        t        | «      }t	        t        | «      }||u r||d<   d}n@||f|d<   d}n6|r|st	        t        | «      |d<   d}n|s|rt	        t        | «      |d<   d}nd}t        d|› d| › d	|› d
�«      }i }	t        |||	«       |	|   S )a  Create a function checking that the function is an instance of the typing `member`.

    The function will make sure to check against both the `typing` and `typing_extensions`
    variants as depending on the Python version, the `typing_extensions` variant might be different.
    r   r5   zisinstance(obj, _obj)Ú_objszisinstance(obj, _objs)r8   r9   z(obj: Any, /) -> 'TypeIs[z]':
        return r:   r;   rA   s
             rJ   Ú"_compile_isinstance_check_functionrO   t   sü   € ô œ Ó'€IÜ"Ô#4°fÓ=Ðà %¤s˜|€HáÑ)ô œ Ó'ˆÜÔ*¨FÓ3ˆØ�F‰?Ø$ˆH�VÑØ0‰Jà!&¨ ˆH�WÑØ1‰JÙ	Ñ/Ü"¤6¨6Ó2ˆ�ÑØ,‰
ÙÑ/Ü"Ô#4°fÓ=ˆ�ÑØ,‰
àˆ
äð 	Ø	ˆÐ0°°ð 9Øˆ|ð ðó 	€Ið
 !€GÜˆ�H˜gÔ&Ø�=Ñ!Ð!rL   Ú	Annotatedr   z±
Return whether the argument is the [`Annotated`][typing.Annotated] [special form][].

```pycon
>>> is_annotated(Annotated)
True
>>> is_annotated(Annotated[int, ...])
False
```
r   r   zm
Return whether the argument is the [`Any`][typing.Any] [special form][].

```pycon
>>> is_any(Any)
True
```
ÚClassVarr   z¬
Return whether the argument is the [`ClassVar`][typing.ClassVar] [type qualifier][].

```pycon
>>> is_classvar(ClassVar)
True
>>> is_classvar(ClassVar[int])
>>> False
```
ÚConcatenater   z»
Return whether the argument is the [`Concatenate`][typing.Concatenate] [special form][].

```pycon
>>> is_concatenate(Concatenate)
True
>>> is_concatenate(Concatenate[int, P])
False
```
r   r   z–
Return whether the argument is the [`Final`][typing.Final] [type qualifier][].

```pycon
>>> is_final(Final)
True
>>> is_final(Final[int])
False
```
Ú
ForwardRefr   zˆ
Return whether the argument is an instance of [`ForwardRef`][typing.ForwardRef].

```pycon
>>> is_forwardref(ForwardRef('T'))
True
```
ÚGenericr   zž
Return whether the argument is the [`Generic`][typing.Generic] [special form][].

```pycon
>>> is_generic(Generic)
True
>>> is_generic(Generic[T])
False
```
ÚLiteralr   z 
Return whether the argument is the [`Literal`][typing.Literal] [special form][].

```pycon
>>> is_literal(Literal)
True
>>> is_literal(Literal["a"])
False
```
Ú	ParamSpecr    zŽ
Return whether the argument is an instance of [`ParamSpec`][typing.ParamSpec].

```pycon
>>> P = ParamSpec('P')
>>> is_paramspec(P)
True
```
ÚTypeVarr*   z†
Return whether the argument is an instance of [`TypeVar`][typing.TypeVar].

```pycon
>>> T = TypeVar('T')
>>> is_typevar(T)
True
```
ÚTypeVarTupler+   z�
Return whether the argument is an instance of [`TypeVarTuple`][typing.TypeVarTuple].

```pycon
>>> Ts = TypeVarTuple('Ts')
>>> is_typevartuple(Ts)
True
```
ÚUnionr,   a¦  
Return whether the argument is the [`Union`][typing.Union] [special form][].

This function can also be used to check for the [`Optional`][typing.Optional] [special form][],
as at runtime, `Optional[int]` is equivalent to `Union[int, None]`.

```pycon
>>> is_union(Union)
True
>>> is_union(Union[int, str])
False
```

!!! warning
    This does not check for unions using the [new syntax][types-union] (e.g. `int | str`).
Úobjc                ób   — t        | t        «      xr t        | t        «      xr t	        | d«      S )aÃ  Return whether the argument is a named tuple type.

    This includes [`NamedTuple`][typing.NamedTuple] subclasses and classes created from the
    [`collections.namedtuple`][] factory function.

    ```pycon
    >>> class User(NamedTuple):
    ...     name: str
    ...
    >>> is_namedtuple(User)
    True
    >>> City = collections.namedtuple('City', [])
    >>> is_namedtuple(City)
    True
    >>> is_namedtuple(NamedTuple)
    False
    ```
    Ú_fields)Ú
isinstanceÚtypeÚ
issubclassÚtupler<   ©rZ   s    rJ   r   r   9  s)   € ô& �cœ4Ó ÒW¤Z°´UÓ%;ÒWÄÈÈYÓ@WÐWrL   r	   r   z•
Return whether the argument is the [`LiteralString`][typing.LiteralString] [special form][].

```pycon
>>> is_literalstring(LiteralString)
True
```
ÚNeverr   zu
Return whether the argument is the [`Never`][typing.Never] [special form][].

```pycon
>>> is_never(Never)
True
```
ÚNewTyper   z�
Return whether the argument is a [`NewType`][typing.NewType].

```pycon
>>> UserId = NewType("UserId", int)
>>> is_newtype(UserId)
True
```
Ú	NoDefaultr   z„
Return whether the argument is the [`NoDefault`][typing.NoDefault] sentinel object.

```pycon
>>> is_nodefault(NoDefault)
True
```
ÚNoExtraItemsr   zy
Return whether the argument is the `NoExtraItems` sentinel object.

```pycon
>>> is_noextraitems(NoExtraItems)
True
```
ÚNoReturnr   zž
Return whether the argument is the [`NoReturn`][typing.NoReturn] [special form][].

```pycon
>>> is_noreturn(NoReturn)
True
>>> is_noreturn(Never)
False
```
ÚNotRequiredr   z�
Return whether the argument is the [`NotRequired`][typing.NotRequired] [special form][].

```pycon
>>> is_notrequired(NotRequired)
True
```
ÚParamSpecArgsr!   zŸ
Return whether the argument is an instance of [`ParamSpecArgs`][typing.ParamSpecArgs].

```pycon
>>> P = ParamSpec('P')
>>> is_paramspecargs(P.args)
True
```
ÚParamSpecKwargsr"   z§
Return whether the argument is an instance of [`ParamSpecKwargs`][typing.ParamSpecKwargs].

```pycon
>>> P = ParamSpec('P')
>>> is_paramspeckwargs(P.kwargs)
True
```
ÚReadOnlyr#   z�
Return whether the argument is the [`ReadOnly`][typing.ReadOnly] [special form][].

```pycon
>>> is_readonly(ReadOnly)
True
```
ÚRequiredr$   z�
Return whether the argument is the [`Required`][typing.Required] [special form][].

```pycon
>>> is_required(Required)
True
```
ÚSelfr%   zq
Return whether the argument is the [`Self`][typing.Self] [special form][].

```pycon
>>> is_self(Self)
True
```
Ú	TypeAliasr&   z…
Return whether the argument is the [`TypeAlias`][typing.TypeAlias] [special form][].

```pycon
>>> is_typealias(TypeAlias)
True
```
Ú	TypeGuardr(   z…
Return whether the argument is the [`TypeGuard`][typing.TypeGuard] [special form][].

```pycon
>>> is_typeguard(TypeGuard)
True
```
r   r)   zy
Return whether the argument is the [`TypeIs`][typing.TypeIs] [special form][].

```pycon
>>> is_typeis(TypeIs)
True
```
r
   Ú_is_typealiastype_innerzTypeIs[TypeAliasType]c                ó>   — t        | «      t        uxr t        | «      S ©N)r^   r   ro   ra   s    rJ   r'   r'   ø  s   € Ü�C‹y¤Ð,ÒMÔ1HÈÓ1MÐMrL   r'   a'  
Return whether the argument is a [`TypeAliasType`][typing.TypeAliasType] instance.

```pycon
>>> type MyInt = int
>>> is_typealiastype(MyInt)
True
>>> MyStr = TypeAliasType("MyStr", str)
>>> is_typealiastype(MyStr):
True
>>> type MyList[T] = list[T]
>>> is_typealiastype(MyList[int])
False
```
ÚUnpackr-   z™
Return whether the argument is the [`Unpack`][typing.Unpack] [special form][].

```pycon
>>> is_unpack(Unpack)
True
>>> is_unpack(Unpack[Ts])
False
```
)r/   é   zTypeIs[deprecated]c                ó"   — t        | t        «      S rq   )r]   Ú_deprecated_typesra   s    rJ   r   r     s   € Ü˜#Ô0Ó1Ð1rL   c                ó"   — t        | t        «      S rq   )r]   Ú_deprecated_typera   s    rJ   r   r   #  s   € Ü˜#Ô/Ó0Ð0rL   a+  
Return whether the argument is a [`deprecated`][warnings.deprecated] instance.

This also includes the [`typing_extensions` backport][typing_extensions.deprecated].

```pycon
>>> is_deprecated(warnings.deprecated('message'))
True
>>> is_deprecated(typing_extensions.deprecated('message'))
True
```
r   r   )zÚ__doc__Úcollections.abcÚcollectionsÚ
contextlibÚreÚsysr=   ÚwarningsÚtextwrapr   Útypesr   r   r   r   r   r>   r	   r
   r   r   Ú__all__Úversion_infoÚ	_IS_PY310rK   rO   r   r   r   r   r   r   r   r   r    r*   r+   r,   Úboolr   r   r   r   r   r   r   r   r!   r"   r#   r$   r%   r&   r(   r)   ro   r'   r-   ru   r   rw   ÚHashableÚabcÚ	AwaitableÚ	CoroutineÚAsyncIterableÚAsyncIteratorÚIterableÚIteratorÚ
ReversibleÚSizedÚ	ContainerÚ
CollectionÚCallableÚAbstractSetÚSetÚ
MutableSetÚMappingÚMutableMappingÚSequenceÚMutableSequenceÚTupler`   ÚListÚlistÚDequeÚdequeÚsetÚ	FrozenSetÚ	frozensetÚMappingViewÚKeysViewÚ	ItemsViewÚ
ValuesViewÚDictÚdictÚDefaultDictÚdefaultdictÚOrderedDictÚCounterÚChainMapÚ	GeneratorÚAsyncGeneratorÚTyper^   ÚPatternÚMatchÚContextManagerÚAbstractContextManagerÚAsyncContextManagerÚAbstractAsyncContextManagerr   Ú__annotations__ÚitemsÚidr   ÚintÚaliasÚtargetr?   Ú__name__Úte_alias)ÚkÚvs   00rJ   ú<module>r¿      s`  ðòó Û Û 	Û 
Û Û Ý ß 6Ñ 6ß ã ß NÓ Nð#€ðJ ×Ñ˜R˜aÐ  GÑ+€	ð4"¨]ð 4"È=ð 4"Ð]ió 4"ðn&"¨}ð &"È]ð &"Ð_kó &"ñV 0°¸^ÓL€ð	€Ô ñ 
*¨%°Ó	:€ð€„ñ /¨z¸=ÓI€ð	€Ô ñ 2°-ÐAQÓR€ð	€Ô ñ ,¨G°ZÓ@€ð	€Ô ñ 3°<ÀÓQ€ð€Ô ñ .¨i¸ÓF€
ð	€
Ô ñ .¨i¸ÓF€
ð	€
Ô ñ 2°+¸~ÓN€ð€Ô ñ 0°	¸<ÓH€
ð€
Ô ñ 5°^ÐEVÓW€ð€Ô ñ ,¨G°ZÓ@€ð€Ô ð$X�sð X $ó Xñ4 4°OÐEWÓXÐ ðÐ Ô ñ ,¨G°ZÓ@€ð€Ô ñ 0°	¸<ÓH€
ð€
Ô ñ 0°¸^ÓL€ð€Ô ñ 3°>ÐCTÓU€ð€Ô ñ /¨z¸=ÓI€ð	€Ô ñ 2°-ÐAQÓR€ð€Ô ñ 6°oÐGYÓZÐ ðÐ Ô ñ 8Ð8IÐK_Ó`Ð ðÐ Ô ñ /¨z¸=ÓI€ð€Ô ñ /¨z¸=ÓI€ð€Ô ñ +¨6°9Ó
=€ð€„ñ 0°¸^ÓL€ð€Ô ñ 0°¸^ÓL€ð€Ô ñ -¨X°{ÓC€	ð€	Ô ñ =¸_ÐNgÓhÐ ñ ð
N˜cð NÐ)@ô Nñ :¸/ÐK]Ó^ÐðÐ Ô ñ  -¨X°{ÓC€	ð	€	Ô ð ×Ñ�wÒØ!×,Ñ,Ð.?×.JÑ.JÐKÐð2˜3ð 2Ð&:ô 2ð )×3Ñ3Ðð1˜3ð 1Ð&:ó 1ð€Ô ð+3Ø
‡O�O�[—_‘_×-Ñ-ð+3à
×Ñ�k—o‘o×/Ñ/ð+3ð ×Ñ�k—o‘o×/Ñ/ð+3ð ×Ñ˜+Ÿ/™/×7Ñ7ð	+3ð
 ×Ñ˜+Ÿ/™/×7Ñ7ð+3ð ‡O�O�[—_‘_×-Ñ-ð+3ð ‡O�O�[—_‘_×-Ñ-ð+3ð ×Ñ�{—‘×1Ñ1ð+3ð ‡L�L�+—/‘/×'Ñ'ð+3ð ×Ñ�k—o‘o×/Ñ/ð+3ð ×Ñ�{—‘×1Ñ1ð+3ð ‡O�O�[—_‘_×-Ñ-ð+3ð ×Ñ˜Ÿ™×+Ñ+ð+3ð ×Ñ�{—‘×1Ñ1ð+3ð  ‡N�N�K—O‘O×+Ñ+ð!+3ð" ×Ñ˜;Ÿ?™?×9Ñ9ð#+3ð$ ‡O�O�[—_‘_×-Ñ-ñ%+3ð& ×Ñ˜KŸO™O×;Ñ;ð'+3ð( ‡L�L�%ð)+3ð* ‡K�K�ð++3ð, ‡L�L�+×#Ñ#ð-+3ð. ‡J�J�ð/+3ð0 ×Ñ�ið1+3ð2 ×Ñ˜Ÿ™×3Ñ3ð3+3ð4 ‡O�O�[—_‘_×-Ñ-ð5+3ð6 ×Ñ�k—o‘o×/Ñ/ð7+3ð8 ×Ñ�{—‘×1Ñ1ð9+3ð: ‡K�K�ð;+3ð< ×Ñ˜×/Ñ/ð=+3ð> ×Ñ˜×/Ñ/ð?+3ð@ ‡N�N�K×'Ñ'ðA+3ðB ‡O�O�[×)Ñ)ðC+3ðD ×Ñ�k—o‘o×/Ñ/ðE+3ðF ×Ñ˜;Ÿ?™?×9Ñ9ñG+3ðH ‡K�K�à
‡N�N�B—J‘JØ
‡L�L�"—(‘(Ø
×Ñ˜:×<Ñ<Ø
×Ñ 
× FÑ FñS+3Ð �E˜$˜s D¨¡I˜~Ñ.Ñ/ó +ðX Að M_×LdÑLdÓLf×6gÁDÀAÀq±r¸!³u¸a±xÓ6gÐ ˜˜d 3¨¨S©	 >Ñ2Ñ3Ó gð Wñ Ð,×2Ñ2Ó4Ó5ò .�M€Eˆ6ÙÐ-¨u¯~©~¸tÓDÐDˆÑQØ'-Ð˜8Ò$ñ.ùó 7hs   Û=] 