o
    "iD9                     @   s  U d dl Zd dlZd dlmZmZ d dlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ d dl,m-Z- d dl.m/Z/ d dl0m1Z1m2Z2m3Z3 d dl4Z4d dl5m6Z6m7Z7 g a8e3e1 e9d< d	e3e1 fd
dZ:de3e1 fddZ;dd Z<dd Z=dd Z>ej?dddd Z@G dd dZAdddeBfddZCdS )    N)CounterOrderedDict)%APPENDAPPENDSBINFLOATBINGETBININTBININT1BININT2	BINPERSIDBINPUT
BINUNICODEBUILDbytes_typesdecode_long
EMPTY_DICT
EMPTY_LIST	EMPTY_SETEMPTY_TUPLEGLOBALLONG1LONG_BINGETLONG_BINPUTMARKNEWFALSENEWOBJNEWTRUENONEPROTOREDUCESETITEMSETITEMSSHORT_BINSTRINGSTOPTUPLETUPLE1TUPLE2TUPLE3UnpicklingError)unpack)maxsize)AnyDictList)IMPORT_MAPPINGNAME_MAPPING_marked_safe_globals_listsafe_globalsc                 C   s   t | 7 a d S Nr0   )r1    r4   [/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/torch/_weights_only_unpickler.py_add_safe_globalsN   s   r6   returnc                   C   s   t S r2   r3   r4   r4   r4   r5   _get_safe_globalsS   s   r8   c                   C   s   g a d S r2   r3   r4   r4   r4   r5   _clear_safe_globalsX   s   r9   c                  C   s2   i } t D ]}|j|j}}|| | d| < q| S )N.)r0   
__module____name__)rcfmodulenamer4   r4   r5   _get_user_allowed_globalsd   s
   rA   c                
   C   s@   t jjt jjt jjt jjt jjt jjt jjt jj	t jj
t jjh
S r2   )torch_utils_rebuild_parameter_rebuild_parameter_with_state_rebuild_qtensor_rebuild_tensor_rebuild_tensor_v2_rebuild_tensor_v3_rebuild_sparse_tensor_rebuild_meta_tensor_no_storage_rebuild_nested_tensor_rebuild_wrapper_subclassr4   r4   r4   r5   _tensor_rebuild_functionsl   s   rN      c                  C   s.  t ttjjtjjtjtjtj	d} tj
  D ]}|| t|< qtj
 D ]}|| t|< q&tjD ]}|| |j d|j < q2tjD ](}|tj
jtj
jfvr`tj|j| |j d|j < qC|| |j d|j < qCtjtjtjtjtjfD ]}|| t|< qxt D ]
}|| d|j < qtjj| d< | S )N)zcollections.OrderedDictzcollections.Counterztorch.nn.parameter.Parameterztorch.serialization._get_layoutz
torch.Sizeztorch.Tensorztorch.devicer:   ztorch._utils.z#torch._tensor._rebuild_from_type_v2)r   r   rB   nn	Parameterserialization_get_layoutSizeTensordevicestorage_dtype_to_storage_type_mapkeysstr_new_dtypes_tensor_classesr;   r<   _storage_classesTypedStorageUntypedStorageStorageTypeper_tensor_affineper_tensor_symmetricper_channel_affineper_channel_symmetric per_channel_affine_float_qparamsrN   _tensor_rebuild_from_type_v2)r=   ttttsqtr>   r4   r4   r5   _get_allowed_globals|   s>   



rl   c                   @   s8   e Zd ZdddefddZdd Zdd	 Zd
d ZdS )	Unpicklerbytesencodingrp   c                C   s&   || _ |j| _|j| _i | _d| _d S )N)rp   readlinereadmemoproto)selffilerp   r4   r4   r5   __init__   s
   
zUnpickler.__init__c                 C   s6	  g | _ g | _| jj| _| j}| j}	 |d}|stt|ts!J |d td kr| dd 	d}| dd 	d}| j
dkrY||ftv rQt||f \}}n|tv rYt| }| d| }|t v ro| t |  n+|t v r~| t |  ntd	| d
| d|d td kr| j }| j }|tjju r| tjj|  n|t  v r| |j|g|R   ntd| |d td kr| j }| jd }	|	t  vr|	t  vrtd|	 |	| | jd< n|d td kra| j }
| jd }t|tju r|j|
  nt|tjju r*||
 npt|tu r9|j|
 nat|t  v rXt |drP||
 nJ|j|
 nBtdt| |d t!d kr| j }| jd }t|t"urtdt| || n|d t#d kr| $ }| jd }t|t"urtdt| |%| n|d t&d kr| j | j }}|| jd |< n|d t'd kr| $ }t(dt)|dD ]}||d  | jd || < qn|d t*d kr| j | j g | _| jj| _n|d t+d kr)| $ }| t,| nq|d t-d kr=| jd f| jd< n]|d t.d krX| jd | jd fg| jdd< nB|d t/d krw| jd | jd | jd fg| jdd< n#|d t0d kr| d n|d t1d kr| d n|d t2d kr| d n|d t3d kr| d n|d t4d kr| g  n|d t5d kr| i  n|d t6d kr| t7  n|d t8d kr| t9d|dd  n|d t:d kr| | dd  n|d t;d kr+| t9d|dd  no|d t<d krC| t9d| dd  nW|d t=d krmt9d|dd }|t>kr^tdt?||dd}| | n-|d t@d kr|dd }||}| jAdkr|	| jAd}| | n|d tBd kr| j }t|t,urt|tCu rtd t| t|t,u rt)|dkrtjDE|d d!krtd"|d  | | F| n|d tGd tHd fv r|d tGd kr|dnt9d|dd }| | jI|  n|d tJd tKd fv rE|d tJd kr*|dnt9d|dd }|dk r<tLd#| jd | jI|< nU|d tMd kr`|dd }||}| tN| n:|d tOd kr|dd | _
| j
dkrtPQd$| j
 d% n|d tRd kr| j }|S td&|d  q)'zRead a pickled object representation from the open file.

        Return the reconstituted object hierarchy specified in the file.
        TrO   r   Nrq   zutf-8   r:   zUnsupported global: GLOBAL zY was not an allowed global by default. Please use `torch.serialization.add_safe_globals([z>])` to allowlist this global if you trust this class/function.z(Trying to instantiate unsupported class z0Trying to call reduce for unrecognized function __setstate__zACan only build Tensor, parameter or OrderedDict objects, but got z"Can only append to lists, but got zCan only extend lists, but got Fr4   z<i   z<Hz>d   z<IzString is too longsurrogatepassrn   strictz1persistent_load id must be tuple or int, but got rW   z4Only persistent_load of storage is allowed, but got znegative argumentzDetected pickle protocol z in the checkpoint, which was not the default pickle protocol used by `torch.load` (2). The weights_only Unpickler might not support all instructions implemented by this protocol, please file an issue for adding support if you encounter this.zUnsupported operand )S	metastackstackappendrs   rr   EOFError
isinstancer   r   decoderu   r/   r.   rl   rA   RuntimeErrorr   poprB   rP   rQ   values__new__r   r   typerU   set_rz   r   __dict__updatehasattrr   listr   pop_markextendr    r!   rangelenr   r$   tupler%   r&   r'   r   r   r   r   r   r   r   setr   r)   r	   r
   r   r   r*   rZ   r"   rp   r   intrR   _maybe_decode_asciipersistent_loadr   r   rt   r   r   
ValueErrorr   r   r   warningswarnr#   )rv   rs   rr   keyr?   r@   	full_pathargsclsfuncstateinstitemlist_objitemsvkistrlenstrvalstrdatapididxndatar=   r4   r4   r5   load   sT  












$,

,,

 zUnpickler.loadc                 C   s    | j }| j | _ | j j| _|S r2   )r   r   r   r   )rv   r   r4   r4   r5   r   t  s   
zUnpickler.pop_markc                 C   s   t d)Nz%unsupported persistent id encountered)r(   )rv   r   r4   r4   r5   r   z  s   zUnpickler.persistent_loadN)r<   r;   __qualname__rZ   rx   r   r   r   r4   r4   r4   r5   rm      s     Brm   ASCIIro   rp   c                C   s   t | |d S )Nro   )rm   r   )rw   rp   r4   r4   r5   r   ~  s   r   )D	functools
_functoolsr   collectionsr   r   pickler   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   structr)   sysr*   typingr+   r,   r-   rB   torch._utilsr.   r/   r0   __annotations__r6   r8   r9   rA   rN   	lru_cacherl   rm   rZ   r   r4   r4   r4   r5   <module>   s(   
'

. T