o
    Ú­jJ  ã                   @  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_callbackú8Callable[[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.
    )Únamespaces_tuple)Úns_resolverÚ	arguments)
r	   ÚGenerateSchemar   ÚConfigWrapperr
   Ú
NsResolverÚns_for_functionÚ_arguments_schemaÚ_arguments_v3_schemaÚclean_schema)r   r   r   r   Úgenerate_schemaÚschema© r!   úc/var/www/html/CropPilot/venv/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   Úpydantic_corer   Úpydanticr   Úpydantic._internalr   r	   r
   r#   r!   r!   r!   r"   Ú<module>   s    ü