ó
    ”¬éhC  ã                   ó�  • % S r SSKrSSKrSSKrSSKrSSKrSSKrSSKJ	r	  SSK
JrJr  SSKJrJr  SSKrSSKJrJrJrJr  Sr\R*                  SS S	:H  rS
\S\S\4S jrS
\S\S\4S jr\R*                  S	:¼  a  SSK
Jr  O\" S5      r\" SS5      rS\l         \" SS5      rS\l         \" SS5      rS\l         \" SS5      rS\l         \" SS5      rS\l         \" SS 5      r S!\ l         \" S"S#5      r!S$\!l         \" S%S&5      r"S'\"l         \" S(S)5      r#S*\#l         \" S+S,5      r$S-\$l         \" S.S/5      r%S0\%l         \" S1S25      r&S3\&l         S4\S\'4S5 jr(\" S6S75      r)S8\)l         \" S9S:5      r*S;\*l         \R*                  S	:¼  a
  \" S<S=5      r+O	S4\S\'4S> jr+S?\+l         \" S@SA5      r,SB\,l         \" SCSD5      r-SE\-l         \" SFSG5      r.SH\.l         \" SISJ5      r/SK\/l         \" SLSM5      r0SN\0l         \" SOSP5      r1SQ\1l         \" SRSS5      r2ST\2l         \" SUSV5      r3SW\3l         \" SXSY5      r4SZ\4l         \" S[S\5      r5S]\5l         \" S^S_5      r6S`\6l         \" SaSb5      r7Sc\7l         \" SdSe5      r8\(       a
  S4\SSf4Sg jr9O	\" SdSh5      r9Si\9l         \" SjSk5      r:Sl\:l         \R*                  Sm:¼  a
  S4\SSn4So jr;O	S4\SSn4Sp jr;Sq\;l         0 \Rx                  \Rz                  Rx                  _\R|                  \Rz                  R|                  _\R~                  \Rz                  R~                  _\R€                  \Rz                  R€                  _\R‚                  \Rz                  R‚                  _\R„                  \Rz                  R„                  _\R†                  \Rz                  R†                  _\Rˆ                  \Rz                  Rˆ                  _\RŠ                  \Rz                  RŠ                  _\RŒ                  \Rz                  RŒ                  _\RŽ                  \Rz                  RŽ                  _\R�                  \Rz                  R�                  _\R’                  \Rz                  R”                  _\R–                  \Rz                  R–                  _\R˜                  \Rz                  R˜                  _\Rš                  \Rz                  Rš                  _\Rœ                  \Rz                  Rœ                  _0 \Rž                  \Rz                  Rž                  _\R                   \Q_\R¤                  \S_\R¨                  \Rª                  _\R”                  \V_\R®                  \X_\R²                  \Rz                  R²                  _\R´                  \Rz                  R´                  _\R¶                  \Rz                  R¶                  _\R¸                  \Rz                  R¸                  _\Rº                  \^_\R¾                  \RÀ                  _\RÂ                  \RÂ                  _\RÄ                  \RÄ                  _\RÆ                  \RÆ                  _\RÈ                  \Rz                  RÈ                  _\RÊ                  \Rz                  RÊ                  _E\RÌ                  \\RÎ                  \RÎ                  \RÐ                  \RÐ                  \RÒ                  \RÔ                  \RÖ                  \RØ                  0Erm\\^\\\   4      \nSr'    \S" \mRß                  5       5       H$  u  rprq\r" \\pRæ                  S5      =rtc  M  \q\m\t'   M&     g)szÏ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)ÚAnyÚFinal)ÚLiteralStringÚTypeAliasTypeÚTypeIsÚ
deprecated)!ÚDEPRECATED_ALIASESÚNoneTypeÚ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                 ó~  • [        [        U 5      n[        [        U 5      nU(       a7  U(       a0  [        [        U 5      [        [        U 5      L a  SU  3nO3SU  SU  3nO*U(       a  U(       d  SU  3nOU(       d  U(       a  SU  3nOSn[	        SU SU S35      n0 n[
        [        [        S.n[        XWU5        Xa   $ )	a;  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
```
zobj is typing.z or obj is typing_extensions.zobj is typing_extensions.ÚFalseú	
    def z&(obj: Any, /) -> bool:
        return ú
    ©r   ÚtypingÚtyping_extensions©Úhasattrr8   r9   Úgetattrr   r   Úexec©r0   r1   Ú	in_typingÚin_typing_extensionsÚ
check_codeÚ	func_codeÚlocals_Úglobals_s           Ú]/home/mande/repo/quber/.venv/lib/python3.13/site-packages/typing_inspection/typing_objects.pyÚ _compile_identity_check_functionrF   <   sÒ   € ô& œ Ó'€IÜ"Ô#4°fÓ=ÐæÖ)Ü”6˜6Ó"¤gÔ.?ÀÓ&HÒHØ)¨&¨Ð2‰Jà)¨&¨Ð1NÈvÈhÐW‰JÞ	Ö/Ø% f XÐ.‰
ÞÖ/Ø0°°Ð9‰
àˆ
äð 	Ø	ˆð Øˆ|ð ðó 	€Ið
 !€GÜ'*´fÔSdÑe€HÜˆ˜gÔ&ØÑ!Ð!ó    c           	      óŒ  • [        [        U 5      n[        [        U 5      nU(       a9  U(       a2  [        [        U 5      [        [        U 5      L a  SU  S3nO6SU  SU  S3nO,U(       a  U(       d  SU  S3nOU(       d  U(       a  SU  S3nOSn[	        SU S	U  S
U S35      n0 n[
        [        [        S.n[        XWU5        Xa   $ )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.
zisinstance(obj, typing.Ú)zisinstance(obj, (typing.z, typing_extensions.z))z"isinstance(obj, typing_extensions.r4   r5   z(obj: Any, /) -> 'TypeIs[z]':
        return r6   r7   r:   r>   s           rE   Ú"_compile_isinstance_check_functionrJ   i   sã   € ô œ Ó'€IÜ"Ô#4°fÓ=ÐæÖ)Ü”6˜6Ó"¤gÔ.?ÀÓ&HÒHØ2°6°(¸!Ð<‰Jà3°F°8Ð;OÐPVÈxÐWYÐZ‰JÞ	Ö/Ø.¨v¨h°aÐ8‰
ÞÖ/Ø9¸&¸ÀÐC‰
àˆ
äð 	Ø	ˆÐ0°°ð 9Øˆ|ð ðó 	€Ið
 !€GÜ'*´fÔSdÑe€HÜˆ˜gÔ&ØÑ!Ð!rG   )r   Ú	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                óv   • [        U [        5      =(       a#    [        U [        5      =(       a    [	        U S5      $ )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;   ©rU   s    rE   r   r   *  s)   € ô& �cœ4Ó ×W¤Z°´UÓ%;×WÄÈÈYÓ@WÐWrG   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   c                ó   • [        U S5      $ )NÚ__supertype__)r;   r\   s    rE   r   r   \  s   € Ü�s˜OÓ,Ð,rG   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                óH   • [        U 5      [        L=(       a    [        U 5      $ ©N)rY   r   rl   r\   s    rE   r&   r&   ð  s   € Ü�C‹y¤Ð,×MÔ1HÈÓ1MÐMrG   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                óV   • [        U [        R                  [        R                  45      $ rn   )rX   Úwarningsr   r9   r\   s    rE   r   r     s!   € Ü˜#¤× 3Ñ 3Ô5F×5QÑ5QÐRÓSÐSrG   c                ó6   • [        U [        R                  5      $ rn   )rX   r9   r   r\   s    rE   r   r     s   € Ü˜#Ô0×;Ñ;Ó<Ð<rG   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   )uÚ__doc__Úcollections.abcÚcollectionsÚ
contextlibÚreÚsysr8   rr   Útextwrapr   Útypesr   r   r   r   r9   r   r	   r
   r   Ú__all__Úversion_infoÚ	_IS_PY310rF   rJ   r   rY   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(   rl   r&   r,   r   Ú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ÚTypeÚPatternÚMatchÚContextManagerÚAbstractContextManagerÚAsyncContextManagerÚAbstractAsyncContextManagerr   Ú__annotations__ÚitemsÚaliasÚtargetr<   Ú_nameÚte_alias© rG   rE   Ú<module>r·      s%  ðòó Û Û 	Û 
Û Û Ý ß ,ß ã ß NÓ Nð"€ðH ×Ñ˜R˜aÐ  GÑ+€	ð*"¨]ð *"È=ð *"Ð]iô *"ðZ"¨}ð "È]ð "Ð_kô "ð@ ×Ñ�wÓÞá�D‹z€Hñ 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Ó@€ð€Ô ð ×Ñ�wÓÙ3°I¸|ÓL�Jð-˜ð - 4ô -ð€
Ô ñ 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ÓðT˜3ð TÐ&:õ Tð
=˜3ð =Ð&:ô =ð€Ô ð+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ñ Ð,×2Ñ2Ó4Ö5�M€Eˆ6áÐ-¨u¯{©{¸DÓAÐAˆÓNØ'-Ð˜8Ó$ò 6rG   