2012-02-11 26 views
17

Danh sách phân loại Trove là tại: http://pypi.python.org/pypi?:action=list_classifiersTôi sử dụng bộ phân loại Python Trove nào?

Khi tạo gói PyPI, tôi không chắc liệu tôi có cần thêm 'cha mẹ' vào các bộ phân loại mà rõ ràng áp dụng cho dự án của tôi hay không.

Ví dụ, nếu tôi đã thử nghiệm dự án của tôi trên Windows XP, sau đó những điều sau đây nên tôi bao gồm:

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

Tôi chỉ thực sự được thử nghiệm trên Window 7, hoặc đôi khi Windows XP. Nhưng không phải trong số này là các tùy chọn trong danh sách trình phân loại, vì vậy tôi chọn "NT/2000" làm kết quả đóng, và bao gồm các bộ phân loại 'cha mẹ'. Đây có phải là điều đúng để làm gì?

Tương tự như vậy, nếu dự án của tôi được thử nghiệm chịu Python 2.7, sau đó tôi rõ ràng bao gồm các phân loại:

'Programming Language :: Python :: 2.7', 

Tôi cũng cần phải bao gồm:

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

Đầu tiên là một 'mẹ nghiêm ngặt 'nếu phân loại ban đầu, vì vậy cho dù bao gồm điều này có lẽ là giống như có bao gồm các "Windows" cha mẹ ở trên.

Lưu ý, tuy nhiên, "Python :: 2" không phải là cấp độ gốc của phân loại "2,7" - đó là anh chị em. Bao gồm nó sẽ có ý nghĩa nếu nó được dự định để chỉ ra rằng dự án của tôi hoạt động theo một số 2.x bản phát hành Python, nhưng không phải là nó có ý nghĩa là dự án của tôi hoạt động dưới tất cả 2.x bản phát hành.

Trả lời

13

Về mặt kỹ thuật, bạn không cần phải bao gồm thẻ gốc. Ví dụ lxml liệt kê các thẻ (nhưng không ai trong số các bậc cha mẹ của họ):

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

Và duyệt vào danh sách các gói được phân loại Topic :: Text Processing :: Markup, lxml được bao gồm.

Cho dù bao gồm thẻ gốc có làm cho người dùng rõ ràng hơn hay không, tôi không chắc chắn.

tôi sẽ mất Programming Language :: Python :: 2 nghĩa một số phiên bản Python 2.x, không tất cả Python 2.x - và có vẻ như nhiều dự án sử dụng nó như thế này (ví dụ lxml một lần nữa).

Đối với hệ điều hành, tôi muốn sử dụng nó để xác định gói nào là được mong đợi để hoạt động, không chỉ các môi trường bạn có thể thử nghiệm. Vì vậy, tôi chỉ sử dụng một trình phân loại Windows cho một công cụ cụ thể của Windows không thể hoạt động trên các hệ điều hành khác. Nó không cấu thành một hợp đồng hỗ trợ.

Thẻ Windows và Windows NT/2000 có thể tương đương với bây giờ.

+2

Làm cho tinh thần và tương ứng với trình duyệt của riêng tôi xung quanh các dự án hiện có kể từ khi đặt câu hỏi. Các nếp nhăn duy nhất là "Python :: 2" và "Python :: 3" phân loại, mà không phải là cha mẹ nghiêm ngặt của "Python :: 2,7" và "Python :: 3,2" mục (họ là anh chị em) và như vậy có thể yêu cầu xác định rõ ràng nếu bạn muốn dự án của bạn hiển thị trong các tìm kiếm cho "Python 2" hoặc "Python 3" –

+1

Hmm, tôi chưa bao giờ nhận thấy nếp nhăn đó trước đây.Có, bạn nói đúng, tôi sẽ đặt "Python :: 2" và/hoặc "Python :: 3" ngoài các bộ phân loại cụ thể hơn. –

Các vấn đề liên quan