
    Χgb                     `    d Z ddlZda G d d          ZdedefdZdedefdZdedefd	ZdS )
z.Import mangling.
See mangling.md for details.
    Nc                   <    e Zd ZdZd	dZdefdZdedefdZd ZdS )
PackageManglerzZ
    Used on import, to ensure that all modules imported have a shared mangle parent.
    returnNc                 R    t           | _         t           dz  a d| j          d| _        d S )N   z<torch_package_>)_mangle_index_mangle_parentselfs    S/var/www/html/ai-engine/env/lib/python3.11/site-packages/torch/package/_mangling.py__init__zPackageMangler.__init__   s3    * F0BEEE    c                 F    t          |          dk    sJ | j        dz   |z   S )Nr   .)lenr
   )r   names     r   manglezPackageMangler.mangle   s(    4yyA~~~~"S(4//r   mangledc                 v    |                     | j        dz             r|                    d          d         S |S )z
        Note: This only demangles names that were mangled by this specific
        PackageMangler. It will pass through names created by a different
        PackageMangler instance.
        r      )
startswithr
   	partition)r   r   s     r   demanglezPackageMangler.demangle   sB     d1C788 	-$$S))!,, r   c                     | j         S )N)r
   r   s    r   parent_namezPackageMangler.parent_name*   s    ""r   )r   N)	__name__
__module____qualname____doc__r   strr   r   r    r   r   r   r      s         F F F F0c 0 0 0 0
 
 
 
 
 
# # # # #r   r   r   r   c                 F    t          t          j        d|                     S )Nz<torch_package_\d+>)boolrematchr   s    r   
is_mangledr(   .   s    /66777r   c                     t          |           r0|                     d          \  }}}t          |          dk    r|ndS | S )z
    Note: Unlike PackageMangler.demangle, this version works on any
    mangled name, irrespective of which PackageMangler created it.
    r   r    )r(   r   r   )r   firstseplasts       r   r   r   2   sK    
 $ ->>#..sD 3xx1}}tt",Kr   c                 Z    t          |           r|                     d          d         n| S )Nr   r   )r(   r   r'   s    r   get_mangle_prefixr/   ?   s+    %/%5%5?4>>#q!!4?r   )	r    r%   r	   r   r!   r$   r(   r   r/   r"   r   r   <module>r0      s     
			  #  #  #  #  #  #  #  #F8S 8T 8 8 8 8
3 
3 
 
 
 
@C @C @ @ @ @ @ @r   