
    i+                     @   S r SSKJrJr  SSKJr  SSKJrJr  SSKJ	r	  SSK
Jr  SSKJrJrJr  SSKJrJr  S	S
KJr  S	SKJrJrJr  S	SKJr  S	SKJr  S	SKJr  S	SKJ r   SSK!J"r"J#r#J$r$  / SQr%\" S5      r& " S S\5      r'S\SS4S jr(\$" \'5      S\S\S\'4S j5       r)g)z$Preconfigured converters for orjson.    )	b85decode	b85encode)Set)datedatetime)Enum)partial)AnyTypeVarUnion)dumpsloads   )is_subclass)
is_mappingis_namedtuplenamedtuple_unstructure_factory)	Converteridentity)is_literal_containing_enums)configure_union_passthrough   )is_primitive_enum'literals_with_enums_unstructure_factorywrap)OrjsonConverterconfigure_convertermake_converterTc            	       \    \ rS rSrSS\S\S\S\4S jjrS\\\\	\
4   S	\\   S\4S
 jrSrg)r      Nobjunstructure_askwargsreturnc                 4    [        U R                  XS940 UD6$ )N)r$   )r   unstructure)selfr#   r$   r%   s       T/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/cattrs/preconf/orjson.pyr   OrjsonConverter.dumps   s     T%%c%ITVTT    dataclc                 8    U R                  [        U5      U5      $ N)	structurer   )r)   r-   r.   s      r*   r   OrjsonConverter.loads   s    ~~eDk2..r,    r0   )__name__
__module____qualname____firstlineno__r
   bytesr   r   	bytearray
memoryviewstrtyper    r   __static_attributes__r3   r,   r*   r   r      sU    U Uc UC UE U/%y*c AB /Q /TU /r,   r   	converterr&   Nc           	        ^  T R                  [        S 5        T R                  [        S 5        T R                  [        S 5        T R                  [        S 5        SS[
        4U 4S jjjnT R                  R                  [        US4[        [        [        [        S	9S
4/5        T R                  [        [        SS9S 5        T R                  [        [         5        [#        [$        [&        [(        [*        [,        S4   T 5        g)aP  
Configure the converter for use with the orjson library.

* bytes are serialized as base85 strings
* datetimes and dates are passed through to be serialized as RFC 3339 by orjson
* typed namedtuples are serialized as lists
* sets are serialized as lists
* string enum mapping keys have special handling
* mapping keys are coerced into strings when unstructuring
* bare, string and int enums are passed through when unstructuring

.. versionchanged:: 24.1.0
    Add support for typed namedtuples.
.. versionchanged:: 24.2.0
    Enums are left to the library to unstructure, speeding them up.
c                 f    U (       a  [        U 5      R                  S5      $ SR                  S5      $ )Nr,   utf8)r   decodevs    r*   <lambda>%configure_converter.<locals>.<lambda>3   s"    !)A,<<VD<<VDr,   c                     [        U 5      $ r0   )r   rD   _s     r*   rE   rF   5   s    )A,r,   c                 .    [         R                  " U 5      $ r0   )r   fromisoformatrH   s     r*   rE   rF   7   s    X=S=STU=Vr,   c                 .    [         R                  " U 5      $ r0   )r   rK   rH   s     r*   rE   rF   8   s    9K9KA9Nr,   Nr.   c                    > [         n[        U SS 5      nU(       aT  [        US   [         5      (       a  [        US   [        5      (       a  S nO TR	                  US   5      nU[
        :w  a  UnTR                  XUS9$ )N__args__r   c                     U R                   $ r0   )valuerC   s    r*   key_handlerMconfigure_converter.<locals>.unstructure_mapping_factory.<locals>.key_handler@   s    77Nr,   )unstructure_torQ   )r;   getattrr   r   get_unstructure_hookr   gen_unstructure_mapping)r.   rS   rQ   argskhr>   s        r*   unstructure_mapping_factory8configure_converter.<locals>.unstructure_mapping_factory:   s~    r:t,47C(([a$-G-G# 33DG<>"$K00; 1 
 	
r,   T)rS   extended)include_bare_enumsc                     [         $ r0   r   )ts    r*   rE   rF   [   s    xr,   r0   )register_unstructure_hookr8   register_structure_hookr   r   r
   _unstructure_funcregister_func_listr   r   r	   r   tuple!register_unstructure_hook_factoryr   r   r   r   r   r;   boolintfloat)r>   rY   s   ` r*   r   r   !   s    " ''D %%e-FG%%h0VW%%d,NO
 
 
, 224d;6uM	
	 //!d;=O //#%L  c4eT&A BINr,   rW   r%   c                  t    [         [        0UR                  S0 5      EUS'   [        U 0 UD6n[	        U5        U$ )Nunstruct_collection_overrides)r   listgetr   r   )rW   r%   ress      r*   r   r   c   sH     	T/
**4b
9/F*+ 4
*6
*CJr,   )*__doc__base64r   r   collections.abcr   r   r   enumr   	functoolsr	   typingr
   r   r   orjsonr   r   _compatr   colsr   r   r   
convertersr   fnsr   literalsr   
strategiesr    r   r   r   __all__r    r   r   r   r3   r,   r*   <module>r|      s    * '  #   & &  ! L L "  2 4 N N
FCL/i /?O9 ?O ?OD o#    r,   