o
    i8                     @   s  d dl mZmZmZ d dlmZ d dl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mZmZmZ d dlmZ d dlmZ zd d	lZesKJ d d
lmZ W n eyc   G dd deZY nw G dd deZG dd deZG dd deZG dd deZ G dd deZ!G dd deZ"G dd deZ#G dd deZ$G dd deZ%G dd  d eZ&e	d! Z'G d"d# d#eZ(e(e)B Z*G d$d% d%ed&d'Z+G d(d) d)eZ,G d*d+ d+eZ-G d,d- d-eZ.G d.d/ d/eZ/G d0d1 d1e/Z0G d2d3 d3e/Z1G d4d5 d5eZ2G d6d7 d7eZ3G d8d9 d9eZ4G d:d; d;eZ5G d<d= d=eZ6G d>d? d?eZ7G d@dA dAeZ8G dBdC dCeZ9G dDdE dEe8Z:G dFdG dGe8Z;G dHdI dIe;Z<G dJdK dKeZ=G dLdM dMe=Z>G dNdO dOe=Z?G dPdQ dQe=Z@G dRdS dSe=ZAG dTdU dUeZBG dVdW dWe8ZCG dXdY dYe8ZDe:e;B eCB eDB e<B ZEG dZd[ d[eZFG d\d] d]eZGG d^d_ d_eZHe(I  e5I  e-I  d	S )`    )CallableIterableMapping)Enum)	AnnotatedAnyLiteralOptionalUnion)"with_info_plain_validator_function)logger)AnyUrl	BaseModelFieldGetJsonSchemaHandler)	TypedDict)
deprecatedN)EmailStrc                	   @   s   e Zd Zedeedef  fddZededefddZ	eded	edefd
dZ
edeeef dedeeef fddZedee deegeeef f deeef fddZdS )r   return.c                 c   s    | j V  d S N)validate)cls r   M/home/app/Keep/.python/lib/python3.10/site-packages/fastapi/openapi/models.py__get_validators__   s   zEmailStr.__get_validators__vc                 C      t d t|S Nzpemail-validator not installed, email fields will be treated as str.
To install, run: pip install email-validatorr   warningstr)r   r   r   r   r   r         zEmailStr.validate_EmailStr__input_value_c                 C   r   r   r   )r   r"   r#   r   r   r   	_validate$   r!   zEmailStr._validatecore_schemahandlerc                 C   s
   dddS )Nstringemail)typeformatr   )r   r%   r&   r   r   r   __get_pydantic_json_schema__,      
z%EmailStr.__get_pydantic_json_schema__sourcec                 C   s
   t | jS r   )r   r$   )r   r-   r&   r   r   r   __get_pydantic_core_schema__2   r,   z%EmailStr.__get_pydantic_core_schema__N)__name__
__module____qualname__classmethodr   r   r   r   r    r   r$   r   r   dictr+   r)   r.   r   r   r   r   r      s.    


r   c                   @   s   e Zd ZddiZdS )BaseModelWithConfigextraallowN)r/   r0   r1   Zmodel_configr   r   r   r   r4   9   s    r4   c                   @   s>   e Zd ZU dZedB ed< dZedB ed< dZe	dB ed< dS )ContactNnameurlr(   )
r/   r0   r1   r8   r    __annotations__r9   r   r(   r   r   r   r   r   r7   =      
 r7   c                   @   6   e Zd ZU eed< dZedB ed< dZedB ed< dS )Licenser8   N
identifierr9   )r/   r0   r1   r    r:   r>   r9   r   r   r   r   r   r=   C      
 r=   c                   @   sn   e Zd ZU eed< dZedB ed< dZedB ed< dZedB ed< dZe	dB ed< dZ
edB ed< eed< dS )	InfotitleNsummarydescriptiontermsOfServicecontactlicenseversion)r/   r0   r1   r    r:   rB   rC   rD   rE   r7   rF   r=   r   r   r   r   r@   I   s   
 r@   c                   @   sH   e Zd ZU dZeee dB eddf ed< eed< dZ	edB ed< dS )ServerVariableN   )
min_lengthenumdefaultrC   )
r/   r0   r1   rK   r   listr    r   r:   rC   r   r   r   r   rH   S   s   
 "rH   c                   @   sB   e Zd ZU eeB ed< dZedB ed< dZeee	f dB ed< dS )Serverr9   NrC   	variables)
r/   r0   r1   r   r    r:   rC   rO   r3   rH   r   r   r   r   rN   Y   s   
 rN   c                   @   s    e Zd ZU eddZeed< dS )	Reference$refaliasrefN)r/   r0   r1   r   rT   r    r:   r   r   r   r   rP   _   s   
 rP   c                   @   s.   e Zd ZU eed< dZeeef dB ed< dS )DiscriminatorZpropertyNameNmapping)r/   r0   r1   r    r:   rV   r3   r   r   r   r   rU   c   s   
 rU   c                   @   s^   e Zd ZU dZedB ed< dZedB ed< dZedB ed< dZe	dB ed< dZ
e	dB ed< dS )XMLNr8   	namespaceprefix	attributewrapped)r/   r0   r1   r8   r    r:   rX   rY   rZ   boolr[   r   r   r   r   rW   h   s   
 rW   c                   @   s&   e Zd ZU dZedB ed< eed< dS )ExternalDocumentationNrC   r9   )r/   r0   r1   rC   r    r:   r   r   r   r   r   r]   p   s   
 r]   )arraybooleanintegernullnumberobjectr'   c                   @   s  e Zd ZU edddZedB ed< edddZedB ed< edddZedB ed< edd	dZ	edB ed
< edddZ
edB ed< edddZedB ed< edddZedB ed< edddZeedf dB ed< edddZedB ed< dZed dB ed< dZed dB ed< dZed dB ed< edddZed ed< edddZed ed< dZed ed< edddZed ed< dZeedf dB ed < dZed dB ed!< dZed ed"< dZed ed#< dZeedf dB ed$< dZeedf dB ed%< dZed ed&< dZ ed ed'< dZ!ed ed(< dZ"ed ed)< dZ#e$ee$ B dB ed*< dZ%ee& dB ed+< dZ'e&dB ed,< edd-d.Z(e)dB ed/< dZ*e)dB ed0< dZ+e)dB ed1< dZ,e)dB ed2< dZ-e)dB ed3< edd-d4Z.e/dB ed5< edd-d4Z0e/dB ed6< dZ1edB ed7< edd-d4Z2e/dB ed8< edd-d4Z3e/dB ed9< dZ4e5dB ed:< edd-d4Z6e/dB ed;< edd-d4Z7e/dB ed<< edd-d4Z8e/dB ed=< edd-d4Z9e/dB ed>< dZ:ee dB ed?< dZ;eee<e f dB ed@< dZ=edB edA< dZ>edB edB< dZ?edB edC< dZ@ed edD< dZAedB edE< dZBedB edF< dZCe&dB edG< dZDe5dB edH< dZEe5dB edI< dZFe5dB edJ< dZGee& dB edK< dZHeIdB edL< dZJeKdB edM< dZLeMdB edN< dZNeOe&dB ePdOf edP< dS )QSchemaNz$schemarL   rS   schema_z$vocabulary
vocabularyz$ididz$anchoranchorz$dynamicAnchordynamicAnchorrQ   rT   z$dynamicRef
dynamicRefz$defsSchemaOrBooldefsz$commentcommentallOfanyOfoneOfnotnot_ifif_thenelseelse_dependentSchemasprefixItemsitemscontains
propertiespatternPropertiesadditionalPropertiespropertyNamesunevaluatedItemsunevaluatedPropertiesr)   rK   constr   )rL   gt
multipleOfmaximumexclusiveMaximumminimumexclusiveMinimum)rL   ge	maxLength	minLengthpatternmaxItemsminItemsuniqueItemsmaxContainsminContainsmaxPropertiesminPropertiesrequireddependentRequiredr*   contentEncodingcontentMediaTypecontentSchemarA   rC   rL   r   readOnly	writeOnlyexamplesdiscriminatorxmlexternalDocsznDeprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, although still supported. Use examples instead.example)Qr/   r0   r1   r   rf   r    r:   rg   rh   ri   rj   rT   rk   rm   r3   rn   ro   rM   rp   rq   rs   r	   ru   rv   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r)   
SchemaTyperK   r   r   r   floatr   r   r   r   r   intr   r   r   r   r   r\   r   r   r   r   r   r   setr*   r   r   r   rA   rC   rL   r   r   r   r   r   rU   r   rW   r   r]   r   r   typing_deprecatedr   r   r   r   rd   {   s   
  rd   c                   @   sF   e Zd ZU edB ed< edB ed< edB ed< edB ed< ddiZdS )ExampleNrB   rC   valueZexternalValuer5   r6   )r/   r0   r1   r    r:   r   r   Z__pydantic_config__r   r   r   r   r      s   
 r   F)totalc                   @      e Zd ZdZdZdZdZdS )ParameterInTypequeryheaderpathcookieN)r/   r0   r1   r   r   r   r   r   r   r   r   r      
    r   c                   @   sn   e Zd ZU dZedB ed< dZeeede	f f dB ed< dZ
edB ed< dZedB ed< dZedB ed< dS )EncodingNcontentTypeHeaderheadersstyleexplodeallowReserved)r/   r0   r1   r   r    r:   r   r3   r
   rP   r   r   r\   r   r   r   r   r   r      s   
  r   c                   @   sn   e Zd ZU edddZeeB dB ed< dZe	dB ed< dZ
eeeeB f dB ed< dZeeef dB ed< dS )	MediaTypeNschemare   rf   r   r   encoding)r/   r0   r1   r   rf   rd   rP   r:   r   r   r   r3   r    r   r   r   r   r   r   r   r      s
   
 r   c                   @   s   e Zd ZU dZedB ed< dZedB ed< dZedB ed< dZ	edB ed< dZ
edB ed< dZedB ed< eddd	ZeeB dB ed
< dZedB ed< dZeeeeB f dB ed< dZeeef dB ed< dS )ParameterBaseNrC   r   r   r   r   r   r   re   rf   r   r   content)r/   r0   r1   rC   r    r:   r   r\   r   r   r   r   r   rf   rd   rP   r   r   r   r3   r   r   r   r   r   r   r   r      s   
 r   c                   @   s(   e Zd ZU eed< eddZeed< dS )	Parameterr8   inrR   in_N)r/   r0   r1   r    r:   r   r   r   r   r   r   r   r     s   
 r   c                   @   s   e Zd ZdS )r   N)r/   r0   r1   r   r   r   r   r     s    r   c                   @   s>   e Zd ZU dZedB ed< eeef ed< dZe	dB ed< dS )RequestBodyNrC   r   r   )
r/   r0   r1   rC   r    r:   r3   r   r   r\   r   r   r   r   r     r;   r   c                   @   s~   e Zd ZU dZedB ed< dZedB ed< dZeee	eB f dB ed< dZ
e	eB dB ed< dZedB ed< dZedB ed< dS )LinkNoperationRefoperationId
parametersrequestBodyrC   server)r/   r0   r1   r   r    r:   r   r   r3   r   r   rC   r   rN   r   r   r   r   r     s   
 r   c                   @   sf   e Zd ZU eed< dZeeeeB f dB ed< dZ	eee
f dB ed< dZeeeeB f dB ed< dS )ResponserC   Nr   r   links)r/   r0   r1   r    r:   r   r3   r   rP   r   r   r   r   r   r   r   r   r     s
   
  r   c                   @   s  e Zd ZU dZee dB ed< dZedB ed< dZedB ed< dZ	e
dB ed< dZedB ed< dZeeeB  dB ed< dZeeB dB ed< dZeeeeB f dB ed	< dZeeeed
f eB f dB ed< dZedB ed< dZeeeee f  dB ed< dZee dB ed< dS )	OperationNtagsrB   rC   r   r   r   r   	responsesPathItem	callbacksr   securityservers)r/   r0   r1   r   rM   r    r:   rB   rC   r   r]   r   r   r   rP   r   r   r   r3   r   r   r   r   r\   r   r   rN   r   r   r   r   r   !  s   
 $ r   c                   @   s   e Zd ZU edddZedB ed< dZedB ed< dZedB ed< dZ	e
dB ed< dZe
dB ed< dZe
dB ed	< dZe
dB ed
< dZe
dB ed< dZe
dB ed< dZe
dB ed< dZe
dB ed< dZee dB ed< dZeeeB  dB ed< dS )r   NrQ   re   rT   rB   rC   getputpostdeleteoptionsheadpatchtracer   r   )r/   r0   r1   r   rT   r    r:   rB   rC   r   r   r   r   r   r   r   r   r   r   rM   rN   r   r   rP   r   r   r   r   r   1  s   
 r   c                   @   r   )SecuritySchemeTypeapiKeyhttpoauth2openIdConnectN)r/   r0   r1   r   r   r   r   r   r   r   r   r   A  r   r   c                   @   s0   e Zd ZU eddZeed< dZedB ed< dS )SecurityBaser)   rR   type_NrC   )	r/   r0   r1   r   r   r   r:   rC   r    r   r   r   r   r   H  s   
 r   c                   @   s   e Zd ZdZdZdZdS )APIKeyInr   r   r   N)r/   r0   r1   r   r   r   r   r   r   r   r   M  s    r   c                   @   s>   e Zd ZU eejddZeed< eddZe	ed< e
ed< dS )	APIKeyr)   re   r   r   rR   r   r8   N)r/   r0   r1   r   r   r   r   r:   r   r   r    r   r   r   r   r   S  s   
 r   c                   @   ,   e Zd ZU eejddZeed< eed< dS )HTTPBaser)   re   r   schemeN)	r/   r0   r1   r   r   r   r   r:   r    r   r   r   r   r   Y     
 r   c                   @   s.   e Zd ZU dZed ed< dZedB ed< dS )
HTTPBearerZbearerr   NbearerFormat)r/   r0   r1   r   r   r:   r   r    r   r   r   r   r   ^  s   
 r   c                   @   s2   e Zd ZU dZedB ed< i Zeeef ed< dS )	OAuthFlowN
refreshUrlscopes)r/   r0   r1   r   r    r:   r   r3   r   r   r   r   r   c  s   
 r   c                   @      e Zd ZU eed< dS )OAuthFlowImplicitauthorizationUrlNr/   r0   r1   r    r:   r   r   r   r   r   h     
 r   c                   @   r   )OAuthFlowPasswordtokenUrlNr   r   r   r   r   r   l  r   r   c                   @   r   )OAuthFlowClientCredentialsr   Nr   r   r   r   r   r   p  r   r   c                   @   s   e Zd ZU eed< eed< dS )OAuthFlowAuthorizationCoder   r   Nr   r   r   r   r   r   t  s   
 r   c                   @   sN   e Zd ZU dZedB ed< dZedB ed< dZe	dB ed< dZ
edB ed< dS )
OAuthFlowsNimplicitpasswordclientCredentialsauthorizationCode)r/   r0   r1   r   r   r:   r   r   r   r   r   r   r   r   r   r   r   y  s
   
 r   c                   @   r   )OAuth2r)   re   r   ZflowsN)	r/   r0   r1   r   r   r   r   r:   r   r   r   r   r   r     r   r   c                   @   r   )OpenIdConnectr)   re   r   ZopenIdConnectUrlN)	r/   r0   r1   r   r   r   r   r:   r    r   r   r   r   r     s
   
 r   c                   @   s2  e Zd ZU dZeeeeB f dB ed< dZ	eee
eB f dB ed< dZeeeeB f dB ed< dZeeeeB f dB ed< dZeeeeB f dB ed< dZeeeeB f dB ed< dZeeeeB f dB ed< dZeeeeB f dB ed	< dZeeeeef eB eB f dB ed
< dZeeeeB f dB ed< dS )
ComponentsNschemasr   r   r   requestBodiesr   securitySchemesr   r   	pathItems)r/   r0   r1   r   r3   r    rd   rP   r:   r   r   r   r   r   r   r   r   r   r   r   SecuritySchemer   r   r   r   r   r   r   r   r   r   r     s   
 ( r   c                   @   r<   )Tagr8   NrC   r   )r/   r0   r1   r    r:   rC   r   r]   r   r   r   r   r     r?   r   c                   @   s   e Zd ZU eed< eed< dZedB ed< dZee	 dB ed< dZ
eeeeB f dB ed< dZeeeeB f dB ed< dZedB ed< dZeeeee f  dB ed	< dZee dB ed
< dZedB ed< dS )OpenAPIZopenapiinfoNjsonSchemaDialectr   pathswebhooks
componentsr   r   r   )r/   r0   r1   r    r:   r@   r  r   rM   rN   r  r3   r   r   r  rP   r  r   r   r   r   r   r]   r   r   r   r   r     s   
  r   )Jcollections.abcr   r   r   rK   r   typingr   r   r   r	   r
   Zfastapi._compatr   Zfastapi.loggerr   Zpydanticr   r   r   r   Ztyping_extensionsr   r   r   Zemail_validatorr   ImportErrorr    r4   r7   r=   r@   rH   rN   rP   rU   rW   r]   r   rd   r\   rl   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zmodel_rebuildr   r   r   r   <module>   s~    $
V		