2010-01-25 8 views
7

Per un pacchetto di mio, Ho un file README.rst che viene letto nella lunga descrizione del setup.py in questo modo:Come posso fare in modo che questa descrizione lunga e README differiscano di un paio di frasi?

readme = open('README.rst', 'r') 
README_TEXT = readme.read() 
readme.close() 

setup(
    ... 
    long_description = README_TEXT, 
    .... 
    ) 

questo modo che io possa avere il file README mostrano sul mio github page ogni tempo che commetto e su pypi page ogni volta che I python setup.py register. C'è solo un problema. Mi piacerebbe che la pagina di github dicesse qualcosa come "Questo documento riflette una versione preliminare di envbuilder .Per la versione più recente, guarda pypi."

Potrei semplicemente mettere quelle righe in README.rst e cancellarle prima di I python setup.py register, ma so che ci sarà un tempo in cui dimenticherò di rimuovere le frasi prima di premere su pypi.

Sto cercando di pensare al modo migliore per automatizzare questo, quindi non devo preoccuparmi di questo. Qualcuno ha qualche idea? C'è qualche magia di setuptools/distutils che posso fare?

risposta

8

È possibile utilizzare un commento di ripetizione con un testo come "dividi qui" e quindi suddividerlo in setup.py. Ian Bicking lo fa in virtualenv con index.txt e setup.py.

+0

Questo è finito per essere quello che ho fatto. Grazie! –

2

Si può sempre fare questo:

GITHUB_ALERT = 'This document reflects a pre-release version...' 
readme = open('README.rst', 'r') 
README_TEXT = readme.read().replace(GITHUB_ALERT, '') 
readme.close() 

setup(
    ... 
    long_description = README_TEXT, 
    .... 
    ) 

Ma allora si sarebbe dovuto tenere quella stringa GITHUB_ALERT in sincronia con la formulazione stessa del README. Utilizzare invece un'espressione regolare (per dire, abbinare una riga che inizia con Nota per utenti Github: o qualcosa) potrebbe darti un po 'più di flessibilità.

+0

Non avevo pensato di farlo in quel modo. Ci proverò. –

5

Un'altra opzione è quella di risolvere completamente il problema aggiungendo un paragrafo che funziona in entrambi gli ambienti: "L'ultimo codice instabile è su github. Gli ultimi kit stabili sono su pypi."

Dopo tutto, perché presumere che le persone pypi non vogliono essere puntate su github? Ciò sarebbe più utile per entrambi i segmenti di pubblico e semplifica il tuo setup.py.

+0

Ci sono istruzioni per l'installazione di entrambe le versioni. Non è tanto per le persone pypi che non vogliono essere puntate su github quanto su qualcuno che fa un 'easy_install envbuilder', quindi guarda la documentazione su github (che sarebbe per la versione di sviluppo) e si chiede perché non funzioni. Detto questo, suppongo che * possa * essere un po 'più chiaro su dove sono le versioni stabili e instabili. –

Problemi correlati