Ë
    Q/æj  ã                   ó†   — 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 d dlmZ d dlmZ ddlmZmZmZmZ  G d„ de«      Zd
d„Zy	)é    )Ú_compat_pickleÚ_extension_registryÚ_getattributeÚ_PicklerÚEXT1ÚEXT2ÚEXT4ÚGLOBALÚPicklerÚPicklingErrorÚSTACK_GLOBAL)Úpack)ÚFunctionTypeé   )ÚImporterÚObjMismatchErrorÚObjNotFoundErrorÚsys_importerc                   ó0   ‡ — e Zd ZdZdefˆ fd„Zdd„Zˆ xZS )ÚPackagePicklerz‘Package-aware pickler.

    This behaves the same as a normal pickler, except it uses an `Importer`
    to find objects and modules to save.
    Úimporterc                 óº   •— || _         t        ‰| �  |i |¤Ž t        j                  j                  «       | _        t        j                  | j                  t        <   y ©N)	r   ÚsuperÚ__init__r   ÚdispatchÚcopyr   Úsave_globalr   )Úselfr   ÚargsÚkwargsÚ	__class__s       €úa/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/torch/package/_package_pickler.pyr   zPackagePickler.__init__   sH   ø€ Ø ˆŒÜ‰Ñ˜$Ð) &Ò)ô !×)Ñ)×.Ñ.Ó0ˆŒÜ&4×&@Ñ&@ˆ�‰”lÒ#ó    c           	      óö  — | j                   }| j                  }	 | j                  j                  ||«      \  }}| j                  j                  |«      }t        ||«      \  }}	| j                  dk\  rxt        j                  ||f«      }
|
r_|
dkD  sJ ‚|
dk  r |t        t        d|
«      z   «       y |
dk  r |t        t        d|
«      z   «       y  |t         t        d	|
«      z   «       y |j#                  d
«      d   }|	|u r|}| j                  dk\  r/| j%                  |«       | j%                  |«        |t&        «       nÌ|	|ur| j)                  t*        |	|f«       n¯| j                  dk\  r- |t,        t/        |d«      z   dz   t/        |d«      z   dz   «       ns| j0                  r:t2        j4                  }t2        j6                  }||f|v r|||f   \  }}n	||v r||   }	  |t,        t/        |d«      z   dz   t/        |d«      z   dz   «       | j;                  |«       y # t        t
        f$ r }t        d|› dt        |«      › �«      d ‚d }~ww xY w# t8        $ r t        d||| j                  fz  «      d ‚w xY w)NzCan't pickle z: é   r   éÿ   z<Biÿÿ  z<Hz<iú.é   é   zutf-8ó   
Úasciiz?can't pickle global identifier '%s.%s' using pickle protocol %i)ÚwriteÚmemor   Úget_namer   r   r   ÚstrÚimport_moduler   Úprotor   Úgetr   r   r   r	   Ú
rpartitionÚsaver   Úsave_reduceÚgetattrr
   ÚbytesÚfix_importsr   ÚREVERSE_NAME_MAPPINGÚREVERSE_IMPORT_MAPPINGÚUnicodeEncodeErrorÚmemoize)r   ÚobjÚnamer-   r.   Úmodule_nameÚerrÚmoduleÚ_ÚparentÚcodeÚlastnameÚr_name_mappingÚr_import_mappings                 r#   r   zPackagePickler.save_global)   s²  € ð —
‘
ˆØ�y‰yˆð	MØ $§¡× 6Ñ 6°s¸DÓ AÑˆK˜ð —‘×,Ñ,¨[Ó9ˆÜ! &¨$Ó/‰	ˆˆ6ð �:‰:˜Š?Ü&×*Ñ*¨K¸Ð+>Ó?ˆDÙØ˜a’x��xØ˜4’<Ùœ$¤ d¨DÓ!1Ñ1Ô2ð
 ð	 ˜V’^Ùœ$¤ d¨DÓ!1Ñ1Ô2ð ñ œ$¤ d¨DÓ!1Ñ1Ô2ØØ—?‘? 3Ó'¨Ñ*ˆØ�VÑØˆDà�:‰:˜Š?Ø�I‰I�kÔ"Ø�I‰I�dŒOÙ”,ÕØ˜6Ñ!Ø×ÑœW v¨xÐ&8Õ9Ø�Z‰Z˜1Š_ÙÜÜ˜ WÓ-ñ.àñô ˜˜gÓ&ñ'ð ñ	õð ×ÒÜ!/×!DÑ!D�Ü#1×#HÑ#HÐ Ø Ð&¨.Ñ8Ø(6¸ÀTÐ7JÑ(KÑ%�K¡Ø Ð$4Ñ4Ø"2°;Ñ"?�KðÙÜÜ˜K¨Ó1ñ2àñô ˜D 'Ó*ñ+ð ñ	ôð 	�‰�SÕøôu !Ô"2Ð3ò 	MÜ -°¨u°B´s¸3³x°jÐ AÓBÈÐLûð	Mûôh &ò Ü#ð)Ø,2°D¸$¿*¹*Ð+EñFóð ððús#   šH  Ç",I È IÈ/I
É
IÉ&I8r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   Ú__classcell__)r"   s   @r#   r   r      s   ø„ ñðA õ A÷Dr$   r   c                 óH   — |t         u rt        | |¬«      S t        || |¬«      S )N)Úprotocol)r   r   r   )Údata_bufr   rO   s      r#   Úcreate_picklerrQ   p   s(   € Ø”<Ñô �x¨(Ô3Ð3ä˜h¨¸8ÔDÐDr$   N)r)   )Úpickler   r   r   r   r   r   r	   r
   r   r   r   Ústructr   Útypesr   r   r   r   r   r   r   rQ   © r$   r#   ú<module>rV      s<   ð÷÷ ÷ ñ õ Ý ç PÓ PôX�Xô XôvEr$   