Какова цель версии в "Языке программирования" классификатора setuptools? - PullRequest
0 голосов
/ 18 апреля 2019

Предположим, что приложение Python зависит от модуля, и модуль объявляет только "Язык программирования :: Python :: 3.5" в метаданных классификатора в своем файле setup.py, может ли приложение объявить другую версию интерпретатора Python (например, "Программирование" Language :: Python :: 3.7 "в своем собственном setup.py?

Я осознаю этот вопрос при упаковке собственного приложения Python3, для которого я хочу поддерживать все последние выпуски Python3. Приложение зависит от модуля wcwidth (https://pypi.org/project/wcwidth/). Модуль Wcwidth перечисляет только "Python :: 3.4" и "Python :: 3.5" в своей поддержке языка программирования. Поэтому мне интересно, что если я запустил "pip install" при использовании Python3 .7 интерпретатор? Я, хотя и потерпел бы неудачу, но оказалось, что установка работала нормально, потому что pip загрузил исходный код wcwidth и скомпилировал его на моем компьютере.

Так что кажется, что pip вообще не проверяет классификаторы при установке пакета?

1 Ответ

0 голосов
/ 18 апреля 2019

Классификаторы Trove - это метаданные, написанные автором для пользователей, а не для таких инструментов, как pip. Вы можете получить некоторую полезную информацию, особенно с дополнительными исследованиями.

Например, если проект объявляет совместимость с Python 2.4, вы можете быть уверены, что он никогда не будет поддерживать Python 3.

Если проект объявляет совместимость с Python 3.4 и 3.5, но не 3.7, вы можете ожидать, что код будет совместим с 3.7, но все же есть вероятность, что это не так.

Также вам следует провести расследование. Если проект не обновлялся в течение длительного периода, вы должны начать беспокоиться о том, что проект больше не поддерживается, и вам лучше начать искать более современную замену.

По вашему вопросу проект кажется живым - последний коммит был в ноябре. Это означает, что отсутствие Python 3.5 и 3.6 в setup.py вероятно просто упущение . Я рекомендую отправить запрос на исправление ошибок, исправляющий это.

Если PR не будет принят, скажем, через полгода, то проект прекращается. Вы все еще можете использовать заброшенный проект, если он работает на вас. Или вы можете найти замену. Или, если вам действительно нужен проект, вы можете его разветвить, обновить и продолжить поддерживать.

...