o
    toi[                     @  s:   d dl mZ d dlmZ d dlmZ dd Zdd
dZdS )    )annotations)Any)OpRunc                 C  sP   d| v r$| j ddd\}}z	t|}W ||fS  ty#   | d f Y S w | d fS )N_   )maxsplit)rsplitint
ValueError)nameprefixversv r   O/home/ubuntu/.local/lib/python3.10/site-packages/onnx/reference/ops/_helpers.py_split_class_name   s   
r   module_contextdict[str, Any]return(dict[str, dict[int | None, type[OpRun]]]c           
      C  s   i }|   D ]N\}}|ds|dv rqt|ttrqd}zt|t}W n ty= } ztd|d|d|d }~ww |rTt|\}}||vrNi ||< ||| |< q|s[t	d|
 D ]}d |v rfq_t|}	||	 |d < q_|S )Nr   >   clr   DictListUniontextwrap	TOptional
class_name
get_schemar   r   FzUnexpected variable type z and class_name=.zNo registered operator. This error happens when no implementation of type 'OpRun' was detected. It may be due to an error during installation. Please try reinstalling onnx.)items
startswith
isinstancetype%build_registered_operators_any_domain
issubclassr   	TypeErrorr   RuntimeErrorvaluesmax)
r   reg_opsr   
class_typeissubeop_type
op_versionimplmax_versionr   r   r   r#      sB   r#   N)r   r   r   r   )
__future__r   typingr   onnx.reference.op_runr   r   r#   r   r   r   r   <module>   s
   