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   k/var/www/html/construction_image-detection-poc/venv/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   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   r0   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   r1   )r   filer1   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 )N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>   r1   r   append)r   strlen	str_bytesr    exnr   r   r   load_binunicodeU   s   

zDumpUnpickler.load_binunicoder   c                 C   s   | |  }tj||d |S )N)r!   )loadpprint)cls	in_stream
out_streamvaluer   r   r   dumpd   s   zDumpUnpickler.dump)r'   r(   r)   r   r7   r:   dictpickle
_UnpicklerdispatchrI   
BINUNICODEclassmethodrP   __classcell__r   r   r5   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   rB   stderrr   openr   rP   splitzipfileZipFileinfolistfnmatchfilename)	argvoutput_streamfnamehandlezfnamemnamezffoundinfor   r   r   r   k   sL   ""r   __main__Tr   )rB   rR   r?   rK   r`   rc   typingr   r   __all__r   r   rS   r   r   r'   r&   PrettyPrinter	_dispatchr   exitre   r   r   r   r   <module>   s"   "
,%