
    sg                     J    d dl Z d dlZddlmZ  G d dej                        Zy)    N   )Importerc                   .     e Zd ZdZdef fdZd Z xZS )PackageUnpicklerzPackage-aware unpickler.

    This behaves the same as a normal unpickler, except it uses `importer` to
    find any global names that it encounters while unpickling.
    importerc                 2    t        |   |i | || _        y )N)super__init__	_importer)selfr   argskwargs	__class__s       S/var/www/html/venv/lib/python3.12/site-packages/torch/package/_package_unpickler.pyr
   zPackageUnpickler.__init__   s    $)&)!    c                 *   | j                   dk  r^| j                  rR||ft        j                  v rt        j                  ||f   \  }}n%|t        j                  v rt        j                  |   }| j
                  j                  |      }t        ||      S )N   )protofix_imports_compat_pickleNAME_MAPPINGIMPORT_MAPPINGr   import_modulegetattr)r   modulenamemods       r   
find_classzPackageUnpickler.find_class   s~    ::>d..~!<!<<-::FD>J>888'66v>nn**62sD!!r   )__name__
__module____qualname____doc__r   r
   r   __classcell__)r   s   @r   r   r      s    " ""r   r   )r   pickler   r   
_Unpicklerr    r   r   <module>r'      s       "v(( "r   