Às vezes, é útil adicionar um comando personalizado ao nosso setup.py
arquivo – por exemplo, para tornar possível clonar o repositório de um projeto e executar python setup.py bootstrap
e ter nosso ambiente de desenvolvimento configurado.
Para adicionar um comando personalizado, simplesmente precisamos preparar uma setuptools.Command
subclasse.
Ele tem um user_options
atributo que precisamos definir (o setuptools requer) e também alguns métodos abstratos que precisamos implementar (ou pelo menos stub): initialize_options
e finalize_options
. Finalmente, podemos implementar o run
método.
Aqui está um exemplo simples:
from setuptools import Command
from setuptools import find_packages
from setuptools import setup
class BootstrapEnvironmentCommand(Command):
user_options = []
def initialize_options(self):
"""Abstract method that is required to be overwritten"""
def finalize_options(self):
"""Abstract method that is required to be overwritten"""
def run(self):
print(" => bootstrapping development environment ...")
setup(
name='frogress',
packages=find_packages(),
include_package_data=True,
install_requires=[],
cmdclass={'bootstrap': BootstrapEnvironmentCommand},
)
Agora é possível executar python setup.py bootstrap
e, embora não faça nada extravagante (apenas imprime uma linha, conforme implementado no run
método), agora temos um bom ponto de partida para torná-lo realmente útil.