
    uYfw                         d Z ddlmZm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 ddlmZ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 the stdlib json.    )	b85decode	b85encode)datedatetime)dumpsloads)AnyTypeTypeVarUnion)AbstractSetCounter   )BaseConverter	Converter)configure_union_passthroughTc            	       N    e Zd Zd
dedededefdZdeeef   dee	   dede	fd	Z
y)JsonConverterNobjunstructure_askwargsreturnc                 <    t        | j                  ||      fi |S )N)r   )r   unstructure)selfr   r   r   s       S/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/cattrs/preconf/json.pyr   zJsonConverter.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JsonConverter.loads   s    ~~eD3F3R88r   r"   )__name__
__module____qualname__r	   strr   r   bytesr
   r   r    r   r   r   r      sV    U Uc UC UC U9%s
+ 9a 9C 9A 9r   r   	converterc           	      r   | 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t        f   |        y)z
    Configure the converter for use with the stdlib json module.

    * bytes are serialized as base64 strings
    * datetimes are serialized as ISO 8601
    * counters are serialized as dicts
    * 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   r0   _s     r   r1   z%configure_converter.<locals>.<lambda>#   s
    )A, r   c                 "    | j                         S r"   	isoformatr/   s    r   r1   z%configure_converter.<locals>.<lambda>$   s    AKKM r   c                 ,    t        j                  |       S r"   )r   fromisoformatr3   s     r   r1   z%configure_converter.<locals>.<lambda>%   s    X=S=STU=V r   c                 "    | j                         S r"   r6   r/   s    r   r1   z%configure_converter.<locals>.<lambda>&   s     r   c                 ,    t        j                  |       S r"   )r   r9   r3   s     r   r1   z%configure_converter.<locals>.<lambda>'   s    9K9KA9N r   N)register_unstructure_hookr(   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eT5&H I9Ur   argsr   r   c                      t         t        t        t        i|j	                  di       |d<   t        | i |}t        |       |S )Nunstruct_collection_overrides)r   listr   dictgetr   rA   )rB   r   ress      r   make_converterrI   +   sM    T/ **4b
9/F*+
 
(
(CJr   N)__doc__base64r   r   r   r   jsonr   r   typingr	   r
   r   r   cattrs._compatr   r   
convertersr   r   
strategiesr   r   r   rA   rI   r)   r   r   <module>rQ      s]    3 ' #  , , / 1 4CL9I 9V= V(	# 	 	 	r   