
    uYf                         d Z ddlmZmZmZ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 ddlmZmZ ddlm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 msgpack.    )datedatetimetimetimezone)AnyTypeTypeVarUnion)dumpsloads)AbstractSet   )BaseConverter	Converter)configure_union_passthroughTc            	       D    e Zd Zd
dedededefdZdedee   dedefd	Zy)MsgpackConverterN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/msgpack.pyr   zMsgpackConverter.dumps   s"    T%%c.%ITVTT    dataclc                 :    | j                  t        |fi ||      S N)	structurer   )r   r   r   r   s       r   r   zMsgpackConverter.loads   s    ~~eD3F3R88r   r!   )	__name__
__module____qualname__r   bytesr   r   r   r    r   r   r   r      sM    U Uc UC UE U9% 9T!W 9 9 9r   r   	converterc           	         | j                  t        d        | j                  t        d        | j                  t        d        | j                  t        d        t	        t
        t        t        t        t        dt        f   |        y)z
    Configure the converter for use with the msgpack library.

    * datetimes are serialized as timestamp floats
    * sets are serialized as lists
    c                 "    | j                         S r!   )	timestampvs    r   <lambda>z%configure_converter.<locals>.<lambda>   s    AKKM r   c                 J    t        j                  | t        j                        S r!   )r   fromtimestampr   utcr-   _s     r   r.   z%configure_converter.<locals>.<lambda>    s    x55aF r   c                 z    t        j                  | t        t        j                              j                         S )N)tzinfo)r   combiner   r   r1   r+   r,   s    r   r.   z%configure_converter.<locals>.<lambda>#   s%    ((D,EFPPR r   c                 f    t        j                  | t        j                        j	                         S r!   )r   r0   r   r1   r   r2   s     r   r.   z%configure_converter.<locals>.<lambda>&   s     811!X\\BGGI r   N)register_unstructure_hookr   register_structure_hookr   r   r
   strboolintfloatr&   )r(   s    r   configure_converterr>      ss     ''2IJ%%F ''R %%I  c4eT5&H I9Ur   argsr   r   c                  t    t         t        i|j                  di       |d<   t        | i |}t	        |       |S )Nunstruct_collection_overrides)r   listgetr   r>   )r?   r   ress      r   make_converterrE   +   sF    T/
**4b
9/F*+ D
+F
+CJr   N)__doc__r   r   r   r   typingr   r   r	   r
   msgpackr   r   cattrs._compatr   
convertersr   r   
strategiesr   r   r   r>   rE   r'   r   r   <module>rL      s^    + 3 3 , ,   & 1 4CL9y 9V= V(#  1A r   