Sfondo
Quindi sto sviluppando un progetto, e sto scrivendo script setup.py per esso, usando distutils. Sto usando CPython3.3.
Uso alcune librerie con distribuzioni non valide in PyPI, quindi devono essere installate clonando il repository e eseguendo setup.py manualmente (ho provato molte cose, entrambe le librerie mi hanno detto che ho solo bisogno di usare git invece di PyPI , quindi perché ho bisogno di farlo in questo modo non è una domanda qui).
Quindi, ho usato qualche magia di sottoprocesso, e ho creato uno script che cloni i repository e che esegue "setup.py install" al loro interno. Esegue anche app setup.py, dopo aver verificato che le librerie danneggiate siano già installate in altro modo. È facile da convertire in diversi metodi e sarà migliorato in pochi istanti. Al momento la mia app può essere installata eseguendo questo script (l'ho chiamato build.py).
Domanda
Come faccio a creare un hook nel mio script setup.py (per la mia app) che eseguirà metodi che installano cose da github quando (e SOLO quando) l'argomento "install" è stato passato a apps setup.py?
Quello che ho provato
Ho provato frasi googling come "come faccio ad agganciare setup.py" - più o meno generico, ho provato diverse domande. Non è stato trovato nulla.
Inoltre, ho cercato di analizzare la fonte di distutils, per trovare un modo, ma questo non mi ha portato da nessuna parte.
Non l'ho ancora provato, ma so che è fattibile - all'inizio dello script setup.py che verifica se condizioni come "è eseguito come script principale" e "'installano' la parola chiave è in sys.argv" sono vero, e se è così - eseguendo i miei metodi relativi a git, ma questo è brutto da morire.