a
    7Sic}                     @   s   d dl Z d dlZd dlmZmZ d dlmZ d dlmZm	Z	m
Z
mZmZmZ dgZeeef ZdZdd Zdd	 ZdddZdd ZdS )    N)IterDataPipeMapDataPipe)DILL_AVAILABLE)AnyDictSetTupleTypeUniontraversec                   C   s   dS )NZSTUB r   r   r   R/var/www/html/django/DPS/env/lib/python3.9/site-packages/torch/utils/data/graph.py_stub_unpickler   s    r   c              
      s<  t  }t|}tr,ddlm} ||}nd }dd }g dd } fdd}	ttf}
z|
D ]}||	 |rb|	| qbz|
 W n, tjttfy   tr|
 n Y n0 W |
D ]}|d  |r|	d  qtrdd	lm} |d
 n>|
D ]}|d  |r|	d  qtr6dd	lm} |d
 0 S )Nr   )Picklerc                 S   s   t dfS Nr   )r   objr   r   r   stub_pickler   s    z/_list_connected_datapipes.<locals>.stub_picklerc                 S   s4   i }| j  D ] \}}t|tttfr|||< q|S N)__dict__items
isinstancer   r   tuple)r   statekvr   r   r   getstate_hook"   s
    
z0_list_connected_datapipes.<locals>.getstate_hookc                    s,   | ks|  v rt n|  tdfS d S r   )NotImplementedErrorappendr   r   cacheZcaptured_connectionsscan_objr   r   reduce_hook)   s    
z._list_connected_datapipes.<locals>.reduce_hook)extendF)ioBytesIOpickler   r   dillr   r   set_reduce_ex_hookset_getstate_hookdumpPickleErrorAttributeError	TypeErrorr#   )r!   only_datapiper    fpZdill_Picklerdr   r   r"   Zdatapipe_classesclsZdill_extendr   r   r   _list_connected_datapipes   sJ    







r3   Fc                 C   s   t  }t| ||S r   )set_traverse_helper)datapiper.   r    r   r   r   r   I   s    c                 C   sf   t | ttfs tdt| ||  t| ||}| i i}|D ]}||  t	|||
  qB|S )Nz9Expected `IterDataPipe` or `MapDataPipe`, but {} is found)r   r   r   RuntimeErrorformattypeaddr3   updater5   copy)r6   r.   r    r   r1   itemr   r   r   r5   O   s    
r5   )F)r$   r&   torch.utils.datar   r   %torch.utils.data._utils.serializationr   typingr   r   r   r   r	   r
   __all__ZDataPipereduce_ex_hookr   r3   r   r5   r   r   r   r   <module>   s    5
