
    QVji                        d Z ddlmZ ddlmZmZ ddlmZ ddlZ G 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Zdej        dee	ee	         f         defdZ dej!        dee	ee	         f         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.
    )Iterable)autoEnum)UnionNc                   N   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     S/root/voice-cloning/.venv/lib/python3.11/site-packages/torch/utils/_sympy/symbol.pyr   r      s        466DDFFE466LTVVN $&&CtvvH tvv DFFE tvvHtvvH
 TVVNTVVFTVVFTVVF466DTVVFFFr   r   suzfzuftmppsir0_r1_idxxyzindirectviewhprefixreturnc                 D    t          j        t          |           | fi |S N)sympySymbol
prefix_str)r/   r(   kwargss      r   make_symbolr7   T   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 r2   )r5   ).0ps     r   	<genexpr>z!symbol_is_type.<locals>.<genexpr>a   s&      (G(G1A(G(G(G(G(G(Gr   )	
isinstancer3   r4   namelowerr   
startswithr5   tuple)r8   r/   name_strs      r   symbol_is_typerD   [   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 r2   )rD   )r;   vr/   s     r   r=   z&free_symbol_is_type.<locals>.<genexpr>e   s-      AAQ~a((AAAAAAr   )anyfree_symbols)rE   r/   s    `r   free_symbol_is_typerK   d   s(    AAAA!.AAAAAAr   )#__doc__collections.abcr   enumr   r   typingr   r3   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r5   intr4   r7   BasicboolrD   ExprrK   r   r   r   <module>rT      s&    % $ $ $ $ $               " " " " "4 " " "NIss 	J 	 	He 	4 	J 	M5 	M5 	 	K 	K  	K!" 	M:#$ 	Iv%& 	K'
.@ @3 @U\ @ @ @ @I IU4$3G-H IT I I I IB5: BuT8D>5I/J Bt B B B B B Br   