
    gx                     r   d Z ddl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 ddlZded	eeeef   eeee   f   f   fd
Zdeded	ee	   fdZdeeef   deeee   f   defdZdeeef   deeee   f   dededef
dZdeeef   deeee   f   dedededefdZded	efdZdeeef   defdZy)zACode generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.    N)AnyDictListOptionalTuple)	BaseModel)	FieldInfo   )SecurityMetadatafind_field_metadatasecurityreturnc                    i }i }| ||fS t        | t              st        d      | j                  j                  }|D ]  }||   }t        | |      }|t        |t              }|*|j                  rt        |||       ||fc S |j                  sV|j                  dv r t        |t              st        |||||        t        |||||        ||fS )Nz!security must be a pydantic model)basiccustom)
isinstancer   	TypeError	__class__model_fieldsgetattrr   r   option_parse_security_optionschemesub_type_parse_security_scheme)r   headersquery_params
sec_fieldsname	sec_fieldvaluemetadatas           M/var/www/openai/venv/lib/python3.12/site-packages/mistralai/utils/security.pyget_securityr$      s     G)+L$$h	*;<<'/'9'9'F'FJt$	$'=&y2BC??"7L%@L((??  $77
yA 'whhW&wheT) , L      security_classc                     | | S t        |t              st        d      i }t        j                  d      rt        j                  d      |d<   |r |di |S d S )Nz-security_class must be a pydantic model classMISTRAL_API_KEYapi_key )
issubclassr   r   osgetenv)r   r&   security_dicts      r#   get_security_from_envr/   :   s^    ni0GHHM	yy"##%99->#?i .;>*M*EEr%   r   r   r   c                     t        |t              st        d      |j                  j                  }|D ]?  }||   }t        |t              }||j                  s't        | |||t        ||             A y )Nz(security option must be a pydantic model)
r   r   r   r   r   r   r   r   r   r   )r   r   r   
opt_fieldsr   	opt_fieldr"   s          r#   r   r   I   su     fi(BCC'-'7'7'D'DJt$	&y2BC8??\8T7643H	
 r%   scheme_metadata
field_namer   c           	      j   |j                   }|j                  }t        |t              r{|dk(  r|dk(  rt	        | |       y |dk(  ry |j
                  j                  }|D ]B  }||   }	t        |	t              }
|
|
j                  't        ||      }t        | |||
||       D y t        | |||||       y )Nhttpr   r   )scheme_typer   r   r   _parse_basic_auth_schemer   r   r   r   r4   r   _parse_security_scheme_value)r   r   r3   r4   r   r7   r   scheme_fieldsr   scheme_fieldr"   r!   s               r#   r   r   [   s     "--K''H&)$& 7"(&98#.4.>.>.K.K!D(.L*<9IJH8#6#6#>FD)E($ " 	%\?OZQW	
r%   security_metadatar!   c                 h   |j                   }|j                  }|j                  |      }|dk(  r"|dk(  r|| |<   y |dk(  r|g||<   y t        d      |dk(  rt	        |      | |<   y |dk(  r|dk7  rt	        |      | |<   y y |dk(  r%|d	k(  rt	        |      | |<   y |d
k(  ry t        d      t        d      )NapiKeyheaderqueryz!sub type {sub_type} not supportedopenIdConnectoauth2client_credentialsr6   bearerr   z'scheme type {scheme_type} not supported)r7   r   get_field_name
ValueError_apply_bearer)	r   r   r3   r<   r4   r!   r7   r   header_names	            r#   r9   r9      s     "--K''H#22:>Khx#(GK  ).L%@AA		',U3		 ++#0#7GK  ,		x#0#7GK !@AABCCr%   tokenc                 V    | j                         j                  d      xr | xs d|  S )Nzbearer zBearer )lower
startswith)rI   s    r#   rG   rG      s*    ;;=##I.85MgeW<MMr%   c                    d}d}t        |t              st        d      |j                  j                  }|D ]M  }||   }t        |t              }||j                  '|j                  }t        ||      }	|dk(  r|	}|dk(  sL|	}O | d| j                         }
dt        j                  |
      j                          | d<   y )N z*basic auth scheme must be a pydantic modelusernamepassword:zBasic Authorization)r   r   r   r   r   r   r   r4   r   encodebase64	b64encodedecode)r   r   rO   rP   r:   r   r;   r"   r4   r!   datas              r#   r8   r8      s    HHfi(DEE*0*:*:*G*GM$T*&|5EFx22:((
%#H#H  Zq
#**,D!'(8(8(>(E(E(G'HIGOr%   )__doc__rT   typingr   r   r   r   r   pydanticr   pydantic.fieldsr	   r"   r   r   r,   strr$   r/   r   r   r9   rG   r8   r*   r%   r#   <module>r]      s   G    % 
!!3 !!5c3hc49n9M)M#N !!HFC F F)AT F
#s(^
+/T#Y+?
IL
$"
#s(^"
sDI~&"
 &"
 	"

 "
J!D#s(^!DsDI~&!D &!D (	!D
 !D !DHN N NJd38n Jc Jr%   