
    ɯei                         d dl mZ d dlmZmZmZmZmZmZm	Z	 d dl
mZmZ d dlmZ d dlmZmZ d dlmZ d dlmZmZ  G d d	e      Z G d
 de      Zy)    )
ModuleType)AnyCallableDictListOptionalTupleUnion)
build_udafwith_src_position)process_registration_inputs)TempObjectTypecheck_imports_type)DataType)UDAFRegistrationUserDefinedAggregateFunctionc                   8     e Zd Zdddd	 fdZdeddfdZ xZS )
 MockUserDefinedAggregateFunctionFT)strictuse_session_importsreturnNc                ^    t        |   |i | || _        t               | _        || _        y N)super__init__r   set_importsr   )selfr   r   argskwargs	__class__s        _/var/www/html/glpi_dashboard/venv/lib/python3.12/site-packages/snowflake/snowpark/mock/_udaf.pyr   z)MockUserDefinedAggregateFunction.__init__   s-    $)&)#6     absolute_module_pathc                 H    d| _         | j                  j                  |       y )NF)r   r   add)r   r$   s     r"   
add_importz+MockUserDefinedAggregateFunction.add_import   s    #( ./r#   r   N)__name__
__module____qualname__r   strr'   __classcell__r!   s   @r"   r   r      s     %* 70s 0t 0r#   r   c            .       v    e Zd Zd fdZdedefdZdedee   fdZ		 	 	 	 	 	 	 	 	 d dddddddd	d
e
eeeef   f   dee   deee      dee   dee   deee
eeeef   f         deee
eef         dedededeee      deeeef      dee   deeeef      deeeef      dededededededef,dZ xZS )!MockUDAFRegistrationr   Nc                 `    t        |   |i | t               | _        t	               | _        y r   )r   r   dict	_registryr   _session_level_imports)r   r   r    r!   s      r"   r   zMockUDAFRegistration.__init__   s/    $)&) F 	
 '*e#r#   namec                      | j                   |   S r   )r3   r   r5   s     r"   get_udafzMockUDAFRegistration.get_udaf$   s    ~~d##r#   c                     g S r    r7   s     r"   get_udaf_importsz%MockUDAFRegistration.get_udaf_imports'   s    	r#   FT)native_app_paramsstatement_paramssource_code_displayskip_upload_on_content_matchis_permanent	immutable	_emit_asthandlerreturn_typeinput_typesstage_locationimportspackagesreplaceif_not_existsparallelexternal_access_integrationssecretscommentr<   r=   r>   api_call_sourcer?   r@   rA   rB   c          	         d\  }}|j                  d      z|rP| j                  j                  j                         }t	        |j
                  j                  |      }|j                  }|d   }t        |||||||      }|| j                  |<   |S t        |       t        | j                  t        j                  ||||      \  }}}}}}|r| j                  j                  j                         }t	        |j
                  j                  |      }|j                  }t        ||fi d|d|d|d|d|d	|d
|d|	d|
d|d|d|d|d|d|d| j                  d|| t        |||||||      }|| j                  |<   |S )N)NN_registered_object_name)rH   _ast_ast_idrD   rE   r5   rF   rG   rH   rI   rJ   rK   rL   rM   rA   rN   r=   r@   session)get_session
_ast_batchbindr   exprudafuidr   r3   r   r   r   AGGREGATE_FUNCTIONr   )r   rC   rD   rE   r5   rF   rG   rH   rI   rJ   rK   rL   rM   rN   r<   r=   r>   rO   r?   r@   rA   rB   r    astast_idstmtobject_namerZ   _opt_arg_defaultss                                 r"   _do_register_udafz&MockUDAFRegistration._do_register_udaf+   s	   4 !V::/0<}}//446'		= !:;K3!D +/DNN;'K7# (MM--
	
 ==++002D#DIINND9CXXF ( (	
   .   "   , " .J   $    "2!" *#$ %& )4). 0
 '+{#r#   r(   )	NNNFF   NNN)r)   r*   r+   r   r,   r   r8   r   r   r;   r
   r   r	   r   r   r   boolintr   rc   r-   r.   s   @r"   r0   r0      s   ,$S $%A $S T#Y  )-?C;?#<@,0!%i  7;59$(-2"/ixsCx01i h'i d8n-	i
 smi !i $uS%S/%9:;<i 4c:o 678i i i i '/tCy&9i $sCx.)i #i  $DcN3!i" #4S>2#i$ "%i& 'i( '+)i* +i, -i. /i2 
&3ir#   r0   N)typesr   typingr   r   r   r   r   r	   r
   &snowflake.snowpark._internal.ast.utilsr   r   &snowflake.snowpark._internal.udf_utilsr   "snowflake.snowpark._internal.utilsr   r   snowflake.snowpark.typesr   snowflake.snowpark.udafr   r   r   r0   r:   r#   r"   <module>rn      s>     D D D P N Q - R	0'C 	0z+ zr#   