o
    toi;                     @  s  d dl mZ g dZd dlZd dlm  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
Zd$ddZedd ZejZee_edd Zee_edd Zeej_d%ddZee_d%ddZeej_d%ddZ e ej!_d%ddZ"e"ej_d&ddZ#ej$Z$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 z
ai.onnx.mlzai.onnx.preview.trainingreturnintc                   C     t  t d S )z*Return current opset for domain `ai.onnx`.   )r   schema_version_mapr    r   r   F/home/ubuntu/.local/lib/python3.10/site-packages/onnx/defs/__init__.pyr   &      r   c                   C  r   )z-Return current opset for domain `ai.onnx.ml`.r   )r   r   r   r   r   r   r   onnx_ml_opset_version+   r   r   c                 C     t  }|| j |S N)onnxFunctionProtoParseFromString_function_body)self
func_protor   r   r   _function_proto0      r#   c                 C  s   | j tjjkS )z+Check if the operator is non-deterministic.)node_determinismr   NodeDeterminismDeterministicr!   r   r   r   _non_deterministic;   s   r)   c                 C  r   r   )r   AttributeProtor   _default_value)r!   attrr   r   r   _attribute_default_valueD   r$   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doctype_constraintsinputsoutputs
attributesr(   r   r   r   _op_schema_reprN   s"   	r7   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/   type_strdescriptionoptionis_homogeneous	min_aritydifferentiation_categoryr(   r   r   r    _op_schema_formal_parameter_repr_   s   r@   c                 C  s   d| j d| jd| jdS )Nz,OpSchema.TypeConstraintParam(type_param_str=z, allowed_type_strs=r8   r9   )type_param_strallowed_type_strsr;   r(   r   r   r   %_op_schema_type_constraint_param_reprk   s   
rC   c                 C  s.   d| j d| jd| jd| jd| jdS )NzOpSchema.Attribute(name=z, type=r8   z, default_value=z, required=r9   )r/   typer;   default_valuerequiredr(   r   r   r   _op_schema_attribute_repru   s   rG   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   )has_functionhas_context_dependent_function).0schemar   r   r   
<listcomp>   s    z$get_function_ops.<locals>.<listcomp>)r   r   )schemasr   r   r   r      s   r   rL   r   Nonec                 C  sx   t  }| j}| j}||||f\}}||vs#||  kr"|ks5n 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   r0   r1   getminmaxset_domain_to_versionr   )rL   version_mapr0   versionmin_versionmax_versionr   r   r   r      s   

r   )r   r   )r   r.   )r   rH   )rL   r   r   rO   )&
__future__r   __all__r   onnx.onnx_cpp2py_export.defsonnx_cpp2py_exportdefsr   r   r   r   
has_schemar   r
   r   r   r	   r   r   propertyr#   r   function_bodyr)   non_deterministicr-   	AttributerE   r7   __repr__r@   FormalParameterrC   TypeConstraintParamrG   r   r   r   r   r   r   r   <module>   sF   






	



