U
    qh7                     @  s>  d dl mZ dddddddd	d
dddddgZd dlm  mZ d dlmZm	Z	 dZ
dZdZejZejZejZejZejZddddZddddZedd ZejZee_edd Zeej_dddd Zee_ddd!d"Zeej_ddd#d$Z e ej!_ddd%d&Z"e"ej_d'dd(dZ#ej$Z$dd)d*d+dZ%dS ),    )annotationsCONNX_DOMAINONNX_ML_DOMAINAI_ONNX_PREVIEW_TRAINING_DOMAINhasregister_schemaderegister_schema
get_schemaget_all_schemasget_all_schemas_with_historyonnx_opset_versionget_function_opsOpSchemaSchemaErrorN)AttributeProtoFunctionProto z
ai.onnx.mlzai.onnx.preview.trainingint)returnc                   C  s   t  t d S )z*Return current opset for domain `ai.onnx`.   )r   schema_version_mapr    r   r   6/tmp/pip-unpacked-wheel-xnis5xre/onnx/defs/__init__.pyr   '   s    c                   C  s   t  t d S )z-Return current opset for domain `ai.onnx.ml`.r   )r   r   r   r   r   r   r   onnx_ml_opset_version,   s    r   c                 C  s   t  }|| j |S N)r   ParseFromStringZ_function_body)selfZ
func_protor   r   r   _function_proto1   s    r   c                 C  s   t  }|| j |S r   )r   r   Z_default_value)r   attrr   r   r   _attribute_default_value<   s    r    strc                 C  sF   d| j d| jd| jd| jd| jd| jd| jd| jd	S )
NzOpSchema(
    name=z,
    domain=z,
    since_version=z
,
    doc=z,
    type_constraints=z,
    inputs=z,
    outputs=z,
    attributes=z
))namedomainsince_versiondocZtype_constraintsinputsoutputs
attributesr   r   r   r   _op_schema_reprF   s    r*   c                 C  s>   d| j d| jd| jd| jd| jd| jd| jdS )	NzOpSchema.FormalParameter(name=z, type_str=, description=z, param_option=z, is_homogeneous=z, min_arity=z, differentiation_category=))r"   Ztype_strdescriptionoptionZis_homogeneousZ	min_arityZdifferentiation_categoryr)   r   r   r    _op_schema_formal_parameter_reprW   s    <r/   c                 C  s   d| j d| jd| jdS )Nz,OpSchema.TypeConstraintParam(type_param_str=z, allowed_type_strs=r+   r,   )Ztype_param_strZallowed_type_strsr-   r)   r   r   r   %_op_schema_type_constraint_param_reprc   s    r0   c                 C  s.   d| j d| jd| jd| jd| jdS )NzOpSchema.Attribute(name=z, type=r+   z, default_value=z, required=r,   )r"   typer-   default_valuerequiredr)   r   r   r   _op_schema_attribute_reprm   s    ,r4   zlist[OpSchema]c                  C  s   t  } dd | D S )z&Return operators defined as functions.c                 S  s   g | ]}|j s|jr|qS r   )Zhas_functionZhas_context_dependent_function).0schemar   r   r   
<listcomp>z   s       z$get_function_ops.<locals>.<listcomp>)r   r   )Zschemasr   r   r   r   w   s    None)r6   r   c                 C  sx   t  }| j}| j}||||f\}}||ksF||  krD|ksjn t||}t||}t | j|| t |  dS )zRegister a user provided OpSchema.

    The function extends available operator set versions for the provided domain if necessary.

    Args:
        schema: The OpSchema to register.
    N)	r   r   r#   r$   getminmaxZset_domain_to_versionr   )r6   Zversion_mapr#   versionmin_versionZmax_versionr   r   r   r      s    

)&
__future__r   __all__Zonnx.onnx_cpp2py_export.defsZonnx_cpp2py_exportZdefsr   Zonnxr   r   r   r   r   Z
has_schemar   r
   r   r   r	   r   r   propertyr   r   Zfunction_bodyr    	Attributer2   r*   __repr__r/   ZFormalParameterr0   ZTypeConstraintParamr4   r   r   r   r   r   r   r   <module>   sZ   

	