U
    9%e                     @   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
 ddddg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rejejjej< e ee j 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   V/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/torch/utils/show_pickle.py__init__   s    zFakeObject.__init__c                 C   s8   | j d k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__   s    zFakeObject.__setstate__c              	   C   s   |j s"|jd kr"|t| d S |jd krf||j d|j  | |j ||d |d || d S |j s||j d|j d || j7 }|d|  | |j|||d ||d  |d d S tdd S )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
   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   r/   r0   r   r   r   r,   :   s    zFakeClass.fake_newN)r(   r)   r*   r   r   r1   r,   r   r   r   r   r   .   s   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| || _d S r
   )superr   r2   )r   filer2   kwargs	__class__r   r   r   ?   s    zDumpUnpickler.__init__c                 C   s
   t ||S r
   )r   r.   r   r   r   
find_classH   s    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k
r| } z| jsZ t	ddt|f}W 5 d }~X Y nX | 
| d S )Nz<I   zString too long.zutf-8surrogatepassbuiltinUnicodeDecodeError)structunpackreadsysmaxsizer   strr>   r2   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   r8   r:   dictpickle
_UnpicklerdispatchrF   
BINUNICODEclassmethodrK   __classcell__r   r   r6   r   r   >   s   	c           	      C   sd  t | dkrt|d k	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|krt|d}t|| W 5 Q R X n|dd
\}}t	
|}d|kr||}t|| W 5 Q R X nfd}| D ]>}t|j|r||}t|| W 5 Q R X d} q<q|sVtd| d| W 5 Q R X 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   rB   stderrr   openr   rK   splitzipfileZipFileinfolistfnmatchfilename)	argvZoutput_streamfnamehandleZzfnameZmnamezffoundinfor   r   r   r	   j   s:    __main__)N)rB   rM   r?   rH   r[   r^   typingr   r   r   r   __all__r   r   rN   r   r	   r(   r'   PrettyPrinter	_dispatchr   exitr`   r   r   r   r   <module>   s   ",
%