2010-01-25 23 views
7

Pour un paquet de moi, je dispose d'un fichier README.rst qui est lu dans longue description de la setup.py comme ceci:Comment faire pour que cette description longue et README diffèrent de quelques phrases?

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

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

De cette façon que je peux avoir le fichier README apparaissent sur mon github page tous les temps je commet et sur le pypi page chaque fois que je python setup.py register. Il n'y a qu'un problème. Je voudrais que la page github dise quelque chose comme "Ce document reflète une version préliminaire d'envbuilder.Pour la version la plus récente, voir pypi."

Je pourrais simplement mettre ces lignes dans README.rst et les supprimer avant I python setup.py register, mais je sais qu'il va y avoir un moment où j'oublie de supprimer les phrases avant de pousser vers pypi. J'essaie de penser à la meilleure façon d'automatiser cela, donc je n'ai pas à m'inquiéter à ce sujet. Quelqu'un a des idées? Y at-il une magie setuptools/distutils que je peux faire?

Répondre

8

Vous pouvez simplement utiliser un commentaire ReST avec du texte comme "diviser ici", puis diviser sur cela dans votre fichier setup.py. Ian Bicking fait cela dans virtualenv avec index.txt et setup.py.

+0

Cela a fini par être ce que j'ai fait. Merci! –

2

Vous pouvez toujours le faire:

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

Mais alors vous devez garder cette chaîne GITHUB_ALERT en synchronisation avec le libellé de la README. L'utilisation d'une expression régulière à la place (pour, par exemple, correspondre à une ligne commençant par Note pour les utilisateurs de Github: ou autre) pourrait vous donner un peu plus de flexibilité.

+0

N'avait pas pensé à le faire de cette façon. Je vais l'essayer. –

5

Une autre option consiste à contourner complètement le problème en ajoutant un paragraphe qui fonctionne dans les deux environnements: "Le dernier code instable est sur github Les derniers kits stables sont sur pypi." Après tout, pourquoi supposer que les gens de pypi ne veulent pas être pointés vers github? Cela serait plus utile aux deux audiences et simplifierait votre fichier setup.py.

+0

Il existe des instructions pour l'installation des deux versions. Il ne s'agit pas tant des personnes pypi qui ne veulent pas être pointées vers github que de quelqu'un qui fait un 'easy_install envbuilder', puis de la documentation sur github (qui serait pour la version de développement) et se demandant pourquoi ça ne marche pas. Cela dit, je suppose que je peux être un peu plus clair sur les versions stables et instables. –