Format: application/x-python-code
⬇ Download File (4.4 KB)
   1  o
   2  
   3  ��h��@s�dZddlZddlZddlZddlZddlZddlmZddlm	Z	m
   4  Z
   5  mZdd�Zdd�Z
   6  hd	�Zhd
   7  �Zhd�Zdd
   8  hZe
   9  Gdd�de	��ZdS)z5Implementation of packaging-related magic functions.
  10  �N)�Path)�Magics�magics_class�
  11  line_magiccst����fdd��}|S)Ncs(ttjdd���s
  12  td���|i|��S)z>Return True if the current Python executable is in a conda env�
  13  conda-meta�historyzbThe python kernel does not appear to be a conda environment.  Please use ``%pip install`` instead.)r�sys�prefix�exists�
  14  ValueError)�args�kwargs��func��Sc:\Users\shubh\Videos\agent\nova\Lib\site-packages\IPython/core/magics/packaging.py�wrappers
  15  �z%is_conda_environment.<locals>.wrapper)�	functools�wraps)rrrrr�is_conda_environments
  16  rcCs�d}d|��vr
  17  d}|tjvr ttj|�}|��r t|���Sttj�j	|}|��r0t|�Sttj
  18  dd�jdd�}tj
  19  d|�d	�|tjd
  20  �}|rP|��dS|S)z�Find the path to the given executable
  21  
  22      Parameters
  23      ----------
  24  
  25      executable: string
  26          Value should be: conda, mamba or micromamba
  27      Z	CONDA_EXE�mambaZ	MAMBA_EXErrzutf-8)�encodingz^#\s*cmd:\s*(?P<command>.*z)\s[create|install])�flags�command)�lower�os�environr�is_file�str�resolver�
  28  executable�parentr	�	read_text�re�search�	MULTILINE�	groupdict)rZbase_executabler r�matchrrr�_get_conda_like_executable$s&
  29  
  30  �r(>�update�upgrade�remove�	uninstall�list�install>r)r*r+r,r.>z-pz--name�--prefixz-nz-yz--yc@s`eZdZdZedd��Zdd�Zeedd���Zeedd	���Z	eed
  31  d���Z
  32  edd
  33  ��ZdS)�PackagingMagicsz*Magics related to packaging & installationcC�Ntj}tjdkrd|d}nt�|�}|j�d�|dd|g��td�dS)zmRun the pip package manager within the current kernel.
  34  
  35          Usage:
  36            %pip install [pkgs]
  37          �win32�"� �-m�pip�ANote: you may need to restart the kernel to use updated packages.N�	rr �platform�shlex�quote�shell�system�join�print��self�line�pythonrrrr6\�
  38  
  39  zPackagingMagics.pipcCs�t�|�}t|�dkr|dnd}t|�dkr|dd�ndg}g}t|jdd�du}|tv}t|��t�}|rA|rA|sA|�	d�|t
  40  v}	t|��t�}
  41  |	rX|
  42  sX|�dt
  43  jg�|j�d�||g||��td�dS)	Nr��Zkernelz--yesr/r4zB
  44  Note: you may need to restart the kernel to use updated packages.)r:�split�len�getattrr<�CONDA_COMMANDS_REQUIRING_YES�set�intersection�CONDA_YES_FLAGS�append�CONDA_COMMANDS_REQUIRING_PREFIX�CONDA_ENV_FLAGS�extendrr	r=r>r?)rA�cmdrBrr�
  45  extra_argsZstdin_disabledZ	needs_yesZhas_yesZneeds_prefixZ
  46  has_prefixrrr�_run_commandms
  47  
  48  zPackagingMagics._run_commandcC�td�}|�||�dS)zqRun the conda package manager within the current kernel.
  49  
  50          Usage:
  51            %conda install [pkgs]
  52          �condaN�r(rT)rArBrVrrrrV��zPackagingMagics.condacCrU)zqRun the mamba package manager within the current kernel.
  53  
  54          Usage:
  55            %mamba install [pkgs]
  56          rNrW)rArBrrrrr�rXzPackagingMagics.mambacCrU)zvRun the conda package manager within the current kernel.
  57  
  58          Usage:
  59            %micromamba install [pkgs]
  60          �
  61  micromambaNrW)rArBrYrrrrY�rXzPackagingMagics.micromambacCr1)zoRun the uv package manager within the current kernel.
  62  
  63          Usage:
  64            %uv pip install [pkgs]
  65          r2r3r4r5�uvr7Nr8r@rrrrZ�rDzPackagingMagics.uvN)�__name__�
  66  __module__�__qualname__�__doc__rr6rTrrVrrYrZrrrrr0Xs 
  67  			r0)r^rrr#r:r�pathlibrZIPython.core.magicrrrrr(rOrJrPrMr0rrrr�<module>s 
  68  *