2010-01-25 7 views
7

Para un paquete mío, tengo un archivo README.rst que se lee en la descripción larga de la setup.py así:¿Cómo puedo hacer que long_description y README difieran por un par de oraciones?

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

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

Esta manera de que pueda tener el archivo README aparecerá en mi github page cada Hora en que confirmo y en el pypi page cada vez que python setup.py register. Solo hay un problema. Me gustaría que la página de github dijera algo como "Este documento refleja una versión preliminar de Envbuilder. Para la versión más reciente, vea pypi".

Podría simplemente poner esas líneas en README.rst y borrarlas antes de I python setup.py register, pero sé que va a haber un momento en que me olvide de eliminar las oraciones antes de presionar a pypi.

Estoy tratando de pensar en la mejor manera de automatizar esto para no tener que preocuparme por ello. ¿Alguien tiene alguna idea? ¿Hay alguna magia de setuptools/distutils que pueda hacer?

Respuesta

8

Puede usar un comentario ReST con un texto como "dividir aquí", y luego dividirlo en su setup.py. Ian Bicking lo hace en virtualenv con index.txt y setup.py.

+0

Esto terminó siendo lo que hice. ¡Gracias! –

2

Siempre se puede hacer esto:

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, 
    .... 
    ) 

Pero entonces usted tendría que mantener esa GITHUB_ALERT cadena en sincronía con el tenor literal de la README. Usar una expresión regular en su lugar (por ejemplo, para hacer coincidir una línea que comience con Nota para los usuarios de Github: o algo similar) podría darle un poco más de flexibilidad.

+0

No había pensado hacerlo de esa manera. Voy a tratar de salir. –

5

Otra opción es dejar de lado el problema por completo agregando un párrafo que funcione en ambos entornos: "El último código inestable está en github. Los últimos kits estables están en pypi".

Después de todo, ¿por qué suponer que las personas pypi no quieren ser apuntadas a github? Esto sería más útil para ambas audiencias y simplifica su configuración .py.

+0

Hay instrucciones para instalar ambas versiones. No se trata tanto de gente pypi que no quiere apuntar a github como de alguien que hace un 'envodificador de instalación fácil', luego mirando la documentación en github (que sería para la versión de desarrollo) y preguntándose por qué no está funcionando. Dicho eso, supongo que * puedo * ser un poco más claro sobre dónde están las versiones estables e inestables. –

Cuestiones relacionadas