
    ^j"                     F    d dl Z d dlZ G d dej                        ZddZy)    Nc                        e Zd ZdZdedefdZy)_ClassMapUnpicklera7  Restricted unpickler for `.pkl` class map files.

    A class map is a plain ``{class_name: index}`` dict of built-in types, which never
    triggers ``find_class``. Disallowing all globals therefore blocks arbitrary code
    execution from a crafted class map file (CWE-502) without affecting valid files.
    modulenamec                 :    t        j                  d| d| d      )NzGlobal .z& is not permitted in a class map file.)pickleUnpicklingError)selfr   r   s      f/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/timm/data/readers/class_map.py
find_classz_ClassMapUnpickler.find_class   s#    $$wvhav=c%dee    N)__name__
__module____qualname____doc__strr    r   r   r   r      s    f fC fr   r   c                    t        | t              rt        sJ d       | S | }t        j                  j	                  |      sIt        j                  j                  ||      }t        j                  j	                  |      s
J d| z         t        j                  j                  |       d   j                         }|dk(  rBt        |      5 }t        |      D ci c]  \  }}|j                         | }}}d d d        |S |dk(  rOt        |d      5 }t        |      j                         }d d d        t        t              st        d| d      |S J d	| d       c c}}w # 1 sw Y   S xY w# 1 sw Y   HxY w)
Nz class_map dict must be non-emptyz+Cannot locate specified class map file (%s)z.txtz.pklrbz)Invalid class map file, expected a dict (z).z&Unsupported class map file extension ()
isinstancedictospathexistsjoinsplitextloweropen	enumeratestripr   load
ValueError)map_or_filenamerootclass_map_pathclass_map_extfkvclass_to_idxs           r   load_class_mapr-      sk   /4(777t$N77>>.)dN;ww~~n-n/\_n/nn-GG$$_5b9??AM.! 	CQ5>q\BTQAGGIqLBLB	C  
&	 .$' 	81-a0557L	8,-HHXXZ[\\  	Q>}oRPPu C	C 	8 	8s*   
E&E 4E&E3 E&&E03E<) )r   r	   	Unpicklerr   r-   r   r   r   <module>r0      s$    	 	f)) 	fr   