o
    bi8                     @   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   X/sda-disk/www/egybert/egybert_env/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   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   r9   r    __annotations__r:   r   r(   r   r   r   r   r   r8   =      
 r8   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 )Licenser9   N
identifierr:   )r/   r0   r1   r    r;   r?   r:   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;   rC   rD   rE   rF   r8   rG   r>   r   r   r   r   rA   I   s   
 rA   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defaultrD   )
r/   r0   r1   rL   r   listr    r   r;   rD   r   r   r   r   rI   S   s   
 "rI   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 )Serverr:   NrD   	variables)
r/   r0   r1   r   r    r;   rD   rP   r3   rI   r   r   r   r   rO   Y   s   
 rO   c                   @   s    e Zd ZU eddZeed< dS )	Reference$refaliasrefN)r/   r0   r1   r   rU   r    r;   r   r   r   r   rQ   _   s   
 rQ   c                   @   s.   e Zd ZU eed< dZeeef dB ed< dS )DiscriminatorpropertyNameNmapping)r/   r0   r1   r    r;   rX   r3   r   r   r   r   rV   c   s   
 rV   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 )XMLNr9   	namespaceprefix	attributewrapped)r/   r0   r1   r9   r    r;   rZ   r[   r\   boolr]   r   r   r   r   rY   h   s   
 rY   c                   @   s&   e Zd ZU dZedB ed< eed< dS )ExternalDocumentationNrD   r:   )r/   r0   r1   rD   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rM   rT   schema_z$vocabulary
vocabularyz$ididz$anchoranchorz$dynamicAnchordynamicAnchorrR   rU   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)   rL   constr   )rM   gt
multipleOfmaximumexclusiveMaximumminimumexclusiveMinimum)rM   ge	maxLength	minLengthpatternmaxItemsminItemsuniqueItemsmaxContainsminContainsmaxPropertiesminPropertiesrequireddependentRequiredr*   contentEncodingcontentMediaTypecontentSchemarB   rD   rM   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   rh   r    r;   ri   rj   rk   rl   rU   rm   ro   r3   rp   rq   rN   rr   rs   ru   r	   rw   rx   rz   r{   r|   r}   r~   r   r   r   r   r   r   r)   
SchemaTyperL   r   r   r   floatr   r   r   r   r   intr   r   r   r   r   r^   r   r   r   r   r   r   setr*   r   r   r   rB   rD   rM   r   r   r   r   r   rV   r   rY   r   r_   r   r   typing_deprecatedr   r   r   r   rf   {   s   
  rf   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 )ExampleNrC   rD   valueexternalValuer5   r6   )r/   r0   r1   r    r;   r   r   __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
   rQ   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schemarg   rh   r   r   encoding)r/   r0   r1   r   rh   rf   rQ   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 )ParameterBaseNrD   r   r   r   r   r   r   rg   rh   r   r   content)r/   r0   r1   rD   r    r;   r   r^   r   r   r   r   r   rh   rf   rQ   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 )	Parameterr9   inrS   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 )RequestBodyNrD   r   r   )
r/   r0   r1   rD   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requestBodyrD   server)r/   r0   r1   r   r    r;   r   r   r3   r   r   rD   r   rO   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 )ResponserD   Nr   r   links)r/   r0   r1   r    r;   r   r3   r   rQ   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tagsrC   rD   r   r   r   r   	responsesPathItem	callbacksr   securityservers)r/   r0   r1   r   rN   r    r;   rC   rD   r   r_   r   r   r   rQ   r   r   r   r3   r   r   r   r   r^   r   r   rO   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   NrR   rg   rU   rC   rD   getputpostdeleteoptionsheadpatchtracer   r   )r/   r0   r1   r   rU   r    r;   rC   rD   r   r   r   r   r   r   r   r   r   r   rN   rO   r   r   rQ   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)   rS   type_NrD   )	r/   r0   r1   r   r   r   r;   rD   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)   rg   r   r   rS   r   r9   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)   rg   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 )
HTTPBearer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)   rg   r   flowsN)	r/   r0   r1   r   r   r   r   r;   r   r   r   r   r   r     r   r   c                   @   r   )OpenIdConnectr)   rg   r   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    rf   rQ   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=   )Tagr9   NrD   r   )r/   r0   r1   r    r;   rD   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 )OpenAPIopenapiinfoNjsonSchemaDialectr   pathswebhooks
componentsr   r   r   )r/   r0   r1   r    r;   rA   r
  r   rN   rO   r  r3   r   r   r  rQ   r  r   r   r   r  r   r_   r   r   r   r   r    s   
  r  )Jcollections.abcr   r   r   rL   r   typingr   r   r   r	   r
   fastapi._compatr   fastapi.loggerr   pydanticr   r   r   r   typing_extensionsr   r   r   email_validatorr   ImportErrorr    r4   r8   r>   rA   rI   rO   rQ   rV   rY   r_   r   rf   r^   rn   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  model_rebuildr   r   r   r   <module>   s~    $
V		