o
    f                     @   sd  U d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZmZmZmZ d dlmZ d dlmZ d dlmZ d d	lmZmZmZmZmZmZ d d
lmZ d dlmZ ddl m!Z! ddl"m#Z# ddlm$Z$m%Z% ddlm&Z& eswe&Z'dZ(dee j)e j*f de+fddZ,dedee-e.f fddZ/i e0dd e!e+e j)e,e j e,e j*e,e j1dd ee/edd e2e3ee3ee3e	e+e
e+ee+ee+ee+ee+e#e+ee+edd e$e+e%e+e4e3ee+iZ5eee eegef f e6d< eddd d!edefd"d#Z7ed$dd d%eeeee gef f d!edefd&d'Z8ed(dd d)e j1de+fd*d+Z9dS ),    N)deque)Decimal)Enum)IPv4AddressIPv4InterfaceIPv4NetworkIPv6AddressIPv6InterfaceIPv6Network)Path)Pattern)GeneratorType)TYPE_CHECKINGAnyCallableDictTypeUnion)UUID)
deprecated   )Color)	NameEmail)SecretBytes	SecretStr)PydanticDeprecatedSince20)pydantic_encodercustom_pydantic_encodertimedelta_isoformatoreturnc                 C      |   S N)	isoformatr    r%   P/var/www/NoticeGen/venv/lib/python3.10/site-packages/pydantic/deprecated/json.pyr#      s   r#   	dec_valuec                 C   s,   |   j}t|tr|dkrt| S t| S )a  Encodes a Decimal as int of there's no exponent, otherwise float.

    This is useful when we use ConstrainedDecimal to represent Numeric(x,0)
    where a integer (but not int typed) is used. Encoding this as a float
    results in failed round-tripping between encode and parse.
    Our Id type is a prime example of this.

    >>> decimal_encoder(Decimal("1.0"))
    1.0

    >>> decimal_encoder(Decimal("1"))
    1
    r   )as_tupleexponent
isinstanceintfloat)r'   r)   r%   r%   r&   decimal_encoder    s   
r-   c                 C   r!   r"   )decoder$   r%   r%   r&   <lambda>6       r/   c                 C   r!   r"   )total_seconds)tdr%   r%   r&   r/   ;   r0   c                 C      | j S r"   )valuer$   r%   r%   r&   r/   =       c                 C   r3   r"   )patternr$   r%   r%   r&   r/   I   r5   ENCODERS_BY_TYPEQ`pydantic_encoder` is deprecated, use `pydantic_core.to_jsonable_python` instead.)categoryobjc              	   C   s   t jdtdd ddlm}m} ddlm} t| |r| 	 S || r'|| S | j
jd d D ]}zt| }W n	 ty@   Y q/w ||   S td| j
j d	)
Nr8   r   r9   
stacklevelr   )asdictis_dataclass)	BaseModelzObject of type 'z' is not JSON serializable)warningswarnr   dataclassesr=   r>   mainr?   r*   
model_dump	__class____mro__r7   KeyError	TypeError__name__)r:   r=   r>   r?   baseencoderr%   r%   r&   r   Q   s&   
r   L`custom_pydantic_encoder` is deprecated, use `BaseModel.model_dump` instead.type_encodersc              	   C   sX   t jdtdd |jjd d D ]}z| | }W n	 ty!   Y qw ||  S t|S )NrM   r   r;   r@   )rA   rB   r   rF   rG   rH   r   )rN   r:   rK   rL   r%   r%   r&   r   p   s   r   $`timedelta_isoformat` is deprecated.r2   c                 C   st   t jdtdd t| jd\}}t|d\}}| jdk rdnd dt| j d	|d
d|d
d|d
d| jddS )z.ISO 8601 encoding for Python timedelta object.rO   r   r;   <   r   - PDTdHM.06dS)rA   rB   r   divmodsecondsdaysabsmicroseconds)r2   minutesr\   hoursr%   r%   r&   r      s   Fr   ):datetimerA   collectionsr   decimalr   enumr   	ipaddressr   r   r   r   r	   r
   pathlibr   rer   typesr   typingr   r   r   r   r   r   uuidr   typing_extensionsr   colorr   networksr   r   r   r   DeprecationWarning__all__datetimestrr#   r+   r,   r-   bytes	timedelta	frozensetlistsetr7   __annotations__r   r   r   r%   r%   r%   r&   <module>   s   
   
	
$.
