o
    ki                     @   s  d Z ddlmZ ddlmZmZ ddlZG dd deZi 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ejdejdejdZdededejfddZdejdeee B defddZdejdeee B def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.
    )Iterable)autoEnumNc                   @   sl   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e Ze Ze ZdS )SymTN)__name__
__module____qualname__r   SIZEFLOATUNBACKED_INTUNBACKED_FLOATTMPINDIRECTPRECOMPUTED_SIZEINDEXR0_INDEXR1_INDEXTEMPLATE_INDEXXBLOCKYBLOCKZBLOCKVIEWHALIDE r   r   c/var/www/addictedbytheproject.nl/epg/venv/lib/python3.10/site-packages/torch/utils/_sympy/symbol.pyr      s"    
r   suzfzuftmppsir0_r1_idxxyzindirectviewhprefixreturnc                 K   s   t jt|   | fi |S N)sympySymbol
prefix_str)r+   r$   kwargsr   r   r   make_symbolS   s   r2   symc                 C   sN   t | tjs
td| j }t |tr|t| S |t	dd |D S )Nzexpected sympy.Symbolc                 s   s    | ]}t | V  qd S r-   )r0   ).0pr   r   r   	<genexpr>a   s    z!symbol_is_type.<locals>.<genexpr>)

isinstancer.   r/   AssertionErrornamelowerr   
startswithr0   tuple)r3   r+   name_strr   r   r   symbol_is_typeZ   s   

r>   ec                    s   t  fdd| jD S )Nc                 3   s    | ]}t | V  qd S r-   )r>   )r4   vr+   r   r   r6   e   s    z&free_symbol_is_type.<locals>.<genexpr>)anyfree_symbols)r?   r+   r   rA   r   free_symbol_is_typed   s   rD   )!__doc__collections.abcr   enumr   r   r.   r   r	   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r0   intr/   r2   Basicboolr>   ExprrD   r   r   r   r   <module>   sR   '	
 $
