23

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

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

例如,如果我在 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”分类器的父级- 它是兄弟级。如果它旨在表明我的项目在某些2.x Python 版本下工作,则包含它是有意义的,但如果它旨在暗示我的项目在所有2.x 版本下工作,则不是。

4

1 回答 1

16

从技术上讲,您不需要包含父标签。例如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 标记现在可能大致相同。

于 2012-02-12T00:47:25.453 回答