
    JThc                     ^    S r SSKrSq " S S5      rS\S\4S jrS\S\4S jrS\S\4S	 jrg)
z.Import mangling.
See mangling.md for details.
    Nc                   H    \ rS rSrSrSS jrS\4S jrS\S\4S jrS	 r	S
r
g)PackageMangler   zR
Used on import, to ensure that all modules imported have a shared mangle parent.
returnNc                 V    [         U l         [         S-  q SU R                    S3U l        g )N   z<torch_package_>_mangle_index_mangle_parentselfs    O/var/www/auris/envauris/lib/python3.13/site-packages/torch/package/_mangling.py__init__PackageMangler.__init__   s.    * !00B0B/C1E    c                 H    [        U5      S:w  d   eU R                  S-   U-   $ )Nr   .)lenr   )r   names     r   manglePackageMangler.mangle   s(    4yA~~""S(4//r   mangledc                 t    UR                  U R                  S-   5      (       a  UR                  S5      S   $ U$ )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   demanglePackageMangler.demangle   s=     d11C788$$S)!,, r   c                     U R                   $ )N)r   r   s    r   parent_namePackageMangler.parent_name*   s    """r   r
   )r   N)__name__
__module____qualname____firstlineno____doc__r   strr   r   r!   __static_attributes__ r   r   r   r      s1    F0c 0
 
 
#r   r   r   r   c                 B    [        [        R                  " SU 5      5      $ )Nz<torch_package_\d+>)boolrematchr   s    r   
is_mangledr0   .   s    /677r   c                 t    [        U 5      (       a'  U R                  S5      u  pn[        U5      S:w  a  U$ S$ U $ )z
Note: Unlike PackageMangler.demangle, this version works on any
mangled name, irrespective of which PackageMangler created it.
r   r    )r0   r   r   )r   _firstseplasts       r   r   r   2   s>    
 $ NN3/T 3x1}t,",Kr   c                 N    [        U 5      (       a  U R                  S5      S   $ U $ )Nr   r   )r0   r   r/   s    r   get_mangle_prefixr7   ?   s%    %/%5%54>>#q!?4?r   )	r'   r-   r   r   r(   r,   r0   r   r7   r*   r   r   <module>r8      s]    
  #  #F8S 8T 8
3 
3 
@C @C @r   