ó
    ­[jO>  ã                  óJ  • S SK Jr  S SKrS SKrS SKrS SKJrJrJrJ	r	  S SK
JrJ
r
  S SKJrJrJrJr  S SKrS SKrSSKJrJrJrJrJrJr  SS	KJr  SS
KJrJr  SSK J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(  \" S5      r)\S   r* " S S5      r+      S!S jr,      S"S jr-\" SS9S#S j5       r.S$S jr/S%S jr0SS.       S&S jjr1S'S jr2      S(S jr3      S!S jr4      S"S jr5SS.       S&S jjr6S'S jr7      S(S jr8\" SS9   S)         S*S  jj5       rg)+é    )ÚannotationsN)ÚAnyÚMappingÚTypeVarÚcast)ÚdateÚdatetime)ÚLiteralÚget_argsÚoverrideÚget_type_hintsé   )Úis_listÚis_givenÚ	lru_cacheÚ
is_mappingÚis_iterableÚis_sequenceé   )Úis_base64_file_input)Ú
get_originÚis_typeddict)Úis_list_typeÚis_union_typeÚextract_type_argÚis_iterable_typeÚis_required_typeÚis_sequence_typeÚis_annotated_typeÚstrip_annotated_typeÚ_T)Úiso8601Úbase64Úcustomc                  ó€   • \ rS rSr% SrS\S'   S\S'   S\S'   S\S'   S	S	S	S	S
.         SS jjr\SS j5       rSr	g	)ÚPropertyInfoé,   a[  Metadata class to be used in Annotated types to provide information about a given type.

For example:

class MyParams(TypedDict):
    account_holder_name: Annotated[str, PropertyInfo(alias='accountHolderName')]

This means that {'account_holder_name': 'Robert'} will be transformed to {'accountHolderName': 'Robert'} before being sent to the API.
ú
str | NoneÚaliasúPropertyFormat | NoneÚformatÚformat_templateÚdiscriminatorN©r)   r+   r,   r-   c               ó4   • Xl         X l        X0l        X@l        g ©Nr.   )Úselfr)   r+   r,   r-   s        Ú\/home/mande/repo/quber/.venv/lib/python3.13/site-packages/landingai_ade/_utils/_transform.pyÚ__init__ÚPropertyInfo.__init__<   s   € ð Œ
ØŒØ.ÔØ*Õó    c           
     óœ   • U R                   R                   SU R                   SU R                   SU R                   SU R
                   S3
$ )Nz(alias='z
', format=z, format_template='z', discriminator='z'))Ú	__class__Ú__name__r)   r+   r,   r-   )r1   s    r2   Ú__repr__ÚPropertyInfo.__repr__I   sk   € à—.‘.×)Ñ)Ð*¨(°4·:±:°,¸jÈÏÉÈÐUhÐim×i}Ñi}Ðh~ð  Qð  RV÷  Rdñ  Rdð  Qeð  egð  hð  	hr5   )r)   r-   r+   r,   )
r)   r(   r+   r*   r,   r(   r-   r(   ÚreturnÚNone)r;   Ústr)
r8   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r3   r   r9   Ú__static_attributes__© r5   r2   r&   r&   ,   s|   ‡ ñð ÓØ!Ó!ØÓØÓð
 !Ø(,Ø&*Ø$(ñ+ð ð+ð &ð	+ð
 $ð+ð "ð+ð 
õ+ð óhó óhr5   r&   c                ó    • U c  g[        X5      $ )zaWrapper over `transform()` that allows `None` to be passed.

See `transform()` for more details.
N)Ú	transform©ÚdataÚexpected_types     r2   Úmaybe_transformrJ   N   s   € ð �|ØÜ�TÓ)Ð)r5   c                óR   • [        U [        [        U5      S9n[        [        U5      $ )áè  Transform dictionaries based off of type information from the given type, for example:

```py
class Params(TypedDict, total=False):
    card_id: Required[Annotated[str, PropertyInfo(alias="cardID")]]


transformed = transform({"card_id": "<my card ID>"}, Params)
# {'cardID': '<my card ID>'}
```

Any keys / data that does not have type information given will be included as is.

It should be noted that the transformations that this function does are not represented in the type system.
©Ú
annotation)Ú_transform_recursiver   Útyper!   ©rH   rI   Útransformeds      r2   rF   rF   \   s$   € ô& ' t¼¼TÀ=Ó8QÑR€KÜ”�KÓ Ð r5   i   )Úmaxsizec                ód   • [        U 5      (       a  [        U 5      S   n [        U 5      (       a  U $ g)z©If the given type is an `Annotated` type then it is returned, if not `None` is returned.

This also unwraps the type when applicable, e.g. `Required[Annotated[T, ...]]`
r   N)r   r   r   )Útype_s    r2   Ú_get_annotated_typerV   s   s0   € ô ˜×Ñä˜“ Ñ"ˆä˜×ÑØˆàr5   c                ó¸   • [        U5      nUc  U $ [        U5      SS nU H5  n[        U[        5      (       d  M  UR                  c  M)  UR                  s  $    U $ )z¤Transform the given `data` based on the annotations provided in `type_`.

Note: this function only looks at `Annotated` types that contain `PropertyInfo` metadata.
Nr   )rV   r   Ú
isinstancer&   r)   )ÚkeyrU   Úannotated_typer   rN   s        r2   Ú_maybe_transform_keyr[   ƒ   sa   € ô
 )¨Ó/€NØÑàˆ
ô ˜>Ó*¨1¨2Ð.€KÛ!ˆ
Ü�j¤,×/Ó/°J×4DÑ4DÓ4PØ×#Ñ#Ò#ñ "ð €Jr5   c                ó4   • U [         :H  =(       d	    U [        :H  $ r0   )ÚfloatÚintrM   s    r2   Ú_no_transform_neededr_   –   s   € ØœÑ×3 *´Ñ"3Ð3r5   )Ú
inner_typec          
     óú  • SSK Jn  Uc  Un[        U5      n[        U5      =(       d    Un[	        U5      (       a  [        U 5      (       a  [        X5      $ U[        :X  aK  [        U 5      (       a;  [        U5      S   nU R                  5        VVs0 s H  u  pxU[        X†S9_M     snn$ [        U5      (       a  [        U 5      (       dj  [        U5      (       a%  [        U 5      (       a  [        U [         5      (       a5  [#        U5      (       až  [%        U 5      (       aŽ  [        U [         5      (       dy  [        U [        5      (       a  ['        [(        U 5      $ [+        US5      n[-        U5      (       a  [        U 5      (       a  U $ [/        U 5      $ U  V	s/ s H  n	[        X‘US9PM     sn	$ [1        U5      (       a  [        U5       H  n
[        XU
S9n M     U $ [        U [2        R4                  5      (       a  U" U SS	S
9$ [7        U5      nUc  U $ [        U5      SS nU HI  n[        U[8        5      (       d  M  UR:                  c  M)  [=        XR:                  UR>                  5      s  $    U $ s  snnf s  sn	f ©ak  Transform the given data against the expected type.

Args:
    annotation: The direct type annotation given to the particular piece of data.
        This may or may not be wrapped in metadata types, e.g. `Required[T]`, `Annotated[T, ...]` etc

    inner_type: If applicable, this is the "inside" type. This is useful in certain cases where the outside type
        is a container type such as `List[T]`. In that case `inner_type` should be set to `T` so that each entry in
        the list can be transformed using the metadata from the container type.

        Defaults to the same value as the `annotation` argument.
r   )Ú
model_dumpNr   rM   r   )rN   r`   TÚjson)Úexclude_unsetÚmode) Ú_compatrc   r    r   r   r   Ú_transform_typeddictÚdictr   ÚitemsrO   r   r   r   r   rX   r=   r   r   r   Úobjectr   r_   Úlistr   ÚpydanticÚ	BaseModelrV   r&   r+   Ú_format_datar,   ©rH   rN   r`   rc   Ústripped_typeÚoriginÚ
items_typerY   ÚvalueÚdÚsubtyperZ   r   s                r2   rO   rO   š   s'  € õ$ %àÑØˆ
ä(¨Ó4€MÜ˜Ó&×7¨-€FÜ�M×"Ñ"¤z°$×'7Ñ'7Ü# DÓ8Ð8à”ƒ~œ* T×*Ñ*Ü˜mÓ,¨QÑ/ˆ
ØZ^×ZdÑZdÔZfÔgÒZfÉJÈC�Ô)¨%ÑGÒGÑZfÒgÐgô 
�m×	$Ñ	$¬°¯©ä˜]×+Ñ+´¸D×0AÑ0AÌ*ÐUYÔ[^×J_ÑJ_ä˜]×+Ñ+´¸D×0AÑ0AÌ*ÐUYÔ[^×J_ÑJ_ô �dœD×!Ñ!Üœ Ó%Ð%ä% m°QÓ7ˆ
Ü 
×+Ñ+ô
 �t�}‰}Ø�Ü˜“:Ðá_cÓdÒ_cÐZ[Ô$ QÈ*ÔUÑ_cÑdÐdä�]×#Ñ#ô
   Ö.ˆGÜ'¨ÐPWÑXŠDñ /àˆä�$œ×*Ñ*×+Ñ+Ù˜$¨d¸Ñ@Ð@ä(¨Ó4€NØÑØˆô ˜>Ó*¨1¨2Ð.€KÛ!ˆ
Ü�j¤,×/Ó/°J×4EÑ4EÓ4QÜ ×&7Ñ&7¸×9SÑ9SÓTÒTñ "ð €Kùóc hùò2 es   ÂI2ÆI8c                ó|  • [        U [        [        45      (       a0  US:X  a  U R                  5       $ US:X  a  Ub  U R	                  U5      $ US:X  aê  [        U 5      (       aÚ  S n[        U [        R                  5      (       a  U R                  5       nOT[        U [        R                  5      (       a5  U R                  5       n[        U[        5      (       a  UR                  5       n[        U[        5      (       d  [        SU  S[!        U5       35      e["        R$                  " U5      R'                  S5      $ U $ ©Nr"   r$   r#   zCould not read bytes from z; Received Úascii)rX   r   r	   Ú	isoformatÚstrftimer   ÚpathlibÚPathÚ
read_bytesÚioÚIOBaseÚreadr=   ÚencodeÚbytesÚRuntimeErrorrP   r#   Ú	b64encodeÚdecode©rH   Úformat_r,   Úbinarys       r2   ro   ro   ì   sú   € Ü�$œœxÐ(×)Ñ)Ø�iÓØ—>‘>Ó#Ð#à�hÓ ?Ñ#>Ø—=‘= Ó1Ð1à�(ÓÔ3°D×9Ñ9Ø%)ˆä�dœGŸL™L×)Ñ)Ø—_‘_Ó&‰FÜ˜œbŸi™i×(Ñ(Ø—Y‘Y“[ˆFä˜&¤#×&Ñ&ØŸ™›�ä˜&¤%×(Ñ(ÜÐ!;¸D¸6ÀÌTÐRXË\ÈNÐ[Ó\Ð\ä×Ò Ó'×.Ñ.¨wÓ7Ð7à€Kr5   c                óÔ   • 0 n[        USS9nU R                  5        HG  u  pE[        U5      (       d  M  UR                  " U5      nUc  XRU'   M2  [	        XVS9U[        XF5      '   MI     U$ ©NT)Úinclude_extrasrM   )r   rj   r   ÚgetrO   r[   ©rH   rI   Úresultr   rY   rt   rU   s          r2   rh   rh     sk   € ð !#€FÜ  ¸tÑD€KØ—j‘j–l‰
ˆÜ˜�‰ñ à—’ Ó$ˆØ‰=à�3‹Kä7KÈEÑ7dˆFÔ'¨Ó3Ó4ñ #ð €Mr5   c              ƒ  ó<   #   • U c  g[        X5      I Sh  v•N $  N7f)zmWrapper over `async_transform()` that allows `None` to be passed.

See `async_transform()` for more details.
N)Úasync_transformrG   s     r2   Úasync_maybe_transformr’     s    é € ð �|ØÜ  Ó5×5Ð5Ñ5ùs   ‚•–c              ƒ  ón   #   • [        U [        [        U5      S9I Sh  v•N n[        [        U5      $  N7f)rL   rM   N)Ú_async_transform_recursiver   rP   r!   rQ   s      r2   r‘   r‘   )  s0   é € ô& 3°4ÄDÌÈ}ÓD]Ñ^×^€KÜ”�KÓ Ð ñ _ùs   ‚5ž3Ÿ5c          
   ƒ  óT  #   • SSK Jn  Uc  Un[        U5      n[        U5      =(       d    Un[	        U5      (       a#  [        U 5      (       a  [        X5      I Sh  v•N $ U[        :X  aK  [        U 5      (       a;  [        U5      S   nU R                  5        VVs0 s H  u  pxU[        X†S9_M     snn$ [        U5      (       a  [        U 5      (       dj  [        U5      (       a%  [        U 5      (       a  [        U [         5      (       a5  [#        U5      (       a¦  [%        U 5      (       a–  [        U [         5      (       d�  [        U [        5      (       a  ['        [(        U 5      $ [+        US5      n[-        U5      (       a  [        U 5      (       a  U $ [/        U 5      $ U  V	s/ s H  n	[1        X‘US9I Sh  v•N PM     sn	$ [3        U5      (       a&  [        U5       H  n
[1        XU
S9I Sh  v•N n M     U $ [        U [4        R6                  5      (       a  U" U SS	S
9$ [9        U5      nUc  U $ [        U5      SS nU HQ  n[        U[:        5      (       d  M  UR<                  c  M)  [?        XR<                  UR@                  5      I Sh  v•N s  $    U $  GN9s  snnf  Nès  sn	f  N¸ N7frb   )!rg   rc   r    r   r   r   Ú_async_transform_typeddictri   r   rj   rO   r   r   r   r   rX   r=   r   r   r   rk   r   r_   rl   r”   r   rm   rn   rV   r&   r+   Ú_async_format_datar,   rp   s                r2   r”   r”   @  sO  é € õ$ %àÑØˆ
ä(¨Ó4€MÜ˜Ó&×7¨-€FÜ�M×"Ñ"¤z°$×'7Ñ'7Ü/°ÓD×DÐDà”ƒ~œ* T×*Ñ*Ü˜mÓ,¨QÑ/ˆ
ØZ^×ZdÑZdÔZfÔgÒZfÉJÈC�Ô)¨%ÑGÒGÑZfÒgÐgô 
�m×	$Ñ	$¬°¯©ä˜]×+Ñ+´¸D×0AÑ0AÌ*ÐUYÔ[^×J_ÑJ_ä˜]×+Ñ+´¸D×0AÑ0AÌ*ÐUYÔ[^×J_ÑJ_ô �dœD×!Ñ!Üœ Ó%Ð%ä% m°QÓ7ˆ
Ü 
×+Ñ+ô
 �t�}‰}Ø�Ü˜“:ÐákoÓpÒkoÐfgÔ0°ÐV`Ña×aÒaÑkoÑpÐpä�]×#Ñ#ô
   Ö.ˆGÜ3°DÐ\cÑd×dŠDñ /àˆä�$œ×*Ñ*×+Ñ+Ù˜$¨d¸Ñ@Ð@ä(¨Ó4€NØÑØˆô ˜>Ó*¨1¨2Ð.€KÛ!ˆ
Ü�j¤,×/Ó/°J×4EÑ4EÓ4QÜ+¨D×2CÑ2CÀZ×E_ÑE_Ó`×`Ò`ñ "ð €Kòk Eùó hñ2 bùÒpñ eñ aùst   ‚AJ(ÁJÁ?J(ÂJÂ1C0J(Æ!JÆ4J
Æ5JÆ=.J(Ç+J$Ç,A'J(ÉJ(É&#J(Ê	J&Ê
J(ÊJ(ÊJÊJ(Ê&J(c              ƒ  óÂ  #   • [        U [        [        45      (       a0  US:X  a  U R                  5       $ US:X  a  Ub  U R	                  U5      $ US:X  Ga  [        U 5      (       aö  S n[        U [        R                  5      (       a-  [        R                  " U 5      R                  5       I S h  v•N nOT[        U [        R                  5      (       a5  U R                  5       n[        U[        5      (       a  UR                  5       n[        U[        5      (       d  [!        SU  S[#        U5       35      e[$        R&                  " U5      R)                  S5      $ U $  N¯7frx   )rX   r   r	   rz   r{   r   r|   r}   Úanyior~   r   r€   r�   r=   r‚   rƒ   r„   rP   r#   r…   r†   r‡   s       r2   r—   r—   ’  s  é € Ü�$œœxÐ(×)Ñ)Ø�iÓØ—>‘>Ó#Ð#à�hÓ ?Ñ#>Ø—=‘= Ó1Ð1à�(ÔÔ3°D×9Ñ9Ø%)ˆä�dœGŸL™L×)Ñ)Ü Ÿ:š: dÓ+×6Ñ6Ó8×8‰FÜ˜œbŸi™i×(Ñ(Ø—Y‘Y“[ˆFä˜&¤#×&Ñ&ØŸ™›�ä˜&¤%×(Ñ(ÜÐ!;¸D¸6ÀÌTÐRXË\ÈNÐ[Ó\Ð\ä×Ò Ó'×.Ñ.¨wÓ7Ð7à€Kñ 9ùs   ‚B+EÂ-EÂ.B0Ec              ƒ  óð   #   • 0 n[        USS9nU R                  5        HO  u  pE[        U5      (       d  M  UR                  " U5      nUc  XRU'   M2  [	        XVS9I S h  v•N U[        XF5      '   MQ     U$  N7fr‹   )r   rj   r   r�   r”   r[   rŽ   s          r2   r–   r–   ­  sx   é € ð !#€FÜ  ¸tÑD€KØ—j‘j–l‰
ˆÜ˜�‰ñ à—’ Ó$ˆØ‰=à�3‹Kä=WÐX]Ñ=p×7pˆFÔ'¨Ó3Ó4ñ #ð €Mñ 8qùs   ‚AA6ÁA4ÁA6c                ó   • [        XX#S9$ )N)ÚglobalnsÚlocalnsrŒ   )Ú_get_type_hints)Úobjrœ   r�   rŒ   s       r2   r   r   Â  s   € ô ˜3¸7ÑbÐbr5   )rH   rk   rI   rk   r;   z
Any | None)rH   r!   rI   rk   r;   r!   )rU   rP   r;   útype | None)rY   r=   rU   rP   r;   r=   )rN   rP   r;   Úbool)rH   rk   rN   rP   r`   r    r;   rk   )rH   rk   rˆ   ÚPropertyFormatr,   r(   r;   rk   )rH   úMapping[str, object]rI   rP   r;   r£   )NNF)
rŸ   r   rœ   zdict[str, Any] | Noner�   zMapping[str, Any] | NonerŒ   r¡   r;   zdict[str, Any])9Ú
__future__r   r   r#   r|   Útypingr   r   r   r   r	   r   Útyping_extensionsr
   r   r   r   rž   r™   rm   Ú_utilsr   r   r   r   r   r   Ú_filesr   rg   r   r   Ú_typingr   r   r   r   r   r   r   r    r!   r¢   r&   rJ   rF   rV   r[   r_   rO   ro   rh   r’   r‘   r”   r—   r–   rD   r5   r2   Ú<module>rª      s  ðÝ "ã 	Û Û ß .Ó .ß #ß \Ó \ã Û ÷÷ õ *ß -÷	÷ 	ó 	ñ ˆTƒ]€ð Ð6Ñ7€÷hñ hðD
*Ø
ð
*àð
*ð ô
*ð!Ø
ð!àð!ð ô!ñ. �4Ñóó ðôô&4ð #ñ	OØ
ðOð ðOð ð	Oð
 õOôdð6Ø
ðàðð ôð*
6Ø
ð
6àð
6ð ô
6ð!Ø
ð!àð!ð ô!ð6 #ñ	OØ
ðOð ðOð ð	Oð
 õOôdð6Ø
ðàðð ôñ* �4Ñð '+Ø(,Ø ð	cØ	ðcà#ðcð &ðcð ð	cð
 ôcó ñcr5   