o
    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rt| t nt  fdd}t }t| }||_	|
| | }|| rA| jfS d fS )Nc                    s   t | st| t jjr,t| t jjr| j}nt j}|  | dtd fS t	| drPt
t| d u rJdt| g|  R t
t| < t
t|  S d S )Nstorage   __reduce_deploy__reduce_deploy)torch
is_storage
isinstancer	   TypedStoragedtypeuint8appendlenhasattr_serialized_reducesgetidr   )objr   	importersserialized_dtypesserialized_storages a/var/www/html/construction_image-detection-poc/venv/lib/python3.10/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    data_bufpickler
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r-|d  } |d  }tjj| |dS |dkrJ|\}}}|tvrF|t g|R  t|< t| S d S )Nr   r
   r	   )wrap_storager   r   )	r   tupler   r   r	   r   untyped_loaded_reduces_raw_packages)saved_idtypenamedatar	   r   	reduce_idfuncargsr   r   r&   r   r   persistent_load=   s   
z'_load_storages.<locals>.persistent_load)	r   _get_packager   r   r"   r#   r8   load_deploy_objects)	r   r&   	obj_bytesr   r   r8   r'   	unpicklerresultr   r7   r   _load_storages<   s   r?   c                 C   s   | t vr
t| t | < t |  S )N)r0   r   )r&   r   r   r   r9   _   s   r9   r0   r;   r   r/   )r"   r   torch.packager   r   r   r   torch.package._package_picklerr    torch.package._package_unpicklerr   torch.serializationr   r+   r?   r9   r0   dict__annotations__r;   r   r/   r   r   r   r   <module>   s   
1#