
    uYf                         d Z ddlmZmZ ddlmZmZ ddlmZ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 ujson.    )	b85decode	b85encode)datedatetime)AnyAnyStr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)UjsonConverterNobjunstructure_askwargsreturnc                 <    t        | j                  ||      fi |S )N)r   )r   unstructure)selfr   r   r   s       T/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/cattrs/preconf/ujson.pyr   zUjsonConverter.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UjsonConverter.loads   s    ~~eD3F3R88r   r"   )
__name__
__module____qualname__r   strr   r   r	   r   r    r   r   r   r      sM    U Uc UC UC U9& 9d1g 9 9 9r   r   	converterc                 h   | j                  t        d        | j                  t        d        | j                  t        d        | j                  t        d        | j                  t        d        | j                  t        d        t        t        t        t        t        t        df   |        y)z
    Configure the converter for use with the ujson library.

    * bytes are serialized as base64 strings
    * datetimes are serialized as ISO 8601
    * sets are serialized as lists
    c                 \    | rt        |       j                  d      S dj                  d      S )Nr   utf8)r   decodevs    r   <lambda>z%configure_converter.<locals>.<lambda>!   s&    !)A,<<VD <<VD r   c                     t        |       S r"   )r   r/   _s     r   r0   z%configure_converter.<locals>.<lambda>#   s
    )A, r   c                 "    | j                         S r"   	isoformatr.   s    r   r0   z%configure_converter.<locals>.<lambda>%   s    AKKM r   c                 ,    t        j                  |       S r"   )r   fromisoformatr2   s     r   r0   z%configure_converter.<locals>.<lambda>&   s    X=S=STU=V r   c                 "    | j                         S r"   r5   r.   s    r   r0   z%configure_converter.<locals>.<lambda>'   s     r   c                 ,    t        j                  |       S r"   )r   r8   r2   s     r   r0   z%configure_converter.<locals>.<lambda>(   s    9K9KA9N r   N)register_unstructure_hookbytesregister_structure_hookr   r   r   r   r'   boolintfloat)r)   s    r   configure_converterrA      s     ''D %%e-FG''2IJ%%h0VW''.EF%%d,NOc4eT&A BINr   argsr   r   c                  t    t         t        i|j                  di       |d<   t        | i |}t	        |       |S )Nunstruct_collection_overrides)r   listgetr   rA   )rB   r   ress      r   make_converterrH   ,   sF    T/
**4b
9/F*+ $
)&
)CJr   N)__doc__base64r   r   r   r   typingr   r   r	   r
   r   ujsonr   r   cattrs._compatr   
convertersr   r   
strategiesr   r   r   rA   rH   r(   r   r   <module>rP      s]    ) ' # 4 4  & 1 4CL9Y 9O= O(#   r   