o
    h%<                     @   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sUJ d d	lm Z  W n e!ym   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-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 d0d1 d1e4Z6G d2d3 d3e#Z7G d4d5 d5e#Z8G d6d7 d7e#Z9G 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=Z@G dFdG dGe@ZAG dHdI dIe#ZBG dJdK dKeBZCG dLdM dMeBZDG dNdO dOeBZEG dPdQ dQeBZFG dRdS dSe#ZGG dTdU dUe=ZHG dVdW dWe=ZIee?e@eHeIeAf ZJG dXdY dYe#ZKG dZd[ d[e#ZLG d\d] 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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dedefddZedee deegef defddZdS )r   return.c                 c   s    | j V  d S N)validate)cls r   j/var/www/html/construction_image-detection-poc/venv/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   r4   r-   r   r   r    __get_pydantic_core_schema__3   r3   z%EmailStr.__get_pydantic_core_schema__N)__name__
__module____qualname__classmethodr   r   r   r!   r'   r   r+   r   r   r   r2   r
   r5   r   r   r   r    r      s.    r   c                   @   s*   e Zd ZerddiZdS G dd dZdS )BaseModelWithConfigextraallowc                   @      e Zd ZdZdS )zBaseModelWithConfig.Configr<   Nr6   r7   r8   r;   r   r   r   r    Config@       r?   N)r6   r7   r8   r   model_configr?   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S )ContactNnameurlr/   )r6   r7   r8   rC   r   r'   __annotations__rD   r   r/   r   r   r   r   r    rB   D      
 rB   c                   @   6   e Zd ZU eed< dZee ed< dZee ed< dS )LicenserC   N
identifierrD   )	r6   r7   r8   r'   rE   rI   r   rD   r   r   r   r   r    rH   J      
 rH   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)r6   r7   r8   r'   rE   rM   r   rN   rO   rP   rB   rQ   rH   r   r   r   r    rK   P   s   
 rK   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   )
min_lengthenumdefaultrN   )r6   r7   r8   rV   r   r   r   r'   r   rE   rN   r   r   r   r    rS   Z   s   
 "rS   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 )ServerrD   NrN   	variables)r6   r7   r8   r   r   r'   rE   rN   r   rY   r   rS   r   r   r   r    rX   `   s   
 rX   c                   @   s    e Zd ZU eddZeed< dS )	Reference$refaliasrefN)r6   r7   r8   r   r^   r'   rE   r   r   r   r    rZ   f   s   
 rZ   c                   @   s.   e Zd ZU eed< dZeeeef  ed< dS )DiscriminatorpropertyNameNmapping)r6   r7   r8   r'   rE   ra   r   r   r   r   r   r    r_   j   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S )XMLNrC   	namespaceprefix	attributewrapped)r6   r7   r8   rC   r   r'   rE   rc   rd   re   boolrf   r   r   r   r    rb   o   s   
 rb   c                   @   s&   e Zd ZU dZee ed< eed< dS )ExternalDocumentationNrN   rD   )r6   r7   r8   rN   r   r'   rE   r   r   r   r   r    rh   w   s   
 rh   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< dS )QSchemaNz$schemarW   r]   schema_z$vocabulary
vocabularyz$ididz$anchoranchorz$dynamicAnchordynamicAnchorr[   r^   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unevaluatedPropertiesr0   rV   constr   )rW   gt
multipleOfmaximumexclusiveMaximumminimumexclusiveMinimum)rW   ge	maxLength	minLengthpatternmaxItemsminItemsuniqueItemsmaxContainsminContainsmaxPropertiesminPropertiesrequireddependentRequiredr1   contentEncodingcontentMediaTypecontentSchemarL   rN   rW   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)Qr6   r7   r8   r   rk   r   r'   rE   rl   rm   rn   ro   r^   rp   rr   r   rs   rt   r   ru   rv   rx   rz   r{   r}   r~   r   r   r   r   r   r   r   r   r   r   r0   rV   r   r   r   floatr   r   r   r   r   intr   r   r   r   r   rg   r   r   r   r   r   r   r	   r1   r   r   r   rL   rN   rW   r   r   r   r   r   r_   r   rb   r   rh   r   r   typing_deprecatedr   r   r   r    ri   |   s   
  ri   c                   @   s\   e Zd ZU ee ed< ee ed< ee ed< ee ed< er%ddiZ	d	S G dd dZ
d	S )
ExamplerM   rN   valueexternalValuer;   r<   c                   @   r=   )zExample.Configr<   Nr>   r   r   r   r    r?      r@   r?   N)r6   r7   r8   r   r'   rE   r   r   r   __pydantic_config__r?   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)r6   r7   r8   r   r   r   r   r   r   r   r    r      
    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)r6   r7   r8   r   r   r'   rE   r   r   r   rZ   r   r   rg   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schemarj   rk   r   r   encoding)r6   r7   r8   r   rk   r   r   ri   rZ   rE   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 )ParameterBaseNrN   r   r   r   r   r   r   rj   rk   r   r   content)r6   r7   r8   rN   r   r'   rE   r   rg   r   r   r   r   r   rk   r   ri   rZ   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 )	ParameterrC   inr\   in_N)r6   r7   r8   r'   rE   r   r   r   r   r   r   r    r     s   
 r   c                   @   s   e Zd ZdS )r   N)r6   r7   r8   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 )RequestBodyNrN   r   r   )r6   r7   r8   rN   r   r'   rE   r   r   r   rg   r   r   r   r    r     rF   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requestBodyrN   server)r6   r7   r8   r   r   r'   rE   r   r   r   r   r   r   rN   r   rX   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 )ResponserN   Nr   r   links)r6   r7   r8   r'   rE   r   r   r   r   r   rZ   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tagsrM   rN   r   r   r   r   	responsesPathItem	callbacksr   securityservers)r6   r7   r8   r   r   r   r'   rE   rM   rN   r   rh   r   r   r   r   rZ   r   r   r   r   r   r   r   r   rg   r   r   rX   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< dS )r   Nr[   rj   r^   rM   rN   getputpostdeleteoptionsheadpatchtracer   r   )r6   r7   r8   r   r^   r   r'   rE   rM   rN   r   r   r   r   r   r   r   r   r   r   r   rX   r   r   r   rZ   r   r   r   r    r   ;  s   
  r   c                   @   r   )SecuritySchemeTypeapiKeyhttpoauth2openIdConnectN)r6   r7   r8   r   r   r   r   r   r   r   r    r   K  r   r   c                   @   s0   e Zd ZU eddZeed< dZee	 ed< dS )SecurityBaser0   r\   type_NrN   )
r6   r7   r8   r   r   r   rE   rN   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)r6   r7   r8   r   r   r   r   r   r   r    r   W  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 )	APIKeyr0   rj   r   r   r\   r   rC   N)r6   r7   r8   r   r   r   r   rE   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< eed< dS )HTTPBaser0   rj   r   schemeN)	r6   r7   r8   r   r   r   r   rE   r'   r   r   r   r    r   c     
 r   c                   @   s.   e Zd ZU dZed ed< dZee ed< dS )
HTTPBearerbearerr   NbearerFormat)	r6   r7   r8   r   r   rE   r   r   r'   r   r   r   r    r   h  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)	r6   r7   r8   r   r   r'   rE   r   r   r   r   r   r    r   m  s   
 r   c                   @      e Zd ZU eed< dS )OAuthFlowImplicitauthorizationUrlNr6   r7   r8   r'   rE   r   r   r   r    r   r     
 r   c                   @   r   )OAuthFlowPasswordtokenUrlNr   r   r   r   r    r   v  r   r   c                   @   r   )OAuthFlowClientCredentialsr   Nr   r   r   r   r    r   z  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   ~  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)r6   r7   r8   r   r   r   rE   r   r   r   r   r   r   r   r   r   r    r     s
   
 r   c                   @   r   )OAuth2r0   rj   r   flowsN)	r6   r7   r8   r   r   r   r   rE   r   r   r   r   r    r     r   r   c                   @   r   )OpenIdConnectr0   rj   r   openIdConnectUrlN)	r6   r7   r8   r   r   r   r   rE   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)r6   r7   r8   r  r   r   r'   r   ri   rZ   rE   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                   @   rG   )TagrC   NrN   r   )	r6   r7   r8   r'   rE   rN   r   r   rh   r   r   r   r    r    rJ   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 )OpenAPIopenapiinfoNjsonSchemaDialectr   pathswebhooks
componentsr   r   r   )r6   r7   r8   r'   rE   rK   r  r   r   r   rX   r  r   r   r   r   r  rZ   r  r  r   r   r  r   rh   r   r   r   r    r    s   
    r  )NrV   r   typingr   r   r   r   r   r   r	   r
   r   fastapi._compatr   r   r   r   r   r   fastapi.loggerr   pydanticr   r   r   typing_extensionsr   r   r   r   r   email_validatorr   ImportErrorr'   r:   rB   rH   rK   rS   rX   rZ   r_   rb   rh   ri   rg   rq   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>   sv    , $

Y	