Ë
    S>{iÏE  ã            
       óü  — U d dl Z d dlZd dlZd dlmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZ d dlmZmZ d dlmZmZ d dlmZ d dlmZ d dlmZmZ d dl m!Z! d d	l"m#Z#m$Z$m%Z%m&Z&m'Z' d d
l(m)Z)m*Z* e jV                  dk\  rd dlm,Z, e jV                  dk\  rd dlmZ  edd¬«      Z-eZ.eee   eeedf   f   Z/ee.ee   f   Z0e jV                  dk\  ree/ee   f   Z1eee   e0f   Z2neZ1eZ2 e1«       Z3 e2«       Z4 G d„ de«      Z5dedeeef   defd„Z6dee5   deedf   ddfd„Z7i jq                  «       jr                  Z:ee   e;d<   dede	e.   fd„Z<deee=   e>f   fd„Z?d ee5   d!ee=ef   d"ee=e@f   d#eee@f   ddf
d$„ZAy)%é    N)ÚTYPE_CHECKINGÚAnyÚClassVarÚDictÚ
ForwardRefÚGenericÚIteratorÚListÚMappingÚOptionalÚTupleÚTypeÚTypeVarÚUnionÚcast)ÚWeakKeyDictionaryÚWeakValueDictionary)Ú	AnnotatedÚLiteral)Úgather_all_validators)ÚDeferredType)Ú	BaseModelÚcreate_model)ÚJsonWrapper)Údisplay_as_typeÚget_all_type_hintsÚget_argsÚ
get_originÚtyping_base)Úall_identicalÚlenient_issubclass©é   é
   )Ú_UnionGenericAlias©r#   é   )r   ÚGenericModelTÚGenericModel)Úbound.)r#   é	   c                   óÞ   — e Zd ZU dZdZee   ed<   eree	e
df      ed<   dee   deee   e	ee   df   f   dee   fd	„Zedee   de	ee   df   defd
„«       Zededeee      fd„«       Zy)r)   © FÚ__concrete__.Ú__parameters__ÚclsÚparamsÚreturnc                 ó  ‡ — dt         dt        fˆ fd„}t        j                   ||«      «      }|�|S ‰ j                  rt
        ‰ j                  vrt        d«      ‚t        |t        «      s|f}‰ t        u rt        d„ |D «       «      rt        d«      ‚t        ‰ d«      st        d	‰ j                  › d
�«      ‚t        ‰ |«       t        t!        ‰ j"                  |«      «      }t%        |j'                  «       |j)                  «       «      r|r‰ S ‰ j+                  |«      }t-        ‰ «      }t/        ‰ «      j1                  «       }|D ��	ci c]  \  }}	t3        |	«      t4        usŒ||	“Œ }
}}	|
D �ci c]5  }|‰ j6                  v sŒ|t9        «       ‰ j6                  |   j:                  f“Œ7 }}t=        «       \  }}t?        t@        t           tC        |f|xs ‰ jD                  ‰ ft        ‰ jG                  |«      «      z   d|ddœ|¤Ž«      }|tH        |<   |rKd}|}tJ        jL                  |jD                     jN                  }||ur|jQ                  ||«      }|dz  }||urŒ‰ jR                  |_)        t        tU        |j)                  «       «      D �ci c]  }|d“Œ c}«      }| |_        |r||_        |t         ||«      <   tW        |«      dk(  r|t         ||d   «      <   tY        |||
|«       |S c c}	}w c c}w c c}w )aè  Instantiates a new class from a generic class `cls` and type variables `params`.

        :param params: Tuple of types the class . Given a generic class
            `Model` with 2 type variables and a concrete model `Model[str, int]`,
            the value `(str, int)` would be passed to `params`.
        :return: New model class inheriting from `cls` with instantiated
            types described by `params`. If no parameters are given, `cls` is
            returned as is.

        Ú_paramsr2   c                 óŒ   •— t        | «      }t        |«      dk(  r&t        |d   t        «      rt	        |d   «      |d   f}‰| |fS )Né   r   é   )r   ÚlenÚ
isinstanceÚlistÚtuple)r4   Úargsr0   s     €úR/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pydantic/v1/generics.pyÚ
_cache_keyz2GenericModel.__class_getitem__.<locals>._cache_keyW   sH   ø€ Ü˜GÓ$ˆDä�4‹y˜AŠ~¤*¨T°!©W´dÔ";Ü˜d 1™g›¨¨Q©Ð0�Ø˜ Ð%Ð%ó    Nz?Cannot parameterize a concrete instantiation of a generic modelc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­w©N)r9   r   )Ú.0Úparams     r=   ú	<genexpr>z1GenericModel.__class_getitem__.<locals>.<genexpr>e   s   è ø€ Ò&VÀe¤z°%¼×'AÑ&Vùs   ‚zDType parameters should be placed on typing.Generic, not GenericModelr/   zType z< must inherit from typing.Generic before being parameterized)Ú
__module__Ú__base__Ú
__config__Ú__validators__Ú__cls_kwargs__Ú_r7   r   )-r   ÚCacheKeyÚ_generic_types_cacheÚgetr.   r   Ú	__bases__Ú	TypeErrorr9   r;   r)   ÚanyÚhasattrÚ__name__Úcheck_parameters_countÚdictÚzipr/   r    ÚkeysÚvaluesÚ__concrete_name__r   r   Úitemsr   r   Ú
__fields__r   Ú
field_infoÚget_caller_frame_infor   r   r   rE   Ú__parameterized_bases__Ú_assigned_parametersÚsysÚmodulesÚ__dict__Ú
setdefaultÚConfigÚiter_contained_typevarsr8   Ú_prepare_model_fields)r0   r1   r>   ÚcachedÚtypevars_mapÚ
model_nameÚ
validatorsÚ
type_hintsÚkÚvÚinstance_type_hintsÚfieldsÚmodel_moduleÚcalled_globallyÚcreated_modelÚobject_by_referenceÚreference_nameÚreference_module_globalsrC   Ú
new_paramss   `                   r=   Ú__class_getitem__zGenericModel.__class_getitem__K   s  ø€ ð	&¤ð 	&¬õ 	&ô &×)Ñ)©*°VÓ*<Ó=ˆØÐØˆMØ×Ò¤¨s¯}©}Ñ <ÜÐ]Ó^Ð^Ü˜&¤%Ô(Ø�YˆFØ”,Ñ¤3Ñ&VÈvÔ&VÔ#VÜÐbÓcÐcÜ�sÐ,Ô-Ü˜e C§L¡L >Ð1mÐnÓoÐoä˜s FÔ+ä59¼#¸c×>PÑ>PÐRXÓ:YÓ5ZˆÜ˜×*Ñ*Ó,¨l×.AÑ.AÓ.CÔDÉØˆJð ×*Ñ*¨6Ó2ˆ
Ü*¨3Ó/ˆ
ä'¨Ó,×2Ñ2Ó4ˆ
Ø0:×\©¨¨1¼jÈ»mÔS[Ò>[˜q !™tÐ\ÐÑ\àM`ÖxÈÐdeÐil×iwÑiwÒdw�!”l“n c§n¡n°QÑ&7×&BÑ&BÐCÑCÐxˆÐxä(=Ó(?Ñ%ˆ�oÜÜ”ÑÜØðà'Ò9¨3¯>©>Ø˜¤%¨×(CÑ(CÀLÓ(QÓ"RÑRØØ)Ø#ñð ñó
ˆð /;Ô˜]Ñ+áØ"&ÐØ'ˆNÜ'*§{¡{°=×3KÑ3KÑ'L×'UÑ'UÐ$Ø%¨]Ñ:Ø&>×&IÑ&IÈ.ÐZgÓ&hÐ#Ø #Ñ%�ð &¨]Ò:ð  #Ÿz™zˆÔô Ü&=¸l×>QÑ>QÓ>SÓ&TÖU˜UˆU�D‰[ÒUó
ˆ
ð *4 ^ˆÔ"ÙØ+5ˆMÔ(ð 4AÔ™Z¨Ó/Ñ0Üˆv‹;˜!ÒØ:GÔ ¡¨F°1©IÓ!6Ñ7ô 	˜m¨VÐ5HÈ,ÔWàÐùóg ]ùâxùòB Vs   Å
K2Å$K2Å0K8Æ&K8Ê
K=c                 ó‚   — |D �cg c]  }t        |«      ‘Œ }}dj                  |«      }| j                  › d|› d�S c c}w )aÜ  Compute class name for child classes.

        :param params: Tuple of types the class . Given a generic class
            `Model` with 2 type variables and a concrete model `Model[str, int]`,
            the value `(str, int)` would be passed to `params`.
        :return: String representing a the new class where `params` are
            passed to `cls` as type variables.

        This method can be overridden to achieve a custom naming scheme for GenericModels.
        z, ú[ú])r   ÚjoinrR   )r0   r1   rC   Úparam_namesÚparams_components        r=   rX   zGenericModel.__concrete_name__ª   sK   € ð <BÖB°%” uÕ-ÐBˆÐBØŸ9™9 [Ó1ÐØ—,‘,�˜qÐ!1Ð 2°!Ð4Ð4ùò Cs   …<rg   c           
   #   ó¸  ‡ K  — dt         t           dt        dt        t         t              fˆ fd„}‰ j                  D ]�  }t        |t        «      sŒt        |dd«      sŒ"‰ t        v rU|t        v rŒ3t        ‰    j                  «       D ��ci c]  \  }}||j                  ||«      “Œ }}} |||«      E d{  –—†  Œ |||«      E d{  –—†  Œ‘ yc c}}w 7 Œ7 Œ­w)aÍ  
        Returns unbound bases of cls parameterised to given type variables

        :param typevars_map: Dictionary of type applications for binding subclasses.
            Given a generic class `Model` with 2 type variables [S, T]
            and a concrete model `Model[str, int]`,
            the value `{S: str, T: int}` would be passed to `typevars_map`.
        :return: an iterator of generic sub classes, parameterised by `typevars_map`
            and other assigned parameters of `cls`

        e.g.:
        ```
        class A(GenericModel, Generic[T]):
            ...

        class B(A[V], Generic[V]):
            ...

        assert A[int] in B.__parameterized_bases__({V: int})
        ```
        Ú
base_modelÚmapped_typesr2   c              3   óˆ   •‡K  — t        ˆfd„| j                  D «       «      }| j                  |«      }|| u s|‰u ry |–— y ­w)Nc              3   ó(   •K  — | ]	  }‰|   –— Œ y ­wrA   r-   )rB   rC   r   s     €r=   rD   zQGenericModel.__parameterized_bases__.<locals>.build_base_model.<locals>.<genexpr>Õ   s   øè ø€ Ò#_¸E L°Õ$7Ñ#_ùs   ƒ)r;   r/   rv   )r~   r   Úbase_parametersÚparameterized_baser0   s    `  €r=   Úbuild_base_modelz>GenericModel.__parameterized_bases__.<locals>.build_base_modelÒ   sI   ùè ø€ ô $Ó#_ÀZ×E^ÑE^Ô#_Ó_ˆOØ!+×!=Ñ!=¸oÓ!NÐØ! ZÑ/Ð3EÈÑ3LàØ$Ó$ùs   „>Ar/   N)
r   r)   ÚParametrizationr	   rN   Ú
issubclassÚgetattrr^   rY   rM   )r0   rg   r„   r~   ÚkeyÚvaluer   s   `      r=   r]   z$GenericModel.__parameterized_bases__º   sù   øè ø€ ð0	%Üœ\Ñ*ð	%Ü:Ið	%ä”dœ<Ñ(Ñ)õ	%ð Ÿ-™-ò 	FˆJÜ˜j¬,Ô7àÜ˜ZÐ)9¸4Ô@ð ØÔ,Ñ,ØÔ!5Ñ5ð ô OcÐcfÑNg×NmÑNmÓNo÷5Ù@JÀÀU˜˜\×-Ñ-¨e°UÓ;Ñ;ð5�Lñ 5ñ  0°
¸LÓI×IÑIñ ,¨J¸ÓE×EÑEñ9	Fùó*5ð Jøð Fús0   ƒBCÂ
CÂ'CÂ6CÂ7CÃCÃ	CÃCN)rR   rE   Ú__qualname__Ú	__slots__r.   r   ÚboolÚ__annotations__r   r   ÚTypeVarTyper   r(   r   r   rv   ÚclassmethodÚstrrX   r…   r	   r]   r-   r?   r=   r)   r)   @   sæ   … Ø€IØ#(€L�(˜4‘.Ó(áð !  {°CÐ'7Ñ!8Ñ9Ó9ð]˜t MÑ2ð ]¸EÀ$ÀsÁ)ÈUÐSWÐX[ÑS\Ð^aÐSaÑMbÐBbÑ<cð ]ÐhlÐmpÑhqó ]ð~ ð5˜t C™yð 5°%¸¸S¹	À3¸Ñ2Gð 5ÈCò 5ó ð5ð ð=F°?ð =FÀxÐPTÐUXÑPYÑGZò =Fó ñ=Fr?   Útype_Útype_mapr2   c                 ó  ‡— ‰s| S t        | «      }t        | «      }|t        u r"|^}}t        t        |‰«      t	        |«      f   S |t
        u st        j                  dk\  r|t        u r‰j                  | | «      S |r¥t	        ˆfd„|D «       «      }t        ||«      r| S |�Gt        | t        «      r7t        |t        «      s't        | dd«      �t        t        | j                  «      }|€J ‚t        j                  dk\  r|t         j"                  u rt%        ||«      S ||   S |sOt'        | t(        «      r?| j*                  s3| j,                  }t	        ˆfd„|D «       «      }t        ||«      r| S | |   S t        | t.        t0        f«      r$t1        ˆfd„| D «       «      }t        | |«      r| S |S |s-t'        | t2        «      rt        | j4                  ‰«      | _        | S ‰j                  | | «      }t        |t6        «      rt9        |«      S |S )aÉ  Return type with all occurrences of `type_map` keys recursively replaced with their values.

    :param type_: Any type, class or generic alias
    :param type_map: Mapping from `TypeVar` instance to concrete types.
    :return: New type representing the basic structure of `type_` with all
        `typevar_map` keys recursively replaced.

    >>> replace_types(Tuple[str, Union[List[str], float]], {str: int})
    Tuple[int, Union[List[int], float]]

    r&   c              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wrA   ©Úreplace_types)rB   Úargr’   s     €r=   rD   z replace_types.<locals>.<genexpr>  s   øè ø€ Ò"UÀC¤=°°h×#?Ñ"Uùó   ƒNÚ_namer"   c              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wrA   r•   )rB   Útr’   s     €r=   rD   z replace_types.<locals>.<genexpr>0  s   øè ø€ Ò"QÀ!¤=°°H×#=Ñ"Qùr˜   c              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wrA   r•   )rB   Úelementr’   s     €r=   rD   z replace_types.<locals>.<genexpr>8  s   øè ø€ ÒSÀ'œ]¨7°H×=ÑSùr˜   )r   r   r   r–   r;   Ú
ExtLiteralr_   Úversion_infor   rM   r    r9   r   r‡   Útypingr™   ÚtypesÚ	UnionTyper%   r!   r)   r.   r/   r
   r:   r   Ú
inner_typer�   r   )	r‘   r’   Ú	type_argsÚorigin_typeÚannotated_typeÚannotationsÚresolved_type_argsÚresolved_listÚnew_types	    `       r=   r–   r–   û   sù  ø€ ñ Øˆä˜“€IÜ˜UÓ#€Kà”iÑØ'0Ð$ˆ˜Üœ ~°xÓ@Ä%ÈÓBTÐTÑUÐUà”zÑ!¤s×'7Ñ'7¸6Ò'AÀkÔU\ÑF\Ø�|‰|˜E 5Ó)Ð)ñ Ü"Ó"UÈ9Ô"UÓUÐÜ˜Ð$6Ô7ð ˆLàÐ#Ü˜5¤+Ô.Ü˜{¬KÔ8Ü˜˜w¨Ó-Ð9ô
 "¤&¨%¯+©+Ó6ˆKØÐ&Ð&Ð&ô ×Ñ˜wÒ&¨;¼%¿/¹/Ñ+IÜ% kÐ3EÓFÐFØÐ-Ñ.Ð.ñ Ô-¨e´\ÔBÈ5×K]ÒK]Ø×(Ñ(ˆ	Ü"Ó"QÀyÔ"QÓQÐÜ˜Ð$6Ô7ØˆLØÐ'Ñ(Ð(ô �%œ$¤˜Ô&ÜÓSÈUÔSÓSˆÜ˜ Ô.ØˆLØÐñ Ô-¨e´[ÔAÜ(¨×)9Ñ)9¸8ÓDˆÔØˆð �|‰|˜E 5Ó)€Hä�(œCÔ Ü˜(Ó#Ð#àˆr?   r0   Ú
parametersc           
      ó¢   — t        |«      }t        | j                  «      }||k7  r*||kD  rdnd}t        d|› d| j                  › d|› d|› �«      ‚y )NÚmanyÚfewzToo z parameters for z	; actual z, expected )r8   r/   rO   rR   )r0   r«   ÚactualÚexpectedÚdescriptions        r=   rS   rS   M  sd   € Ü�‹_€FÜ�3×%Ñ%Ó&€HØ�ÒØ &¨Ò 1‘f°uˆÜ˜$˜{˜mÐ+;¸C¿L¹L¸>ÈÐSYÐRZÐZeÐfnÐeoÐpÓqÐqð r?   Ú
DictValuesrl   c              #   óf  K  — t        | t        «      r| –— yt        | d«      r0t        | «      s%t	        | t
        «      r| j                  E d{  –—†  yt        | t        t        f«      r| D ]  }t        |«      E d{  –—†  Œ yt        | «      }|D ]  }t        |«      E d{  –—†  Œ y7 Œ\7 Œ/7 Œ­w)zdRecursively iterate through all subtypes and type args of `v` and yield any typevars that are found.r/   N)r9   r   rQ   r   r!   r)   r/   r²   r:   rd   r   )rl   Úvarr<   r—   s       r=   rd   rd   X  s¦   è ø€ ä�!”WÔØ‹Ü	�Ð$Ô	%¬j¸¬mÔ@RÐSTÔVbÔ@cØ×#Ñ#×#Ñ#Ü	�Aœ
¤DÐ)Ô	*Øò 	4ˆCÜ.¨sÓ3×3Ñ3ñ	4ô ˜‹{ˆØò 	4ˆCÜ.¨sÓ3×3Ñ3ñ	4ð 	$øð 4øð 4ús6   ‚AB1ÁB+Á.B1Á=B-Á>%B1Â#B/Â$B1Â-B1Â/B1c                  óÒ   — 	 t        j                  d«      } | j
                  }|j                  d«      | j                  |u fS # t        $ r}t        d«      |‚d}~wt        $ r Y yw xY w)zÒ
    Used inside a function to check whether it was called globally

    Will only work against non-compiled code, therefore used only in pydantic.generics

    :returns Tuple[module_name, called_globally]
    r6   z2This function must be used inside another functionN)NFrR   )r_   Ú	_getframeÚ
ValueErrorÚRuntimeErrorÚAttributeErrorÚ	f_globalsrM   Úf_locals)Úprevious_caller_frameÚeÚframe_globalss      r=   r\   r\   g  sr   € ðÜ #§¡¨aÓ 0Ðð
 *×3Ñ3€MØ×Ñ˜ZÓ(Ð*?×*HÑ*HÈMÐ*YÐYÐYøô ò XÜÐOÓPÐVWÐWûÜò Ùðús   ‚A Á	A&ÁAÁA&Á%A&rq   rn   rm   rg   c                 óx  — | j                   j                  «       D ]�  \  }}||vr|j                  j                  t        usJ ‚Œ)|j                  j                  t        u sJ |j                  j                  «       ‚||   }t        ||«      }||_        ||_        |j                  «        || j                  |<   ŒŸ y)zP
    Replace DeferredType fields with concrete type hints and prepare them.
    N)	rZ   rY   r‘   Ú	__class__r   r–   Úouter_type_Úpreparer�   )rq   rn   rm   rg   rˆ   ÚfieldÚfield_type_hintÚconcrete_types           r=   re   re   y  s®   € ð $×.Ñ.×4Ñ4Ó6ò ;‰
ˆˆUØ�fÑØ—;‘;×(Ñ(´Ñ<Ð<Ð<àà�{‰{×$Ñ$¬Ñ4ÐK°e·k±k×6KÑ6KÓKÐ4à-¨cÑ2ˆÜ% o°|ÓDˆØ#ˆŒØ)ˆÔØ�‰ŒØ-:ˆ×%Ñ% cÒ*ñ;r?   )Br_   r¡   r    r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   Úweakrefr   r   Útyping_extensionsr   r   rž   Úpydantic.v1.class_validatorsr   Úpydantic.v1.fieldsr   Úpydantic.v1.mainr   r   Úpydantic.v1.typesr   Úpydantic.v1.typingr   r   r   r   r   Úpydantic.v1.utilsr    r!   rŸ   r%   r(   rŽ   rK   r…   ÚGenericTypesCacheÚAssignedParametersrL   r^   r)   r–   rS   rW   rÀ   r²   r�   rd   r�   rŒ   r\   Útypere   r-   r?   r=   ú<module>rÑ      s	  ðÜ 
Û Û ÷÷ ÷ ÷ ñ ÷" ;ç >å >Ý +ß 4Ý )ß eÕ eß ?à×Ñ�wÒÝ)Ø×Ñ�vÒÝá˜¨~Ô>€Ø€à��c‘˜C  s¨C x¡Ð0Ñ1€Ø˜+ t¨C¡yÐ0Ñ1€ð ×Ñ�vÒØ+¨H°d¸9±oÐ,EÑFÐØ*¨4°	©?¸OÐ+KÑLÑà+ÐØ*Ðñ )Ó*Ð ñ *Ó+Ð ôxF�9ô xFðvO˜ð O¨°°S°Ñ(9ð O¸có Oðdr  \Ñ 2ð rÀÀcÈ3ÀhÁð rÐTXó rð Ÿ	™	›×-Ñ-€
ˆD�‰IÓ -ð4˜sð 4 x°Ñ'<ó 4ðZ˜u X¨c¡]°DÐ%8Ñ9ó Zð$;Ø˜Ñ%ð;à�C˜�HÑð;ð !  d Ñ+ð;ð ˜#˜t˜)Ñ$ð	;ð
 
ô;r?   