U
    Mh4                     @   s   d Z ddlmZmZ ddlmZmZ ddlZG dd deZej	dej
dejd	ejd
ejdejdejdejdejdejdejdejdejdiZeeejdddZejeeee f edddZejeedddZdS )a  
This file contains canonical definitions for our symbol naming conventions,
across torch.fx.experimental.symbolic_shapes and torch._inductor.  The
intention is:

1. To make it easily greppable where all the sites we use a prefix are
2. Make it possible to easily tell if we can introduce a new prefix without
   introducing a conflict

You can occasionally test if prefixes have been hardcoded by renaming prefixes
in this file and seeing what breaks.
    )autoEnum)SequenceUnionNc                   @   sZ   e Zd Ze Ze Ze Ze Ze Ze Z	e Z
e Ze Ze Ze Ze Ze ZdS )SymTN)__name__
__module____qualname__r   SIZEFLOATUNBACKED_INTUNBACKED_FLOATTMPINDIRECTPRECOMPUTED_SIZEINDEXRINDEXTEMPLATE_INDEXXBLOCKYBLOCKVIEW r   r   K/var/www/html/venv/lib/python3.8/site-packages/torch/utils/_sympy/symbol.pyr      s   r   suzfZzuftmpZpsiridxxyZindirectview)prefixr   returnc                 K   s   t jt|   | f|S N)sympySymbol
prefix_str)r#   r   kwargsr   r   r   make_symbolL   s    r*   )symr#   r$   c                 C   sH   t | tjstt |tr*| jt| S | jtdd |D S d S )Nc                 s   s   | ]}t | V  qd S r%   )r(   ).0pr   r   r   	<genexpr>X   s     z!symbol_is_type.<locals>.<genexpr>)	
isinstancer&   r'   AssertionErrorr   name
startswithr(   tuple)r+   r#   r   r   r   symbol_is_typeS   s    
r4   )er#   r$   c                    s   t  fdd| jD S )Nc                 3   s   | ]}t | V  qd S r%   )r4   )r,   vr#   r   r   r.   \   s     z&free_symbol_is_type.<locals>.<genexpr>)anyZfree_symbols)r5   r#   r   r7   r   free_symbol_is_type[   s    r9   )__doc__enumr   r   typingr   r   r&   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r(   intr'   r*   ZBasicboolr4   Exprr9   r   r   r   r   <module>   sD   $              