editable_wheel.pyc
1 o 2 ���c�y � 3 @ s� d Z ddlZddlZddlZddlZddlZddlZddlZddlm Z ddl 4 mZ ddlm Z ddlmZ ddlmZ ddlmZ dd lmZmZmZmZmZmZmZmZmZmZ dd 5 lm Z m!Z!m"Z"m#Z# ddl$m%Z& ddl'm(Z( dd l)m*Z* er�ddl+m,Z, ej-dkr�ddlm.Z. ner�ddl/m.Z. nddl0m1Z. ee2ef Z3ede3d�Z4e�5e6�Z7G dd� de�Z8dZ9dZ:G dd� de �Z;G dd� de.�Z<G dd� d�Z=G dd� de=�Z>G d d!� d!�Z?d"ed#e@fd$d%�ZAd&ee2 d'ee2e2f d(ed#e@fd)d*�ZBd+d,� ZCd-e*d#ee2 fd.d/�ZDd-e*d#ee2 fd0d1�ZEd&ee2 d'ee2e2f d2e3d#ee2e2f fd3d4�ZFd5e3d#e2fd6d7�ZGd8ee2e2f d#ee2 fd9d:�ZHd&ee2 d8ee2e2f d#eee2ee2 f fd;d<�ZId8ee2e2f d#ee2e2f fd=d>�ZJd?e2d@e2dAe2dBe2d#e@f 6 dCdD�ZKdEe3d#e2fdFdG�ZLdHe4d#e4fdIdJ�ZMdKe2d#e2fdLdM�ZNG dNdO� dOe#jO�ZPdPZQdKe2dQee2e2f dRee2ee2 f d#e2fdSdT�ZRG dUdV� dVeS�ZTG dWdX� dXe"jU�ZVdS )Ya� 7 Create a wheel that, when installed, will make the source package 'editable' 8 (add it to the interpreter's path, including metadata) per PEP 660. Replaces 9 'setup.py develop'. 10 11 .. note:: 12 One of the mechanisms briefly mentioned in PEP 660 to implement editable installs is 13 to create a separated directory inside ``build`` and use a .pth file to point to that 14 directory. In the context of this file such directory is referred as 15 *auxiliary build directory* or ``auxiliary_dir``. 16 � N)�suppress)�Enum)�cleandoc)�chain)�Path)�TemporaryDirectory) 17 � TYPE_CHECKING�Dict�Iterable�Iterator�List�Mapping�Optional�Tuple�TypeVar�Union)�Command�SetuptoolsDeprecationWarning�errors� 18 namespaces)�build_py��find_package_path)�Distribution�� WheelFile)� � )�Protocol)�ABC�_P)�boundc @ s6 e Zd ZdZdZdZdZedee dd fdd��Z 19 d S ) 20 � _EditableModea 21 Possible editable installation modes: 22 `lenient` (new files automatically added to the package - DEFAULT); 23 `strict` (requires a new installation when files are added/removed); or 24 `compat` (attempts to emulate `python setup.py develop` - DEPRECATED). 25 �strict�lenient�compat�mode�returnc C sN |st jS |�� }|t jvrt�d|�d���|dkr#d}t�|t� t | S )NzInvalid editable mode: z. Try: 'strict'.�COMPATax 26 The 'compat' editable mode is transitional and will be removed 27 in future versions of `setuptools`. 28 Please adapt your code accordingly to use either the 'strict' or the 29 'lenient' modes. 30 31 For more information, please check: 32 https://setuptools.pypa.io/en/latest/userguide/development_mode.html 33 ) r"