
    MhF                        U d dl mZ d dlZd dlZd dlmZ  e            Zded<   dZ	ej
        dk    rej        Zded	<   d
Zn	ej        ZdZ G d d          ZdS )    )annotationsN)Anyobject	NOT_FOUND2   l        z+type[ctypes.c_int32] | type[ctypes.c_int64]	WORD_TYPE      c                      e Zd Zedd            Ze	 ddd            Ze	 	 ddd            Ze	 	 ddd            Zed d            Z	dS )!DeduperReloaderPatchingMixinobjr   fieldstrreturnintc                   t          | |t                    }|t          u rdS t          j                            t          j        |                     j        }t          j                            t          j        |                    j        }||dS d}t          dt                    D ]K}t          j	        |t          |z  z   t          j        t                              j        j        |k    r|} nL|S )N   )getattrr   ctypesc_void_pfrom_buffer	py_objectvaluerange_MAX_FIELD_SEARCH_OFFSETcastWORD_N_BYTESPOINTERr   contents)r   r   field_valueobj_addr
field_addrretoffsets          w/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/IPython/extensions/deduperreload/deduperreload_patching.pyinfer_field_offsetz/DeduperReloaderPatchingMixin.infer_field_offset   s    
 c5)44)##2?..v/?/D/DEEK_001A+1N1NOOU
z12A788 	 	F|f44fnY6O6O 5 
  
    N	new_valuer%   
int | NoneNonec                   t          ||t                    }|t          u rd S ||                     ||          }|dk    rd S t          j                            t          j        |                    j        }t          j                            t          j        |                    j        }||d S |1t          j        	                    t          j        |                     |1t          j        
                    t          j        |                     |t          j        |t          |z  z   t          j        t                              j        _        d S )Nr   )r   r   r'   r   r   r   r   r   	pythonapi	Py_DecRef	Py_IncRefr   r   r   r   r    )clsr   r   r)   r%   
prev_valuer"   new_value_addrs           r&   try_write_readonly_attrz4DeduperReloaderPatchingMixin.try_write_readonly_attr*   s+    S%33
""F>++C77FR<<F?..v/?/D/DEEK44V5Ei5P5PQQW~5F!&&v'7
'C'CDDD &&v'7	'B'BCCC * 	|f,,fnY.G.G	
 	

555r(   Fr   oldnewnew_is_valueboolc                R   t          ||t                    }|r|nt          ||t                    }|t          u s	|t          u rd S ||u rd S ||dk     r|                     ||          }n$|dk     r|rJ |J |                     ||          }|                     ||||           d S )Nr   )r%   )r   r   r'   r3   )r0   r4   r5   r   r6   r%   	old_valuer)   s           r&   try_patch_readonly_attrz4DeduperReloaderPatchingMixin.try_patch_readonly_attrE   s     C	22	'KCCWS%-K-K		!!Y)%;%;F)##F"vzz++C77FFaZZ####(((++C77F##C	&#IIIIIr(   c                    	 t          |||r|nt          ||                     d S # t          t          t          f$ r |                     |||||           Y d S w xY wN)setattrr   AttributeError	TypeError
ValueErrorr:   )r0   r4   r5   r   r6   r%   s         r&   try_patch_attrz+DeduperReloaderPatchingMixin.try_patch_attr]   s~    	OC| Le9L9LMMMMM	:6 	O 	O 	O''S%vNNNNNN	Os   #' 0AAto_patch_tor   to_patch_from	is_methodc                   g }g }t          |j        j                  D ]N\  }}||j        j        vs|dk    r5|                    |           |                    |j        |                    Ot          |j        j                  D ]>\  }}||vr5|                    |           |                    |j        |                    ?|j                            t          |                    }|                     ||dd           d}	|j        |j        |                     |d          }	| 	                    |t          |          pd dd|	           d	D ]}
|                     |||
           |r| 	                    ||d
           d S d S )N	__class__)co_freevars__code__T)r6   r   __closure__)r6   r%   )__defaults____kwdefaults____doc____dict____self__)
	enumeraterH   rG   appendrI   replacetuplerA   r'   r:   )r0   rB   rC   rD   new_freevarsnew_closureivcode_with_new_freevarsr%   attrs              r&   patch_functionz+DeduperReloaderPatchingMixin.patch_functionk   s    k2>?? 	? 	?DAq.:::a;>N>N##A&&&"";#:1#=>>>m4@AA 	A 	ADAq$$##A&&&""=#<Q#?@@@!.!7!?!?l++ "@ "
 "
 	/$ 	 	
 	
 	
 "*}/H/T++M=IIF##+&$ 	$ 	
 	
 	
 N 	A 	AD{M4@@@@ 	P'']JOOOOO	P 	Pr(   )r   r   r   r   r   r   r<   )
r   r   r   r   r)   r   r%   r*   r   r+   )Fr   )r4   r   r5   r   r   r   r6   r7   r%   r   r   r+   )rB   r   rC   r   rD   r7   r   r+   )
__name__
__module____qualname__staticmethodr'   classmethodr3   r:   rA   rY    r(   r&   r   r      s           \.  "* * * * [*4  #J J J J [J.  #O O O O [O !P !P !P [!P !P !Pr(   r   )
__future__r   r   systypingr   r   r   __annotations__r   maxsizec_int64r   r   c_int32r   r_   r(   r&   <module>rg      s    " " " " " " "  



      FHH	     ;=C^IKKKKLLIL|P |P |P |P |P |P |P |P |P |Pr(   