a
    8Sic>                     @   sR   d Z ddlZdaG dd dZeedddZeeddd	Zeedd
dZdS )z.Import mangling.
See mangling.md for details.
    Nc                   @   s>   e Zd ZdZdd ZedddZeeddd	Zd
d ZdS )PackageManglerzZ
    Used on import, to ensure that all modules imported have a shared mangle parent.
    c                 C   s"   t | _ t d7 a d| j  d| _d S )N   z<torch_package_>)_mangle_index_mangle_parentself r	   S/var/www/html/django/DPS/env/lib/python3.9/site-packages/torch/package/_mangling.py__init__   s    zPackageMangler.__init__)returnc                 C   s   t |dksJ | jd | S )Nr   .)lenr   )r   namer	   r	   r
   mangle   s    zPackageMangler.mangle)mangledr   c                 C   s"   | | jd 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   r	   r	   r
   demangle   s    zPackageMangler.demanglec                 C   s   | j S )N)r   r   r	   r	   r
   parent_name(   s    zPackageMangler.parent_nameN)	__name__
__module____qualname____doc__r   strr   r   r   r	   r	   r	   r
   r   	   s
   
r   )r   r   c                 C   s   t td| S )Nz<torch_package_\d+>)boolrematchr   r	   r	   r
   
is_mangled,   s    r    c                 C   s0   t | r,| d\}}}t|dkr(|S 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lastr	   r	   r
   r   0   s    r   c                 C   s   t | r| dd S | S )Nr   r   )r    r   r   r	   r	   r
   get_mangle_prefix=   s    r%   )	r   r   r   r   r   r   r    r   r%   r	   r	   r	   r
   <module>   s   #