
    ^hm
                         S r SSKrSSKrSSKrSSKrSSKJr  SSKJr   " S S\	5      r
 " S S	\R                  R                  5      r " S
 S\R                  5      rg)z%A shim module for deprecated imports
    N)import_module   )import_itemc                       \ rS rSrSrSrg)ShimWarning   zFA warning to show when a module has moved, and a shim is in its place. N)__name__
__module____qualname____firstlineno____doc____static_attributes__r	       R/home/james-whalen/.local/lib/python3.13/site-packages/IPython/utils/shimmodule.pyr   r      s    Pr   r   c                   .    \ rS rSrSrS rS rSS jrSrg)	ShimImporter   zImport hook for a shim.

This ensures that submodule imports return the real target module,
not a clone that will confuse `is` and `isinstance` checks.
c                     Xl         X l        g Nsrcmirror)selfr   r   s      r   __init__ShimImporter.__init__   s    r   c                 L    U R                   U[        U R                  5      S -   $ )z#get the name of the mirrored moduleN)r   lenr   )r   fullnames     r   _mirror_nameShimImporter._mirror_name   s"     {{Xc$((mo666r   Nc                     UR                  U R                  S-   5      (       a0  U R                  U5      n[        R                  R                  U5      $ g N.)
startswithr   r    	importlibutil	find_spec)r   r   pathtargetmirror_names        r   r(   ShimImporter.find_spec"   sE    txx#~..++H5K>>++K88 /r   )r   r   r   )	r
   r   r   r   r   r   r    r(   r   r	   r   r   r   r      s    
7
9r   r   c                   j   ^  \ rS rSrU 4S jr\S 5       r\S 5       rS r\S 5       r	S r
S rS	rU =r$ )

ShimModule(   c                 ,  > UR                  S5      U l        UR                  SS 5      nU(       a  UR                  SS5      S   US'   [        [        U ]  " U0 UD6  U(       a1  [        R                  R                  [        X0R                  S95        g g )Nr   r   r$   r   namer   )
pop_mirrorrsplitsuperr.   r   sys	meta_pathappendr   )r   argskwargsr   	__class__s       r   r   ShimModule.__init__*   sy    zz(+jj% ZZQ/3F6Nj$($9&9MM  \\: r   c                     / $ r   r	   r   s    r   __path__ShimModule.__path__6   s    	r   c                 @    [        U R                  5      R                  $ )z&Don't produce __spec__ until requested)r   r4   __spec__r?   s    r   rC   ShimModule.__spec__:   s     T\\*333r   c                 >    [        [        U R                  5      5      $ r   )dirr   r4   r?   s    r   __dir__ShimModule.__dir__?   s    =.//r   c                     [        U R                  5      n UR                  $ ! [         a<    [	        U5       Vs/ s H  o"R                  S5      (       a  M  UPM     Os  snf sns $ f = f)z Ensure __all__ is always defined_)r   r4   __all__AttributeErrorrF   r%   )r   modr2   s      r   rK   ShimModule.__all__B   sU     DLL)	K;; 	K%(XJXT__S5IDXJJ	Ks    # A)AA	A)(A)c                 |    U R                   < SU< 3n [        U5      $ ! [         a  n[        U5      UeS nAff = fr#   )r4   r   ImportErrorrL   )r   keyr2   es       r   __getattr__ShimModule.__getattr__K   s=    ,,,	-t$$ 	- %1,	-s   
  
;6;c                 r     U R                  S5      " 5       $ ! [         a    SU R                  < S3s $ f = f)N__repr__z<ShimModule for >)rS   rL   r4   r?   s    r   rV   ShimModule.__repr__S   s>    	8##J/11 	8%dll%5Q77	8s    66)r4   )r
   r   r   r   r   propertyr@   rC   rG   rK   rS   rV   r   __classcell__)r<   s   @r   r.   r.   (   sZ    
   4 40 K K-8 8r   r.   )r   importlib.abcr&   importlib.utilr7   typesr   importstringr   Warningr   abcMetaPathFinderr   
ModuleTyper.   r	   r   r   <module>rc      sT   
   
  # %Q' Q99==// 9*18!! 18r   