o
    e                  
   @   s   U d dl mZ d dlZd dlmZ d dlmZmZmZm	Z	m
Z
mZ d dlZdedededeeef fd	d
ZeeZeeeeeef  f ed< G dd deZG dd dedZdS )    )defaultdictN)dedent)DictListTupleTypeSequenceAnyop_namenameexportreturnc                 C   sj   |t dd  p|  }tt|}| }|d dksJ |d ds(J |td|dd  fS )NZexport_r   z@staticmethod   z
def export
   )lenlowerr   inspect	getsource
splitlines
startswithjoin)r
   r   r   Zsnippet_nameZsource_codelines r   KD:\Projects\ConvertPro\env\Lib\site-packages\onnx/backend/test/case/base.pyprocess_snippet   s   r   Snippetsc                       sh   e Zd ZU eeZeeee	eef  f e
d< dede	ee df deeef ddf fdd	Z  ZS )
	_Exporterexportsr   bases.dctr   Nc                    sv   |  D ],\}}|dr0t|tstdt| |}t| t||| t	j
jdd |  qt ||| d S )Nr   z-Only staticmethods could be named as export.*r   )seed)itemsr   
isinstancestaticmethod
ValueErrorgetattrr   appendr   nprandomr!   super__init__)clsr   r   r    kvr   	__class__r   r   r+      s   


z_Exporter.__init__)__name__
__module____qualname__r   listr   r   strr   r   __annotations__r   r	   r+   __classcell__r   r   r/   r   r      s   
 $:r   c                   @   s   e Zd ZdS )BaseN)r1   r2   r3   r   r   r   r   r8   *   s    r8   )	metaclass)collectionsr   r   textwrapr   typingr   r   r   r   r   r	   numpyr(   r5   r   r4   r   r6   typer   r8   r   r   r   r   <module>   s    "$
