U
    nËj	=  ã                   @   s¤  d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
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mZmZ d dlmZmZmZ d dlmZ z d dlZesªt ‚d d	lm!Z! W n$ e"k
rÜ   G d
d„ de#ƒZ!Y nX 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/e0f Z1G d#d$„ d$ed%d&�Z2G d'd(„ d(eƒZ3G d)d*„ d*e$ƒZ4G d+d,„ d,e$ƒZ5G d-d.„ d.e$ƒZ6G d/d0„ d0e6ƒZ7G d1d2„ d2e6ƒZ8G d3d4„ d4e$ƒZ9G 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ƒZ@G dCdD„ dDe?ƒZAG dEdF„ dFe?ƒZBG dGdH„ dHeBƒZCG dIdJ„ dJe$ƒZDG dKdL„ dLeDƒZEG dMdN„ dNeDƒZFG dOdP„ dPeDƒZGG dQdR„ dReDƒZHG dSdT„ dTe$ƒZIG dUdV„ dVe?ƒZJG dWdX„ dXe?ƒZKeeAeBeJeKeCf ZLG dYdZ„ dZe$ƒZMG d[d\„ d\e$ƒZNG d]d^„ d^e$ƒZOee/ƒ ee<ƒ ee4ƒ dS )_é    )ÚEnum)	ÚAnyÚCallableÚDictÚIterableÚListÚOptionalÚSetÚTypeÚUnion)ÚPYDANTIC_V2Ú
CoreSchemaÚGetJsonSchemaHandlerÚJsonSchemaValueÚ_model_rebuildÚ"with_info_plain_validator_function)Úlogger)ÚAnyUrlÚ	BaseModelÚField)Ú	AnnotatedÚLiteralÚ	TypedDict)Ú
deprecatedN)ÚEmailStrc                   @   sŽ   e Zd Zeeedef  dœdd„ƒZeeedœdd„ƒZ	eeeedœd	d
„ƒZ
eeeedœdd„ƒZeee eegef edœdd„ƒZdS )r   .)Úreturnc                 c   s   | j V  d S ©N)Úvalidate)Úcls© r   ú:/tmp/pip-unpacked-wheel-yktl02hi/fastapi/openapi/models.pyÚ__get_validators__   s    zEmailStr.__get_validators__)Úvr   c                 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.validate)Ú_EmailStr__input_valueÚ_r   c                 C   s   t  d¡ t|ƒS r#   r$   )r   r'   r(   r   r   r    Ú	_validate%   s    ÿzEmailStr._validate)Úcore_schemaÚhandlerr   c                 C   s
   dddœS )NÚstringÚemail)ÚtypeÚformatr   )r   r*   r+   r   r   r    Ú__get_pydantic_json_schema__-   s    z%EmailStr.__get_pydantic_json_schema__)Úsourcer+   r   c                 C   s
   t | jƒS r   )r   r)   )r   r1   r+   r   r   r    Ú__get_pydantic_core_schema__3   s    z%EmailStr.__get_pydantic_core_schema__N)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r   r   r!   r&   r   r)   r   r   r   r0   r
   r2   r   r   r   r    r      s     þ þr   c                   @   s(   e Zd ZerddiZnG dd„ dƒZdS )ÚBaseModelWithConfigÚextraÚallowc                   @   s   e Zd ZdZdS )zBaseModelWithConfig.Configr9   N©r3   r4   r5   r8   r   r   r   r    ÚConfig@   s   r;   N)r3   r4   r5   r   Zmodel_configr;   r   r   r   r    r7   :   s   
r7   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S )ÚContactNÚnameÚurlr-   )r3   r4   r5   r=   r   r&   Ú__annotations__r>   r   r-   r   r   r   r   r    r<   D   s   
r<   c                   @   s6   e Zd ZU eed< dZee ed< dZee ed< dS )ÚLicenser=   NÚ
identifierr>   )	r3   r4   r5   r&   r?   rA   r   r>   r   r   r   r   r    r@   J   s   
r@   c                   @   sn   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< dZee ed< eed< dS )	ÚInfoÚtitleNÚsummaryÚdescriptionÚtermsOfServiceÚcontactÚlicenseÚversion)r3   r4   r5   r&   r?   rD   r   rE   rF   rG   r<   rH   r@   r   r   r   r    rB   P   s   
rB   c                   @   sH   e Zd ZU dZeeee  edd�f e	d< ee	d< dZ
ee e	d< dS )ÚServerVariableNé   )Z
min_lengthÚenumÚdefaultrE   )r3   r4   r5   rL   r   r   r   r&   r   r?   rE   r   r   r   r    rJ   Z   s   
"rJ   c                   @   sF   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< dS )ÚServerr>   NrE   Ú	variables)r3   r4   r5   r   r   r&   r?   rE   r   rO   r   rJ   r   r   r   r    rN   `   s   
rN   c                   @   s    e Zd ZU edd�Zeed< dS )Ú	Referenceú$ref©ÚaliasÚrefN)r3   r4   r5   r   rT   r&   r?   r   r   r   r    rP   f   s   
rP   c                   @   s.   e Zd ZU eed< dZeeeef  ed< dS )ÚDiscriminatorZpropertyNameNÚmapping)r3   r4   r5   r&   r?   rV   r   r   r   r   r   r    rU   j   s   
rU   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S )ÚXMLNr=   Ú	namespaceÚprefixÚ	attributeÚwrapped)r3   r4   r5   r=   r   r&   r?   rX   rY   rZ   Úboolr[   r   r   r   r    rW   o   s
   
rW   c                   @   s&   e Zd ZU dZee ed< eed< dS )ÚExternalDocumentationNrE   r>   )r3   r4   r5   rE   r   r&   r?   r   r   r   r   r    r]   w   s   
r]   )ÚarrayÚbooleanÚintegerÚnullÚnumberÚobjectr,   c                   @   sò  e Zd ZU ed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< ed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< eddd�Zee ed< eddd�Zeeedf  ed< ed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< 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edf  ed < dZeed  ed!< dZeeded f  ed"< dZed ed#< dZeeedf  ed$< dZeeedf  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%ee% f  ed*< dZ&eee'  ed+< dZ(ee' ed,< edd-d.�Z)ee* ed/< dZ+ee* ed0< dZ,ee* ed1< dZ-ee* ed2< dZ.ee* ed3< edd-d4�Z/ee0 ed5< edd-d4�Z1ee0 ed6< dZ2ee ed7< edd-d4�Z3ee0 ed8< edd-d4�Z4ee0 ed9< dZ5ee6 ed:< edd-d4�Z7ee0 ed;< edd-d4�Z8ee0 ed<< edd-d4�Z9ee0 ed=< edd-d4�Z:ee0 ed>< dZ;eee  ed?< dZ<eeee=e f  ed@< dZ>ee edA< dZ?ee edB< dZ@ee edC< dZAed edD< dZBee edE< dZCee edF< dZDee' edG< dZEee6 edH< dZFee6 edI< dZGee6 edJ< dZHeee'  edK< dZIeeJ edL< dZKeeL edM< dZMeeN edN< dZOePee' eQdOƒf edP< dS )QÚSchemaNz$schema©rM   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.   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ÚcontentSchemarC   rE   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)Rr3   r4   r5   r   rf   r   r&   r?   rg   rh   ri   rj   rT   rk   rm   r   rn   ro   r   rp   rq   rs   ru   rv   rx   ry   rz   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–   r	   r/   r—   r˜   r™   rC   rE   rM   r   rš   r›   rœ   r�   rU   rž   rW   rŸ   r]   r    r   Útyping_deprecatedr   r   r   r    rd   ‚   sˆ   
 úÿÿÿrd   c                   @   sZ   e Zd ZU ee ed< ee ed< ee ed< ee ed< erHddiZ	nG dd„ dƒZ
d	S )
ÚExamplerD   rE   ÚvalueZexternalValuer8   r9   c                   @   s   e Zd ZdZdS )zExample.Configr9   Nr:   r   r   r   r    r;   é   s   r;   N)r3   r4   r5   r   r&   r?   r   r   r   Z__pydantic_config__r;   r   r   r   r    r¥   Þ   s   

r¥   F)Útotalc                   @   s   e Zd ZdZdZdZdZdS )ÚParameterInTypeÚqueryÚheaderÚpathÚcookieN)r3   r4   r5   r©   rª   r«   r¬   r   r   r   r    r¨   í   s   r¨   c                   @   sn   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< dS )ÚEncodingNÚcontentTypeÚHeaderÚheadersÚstyleÚexplodeÚallowReserved)r3   r4   r5   r®   r   r&   r?   r°   r   r   rP   r±   r²   r\   r³   r   r   r   r    r­   ô   s
   
 r­   c                   @   sv   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< dS )Ú	MediaTypeNÚschemare   rf   r    rœ   Úencoding)r3   r4   r5   r   rf   r   r   rd   rP   r?   r    r   rœ   r   r&   r¥   r¶   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< dS )ÚParameterBaseNrE   r•   r   r±   r²   r³   rµ   re   rf   r    rœ   Úcontent)r3   r4   r5   rE   r   r&   r?   r•   r\   r   r±   r²   r³   r   rf   r   rd   rP   r    r   rœ   r   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=   ÚinrR   Úin_N)r3   r4   r5   r&   r?   r   r»   r¨   r   r   r   r    r¹     s   
r¹   c                   @   s   e Zd ZdS )r¯   N)r3   r4   r5   r   r   r   r    r¯     s   r¯   c                   @   s>   e Zd ZU dZee ed< eeef ed< dZ	ee
 ed< dS )ÚRequestBodyNrE   r¸   r•   )r3   r4   r5   rE   r   r&   r?   r   r´   r•   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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< dS )ÚLinkNÚoperationRefÚoperationIdÚ
parametersÚrequestBodyrE   Úserver)r3   r4   r5   r¾   r   r&   r?   r¿   rÀ   r   r   r   rÁ   rE   rÂ   rN   r   r   r   r    r½   !  s   
 r½   c                   @   sn   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< dS )ÚResponserE   Nr°   r¸   Úlinks)r3   r4   r5   r&   r?   r°   r   r   r   r¯   rP   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< dZe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< dS )Ú	OperationNÚtagsrD   rE   rŸ   r¿   rÀ   rÁ   Ú	responsesÚPathItemÚ	callbacksr   ÚsecurityÚservers)r3   r4   r5   rÆ   r   r   r&   r?   rD   rE   rŸ   r]   r¿   rÀ   r   r¹   rP   rÁ   r¼   rÇ   r   rÃ   r   rÉ   r   r\   rÊ   rË   rN   r   r   r   r    rÅ   1  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< dS )rÈ   NrQ   re   rT   rD   rE   ÚgetÚputÚpostÚdeleteÚoptionsÚheadÚpatchÚtracerË   rÀ   )r3   r4   r5   r   rT   r   r&   r?   rD   rE   rÌ   rÅ   rÍ   rÎ   rÏ   rÐ   rÑ   rÒ   rÓ   rË   r   rN   rÀ   r   r¹   rP   r   r   r   r    rÈ   A  s   
rÈ   c                   @   s   e Zd ZdZdZdZdZdS )ÚSecuritySchemeTypeÚapiKeyÚhttpÚoauth2ÚopenIdConnectN)r3   r4   r5   rÕ   rÖ   r×   rØ   r   r   r   r    rÔ   Q  s   rÔ   c                   @   s0   e Zd ZU edd�Zeed< dZee	 ed< dS )ÚSecurityBaser.   rR   Útype_NrE   )
r3   r4   r5   r   rÚ   rÔ   r?   rE   r   r&   r   r   r   r    rÙ   X  s   
rÙ   c                   @   s   e Zd ZdZdZdZdS )ÚAPIKeyInr©   rª   r¬   N)r3   r4   r5   r©   rª   r¬   r   r   r   r    rÛ   ]  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»   r=   N)r3   r4   r5   r   rÔ   rÕ   rÚ   r?   r»   rÛ   r&   r   r   r   r    rÜ   c  s   
rÜ   c                   @   s,   e Zd ZU eejdd�Zeed< eed< dS )ÚHTTPBaser.   re   rÚ   ÚschemeN)	r3   r4   r5   r   rÔ   rÖ   rÚ   r?   r&   r   r   r   r    rÝ   i  s   
rÝ   c                   @   s.   e Zd ZU dZed ed< dZee ed< dS )Ú
HTTPBearerZbearerrÞ   NÚbearerFormat)	r3   r4   r5   rÞ   r   r?   rà   r   r&   r   r   r   r    rß   n  s   
rß   c                   @   s2   e Zd ZU dZee ed< i Zeeef ed< dS )Ú	OAuthFlowNÚ
refreshUrlÚscopes)	r3   r4   r5   râ   r   r&   r?   rã   r   r   r   r   r    rá   s  s   
rá   c                   @   s   e Zd ZU eed< dS )ÚOAuthFlowImplicitÚauthorizationUrlN©r3   r4   r5   r&   r?   r   r   r   r    rä   x  s   
rä   c                   @   s   e Zd ZU eed< dS )ÚOAuthFlowPasswordÚtokenUrlNræ   r   r   r   r    rç   |  s   
rç   c                   @   s   e Zd ZU eed< dS )ÚOAuthFlowClientCredentialsrè   Nræ   r   r   r   r    ré   €  s   
ré   c                   @   s   e Zd ZU eed< eed< dS )ÚOAuthFlowAuthorizationCoderå   rè   Nræ   r   r   r   r    rê   „  s   
rê   c                   @   sN   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S )Ú
OAuthFlowsNÚimplicitÚpasswordÚclientCredentialsÚauthorizationCode)r3   r4   r5   rì   r   rä   r?   rí   rç   rî   ré   rï   rê   r   r   r   r    rë   ‰  s   
rë   c                   @   s,   e Zd ZU eejdd�Zeed< eed< dS )ÚOAuth2r.   re   rÚ   ZflowsN)	r3   r4   r5   r   rÔ   r×   rÚ   r?   rë   r   r   r   r    rð   �  s   
rð   c                   @   s,   e Zd ZU eejdd�Zeed< eed< dS )ÚOpenIdConnectr.   re   rÚ   ZopenIdConnectUrlN)	r3   r4   r5   r   rÔ   rØ   rÚ   r?   r&   r   r   r   r    rñ   •  s
   
 ÿrñ   c                   @   sX  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
< dZeeeeee	f f  e
d< dS )Ú
ComponentsNÚschemasrÇ   rÀ   rœ   ÚrequestBodiesr°   ÚsecuritySchemesrÄ   rÉ   Ú	pathItems)r3   r4   r5   ró   r   r   r&   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                   @   s6   e Zd ZU eed< dZee ed< dZee ed< dS )ÚTagr=   NrE   rŸ   )	r3   r4   r5   r&   r?   rE   r   rŸ   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d< dZee	e
  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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< dS )ÚOpenAPIZopenapiÚinfoNÚjsonSchemaDialectrË   ÚpathsÚwebhooksÚ
componentsrÊ   rÆ   rŸ   )r3   r4   r5   r&   r?   rB   rû   r   rË   r   rN   rü   r   r   rÈ   r   rý   rP   rþ   rò   rÊ   rÆ   rø   rŸ   r]   r   r   r   r    rù   ³  s   
   rù   )PrL   r   Útypingr   r   r   r   r   r   r	   r
   r   Zfastapi._compatr   r   r   r   r   r   Zfastapi.loggerr   Zpydanticr   r   r   Ztyping_extensionsr   r   r   r   r¤   Zemail_validatorÚAssertionErrorr   ÚImportErrorr&   r7   r<   r@   rB   rJ   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ù   r   r   r   r    Ú<module>   sx   , "

ÿY	