o
    wi                     @  s   U d dl mZ d dlZd dlmZ d dlmZ d dlmZm	Z	 d dl
ZdddZeeZded< G dd deZG dd dedZdS )    )annotationsN)defaultdict)dedent)AnyClassVarop_namestrnameexportr   returntuple[str, str]c                 C  sj   |t dd  p|  }tt|}| }|d dksJ |d ds(J |td|dd  fS )Nexport_r   z@staticmethod   z
def export
   )lenlowerr   inspect	getsource
splitlines
startswithjoin)r   r	   r
   snippet_namesource_codelines r   X/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/onnx/backend/test/case/base.pyprocess_snippet   s   r   z dict[str, list[tuple[str, str]]]Snippetsc                      s0   e Zd ZU eeZded< d fddZ  ZS )	_Exporterz*ClassVar[dict[str, list[tuple[str, str]]]]exportsr	   r   basestuple[type[Any], ...]dctdict[str, Any]r   Nonec                   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   r0      s   


z_Exporter.__init__)r	   r   r!   r"   r#   r$   r   r%   )	__name__
__module____qualname__r   listr    __annotations__r0   __classcell__r   r   r4   r   r      s   
 r   c                   @  s   e Zd ZdS )BaseN)r6   r7   r8   r   r   r   r   r<   .   s    r<   )	metaclass)r   r   r	   r   r
   r   r   r   )
__future__r   r   collectionsr   textwrapr   typingr   r   numpyr-   r   r9   r   r:   typer   r<   r   r   r   r   <module>   s   

