
    uYf                     
   d 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mZmZ ddlmZmZ ddl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  ed      Z  e	d      Z! G d de      Z"defdZ#dedede"fdZ$y)z%Preconfigured converters for tomlkit.    )	b85decode	b85encode)datedatetime)Enum)
attrgetter)AnyTypeTypeVarUnion)dumpsloads)FloatIntegerString)AbstractSet
is_mapping   )BaseConverter	Converter)configure_union_passthrough   )validate_datetimeT_value_c            	       @    e Zd Zd
dedededefdZdedee   defd	Zy)TomlkitConverterNobjunstructure_askwargsreturnc                 <    t        | j                  ||      fi |S )N)r   )r   unstructure)selfr   r   r    s       V/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/cattrs/preconf/tomlkit.pyr   zTomlkitConverter.dumps   s"    T%%c.%ITVTT    dataclc                 8    | j                  t        |      |      S N)	structurer   )r$   r'   r(   s      r%   r   zTomlkitConverter.loads   s    ~~eDk2..r&   r*   )	__name__
__module____qualname__r	   strr   r
   r   r    r&   r%   r   r      sF    U Uc UC UC U/# /47 /q /r&   r   	converterc           
           j                  t        d         j                  t        d        d
dt        f fd} j                  j                  t        |dfg        j                  t        d         j                  t        t                j                  t        d         j                  t        d	        t        t        t        t        t        t        t         t"        t$        f           y)z
    Configure the converter for use with the tomlkit library.

    * bytes are serialized as base85 strings
    * sets are serialized as lists
    * tuples are serializas as lists
    * mapping keys are coerced into strings when unstructuring
    c                     t        |       S r*   )r   v_s     r%   <lambda>z%configure_converter.<locals>.<lambda>&   s
    )A, r&   c                 \    | rt        |       j                  d      S dj                  d      S )Nr&   utf8r   decoder5   s    r%   r7   z%configure_converter.<locals>.<lambda>(   s&    !)A,<<VD <<VD r&   Nr(   c                     t         }t        | dd       }|rLt        |d   t               rt        |d   t              rt        nd }nt        |d   t
              r
dt
        fd}j                  | ||      S )N__args__r   kc                 6    t        |       j                  d      S )Nr9   r:   )r?   s    r%   key_handlerzIconfigure_converter.<locals>.gen_unstructure_mapping.<locals>.key_handler6   s    $Q<..v66r&   )unstructure_torA   )r/   getattr
issubclassr   _enum_value_getterbytesgen_unstructure_mapping)r(   rB   rA   argsr1   s       r%   rG   z4configure_converter.<locals>.gen_unstructure_mapping+   sz    r:t, $q'3'4>tAw4M0SWDGU+75 7 00~; 1 
 	
r&   Tc                     | S r*   r0   r<   s    r%   r7   z%configure_converter.<locals>.<lambda>C   s    A r&   c                 "    | j                         S r*   )	isoformatr<   s    r%   r7   z%configure_converter.<locals>.<lambda>E   s     r&   c                 ,    t        j                  |       S r*   )r   fromisoformatr4   s     r%   r7   z%configure_converter.<locals>.<lambda>F   s    9K9KA9N r&   r*   )register_structure_hookrF   register_unstructure_hookr	   _unstructure_funcregister_func_listr   r   r   r   r   r   r/   r   boolintr   floatr   )r1   rG   s   ` r%   configure_converterrU      s     %%e-FG''D
C 
$ 22
-t	45 ''+>%%h0AB''.EF%%d,NOc64gue;<ir&   rH   r    r!   c                      t         t        t        t        i|j                  di       |d<   t	        | i |}t        |       |S )Nunstruct_collection_overrides)r   listtuplegetr   rU   )rH   r    ress      r%   make_converterr\   L   sM    Tt/ **4b
9/F*+
 D
+F
+CJr&   N)%__doc__base64r   r   r   r   enumr   operatorr   typingr	   r
   r   r   tomlkitr   r   tomlkit.itemsr   r   r   cattrs._compatr   r   
convertersr   r   
strategiesr    r   r   rE   r   rU   r\   r0   r&   r%   <module>rh      sw    + ' #   , ,   0 0 2 1 4 CL	* /y /,= ,^	# 	 	1A 	r&   