U
    •Ê¹jw  ã                   @   sØ   d Z ddlZddlZddlmZ ddlmZmZ ddlm	Z	m
Z
mZ ejejdd�Zedƒe	je
jd	œd
d„ƒƒZedƒeje	je
jd	œdd„ƒƒƒZedƒe	jde
jd	œdd„ƒƒZedƒe	je
jd	œdd„ƒƒZdS )am  This file exports ONNX ops for opset 15.

Note [ONNX operators that are added/updated in opset 15]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
https://github.com/onnx/onnx/blob/master/docs/Changelog.md#version-15-of-the-default-onnx-operator-set
New operators:
    Bernoulli
    CastLike
    Optional
    OptionalGetElement
    OptionalHasElement

Updated operators:
    BatchNormalization https://github.com/onnx/onnx/pull/3545
                        Backwards compatible
                        TODO: test coverage for mixed types inputs.
    Pow                https://github.com/onnx/onnx/pull/3412
                        Backwards compatible
                        TODO: bfloat16 support.
    Shape              https://github.com/onnx/onnx/pull/3580
                        Backwards compatible
                        TODO: optional start/end attribute.
é    N)Ú_C)Úsymbolic_helperÚsymbolic_opset9)Ú	_beartypeÚ	jit_utilsÚregistrationé   )Zopsetzaten::__is_)Úgc                 C   sV   t  |¡rHt| ¡ tjƒr2|  d|¡}|  d|¡S | jdt dg¡d�S t	 
| ||¡S )NZOptionalHasElementÚNotÚConstantr   )Zvalue_t)r   Ú_is_noneÚ
isinstanceÚtyper   ÚOptionalTypeÚopÚtorchZ
BoolTensorÚopset9Úeq)r	   ÚselfÚotherÚnone© r   úZ/var/www/html/bwave/python/venv/lib/python3.8/site-packages/torch/onnx/symbolic_opset15.pyÚ	aten__is_&   s    
r   zaten::__isnot_c                 C   s   t | ||ƒS )N)r   )r	   r   r   r   r   r   Úaten__isnot_2   s    r   zaten::bernoullic                 C   sp   |d k	r t  |¡s t  dd|¡ |d k	r@t  |¡s@t  dd|¡ |d ksRt  |¡r^|  d|¡S t | ||||¡S )NZ	Bernoulliz,out parameter is not supported for bernoulliz(generator is not supported for bernoulli)r   r   Z_unimplementedr   r   Ú	bernoulli)r	   ÚinputÚpÚ	generatorÚoutr   r   r   r   9   s      ÿ  ÿr   zprim::unchecked_castc                 C   s    t | ¡ tjƒr|  d|¡S |S )NZOptionalGetElement)r   r   r   r   r   )r	   r   r   r   r   Úprim_unchecked_castI   s    r    )NNN)Ú__doc__Ú	functoolsr   r   Z
torch.onnxr   r   r   Ztorch.onnx._internalr   r   r   ÚpartialZonnx_symbolicZ_onnx_symbolicZbeartypeZGraphContextr   Zwrap_logical_op_with_negationr   r   r    r   r   r   r   Ú<module>   s&   
