[devel] Q: PEP-503/566 normalized names for python?

Igor Vlasenko vlasenko на imath.kiev.ua
Вт Сен 22 20:06:01 MSK 2020


Уважаемые господа,

Обсуждал с rider@ недостаточный охват python* пакетов сервисом watch,
вспомнил, что там не хватает сервиса pypi watch, 
а написать его мешает тот факт, что у нас 
до сих пор не реализованы канонические имена 
для исходных питоньих модулей.
Так называемые "normalized names"
сначала https://www.python.org/dev/peps/pep-0503/
потом https://www.python.org/dev/peps/pep-0566/

В rpm-based дистрибутивах (SuSE,Mandriva,Fedora) уже сложился
стандарт их применения:
1) в бинарных файлах есть pythonNNdist(normalizedname) Provides.
Пример из OpenSuSE:
$ rpmquery --provides -p python3-ZEO-5.2.1-3.5.noarch.rpm | grep dist
python3.8dist(zeo) = 5.2.1
python3dist(zeo) = 5.2.1

И что хорошо, normalized names в пакет руками добавлять не нужно.
Эти имена используются в egg-info, их легко получить оттуда.
если добавить в rpm-build-pythonN pythonNdist.prov,
который будет генерировать Provides: python3dist(normalizedname).
При чем готовый код для prov можно подсмотреть из той же Fedora.

2) рекомендовать называть пакет
pythonN-module-normalizedname.
А то у нас бардак. Проект с именем PyFoo и normalized name pyfoo
может быть упакетван как
python3-module-foo
python3-module-pyfoo
python3-module-Foo
python3-module-PyFoo

еще больще вариатов для, к примеру,
Py_Foo (normalized name py-foo)

-- 

I V


Подробная информация о списке рассылки Devel