55 lines
1.6 KiB
Python
55 lines
1.6 KiB
Python
import site
|
|
import subprocess
|
|
import sys
|
|
|
|
from setuptools import Command
|
|
from setuptools.warnings import SetuptoolsDeprecationWarning
|
|
|
|
|
|
class develop(Command):
|
|
"""Set up package for development"""
|
|
|
|
user_options = [
|
|
("install-dir=", "d", "install package to DIR"),
|
|
('no-deps', 'N', "don't install dependencies"),
|
|
('user', None, f"install in user site-package '{site.USER_SITE}'"),
|
|
('prefix=', None, "installation prefix"),
|
|
("index-url=", "i", "base URL of Python Package Index"),
|
|
]
|
|
boolean_options = [
|
|
'no-deps',
|
|
'user',
|
|
]
|
|
|
|
install_dir = None
|
|
no_deps = False
|
|
user = False
|
|
prefix = None
|
|
index_url = None
|
|
|
|
def run(self):
|
|
cmd = (
|
|
[sys.executable, '-m', 'pip', 'install', '-e', '.', '--use-pep517']
|
|
+ ['--target', self.install_dir] * bool(self.install_dir)
|
|
+ ['--no-deps'] * self.no_deps
|
|
+ ['--user'] * self.user
|
|
+ ['--prefix', self.prefix] * bool(self.prefix)
|
|
+ ['--index-url', self.index_url] * bool(self.index_url)
|
|
)
|
|
subprocess.check_call(cmd)
|
|
|
|
def initialize_options(self):
|
|
DevelopDeprecationWarning.emit()
|
|
|
|
def finalize_options(self) -> None:
|
|
pass
|
|
|
|
|
|
class DevelopDeprecationWarning(SetuptoolsDeprecationWarning):
|
|
_SUMMARY = "develop command is deprecated."
|
|
_DETAILS = """
|
|
Please avoid running ``setup.py`` and ``develop``.
|
|
Instead, use standards-based tools like pip or uv.
|
|
"""
|
|
_SEE_URL = "https://github.com/pypa/setuptools/issues/917"
|
|
_DUE_DATE = 2025, 10, 31
|