o
    i                     @   sl   d dl mZmZmZmZ erd dlmZ ddlmZ er"ddl	m
Z
 eeB ZedZG dd dZdgZd	S )
    )TYPE_CHECKINGAnyOptionalTypeVar)Callable   )DataType)SparkSessionUserDefinedFunctionLikec                	   @   sp   e Zd ZdddZ	ddedd	d
ed ddfddZ	ddeded
ed ddfddZdededdfddZdS )UDFRegistrationsparkSessionr	   returnNc                 C   s
   || _ d S N)r   )selfr    r   U/home/ubuntu/.local/lib/python3.10/site-packages/duckdb/experimental/spark/sql/udf.py__init__   s   
zUDFRegistration.__init__namefz,Callable[..., Any] | UserDefinedFunctionLike
returnTypeDataTypeOrStringr
   c                 C   s   | j jj|||d d S )N)return_type)r   conncreate_function)r   r   r   r   r   r   r   register   s   zUDFRegistration.registerjavaClassNamec                 C      t r   NotImplementedError)r   r   r   r   r   r   r   registerJavaFunction   s   z$UDFRegistration.registerJavaFunctionc                 C   r   r   r   )r   r   r   r   r   r   registerJavaUDAF$   s   z UDFRegistration.registerJavaUDAF)r   r	   r   Nr   )	__name__
__module____qualname__r   strr   r   r   r    r   r   r   r   r      s.    


r   N)typingr   r   r   r   collections.abcr   typesr   sessionr	   r$   r   r
   r   __all__r   r   r   r   <module>   s   
