【问题标题】:Which Python Trove classifiers do I use?我使用哪些 Python Trove 分类器?
【发布时间】:2012-03-03 22:30:31
【问题描述】:

Trove 分类器列表位于:http://pypi.python.org/pypi?:action=list_classifiers

当我创建 PyPI 包时,我不确定是否需要将“父母”包含到显然适用于我的项目的分类器中。

例如,如果我在 Windows XP 上测试了我的项目,那么我应该包括以下哪一项:

'Operating System :: Microsoft',
'Operating System :: Microsoft :: Windows',
'Operating System :: Microsoft :: Windows :: Windows NT/2000',

我只在 Window 7 或有时是 Windows XP 上进行了实际测试。但这些都不是分类器列表中的选项,所以我选择“NT/2000”作为关闭匹配,并包括“父”分类器。这是正确的做法吗?

同样,如果我的项目是在 Python 2.7 下测试的,那么我显然包含了分类器:

'Programming Language :: Python :: 2.7',

我是否还需要包括:

'Programming Language :: Python',
'Programming Language :: Python :: 2',

如果原始分类器第一个是严格的'parent',那么是否包含这个想必与是否包含上面的“Windows”双亲是一样的。

但是请注意,“Python :: 2”不是“2.7”分类器的父类 - 它是兄弟。如果它旨在表明我的项目在 some 2.x Python 版本下运行,则包含它是有意义的,但如果它旨在暗示我的项目在 all 下运行则不是2.x 版本。

【问题讨论】:

    标签: python setup.py pypi


    【解决方案1】:

    从技术上讲,您不需要包含父标记。例如lxml 列出了这些标签(但没有列出它们的父母):

    Topic :: Text Processing :: Markup :: HTML
    Topic :: Text Processing :: Markup :: XML 
    

    并浏览到分类为Topic :: Text Processing :: Markup的包列表,包括lxml。

    我不确定是否包含父标签会让用户更清楚。

    我认为Programming Language :: Python :: 2 是指一些 Python 2.x 版本,而不是所有 Python 2.x - 似乎很多项目都这样使用它(例如lxml 再次)。

    至于操作系统,我会用它来定义包预期可以在哪些环境下工作,而不仅仅是您能够测试的环境。因此,我只会将 Windows 分类器用于无法在其他操作系统上运行的特定于 Windows 的工具。它不构成支持合同。

    Windows 和 Windows NT/2000 标记现在可能差不多。

    【讨论】:

    • 有道理,并且与我提出问题后对现有项目的浏览一致。唯一的问题是“Python :: 2”和“Python :: 3”分类器,它们并不是“Python :: 2.7”和“Python :: 3.2”条目的严格父级(它们是兄弟),所以可能需要明确指定您是否希望您的项目出现在“Python 2”或“Python 3”的搜索中
    • 嗯,我以前从没注意到那个皱纹。是的,你是对的,除了更具体的分类器之外,我还会设置“Python :: 2”和/或“Python :: 3”。
    猜你喜欢
    • 2012-02-24
    • 2020-05-27
    • 2018-07-27
    • 1970-01-01
    • 2020-12-15
    • 2014-01-16
    • 2013-11-02
    • 2013-08-22
    • 1970-01-01
    相关资源
    最近更新 更多