
    Χg                        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j        fdZdej        deeee         f         defdZdej        dedef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                   &   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dS )SymTN)__name__
__module____qualname__r   SIZEFLOATUNBACKED_INTUNBACKED_FLOATTMPINDIRECTPRECOMPUTED_SIZEINDEXRINDEXTEMPLATE_INDEXXBLOCKYBLOCKVIEWHALIDE     U/var/www/html/ai-engine/env/lib/python3.11/site-packages/torch/utils/_sympy/symbol.pyr   r      s        466DDFFE466LTVVN $&&CtvvH tvv DFFE TVVF
 TVVNTVVFTVVF466DTVVFFFr   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-4s44?????r   symc                 .   t          | t          j                  sJ | j                                        }t          |t
                    r |                    t          |                   S |                    t          d |D                                 S )Nc              3   0   K   | ]}t           |         V  d S r.   )r1   ).0ps     r   	<genexpr>z!symbol_is_type.<locals>.<genexpr>\   s&      (G(G1A(G(G(G(G(G(Gr   )	
isinstancer/   r0   namelowerr   
startswithr1   tuple)r4   r+   name_strs      r   symbol_is_typer@   V   s    c5<(((((x~~H&$ I"":f#5666""5(G(G(G(G(G#G#GHHHr   ec                 D    t          fd| j        D                       S )Nc              3   8   K   | ]}t          |          V  d S r.   )r@   )r7   vr+   s     r   r9   z&free_symbol_is_type.<locals>.<genexpr>`   s-      AAQ~a((AAAAAAr   )anyfree_symbols)rA   r+   s    `r   free_symbol_is_typerG   _   s(    AAAA!.AA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 	Iss 	JHe4JKKKM:IvK#
*@ @3 @U\ @ @ @ @I IU4$3G-H IT I I I IB5: Bt B B B B B B Br   