
    sg                     "   d Z ddlmZmZ ddlmZmZ ddlZ G 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ej,                  diZdededej2                  fdZdej6                  deeee   f   defdZdej<                  dedefdZy)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                       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y)SymTN)__name__
__module____qualname__r   SIZEFLOATUNBACKED_INTUNBACKED_FLOATTMPINDIRECTPRECOMPUTED_SIZEINDEXRINDEXTEMPLATE_INDEXXBLOCKYBLOCKVIEWHALIDE     L/var/www/html/venv/lib/python3.12/site-packages/torch/utils/_sympy/symbol.pyr   r      so    6DFE6LVN &CvH v FE VF
 VNVFVF6DVFr   r   suzfzuftmppsiridxxyindirectviewhprefixreturnc                 D    t        j                  t        |     | fi |S N)sympySymbol
prefix_str)r+   r%   kwargss      r   make_symbolr3   O   s%    <<:f-.se4???r   symc                     t        | t        j                        sJ | j                  j	                         }t        |t
              r|j                  t        |         S |j                  t        d |D                    S )Nc              3   .   K   | ]  }t         |     y wr.   )r1   ).0ps     r   	<genexpr>z!symbol_is_type.<locals>.<genexpr>\   s     (G1A(Gs   )	
isinstancer/   r0   namelowerr   
startswithr1   tuple)r4   r+   name_strs      r   symbol_is_typer@   V   sb    c5<<(((xx~~H&$"":f#566""5(G(G#GHHr   ec                 @    t        fd| j                  D              S )Nc              3   6   K   | ]  }t        |        y wr.   )r@   )r7   vr+   s     r   r9   z&free_symbol_is_type.<locals>.<genexpr>`   s     AQ~a(As   )anyfree_symbols)rA   r+   s    `r   free_symbol_is_typerG   _   s    A!..AAAr   ) __doc__enumr   r   typingr   r   r/   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r1   intr0   r3   Basicboolr@   ExprrG   r   r   r   <module>rO      s'    "  4  L 	IIss 	JJHHe4JJKKKKKKMM:IIvKK#
*@ @3 @U\\ @I IU4$3G-H IT IB5:: Bt B Br   