o
    h                     @   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 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rW	 e
jejje
j< e ee j dS dS )    N)AnyIO)
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   ]/home/www/facesmatcher.com/frenv_anti/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   Z	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
   _formatZ_indent_per_level	Exception)printerobjstreamindentZ	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   0   s   zFakeClass.__init__c                 C   s   | j  d| j S )Nr   )r	   r
   )r   r   r   r   r   5   s   zFakeClass.__repr__c                 G   s   t | j| j|S r   r   r	   r
   r   r   r   r   r   __call__8   s   zFakeClass.__call__c                 G   s   t | j| j|dd  S )Nr   r+   r,   r   r   r   r(   ;   s   zFakeClass.fake_newN)r$   r%   r&   r   r   r-   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   r.   )r   filer.   kwargs	__class__r   r   r   @   s   
zDumpUnpickler.__init__c                 C   s
   t ||S r   )r   r*   r   r   r   
find_classI   r   zDumpUnpickler.find_classc                 C   s   t dd|fS )NZpersr   )r   )r   pidr   r   r   persistent_loadL   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:   r.   r   append)r   ZstrlenZ	str_bytesr   Zexnr   r   r   load_binunicodeU   s   

zDumpUnpickler.load_binunicoder   c                 C   s   | |  }tj||d |S )N)r   )loadpprint)clsZ	in_streamZ
out_streamvaluer   r   r   dumpd   s   zDumpUnpickler.dump)r$   r%   r&   r   r4   r6   dictpickle
_UnpicklerdispatchrB   
BINUNICODEclassmethodrG   __classcell__r   r   r2   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} qq|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   r>   stderrr   openr   rG   splitzipfileZipFileinfolistfnmatchfilename)	argvZoutput_streamfnamehandleZzfnameZmnamezffoundinfor   r   r   r   k   sL   ""r   __main__Tr   )r>   rI   r;   rD   rW   rZ   typingr   r   __all__r   r   rJ   r   r   r$   r#   ZPrettyPrinterZ	_dispatchr   exitr\   r   r   r   r   <module>   s"   "
,%