o
     d+                     @   s2  d dl mZ d dlmZmZmZmZmZmZm	Z	 d dl
mZ d dlmZmZmZ zd dlZes1J d dlmZ W n eyI   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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/d0 d0eZ'G d1d2 d2eZ(G d3d4 d4eZ)G d5d6 d6eZ*G d7d8 d8eZ+G d9d: d:eZ,G d;d< d<e+Z-G d=d> d>e+Z.G d?d@ d@e.Z/G dAdB dBeZ0G dCdD dDe0Z1G dEdF dFe0Z2G dGdH dHe0Z3G dIdJ dJe0Z4G dKdL dLeZ5G dMdN dNe+Z6G dOdP dPe+Z7e	e-e.e6e7e/f Z8G dQdR dReZ9G dSdT dTeZ:G dUdV dVeZ;e<  e(<  e <  dS )W    )Enum)AnyCallableDictIterableListOptionalUnion)logger)AnyUrl	BaseModelFieldN)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	dS )	r   return.c                 c   s    | j V  d S )N)validate)cls r   A/usr/local/lib/python3.10/dist-packages/fastapi/openapi/models.py__get_validators__   s   zEmailStr.__get_validators__vc                 C   s   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      s   zEmailStr.validateN)
__name__
__module____qualname__classmethodr   r   r   r   r   r   r   r   r   r   r      s
    r   c                   @   sL   e Zd ZU dZee ed< dZee ed< dZ	ee
 ed< G dd dZdS )ContactNnameurlemailc                   @      e Zd ZdZdS )zContact.ConfigallowNr   r   r   extrar   r   r   r   Config!       r$   )r   r   r   r   r   r   __annotations__r   r   r   r   r$   r   r   r   r   r      
   
 r   c                   @   s4   e Zd ZU eed< dZee ed< G dd dZdS )Licenser   Nr   c                   @   r    )zLicense.Configr!   Nr"   r   r   r   r   r$   )   r%   r$   )	r   r   r   r   r&   r   r   r   r$   r   r   r   r   r(   %   s   
 r(   c                   @   sl   e Zd ZU eed< dZee ed< dZee ed< dZee	 ed< dZ
ee ed< eed< G dd	 d	ZdS )
InfotitleNdescriptiontermsOfServicecontactlicenseversionc                   @   r    )zInfo.Configr!   Nr"   r   r   r   r   r$   5   r%   r$   )r   r   r   r   r&   r+   r   r,   r-   r   r.   r(   r$   r   r   r   r   r)   -   s   
 r)   c                   @   sH   e Zd ZU dZeee  ed< eed< dZee ed< G dd dZ	dS )ServerVariableNenumdefaultr+   c                   @   r    )zServerVariable.Configr!   Nr"   r   r   r   r   r$   >   r%   r$   )
r   r   r   r1   r   r   r   r&   r+   r$   r   r   r   r   r0   9   s
   
 r0   c                   @   sT   e Zd ZU eeef ed< dZee ed< dZ	ee
eef  ed< G dd dZdS )Serverr   Nr+   	variablesc                   @   r    )zServer.Configr!   Nr"   r   r   r   r   r$   G   r%   r$   )r   r   r   r	   r   r   r&   r+   r   r4   r   r0   r$   r   r   r   r   r3   B   s
   
 r3   c                   @   s    e Zd ZU eddZeed< dS )	Reference$refaliasrefN)r   r   r   r   r9   r   r&   r   r   r   r   r5   K   s   
 r5   c                   @   s.   e Zd ZU eed< dZeeeef  ed< dS )DiscriminatorpropertyNameNmapping)r   r   r   r   r&   r<   r   r   r   r   r   r   r:   O   s   
 r:   c                   @   sl   e Zd ZU dZee ed< dZee ed< dZee ed< dZ	ee
 ed< dZee
 ed< G dd dZdS )	XMLNr   	namespaceprefix	attributewrappedc                   @   r    )z
XML.Configr!   Nr"   r   r   r   r   r$   [   r%   r$   )r   r   r   r   r   r   r&   r>   r?   r@   boolrA   r$   r   r   r   r   r=   T   s   
 r=   c                   @   s4   e Zd ZU dZee ed< eed< G dd dZdS )ExternalDocumentationNr+   r   c                   @   r    )zExternalDocumentation.Configr!   Nr"   r   r   r   r   r$   c   r%   r$   )	r   r   r   r+   r   r   r&   r   r$   r   r   r   r   rC   _   s   
 rC   c                   @   s  e Zd ZU edddZee ed< dZee ed< dZ	ee
 ed< dZee
 ed< dZee
 ed< dZee
 ed	< dZee
 ed
< edddZee ed< edddZee ed< dZee ed< edddZee ed< edddZee ed< dZee ed< edddZee ed< edddZee ed< dZeee  ed< dZeee  ed< dZee ed< dZeed   ed< dZeed   ed< dZ eed   ed< edddZ!ed  ed< dZ"ee#d ed  f  ed< dZ$ee%ed f  ed< dZ&ee#d e'ef  ed< dZ(ee ed < dZ)ee ed!< dZ*ee ed"< dZ+ee ed#< dZ,ee- ed$< dZ.ee ed%< dZ/ee ed&< dZ0ee1 ed'< dZ2ee3 ed(< dZ4ee ed)< dZ5ee ed*< G d+d, d,Z6dS )-SchemaNr6   r2   r8   r9   r*   
multipleOfmaximumexclusiveMaximumminimumexclusiveMinimumr   )r2   gte	maxLength	minLengthpatternmaxItemsminItemsuniqueItemsmaxPropertiesminPropertiesrequiredr1   typeallOfoneOfanyOfnotnot_items
propertiesadditionalPropertiesr+   formatr2   nullablediscriminatorreadOnly	writeOnlyxmlexternalDocsexample
deprecatedc                   @   s   e Zd ZU dZeed< dS )zSchema.Configr!   r#   N)r   r   r   r#   r   r&   r   r   r   r   r$      s   
 r$   )7r   r   r   r   r9   r   r   r&   r*   rF   floatrG   rH   rI   rJ   rL   intrM   rN   rO   rP   rQ   rB   rR   rS   rT   r   r1   r   rU   rV   rW   rX   rZ   r[   r	   r\   r   r]   r5   r+   r^   r2   r_   r`   r:   ra   rb   rc   r=   rd   rC   re   rf   r$   r   r   r   r   rD   g   sL   
 rD   c                   @   s\   e Zd ZU dZee ed< dZee ed< dZee	 ed< dZ
ee ed< G dd dZdS )ExampleNsummaryr+   valueexternalValuec                   @   r    )zExample.Configr!   Nr"   r   r   r   r   r$      r%   r$   )r   r   r   rj   r   r   r&   r+   rk   r   rl   r   r$   r   r   r   r   ri         
 ri   c                   @      e Zd ZdZdZdZdZdS )ParameterInTypequeryheaderpathcookieN)r   r   r   rp   rq   rr   rs   r   r   r   r   ro      
    ro   c                   @   s|   e Zd ZU dZee ed< dZeeee	de
f f  ed< dZee ed< dZee ed< dZee ed< G dd	 d	ZdS )
EncodingNcontentTypeHeaderheadersstyleexplodeallowReservedc                   @   r    )zEncoding.Configr!   Nr"   r   r   r   r   r$      r%   r$   )r   r   r   rv   r   r   r&   rx   r   r	   r5   ry   rz   rB   r{   r$   r   r   r   r   ru      s   
  ru   c                   @   s   e Zd ZU edddZeeeef  e	d< dZ
ee e	d< dZeeeeeef f  e	d< dZeeeef  e	d< G dd	 d	ZdS )
	MediaTypeNschemarE   schema_re   examplesencodingc                   @   r    )zMediaType.Configr!   Nr"   r   r   r   r   r$      r%   r$   )r   r   r   r   r~   r   r	   rD   r5   r&   re   r   r   r   r   ri   r   ru   r$   r   r   r   r   r|      s   
   r|   c                   @   s   e Zd ZU dZee ed< dZee ed< dZ	ee ed< dZ
ee ed< dZee ed< dZee ed< eddd	Zeeeef  ed
< dZee ed< dZeeeeeef f  ed< dZeeeef  ed< G dd dZdS )ParameterBaseNr+   rT   rf   ry   rz   r{   r}   rE   r~   re   r   contentc                   @   r    )zParameterBase.Configr!   Nr"   r   r   r   r   r$      r%   r$   )r   r   r   r+   r   r   r&   rT   rB   rf   ry   rz   r{   r   r~   r	   rD   r5   re   r   r   r   ri   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 )	Parameterr   inr7   in_N)r   r   r   r   r&   r   r   ro   r   r   r   r   r      s   
 r   c                   @   s   e Zd ZdS )rw   N)r   r   r   r   r   r   r   rw      s    rw   c                   @   sL   e Zd ZU dZee ed< eeef ed< dZ	ee
 ed< G dd dZdS )RequestBodyNr+   r   rT   c                   @   r    )zRequestBody.Configr!   Nr"   r   r   r   r   r$      r%   r$   )r   r   r   r+   r   r   r&   r   r|   rT   rB   r$   r   r   r   r   r      r'   r   c                   @   s   e Zd ZU dZee ed< dZee ed< dZee	ee
eef f  ed< dZee
eef  ed< dZee ed< dZee ed< G dd	 d	ZdS )
LinkNoperationRefoperationId
parametersrequestBodyr+   serverc                   @   r    )zLink.Configr!   Nr"   r   r   r   r   r$      r%   r$   )r   r   r   r   r   r   r&   r   r   r   r	   r   r   r+   r   r3   r$   r   r   r   r   r      s   
  r   c                   @   s|   e Zd ZU eed< dZeeeee	e
f f  ed< dZeeeef  ed< dZeeeeee
f f  ed< G dd dZdS )Responser+   Nrx   r   linksc                   @   r    )zResponse.Configr!   Nr"   r   r   r   r   r$      r%   r$   )r   r   r   r   r&   rx   r   r   r	   rw   r5   r   r|   r   r   r$   r   r   r   r   r      s   
   r   c                   @   s(  e Zd ZU dZeee  ed< dZee ed< dZ	ee ed< dZ
ee ed< dZee ed< dZeeeeef   ed< dZeeeef  ed< eeeeef f ed	< dZeeeeeed
f ef f  ed< dZee ed< dZeeeeee f   ed< dZeee  ed< G dd dZdS )	OperationNtagsrj   r+   rd   r   r   r   	responsesPathItem	callbacksrf   securityserversc                   @   r    )zOperation.Configr!   Nr"   r   r   r   r   r$      r%   r$   )r   r   r   r   r   r   r   r&   rj   r+   rd   rC   r   r   r	   r   r5   r   r   r   r   r   r   rf   rB   r   r   r3   r$   r   r   r   r   r      s   
 ( r   c                   @   s  e Zd ZU edddZee ed< dZee ed< dZ	ee ed< dZ
ee ed< dZee ed< dZee ed	< dZee ed
< dZee ed< dZee ed< dZee ed< dZee ed< dZeee  ed< dZeeeeef   ed< G dd dZdS )r   Nr6   rE   r9   rj   r+   getputpostdeleteoptionsheadpatchtracer   r   c                   @   r    )zPathItem.Configr!   Nr"   r   r   r   r   r$     r%   r$   )r   r   r   r   r9   r   r   r&   rj   r+   r   r   r   r   r   r   r   r   r   r   r   r3   r   r	   r   r5   r$   r   r   r   r   r     s   
 r   c                   @   rn   )SecuritySchemeTypeapiKeyhttpoauth2openIdConnectN)r   r   r   r   r   r   r   r   r   r   r   r     rt   r   c                   @   s>   e Zd ZU eddZeed< dZee	 ed< G dd dZ
dS )SecurityBaserU   r7   type_Nr+   c                   @   r    )zSecurityBase.Configr!   Nr"   r   r   r   r   r$   "  r%   r$   )r   r   r   r   r   r   r&   r+   r   r   r$   r   r   r   r   r     s   
 r   c                   @   s   e Zd ZdZdZdZdS )APIKeyInrp   rq   rs   N)r   r   r   rp   rq   rs   r   r   r   r   r   &  s    r   c                   @   s6   e Zd ZU eejddZeddZee	d< e
e	d< dS )APIKeyrU   r7   r   r   r   N)r   r   r   r   r   r   r   r   r   r&   r   r   r   r   r   r   ,  s   
 r   c                   @   $   e Zd ZU eejddZeed< dS )HTTPBaserU   r7   schemeN)	r   r   r   r   r   r   r   r   r&   r   r   r   r   r   2     
 r   c                   @   s"   e Zd ZU dZdZee ed< dS )
HTTPBearerbearerNbearerFormat)r   r   r   r   r   r   r   r&   r   r   r   r   r   7  s   
 r   c                   @   s@   e Zd ZU dZee ed< i Zeeef ed< G dd dZ	dS )	OAuthFlowN
refreshUrlscopesc                   @   r    )zOAuthFlow.Configr!   Nr"   r   r   r   r   r$   @  r%   r$   )
r   r   r   r   r   r   r&   r   r   r$   r   r   r   r   r   <  s   
 r   c                   @      e Zd ZU eed< dS )OAuthFlowImplicitauthorizationUrlNr   r   r   r   r&   r   r   r   r   r   D     
 r   c                   @   r   )OAuthFlowPasswordtokenUrlNr   r   r   r   r   r   H  r   r   c                   @   r   )OAuthFlowClientCredentialsr   Nr   r   r   r   r   r   L  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   P  s   
 r   c                   @   s\   e Zd ZU dZee ed< dZee ed< dZ	ee
 ed< dZee ed< G dd dZdS )
OAuthFlowsNimplicitpasswordclientCredentialsauthorizationCodec                   @   r    )zOAuthFlows.Configr!   Nr"   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   U  rm   r   c                   @   r   )OAuth2rU   r7   flowsN)	r   r   r   r   r   r   r   r   r&   r   r   r   r   r   _  r   r   c                   @   r   )OpenIdConnectrU   r7   openIdConnectUrlN)	r   r   r   r   r   r   r   r   r&   r   r   r   r   r   d  r   r   c                   @   sF  e Zd ZU dZeeeeee	f f  e
d< dZeeeeee	f f  e
d< dZeeeeee	f f  e
d< dZeeeeee	f f  e
d< dZeeeeee	f f  e
d< dZeeeeee	f f  e
d< dZeeeeee	f f  e
d< dZeeeeee	f f  e
d	< dZeeeeeeef e	ef f  e
d
< G dd dZdS )
ComponentsNschemasr   r   r   requestBodiesrx   securitySchemesr   r   c                   @   r    )zComponents.Configr!   Nr"   r   r   r   r   r$   x  r%   r$   )r   r   r   r   r   r   r   r	   rD   r5   r&   r   r   r   r   r   ri   r   r   rx   rw   r   SecuritySchemer   r   r   r   r   r$   r   r   r   r   r   l  s   
         *r   c                   @   sD   e Zd ZU eed< dZee ed< dZee ed< G dd dZ	dS )Tagr   Nr+   rd   c                   @   r    )z
Tag.Configr!   Nr"   r   r   r   r   r$     r%   r$   )
r   r   r   r   r&   r+   r   rd   rC   r$   r   r   r   r   r   |  s
   
 r   c                   @   s   e Zd ZU eed< eed< dZeee	  ed< e
eeeef f ed< dZee ed< dZeee
eee f   ed< dZeee  ed< dZee ed	< G d
d dZdS )OpenAPIopenapiinfoNr   paths
componentsr   r   rd   c                   @   r    )zOpenAPI.Configr!   Nr"   r   r   r   r   r$     r%   r$   )r   r   r   r   r&   r)   r   r   r   r3   r   r	   r   r   r   r   r   r   r   rd   rC   r$   r   r   r   r   r     s   
  r   )=r1   r   typingr   r   r   r   r   r   r	   fastapi.loggerr
   pydanticr   r   r   email_validatorr   ImportErrorr   r   r(   r)   r0   r3   r5   r:   r=   rC   rD   ri   ro   ru   r|   r   r   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   update_forward_refsr   r   r   r   <module>   sl    $			*

	

	