+
    ˜h©j®E  ã                   ó¬  a€ Rl tx0 t R t^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H
t
 ^ RIHtHtHt ^ RIHtHt ^ RIt^ RIHtHtHtHt Rmt]P.                  R#,          Rn8H  tR$ R% ltR& R' lt]! R(R4      tR)]n        ]! R*R4      tR+]n        ]! R,R4      tR-]n        ]! R.R	4      tR/]n        ]! R0R
4      tR1]n        ]! R2R4      t R3] n        ]! R4R4      t!R5]!n        ]! R6R4      t"R7]"n        ]! R8R4      t#R9]#n        ]! R:R4      t$R;]$n        ]! R<R 4      t%R=]%n        ]! R>R!4      t&R?]&n        R@ RA lt']! RBR4      t(RC](n        ]! RDR4      t)RE])n        ]! RFR4      t*RG]*n        ]! RHR4      t+RI]+n        ]! RJR4      t,RK],n        ]! RLR4      t-RM]-n        ]! RNR4      t.RO].n        ]! RPR4      t/RQ]/n        ]! RRR4      t0RS]0n        ]! RTR4      t1RU]1n        ]! RVR4      t2RW]2n        ]! RXR4      t3RY]3n        ]! RZR4      t4R[]4n        ]! R\R4      t5R]]5n        ]! R^R4      t6R_]6n        ]! R`Ra4      t7]'       d   Rb Rc lt8M	]! R`R4      t8Rd]8n        ]! ReR"4      t9Rf]9n        ]P.                  Ro8¼  d    ]P*                  ]P*                  3t:Rg Rh lt;M]P*                  t<Ri Rj lt;Rk];n        / ]Pz                  ]P|                  Pz                  b]P~                  ]P|                  P~                  b]P€                  ]P|                  P€                  b]P‚                  ]P|                  P‚                  b]P„                  ]P|                  P„                  b]P†                  ]P|                  P†                  b]Pˆ                  ]P|                  Pˆ                  b]PŠ                  ]P|                  PŠ                  b]PŒ                  ]P|                  PŒ                  b]PŽ                  ]P|                  PŽ                  b]P�                  ]P|                  P�                  b]P’                  ]P|                  P’                  b]P”                  ]P|                  P–                  b]P˜                  ]P|                  P˜                  b]Pš                  ]P|                  Pš                  b]Pœ                  ]P|                  Pœ                  b]Pž                  ]P|                  Pž                  b/ ]P                   ]P|                  P                   b]P¢                  ]Rb]P¦                  ]Tb]Pª                  ]P¬                  b]P–                  ]Wb]P°                  ]Yb]P´                  ]P|                  P´                  b]P¶                  ]P|                  P¶                  b]P¸                  ]P|                  P¸                  b]Pº                  ]P|                  Pº                  b]P¼                  ]_b]PÀ                  ]PÂ                  b]PÄ                  ]PÄ                  b]PÆ                  ]PÆ                  b]PÈ                  ]PÈ                  b]PÊ                  ]P|                  PÊ                  b]PÌ                  ]P|                  PÌ                  bC]PÎ                  ]h]PÒ                  ]PÒ                  ]PÔ                  ]PÔ                  ]PÖ                  ]PØ                  ]PÚ                  ]PÜ                  /Cto] ^ k  ]oPá                  4        U Uu/ uF  w  r]q! V 4      VbK  	  upp tr] ^k  ]T! ]oPá                  4       4       F%  w  tstt]u! ]]sPì                  R4      ;twf   K   ]t]o]w&   K'  	  R# u upp i )pzÏ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Úis_annotatedÚis_anyÚis_classvarÚis_concatenateÚis_finalÚis_forwardrefÚ
is_genericÚ
is_literalÚis_literalstringÚ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:Né   Nc                ó<   € V ^8„  d   QhR\         R\         R\        /# ©r)   ÚmemberÚfunction_nameÚreturn©r   r   )Úformats   "Ú[/var/www/html/bestweb/venv/lib/python3.14/site-packages/typing_inspection/typing_objects.pyÚ__annotate__r2   =   s"   € ÷ 4"ñ 4"¬]ð 4"Ì=ð 4"Ô]iñ 4"ó    c                óÌ  € \        \        V 4      p\        \        V 4      pR\        /pV'       d@   V'       d8   \	        \        V 4      p\	        \        V 4      pWVJ d   WTR&   RpMYWTR&   WdR&   RpMNV'       d   V'       g   \	        \        V 4      VR&   RpM(V'       g   V'       d   \	        \        V 4      VR&   RpMRp\        RV R	V R
24      p/ p	\        W„V	4       W‘,          # )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
```
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©
r,   r-   Ú	in_typingÚin_typing_extensionsÚglobals_Út_objÚte_objÚ
check_codeÚ	func_codeÚlocals_s
   &&        r1   Ú _compile_identity_check_functionrJ   =   sï   € ô& œ Ó'€IÜ"Ô#4°fÓ=Ðà %¤s˜|€Hç×)ô œ Ó'ˆÜÔ*¨FÓ3ˆØ‹?Ø$�VÑØ&‰Jà!&�XÑØ"(�YÑØ:‰Jß	×/Ü"¤6¨6Ó2ˆ�ÑØ"‰
ß×/Ü"Ô#4°fÓ=ˆ�ÑØ"‰
àˆ
äð 	Ø	ˆð Øˆ|ð ðó 	€Ið
 !€GÜˆ˜gÔ&ØÕ!Ð!r3   c                ó<   € V ^8„  d   QhR\         R\         R\        /# r+   r/   )r0   s   "r1   r2   r2   t   s"   € ÷ &"ñ &"¬}ð &"Ì]ð &"Ô_kñ &"r3   c           	     óÎ  € \        \        V 4      p\        \        V 4      pR\        /pV'       d>   V'       d6   \	        \        V 4      p\	        \        V 4      pWVJ d   WTR&   RpMWWV3VR&   RpMNV'       d   V'       g   \	        \        V 4      VR&   RpM(V'       g   V'       d   \	        \        V 4      VR&   RpMRp\        RV RV  R	V R
24      p/ p	\        W„V	4       W‘,          # )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
   &&        r1   Ú"_compile_isinstance_check_functionrN   t   sò   € ô œ Ó'€IÜ"Ô#4°fÓ=Ðà %¤s˜|€Hç×)ô œ Ó'ˆÜÔ*¨FÓ3ˆØ‹?Ø$�VÑØ0‰Jà!& ˆH�WÑØ1‰Jß	×/Ü"¤6¨6Ó2ˆ�ÑØ,‰
ß×/Ü"Ô#4°fÓ=ˆ�ÑØ,‰
àˆ
äð 	Ø	ˆÐ0°°ð 9Øˆ|ð ðó 	€Ið
 !€GÜˆ˜gÔ&ØÕ!Ð!r3   Ú	Annotatedz±
Return whether the argument is the [`Annotated`][typing.Annotated] [special form][].

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

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

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

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

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

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

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

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

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

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

```pycon
>>> Ts = TypeVarTuple('Ts')
>>> is_typevartuple(Ts)
True
```
ÚUniona¦  
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`).
c                ó0   € V ^8„  d   QhR\         R\        /# )r)   Úobjr.   )r   Úbool)r0   s   "r1   r2   r2   9  s   € ÷ Xñ X”sð X¤$ñ Xr3   c               óz   € \        V \        4      ;'       d%    \        V \        4      ;'       d    \	        V R4      # )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   "r1   Úis_namedtuplerc   9  s/   € ô& �cœ4Ó ×WÐW¤Z°´UÓ%;×WÐWÄÈÈYÓ@WÐWr3   r   z•
Return whether the argument is the [`LiteralString`][typing.LiteralString] [special form][].

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

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

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

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

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

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

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

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

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

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

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

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

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

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

```pycon
>>> is_typeis(TypeIs)
True
```
r	   Ú_is_typealiastype_innerc                ó(   € V ^8„  d   QhR\         RR/# )r)   rZ   r.   zTypeIs[TypeAliasType]©r   )r0   s   "r1   r2   r2   ø  s   € ÷ Nñ Nœcð NÐ)@ñ Nr3   c                óJ   € \        V 4      \        J;'       d    \        V 4      # ©N)r_   r   rq   rb   s   "r1   r"   r"   ø  s   € Ü�C‹y¤Ð,×MÐMÔ1HÈÓ1MÐMr3   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
```
ÚUnpackz™
Return whether the argument is the [`Unpack`][typing.Unpack] [special form][].

```pycon
>>> is_unpack(Unpack)
True
>>> is_unpack(Unpack[Ts])
False
```
c                ó(   € V ^8„  d   QhR\         RR/# ©r)   rZ   r.   zTypeIs[deprecated]rs   )r0   s   "r1   r2   r2     s   € ÷ 2ñ 2œ3ð 2Ð&:ñ 2r3   c                ó"   € \        V \        4      # ru   )r^   Ú_deprecated_typesrb   s   "r1   Úis_deprecatedr{     s   € Ü˜#Ô0Ó1Ð1r3   c                ó(   € V ^8„  d   QhR\         RR/# rx   rs   )r0   s   "r1   r2   r2   #  s   € ÷ 1ñ 1œ3ð 1Ð&:ñ 1r3   c                ó"   € \        V \        4      # ru   )r^   Ú_deprecated_typerb   s   "r1   r{   r{   #  s   € Ü˜#Ô/Ó0Ð0r3   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
```
c                ó  € V ^8„  d   Qh/ ^ \         9   d1   \        \        \        \        \        ,          3,          ,          ;R&   ^\         9   d1   \        \        \
        \        \        ,          3,          ,          ;R&   # )r)   ÚDEPRECATED_ALIASESÚDEPRECATED_ALIASES_IDS)Ú__conditional_annotations__r   Údictr   r_   Úint)r0   s   "r1   r2   r2      s]   € ÷ ñ ÷j+ò +”Eœ$œs¤D¬¥I˜~Õ.Õ/ñ +ñk÷H hÒ gœœd¤3¬¬S­	 >Õ2Õ3Ñ gòIr3   )"r€   r�   r   r   r   r   r   r{   r   r   r   r   r   rc   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   )é   é
   )r…   é   )yr‚   Ú__doc__Úcollections.abcÚcollectionsÚ
contextlibÚreÚsysr=   ÚwarningsÚtextwrapr   Útypesr   r   r   r   r   r>   r   r	   r
   r   Ú__all__Úversion_infoÚ	_IS_PY310rJ   rN   r   r   r   r   r   r   r   r   r   r%   r&   r'   rc   r   r   r   r   r   r   r   r   r   r   r   r    r!   r#   r$   rq   r"   r(   rz   r{   r~   ÚHashableÚabcÚ	AwaitableÚ	CoroutineÚAsyncIterableÚAsyncIteratorÚIterableÚIteratorÚ
ReversibleÚSizedÚ	ContainerÚ
CollectionÚCallableÚAbstractSetÚSetÚ
MutableSetÚMappingÚMutableMappingÚSequenceÚMutableSequenceÚTuplera   ÚListÚlistÚDequeÚdequeÚsetÚ	FrozenSetÚ	frozensetÚMappingViewÚKeysViewÚ	ItemsViewÚ
ValuesViewÚDictrƒ   ÚDefaultDictÚdefaultdictÚOrderedDictÚCounterÚChainMapÚ	GeneratorÚAsyncGeneratorÚTyper_   ÚPatternÚMatchÚContextManagerÚAbstractContextManagerÚAsyncContextManagerÚAbstractAsyncContextManagerr€   ÚitemsÚidr�   ÚaliasÚtargetr?   Ú__name__Úte_aliasr2   )ÚkÚvr‚   s   00@r1   Ú<module>rË      sË  øðöó Û Û 	Û 
Û Û Ý ß 6Ñ 6ß ã ß NÓ Nð#€ðJ ×Ñ˜RÕ  GÑ+€	õ4"õn&"ñ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ñ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ñ :¸/ÐK]Ó^ÐðÐ Ô ñ  -¨X°{ÓC€	ð	€	Ô ð ×Ñ�wÔØ!×,Ñ,Ð.?×.JÑ.JÐKÐö2ð )×3Ñ3Ðõ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Ð ó +ðX Að M_×LdÑLdÔLfÔ6gÑLfÁDÀA±r¸!³u¸a²xÑLfÒ6gÐ Ó gð Wñ Ð,×2Ñ2Ó4Ö5�M€Eˆ6ÙÐ-¨u¯~©~¸tÓDÐDˆÔQØ'-Ð˜8Ó$ó 6ùó 7hs   Û2]