o
    i                     @   s   d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZm	Z	m
Z
 g dZG dd dZG dd dZG dd	 d	ejZdd
dZedkr[	 ejejjej< e ee j dS dS )    N)AnyIOBinaryIOUnion)
FakeObject	FakeClassDumpUnpicklermainc                   @   s0   e Zd Zdd Zdd Zdd Zedd Zd	S )
r   c                 C   s   || _ || _|| _d | _d S N)modulenameargsstate)selfr   r   r    r   f/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/torch/utils/show_pickle.py__init__   s   
zFakeObject.__init__c                 C   s8   | j d u rdnd| j d}| j d| j | j| S )N z(state=).)r   r   r   r   )r   	state_strr   r   r   __repr__   s   zFakeObject.__repr__c                 C   s
   || _ d S r
   )r   )r   r   r   r   r   __setstate__      
zFakeObject.__setstate__c              	   C   s   |j s|jd u r|t| d S |jd u r3||j d|j  | |j ||d |d || d S |j se||j d|j d || j7 }|d|  | |j|||d ||d  |d d S td)Nr      z
()(state=
 r   zNeed to implement)	r   r   writereprr   r   _format_indent_per_level	Exception)printerobjstreamindent	allowancecontextlevelr   r   r   	pp_format   s   


zFakeObject.pp_formatN)__name__
__module____qualname__r   r   r   staticmethodr(   r   r   r   r   r      s    r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
r   c                 C   s   || _ || _| j| _d S r
   )r   r   fake_new__new__r   r   r   r   r   r   r   /   s   zFakeClass.__init__c                 C   s   | j  d| j S )Nr   )r   r   )r   r   r   r   r   4   s   zFakeClass.__repr__c                 G   s   t | j| j|S r
   r   r   r   r   r   r   r   r   __call__7   s   zFakeClass.__call__c                 G   s   t | j| j|dd  S )Nr   r0   r1   r   r   r   r-   :   s   zFakeClass.fake_newN)r)   r*   r+   r   r   r2   r-   r   r   r   r   r   .   s
    r   c                       s`   e Zd Zdd fdd
Zdd Zdd Zeejj	Z	d	d
 Z
e
e	ejd < edd Z  ZS )r   F)catch_invalid_utf8c                   s   t  j|fi | || _d S r
   )superr   r3   )r   filer3   kwargs	__class__r   r   r   ?   s   
zDumpUnpickler.__init__c                 C   s
   t ||S r
   )r   r/   r   r   r   
find_classH   r   zDumpUnpickler.find_classc                 C   s   t dd|fS )NZpersr"   )r   )r   pidr   r   r   persistent_loadK   s   zDumpUnpickler.persistent_loadc              
   C   s   t d| d\}|tjkrtd| |}zt|dd}W n ty? } z| js, t	ddt|f}W Y d }~nd }~ww | 
| d S )Nz<I   zString too long.zutf-8surrogatepassbuiltinUnicodeDecodeError)structunpackreadsysmaxsizer    strr?   r3   r   append)r   ZstrlenZ	str_bytesr"   Zexnr   r   r   load_binunicodeT   s   

zDumpUnpickler.load_binunicoder   c                 C   s   | |  }tj||d |S )N)r#   )loadpprint)clsZ	in_streamZ
out_streamvaluer   r   r   dumpc   s   zDumpUnpickler.dump)r)   r*   r+   r   r9   r;   dictpickle
_UnpicklerdispatchrG   
BINUNICODEclassmethodrL   __classcell__r   r   r7   r   r   >   s    	r   c           	   
   C   s  t | dkr:|d urtdtjd tjd tjd tjd tjd tjd tjd	 dS | d
 }d|vr`t|d}t|| W d    d S 1 sYw   Y  d S |dd
\}}t	
|l}d|vr||}t|| W d    n1 sw   Y  n;d}| D ](}t|j|r||}t|| W d    n1 sw   Y  d} nq|std| d| W d    d S W d    d S 1 sw   Y  d S )N   zPass argv of length 2.zusage: show_pickle PICKLE_FILE
z  PICKLE_FILE can be any of:
z    path to a pickle file
z    file.zip@member.pkl
z    file.zip@*/pattern.*
z'      (shell glob pattern for members)
z'      (only first match will be shown)
r   @rb*FTzCould not find member matching z in )lenr    rC   stderrr   openr   rL   splitzipfileZipFileinfolistfnmatchfilename)	argvZoutput_streamfnamehandleZzfnameZmnamezffoundinfor   r   r   r	   j   sL   ""r	   __main__Tr
   )rC   rN   r@   rI   r\   r_   typingr   r   r   r   __all__r   r   rO   r   r	   r)   r(   PrettyPrinter	_dispatchr   exitra   r   r   r   r   <module>   s"   "
,%