o
    ZhJ                     @  sn   d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	 ddl
mZ ddlmZmZmZ 					ddddZd	S )zdExperimental module exposing a function to generate a core schema that validates callable arguments.    )annotations)Callable)AnyLiteral)
CoreSchema)
ConfigDict)_config_generate_schema_namespace_utilsarguments-v3NfuncCallable[..., Any]schema_type$Literal['arguments', 'arguments-v3']parameters_callback8Callable[[int, str, Any], Literal['skip'] | None] | NoneconfigConfigDict | Nonereturnr   c                 C  sN   t jt|tjt| dd}|dkr|| |}n|| |}|	|S )a  Generate the schema for the arguments of a function.

    Args:
        func: The function to generate the schema for.
        schema_type: The type of schema to generate.
        parameters_callback: A callable that will be invoked for each parameter. The callback
            should take three required arguments: the index, the name and the type annotation
            (or [`Parameter.empty`][inspect.Parameter.empty] if not annotated) of the parameter.
            The callback can optionally return `'skip'`, so that the parameter gets excluded
            from the resulting schema.
        config: The configuration to use.

    Returns:
        The generated schema.
    )Znamespaces_tuple)Zns_resolver	arguments)
r	   ZGenerateSchemar   ZConfigWrapperr
   Z
NsResolverZns_for_functionZ_arguments_schemaZ_arguments_v3_schemaZclean_schema)r   r   r   r   Zgenerate_schemaZschema r   ]/var/www/html/lang_env/lib/python3.10/site-packages/pydantic/experimental/arguments_schema.pygenerate_arguments_schema   s   
r   )r   NN)
r   r   r   r   r   r   r   r   r   r   )__doc__
__future__r   collections.abcr   typingr   r   Zpydantic_corer   Zpydanticr   Zpydantic._internalr   r	   r
   r   r   r   r   r   <module>   s    