a
    h                     @   s   U d dl Z d dlZd dlmZmZmZmZ d dlmZ d dl	m
Z
 d dlmZ dd Zdd	 Zd
d Zi Zeed< i Zeed< i Zeed< i Zeed< dS )    N)ImporterOrderedImporterPackageImportersys_importer)create_pickler)PackageUnpickler)_maybe_decode_asciic                    s   g g t | tjjr| nd } | d ur2t| t nt  fdd}t }t| }||_	|
| | }|| r| jnd fS )Nc                    s   t | st| t jjrXt| t jjr.| j}nt j}|  | dtd fS t	| drt
t| d u rdt| g|  R t
t| < t
t|  S d S )Nstorage   __reduce_deploy__reduce_deploy)torchZ
is_storage
isinstancer	   TypedStoragedtypeZuint8appendlenhasattr_serialized_reducesgetidr   )objr   	importersserialized_dtypesserialized_storages ;/var/www/auris/lib/python3.9/site-packages/torch/_deploy.pypersistent_id   s     


z%_save_storages.<locals>.persistent_id)r   r   packager   r   r   ioBytesIOr   r   dumpgetvalue
zip_reader)importerr   r   Zdata_bufZpicklerZ
data_valuer   r   r   _save_storages   s"    

r&   c           	         sV    fdd}d ur(t tt}nt}t|t|}||_|  }t| < |S )Nc                    s   t | tsJ t| d }| dd  }|dkrZ|d  } |d  }tjj| |dS |dkr|\}}}|tvr|t g|R  t|< t| S d S )Nr   r
   r	   )Zwrap_storager   r   )	r   tupler   r   r	   r   Zuntyped_loaded_reduces_raw_packages)Zsaved_idtypenamedatar	   r   Z	reduce_idfuncargsr   r   r$   r   r   persistent_load=   s    
z'_load_storages.<locals>.persistent_load)	r   _get_packager   r   r    r!   r/   load_deploy_objects)	r   r$   Z	obj_bytesr   r   r/   r%   Z	unpicklerresultr   r.   r   _load_storages<   s    r4   c                 C   s   | t vrt| t | < t |  S )N)r)   r   )r$   r   r   r   r0   _   s    r0   r)   r2   r   r(   )r    r   Ztorch.packager   r   r   r   Ztorch.package._package_picklerr   Z torch.package._package_unpicklerr   Ztorch.serializationr   r&   r4   r0   r)   dict__annotations__r2   r   r(   r   r   r   r   <module>   s   
1#