U
    &%ecE                     @   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st 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e-e.f Z/G d d! d!ed"d#Z0G d$d% d%eZ1G d&d' d'eZ2G d(d) d)eZ3G d*d+ d+eZ4G d,d- d-e4Z5G d.d/ d/e4Z6G d0d1 d1eZ7G d2d3 d3eZ8G d4d5 d5eZ9G d6d7 d7eZ:G d8d9 d9eZ;G d:d; d;eZ<G d<d= d=eZ=G d>d? d?eZ>G d@dA dAe=Z?G dBdC dCe=Z@G dDdE dEe@ZAG dFdG dGeZBG dHdI dIeBZCG dJdK dKeBZDG dLdM dMeBZEG dNdO dOeBZFG dPdQ dQeZGG dRdS dSe=ZHG dTdU dUe=ZIee?e@eHeIeAf ZJG dVdW dWeZKG dXdY dYeZLG dZd[ d[eZMee- ee: ee2 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   U/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/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                   @   sZ   e Zd ZU dZee ed< dZee ed< dZ	ee
 ed< erHddiZnG dd dZdS )	ContactNnameurlr-   extraallowc                   @   s   e Zd ZdZdS )zContact.Configr;   Nr3   r4   r5   r:   r   r   r   r    ConfigD   s   r=   )r3   r4   r5   r8   r   r&   __annotations__r9   r   r-   r   r   model_configr=   r   r   r   r    r7   :   s   

r7   c                   @   sR   e Zd ZU eed< dZee ed< dZee ed< e	r@ddiZ
nG dd dZdS )	Licenser8   N
identifierr9   r:   r;   c                   @   s   e Zd ZdZdS )zLicense.Configr;   Nr<   r   r   r   r    r=   R   s   r=   )r3   r4   r5   r&   r>   rA   r   r9   r   r   r?   r=   r   r   r   r    r@   H   s   

r@   c                   @   s   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< erxd	d
iZnG dd dZdS )InfotitleNsummarydescriptiontermsOfServicecontactlicenseversionr:   r;   c                   @   s   e Zd ZdZdS )zInfo.Configr;   Nr<   r   r   r   r    r=   d   s   r=   )r3   r4   r5   r&   r>   rD   r   rE   rF   rG   r7   rH   r@   r   r?   r=   r   r   r   r    rB   V   s   

rB   c                   @   sd   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< erRddiZnG d	d
 d
ZdS )ServerVariableN   )Z
min_lengthenumdefaultrE   r:   r;   c                   @   s   e Zd ZdZdS )zServerVariable.Configr;   Nr<   r   r   r   r    r=   r   s   r=   )r3   r4   r5   rL   r   r   r   r&   r   r>   rE   r   r?   r=   r   r   r   r    rJ   h   s   
"
rJ   c                   @   sb   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< erPddiZnG dd dZdS )	Serverr9   NrE   	variablesr:   r;   c                   @   s   e Zd ZdZdS )zServer.Configr;   Nr<   r   r   r   r    r=      s   r=   )r3   r4   r5   r   r   r&   r>   rE   r   rO   r   rJ   r   r?   r=   r   r   r   r    rN   v   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      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      s   
rU   c                   @   sz   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< erhddiZnG d	d
 d
ZdS )XMLNr8   	namespaceprefix	attributewrappedr:   r;   c                   @   s   e Zd ZdZdS )z
XML.Configr;   Nr<   r   r   r   r    r=      s   r=   )r3   r4   r5   r8   r   r&   r>   rX   rY   rZ   boolr[   r   r?   r=   r   r   r   r    rW      s   

rW   c                   @   sB   e Zd ZU dZee ed< eed< er0ddiZ	nG dd dZ
dS )ExternalDocumentationNrE   r9   r:   r;   c                   @   s   e Zd ZdZdS )zExternalDocumentation.Configr;   Nr<   r   r   r   r    r=      s   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 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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e/ ed5< edd-d4Z0ee/ ed6< dZ1ee ed7< edd-d4Z2ee/ ed8< edd-d4Z3ee/ ed9< dZ4ee5 ed:< edd-d4Z6ee/ ed;< edd-d4Z7ee/ ed<< edd-d4Z8ee/ ed=< edd-d4Z9ee/ 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Z@ed edD< dZAee edE< dZBee edF< dZCee& edG< dZDee5 edH< dZEee5 edI< dZFee5 edJ< dZGeee&  edK< dZHeeI edL< dZJeeK edM< dZLeeM edN< dZNeOee& ePdOf edP< eQrdQdRiZRnG dSdT dTZSdS )U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.exampler:   r;   c                   @   s   e Zd ZdZdS )zSchema.Configr;   Nr<   r   r   r   r    r=     s   r=   )Tr3   r4   r5   r   r`   r   r&   r>   ra   rb   rc   rd   rT   re   rg   r   rh   ri   r   rj   rk   rm   ro   rp   rr   rs   rt   ru   r   rv   rw   rx   ry   rz   r{   r|   r.   rL   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   r   r   r    r^      s   
 
r^   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externalValuer:   r;   c                   @   s   e Zd ZdZdS )zExample.Configr;   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                   @   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< erxdd	iZnG d
d dZdS )EncodingNcontentTypeHeaderheadersstyleexplodeallowReservedr:   r;   c                   @   s   e Zd ZdZdS )zEncoding.Configr;   Nr<   r   r   r   r    r=   0  s   r=   )r3   r4   r5   r   r   r&   r>   r   r   r   rP   r   r   r\   r   r   r?   r=   r   r   r   r    r   $  s   
 
r   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< erdd	iZnG d
d dZdS )	MediaTypeNschemar_   r`   r   r   encodingr:   r;   c                   @   s   e Zd ZdZdS )zMediaType.Configr;   Nr<   r   r   r   r    r=   ?  s   r=   )r3   r4   r5   r   r`   r   r   r^   rP   r>   r   r   r   r   r&   r   r   r   r   r?   r=   r   r   r   r    r   4  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< erddiZnG dd dZdS )ParameterBaseNrE   r   r   r   r   r   r   r_   r`   r   r   contentr:   r;   c                   @   s   e Zd ZdZdS )zParameterBase.Configr;   Nr<   r   r   r   r    r=   V  s   r=   )r3   r4   r5   rE   r   r&   r>   r   r\   r   r   r   r   r   r`   r   r^   rP   r   r   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d< eddZeed< dS )	Parameterr8   inrR   in_N)r3   r4   r5   r&   r>   r   r   r   r   r   r   r    r   Z  s   
r   c                   @   s   e Zd ZdS )r   N)r3   r4   r5   r   r   r   r    r   _  s   r   c                   @   sZ   e Zd ZU dZee ed< eeef ed< dZ	ee
 ed< erHddiZnG dd dZdS )	RequestBodyNrE   r   r   r:   r;   c                   @   s   e Zd ZdZdS )zRequestBody.Configr;   Nr<   r   r   r   r    r=   m  s   r=   )r3   r4   r5   rE   r   r&   r>   r   r   r   r\   r   r?   r=   r   r   r   r    r   c  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< erdd	iZnG d
d dZdS )LinkNoperationRefoperationId
parametersrequestBodyrE   serverr:   r;   c                   @   s   e Zd ZdZdS )zLink.Configr;   Nr<   r   r   r   r    r=   ~  s   r=   )r3   r4   r5   r   r   r&   r>   r   r   r   r   r   r   rE   r   rN   r   r?   r=   r   r   r   r    r   q  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< erxddiZnG dd	 d	ZdS )
ResponserE   Nr   r   linksr:   r;   c                   @   s   e Zd ZdZdS )zResponse.Configr;   Nr<   r   r   r   r    r=     s   r=   )r3   r4   r5   r&   r>   r   r   r   r   r   rP   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  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< er.ddiZnG dd dZdS )	OperationNtagsrD   rE   r   r   r   r   	responsesPathItem	callbacksr   securityserversr:   r;   c                   @   s   e Zd ZdZdS )zOperation.Configr;   Nr<   r   r   r   r    r=     s   r=   ) 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   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< erddiZnG dd dZdS )r   NrQ   r_   rT   rD   rE   getputpostdeleteoptionsheadpatchtracer   r   r:   r;   c                   @   s   e Zd ZdZdS )zPathItem.Configr;   Nr<   r   r   r   r    r=     s   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   r   r    r     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     s   r   c                   @   sL   e Zd ZU eddZeed< dZee	 ed< e
r:ddiZnG dd	 d	ZdS )
SecurityBaser.   rR   type_NrE   r:   r;   c                   @   s   e Zd ZdZdS )zSecurityBase.Configr;   Nr<   r   r   r   r    r=     s   r=   )r3   r4   r5   r   r   r   r>   rE   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 )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.   r_   r   r   rR   r   r8   N)r3   r4   r5   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 )HTTPBaser.   r_   r   schemeN)	r3   r4   r5   r   r   r   r   r>   r&   r   r   r   r    r     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     s   
r   c                   @   sN   e Zd ZU dZee ed< i Zeeef ed< e	r<ddiZ
nG dd dZdS )	OAuthFlowN
refreshUrlscopesr:   r;   c                   @   s   e Zd ZdZdS )zOAuthFlow.Configr;   Nr<   r   r   r   r    r=     s   r=   )r3   r4   r5   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d< dS )OAuthFlowImplicitauthorizationUrlNr3   r4   r5   r&   r>   r   r   r   r    r     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                   @   sj   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< erXddiZnG dd	 d	ZdS )

OAuthFlowsNimplicitpasswordclientCredentialsauthorizationCoder:   r;   c                   @   s   e Zd ZdZdS )zOAuthFlows.Configr;   Nr<   r   r   r   r    r=     s   r=   )r3   r4   r5   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U eejddZeed< eed< dS )OAuth2r.   r_   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.   r_   r   ZopenIdConnectUrlN)	r3   r4   r5   r   r   r   r   r>   r&   r   r   r   r    r     s
   
 r   c                   @   sv  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< erdddiZnG dd dZdS )
ComponentsNschemasr   r   r   requestBodiesr   securitySchemesr   r   	pathItemsr:   r;   c                   @   s   e Zd ZdZdS )zComponents.Configr;   Nr<   r   r   r   r    r=   9  s   r=   ) r3   r4   r5   r   r   r   r&   r   r^   rP   r>   r   r   r   r   r   r   r   r   r   r   r   SecuritySchemer   r   r   r   r   r   r   r?   r=   r   r   r   r    r   '  s   
        * 
r   c                   @   sR   e Zd ZU eed< dZee ed< dZee ed< e	r@ddiZ
nG dd dZdS )	Tagr8   NrE   r   r:   r;   c                   @   s   e Zd ZdZdS )z
Tag.Configr;   Nr<   r   r   r   r    r=   G  s   r=   )r3   r4   r5   r&   r>   rE   r   r   r]   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< erddiZnG dd dZdS )OpenAPIZopenapiinfoNjsonSchemaDialectr   pathswebhooks
componentsr   r   r   r:   r;   c                   @   s   e Zd ZdZdS )zOpenAPI.Configr;   Nr<   r   r   r   r    r=   ]  s   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   r   r    r   K  s   
   
r   )NrL   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@   rB   rJ   rN   rP   rU   rW   r]   r^   r\   rf   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>   sp   , "a