
    RPf                        d dl mZ d dlZd dlmZ d dlmZmZm	Z	 d dl
Z
ddlmZ ddlmZ dd	lmZmZ dd
lmZ  G d d      Zy)    )annotationsN)partial)Any	AwaitableCallable   )
ConfigDict)create_schema_validator   )_generate_schema_typing_extra)ConfigWrapperc                  $    e Zd ZdZdZddZddZy)ValidateCallWrapperzoThis is a wrapper around a function that validates the arguments passed to it, and optionally the return value.)__pydantic_validator____name____qualname____annotations____dict__c           	         t        |t              rJ|j                  }|}d|j                   d| _        d|j                   d| _        |j
                  | _        n5|}|j                  | _        |j                  | _        |j
                  | _        t        j                  |d       }t        |      }t        j                  ||      }|j                  |j                  |            }	|j                  |       }
t        |	|| j
                  | j                  d|
|j                        | _        |rt#        j$                  |      }|j&                  |j(                  ur|j&                  nt*        }t        j                  ||      }|j                  |j                  |            }	t        |	|| j
                  | j                  d|
|j                        t#        j,                  |      rdfd}|| _        y j0                  | _        y d | _        y )Nzpartial()validate_callc                B   K   j                  |  d {         S 7 wN)validate_python)aw	validators    [/var/www/fastapitest/venv/lib/python3.12/site-packages/pydantic/_internal/_validate_call.pyreturn_val_wrapperz8ValidateCallWrapper.__init__.<locals>.return_val_wrapperG   s     $442X>>Xs   	)r   zAwaitable[Any]returnNone)
isinstancer   funcr   r   
__module__r   add_module_globalsr   r   GenerateSchemaclean_schemagenerate_schemacore_configr
   plugin_settingsr   inspect	signaturereturn_annotationemptyr   iscoroutinefunction__return_pydantic_validator__r   )selffunctionconfigvalidate_returnr#   schema_type	namespaceconfig_wrapper
gen_schemaschemar)   r,   return_typer   r   s                 @r   __init__zValidateCallWrapper.__init__   s   h(==DK&t}}oQ7DM"*4+<+<*=Q ?D"ooDO"K$--DM ( 5 5D&11DO!44XtD	&v.%44^YO
(()C)CH)MN$006&=OO**'
# ))(3I9B9T9T\e\k\k9k)55qtK)88SJ,,Z-G-G-TUF/!!..I **84? 6H25>5N5N215D.    c                    | j                   j                  t        j                  ||            }| j                  r| j	                  |      S |S r   )r   r   pydantic_core
ArgsKwargsr0   )r1   argskwargsress       r   __call__zValidateCallWrapper.__call__P   sF    ))99-:R:RSWY_:`a--55c::
r<   N)r2   zCallable[..., Any]r3   zConfigDict | Noner4   bool)r@   r   rA   r   r    r   )r   r$   r   __doc__	__slots__r;   rC    r<   r   r   r      s    yI46lr<   r   )
__future__r   _annotationsr+   	functoolsr   typingr   r   r   r>   r3   r	   plugin._schema_validatorr
    r   r   _configr   r   rG   r<   r   <module>rO      s/    2   + +   > - "E Er<   