U
    h                     @  sX   d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	 d dl
mZ G dd deZdS )	    )annotations)	Parameter	signature)AnyCallable)warn)	BaseModelc                      s*   e Zd Zdddddd fddZ  ZS )ValidatedTransformMetaz	type[Any]strztuple[type, ...]zdict[str, Any])clsnamebasesdctreturnc                   s~   d krlt  d trl dd kr4d}t|t}ddddd fdd}||_j|_| d< t | || S )	N
InitSchema__init__z&__init__ not found in class definitionr   None)selfargskwargsr   c                   s   t j}t| dd  }tt||}|| | D ].\}}|dkr>||kr>|jt	j
k	r>|j||< q> d f |}| }	|D ] }
|
|	krtd|
 ddd q| f|	 d S )N   r   r   z
Argument 'z#' is not valid and will be ignored.   )
stacklevel)r   
parameterslistkeysdictzipupdateitemsdefaultr   emptyZ
model_dumpr   )r   r   r   Zinit_paramsZparam_namesZfull_kwargsZparameter_nameZ	parameterconfigZvalidated_kwargsZname_argr   Zoriginal_init B/tmp/pip-unpacked-wheel-e8onvpoz/albumentations/core/validation.pycustom_init   s*    



z3ValidatedTransformMeta.__new__.<locals>.custom_init)	
issubclassr   get
ValueErrorr   __signature____doc__super__new__)r   r   r   r   msgZoriginal_sigr&   	__class__r#   r%   r-      s    
zValidatedTransformMeta.__new__)__name__
__module____qualname__r-   __classcell__r$   r$   r/   r%   r	   
   s   r	   N)
__future__r   inspectr   r   typingr   r   warningsr   Zpydanticr   typer	   r$   r$   r$   r%   <module>   s
   