Предоставление пользовательского класса команд для setup.py в отдельно установленном пакете

Я пытаюсь создать пакет Python, который реализует пользовательский класс команд для setuptools.setup() для использования в сценариях setup.py других, несвязанных пакетов. В идеале я хотел бы иметь возможность включить этот пакет в аргумент setup_requires для setup() и заставить пользовательский класс команд вступить в силу до того, как будут выполнены остальные действия по настройке. Предоставляет ли setup() какой-то хук для поддержки этого варианта использования? Если нет, то как я могу свести к минимуму количество шаблонов, которые должны появляться в сценарии setup.py при использовании моего пакета, при этом гарантируя, что мой пакет будет доступен во время установки? Это для среды автоматизации, которую я создаю, поэтому необходимо свести к минимуму влияние на код клиентских пакетов и любую зависимость от действий конечного пользователя.

Вот пример кода...

В my_custom_setup_package:

from setuptools.command.install import install as _install

class install(_install):

    def run(self):
        result = super().run()

        # If the installed package has the required hooks:
            # Perform some custom post-installation actions

В setup.py для client_package:

from setuptools import setup

# No cmdclass argument is given, because I can't count on
# my_custom_setup_package to be installed yet.
setup(
    ...
    setup_requires=['my_custom_setup_package'],
    ...
)

При запуске python setup.py install для client_package действия выборочной установки, определенные в my_custom_setup_package, должны выполняться сразу после установки, даже если my_custom_setup_package не был установлен до команды был казнен.

Любая помощь приветствуется, даже если она укажет мне совершенно новое направление.


person hosford42    schedule 31.05.2016    source источник
comment
Сразу после установки? install_requires не указывает, что необходимо установить до или я что-то путаю?   -  person Tadhg McDonald-Jensen    schedule 31.05.2016
comment
Пакет, который я создаю, должен быть установлен с помощью гипотетического другого скрипта setup() до установки, как требование установки, чтобы можно было выполнить действия после-установки. автоматически.   -  person hosford42    schedule 31.05.2016
comment
К вашему сведению, я по ошибке написал install_requires в своем примере кода, когда имел в виду setup_requires. Я отредактировал вопрос соответственно.   -  person hosford42    schedule 31.05.2016