我怎样才能使这个 long_description 和 README 相差几句话?

Posted

技术标签:

【中文标题】我怎样才能使这个 long_description 和 README 相差几句话?【英文标题】:How can I make this long_description and README differ by a couple of sentences? 【发布时间】:2011-01-09 05:56:47 【问题描述】:

对于我的一个包,我有一个 README.rst 文件,它被读取到 setup.py 的长描述中,如下所示:

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

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

这样我每次提交时都可以在我的github page 和pypi page 上每次我python setup.py register 时显示自述文件。只有一个问题。我希望 github 页面上写出类似“本文档反映了 envbuilder 的预发布版本。有关最新版本,请参阅 pypi。”

我可以将这些行放在 README.rst 中,然后在 python setup.py register 之前删除它们,但我知道在推送到 pypi 之前,我有时会忘记删除这些句子

我正在想办法实现自动化,这样我就不用担心了。谁有想法?有什么我可以做的 setuptools/distutils 魔术吗?

【问题讨论】:

【参考方案1】:

您可以只使用带有“在此处拆分”之类的文本的 ReST 注释,然后在 setup.py 中对其进行拆分。 Ian Bicking 在 vi​​rtualenv 中使用 index.txt 和 setup.py 进行此操作。

【讨论】:

这就是我所做的。谢谢!【参考方案2】:

另一种选择是通过添加适用于两种环境的段落来完全回避这个问题:“最新的不稳定代码在 github 上。最新的稳定套件在 pypi 上。”

毕竟,为什么假设 pypi 人不想被指向 github?这将对双方都更有帮助,并简化您的 setup.py。

【讨论】:

两个版本都有安装说明。不想被指向 github 的 pypi 人与其说是关于某人做 easy_install envbuilder,然后查看 github 上的文档(这将是针对开发版本)并想知道为什么它不起作用。也就是说,我想我可以更清楚地了解稳定和不稳定版本的位置。【参考方案3】:

你总是可以这样做的:

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

但是你必须让GITHUB_ALERT 字符串与README 的实际措辞保持同步。改用正则表达式(例如,匹配以 Github 用户注意事项: 或其他内容开头的行)可能会给您更多的灵活性。

【讨论】:

没想到那样做。我试试看。

以上是关于我怎样才能使这个 long_description 和 README 相差几句话?的主要内容,如果未能解决你的问题,请参考以下文章

我怎样才能使这个动画更流畅?

我怎样才能使这个二进制搜索代码更有效?

我怎样才能使这个工作与 UIScrollView?

使用来自其他类的公共静态 HashTable 的同步方法。我怎样才能使这个方法线程安全?

我怎样才能使这个 WHERE NOT EXISTS 查询更有效

我怎样才能使这个 JSON 数据在 API 上可用?