From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ya.ru; s=mail; t=1492328893; bh=8mUwPYsM/Rzzo6ncm09CB91T+R5GylmjD1HJ1wvd/qU=; h=Subject:To:References:From:Message-ID:Date:In-Reply-To; b=Y8qAmKXxT+ESn9tMFoeyilBoMkheFsPbBmtTYybOk9O6ZorqeQBz+Xfm1RIW+nLOZ 8esnk9IdsWsYLDmrKVw0spKB201fkZaRceyOGGJKlaianLbnNLJG1DnHSl8chcgnrC yTsjXPg6TMuIyO6WNu46hMf3qnHdTItGzeb9+O1w= Authentication-Results: smtp1j.mail.yandex.net; dkim=pass header.i=@ya.ru X-Yandex-Suid-Status: 1 0 To: devel@lists.altlinux.org References: From: =?UTF-8?B?0JDQvdGC0L7QvSDQnNC40LTRjtC60L7Qsg==?= Message-ID: <99b393d5-c606-5bd0-d1a3-20736a9f050a@ya.ru> Date: Sun, 16 Apr 2017 14:48:12 +0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=koi8-r; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [devel] =?utf-8?b?0J7QsdC90L7QstC70LXQvdC40LUgbnVtcHkg0LggbWF0?= =?utf-8?q?plotlib?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Apr 2017 07:48:18 -0000 Archived-At: List-Archive: List-Post: 16.04.2017 14:01, Ivan Zakharyaschev пишет: > > On Sun, 16 Apr 2017, Антон Мидюков wrote: > >> 14.04.2017 17:00, Ivan Zakharyaschev пишет: >>> Здравствуйте! >>> >>> On Thu, 13 Apr 2017, Антон Мидюков wrote: >>> >>> > В задании 181544 обновил пакеты python-module-numpy и > >>> python-module-matplotlib до актуальных версий. В пакетах были >>> косяки, > которые постарался исправить. matplotlib был не >>> доупакован, из-за этого > у меня не запускался Beremiz - свободный >>> софт для программирования ПЛК. > Ну, а раз взялся чинить заодно и >>> обновил :-) Надеюсь никому ничего этим > заданием не сломаю. Раньше >>> среды отправлять в Сизиф не буду. Так что > пока жду замечания и >>> предложения. >>> >>> Я озвучивал пожелание (в связи с проверкой, которую хочется внести и в >>> policy) -- >>> https://lists.altlinux.org/pipermail/devel/2017-April/202544.html . > >>> [builder@localhost .in]$ python3 -c 'import matplotlib.tri' >>> Traceback (most recent call last): >>> File "", line 1, in >>> File "/usr/lib64/python3/site-packages/matplotlib/tri/__init__.py", >>> line 10, in >>> from .tricontour import * >>> File >>> "/usr/lib64/python3/site-packages/matplotlib/tri/tricontour.py", >>> line 6, in >>> from matplotlib.contour import ContourSet >>> File "/usr/lib64/python3/site-packages/matplotlib/contour.py", >>> line 23, >>> in >>> import matplotlib.text as text >>> File "/usr/lib64/python3/site-packages/matplotlib/text.py", line >>> 33, in >>> >>> from matplotlib.backend_bases import RendererBase >>> File "/usr/lib64/python3/site-packages/matplotlib/backend_bases.py", >>> line 63, in >>> import matplotlib.textpath as textpath >>> File "/usr/lib64/python3/site-packages/matplotlib/textpath.py", >>> line 20, >>> in >>> from matplotlib.mathtext import MathTextParser >>> File "/usr/lib64/python3/site-packages/matplotlib/mathtext.py", >>> line 23, >>> in >>> from six import chr >>> ImportError: cannot import name 'chr' >>> [builder@localhost .in]$ >> ImportError: cannot import name 'chr' у меня воспроизвелась. В >> исходнике /usr/lib64/python3/site-packages/matplotlib/mathtext.py 23 >> строчка выглядит так: >> from six import unichr >> А в итоговом python3-module: >> from six import chr >> А виноват в этом скрипт конвертации исходников на python2 в python3 в >> спеке: >> find ./ -type f -name '*.py' -exec 2to3 -w -n '{}' + ||: >> Получается, надо либо отключать эту строку в спеке, либо вводить >> такую же строчку в спеке python-module-six. Как мне кажется, первое >> решение правильное, так как в других дистрах скрипты пакета >> matplotlib не конвертируют. > > Да, не применять больше 2to3 -- конечно, желательное решение. Скорее > всего, большинство проектов уже в upstream адаптировались к Python3 и > 2to3 ненужное насилие над их кодом. > > А применять его к six было бы совсем странно, потому что six -- это > специальный API для совместимости между разными версиями, насколько я > понял, и, возможно, для удобства программирования. Там и так всё уже > должно быть предусмотрено в коде. > >> Спасибо, что обратили на эту проблему моё внимание, проверю все >> провайдесы пакетов в задании. >> >> Но у меня есть вопрос по пакету python-module-six. Alexey Shabalin >> уже добавлял этому пакеты провайдесы. Я обнаружил, что добавил он не >> все провайдесы, которые предоставляет этот пакет, и соответственно их >> добавил. > > Да, это только пойдёт пакету и репозиторию Sisyphus на пользу. (Но > после добавления Provides нужно себя автоматически проверять на > импортируемость их таким образом, как в моём скрипте.) > >> Так вот, у меня вопрос, почему эти провайдесы у пакета не находятся? >> Я так понял, только потому, что все эти python субмодули >> предоставляются одним файлом six.py. Все эти субмодули объявляются >> внутри этого скрипта. Т.е. скрипт поиска провайдесов такого рода >> провайдесы не приспособлен находить? > > Именно так, да. При желании можно написать автоматический генератор > Provides специально для six. В каком-то смысле, это удобнее, чем > выписывать их вручную, но в это надо вложить свой труд, и неизвестно, > сколько времени это займёт. Это только приветствуется. Тут я бы ещё > обратил внимание на то, что аналогичные Provides как-то должны ещё > появляться в пакете с matplotlib, можно было бы покрыть и эти случаи > автоматическим генератором тоже: > > matplotlib.externals.six.moves > matplotlib.externals.six.moves.urllib.parse > matplotlib.externals.six.moves.urllib.request > Я не нашёл, какие пакеты зависят от этих провайдесов, потому собрал без них сегодня. И эти модули к тому же не импортируются никак, по крайней мере в новой версии. Я думаю, что они уже устарели. Если это не так, поправьте. > А ещё потом можно будет отправить на повторную сборку обновлённые > пакеты, которым их не хватило -- > https://www.altlinux.org/Python3/UNMETS#six..2A_.2814.29 . > Ужас. Получается весь этот six состоит из одних провайдесов. Мне кажется, проще переделать скрипт поиска зависимостей, чтобы зависимости типа python3(six.чего-то_там) преобразовывались в зависимость на провайдес python3(six). Или есть прецеденты, когда зависимости вида python3(six.чего-то_там) принадлежали не пакету python3-module-six? >>> Как я делал проверку: >>> >>> $ apt-repo --hsh-apt-config=/home/imz/.hasher/sisyphus/apt.conf >>> rpm [alt] file:/ALT/Sisyphus x86_64 classic >>> rpm [alt] file:/ALT/Sisyphus noarch classic >>> rpm http://git.altlinux.org repo/181255/x86_64 task >>> $ apt-repo --hsh-apt-config=/home/imz/.hasher/sisyphus/apt.conf test >>> 181544 rpm-build-python3 python3-module-matplotlib >>> >>> $ hsh-shell --mount=/proc,/dev/pts >>> [builder@localhost .in]$ rpm -q python3-module-matplotlib --lastchange >>> * Wed Apr 12 2017 Anton Midyukov 2.0.0-alt1 >>> - New version 2.0.0 >>> [builder@localhost .in]$ >>> /usr/lib/rpm/check-python3-provs-importable.sh >>> python3-module-matplotlib; echo $? >>> backend_agg >>> backend_cairo >>> matplotlib.externals.six.moves >>> matplotlib.externals.six.moves.urllib.parse >>> matplotlib.externals.six.moves.urllib.request >>> matplotlib.axes >>> matplotlib.axes._axes >>> matplotlib.axes._base >>> matplotlib.axes._subplots >>> matplotlib.axis >>> matplotlib.backend_bases >>> matplotlib.backends.backend_agg >>> matplotlib.backends.backend_cairo >>> matplotlib.backends.backend_mixed >>> matplotlib.backends.backend_nbagg >>> matplotlib.backends.backend_pdf >>> matplotlib.backends.backend_pgf >>> matplotlib.backends.backend_ps >>> matplotlib.backends.backend_svg >>> matplotlib.backends.backend_template >>> matplotlib.backends.backend_webagg >>> matplotlib.backends.backend_webagg_core >>> matplotlib.colorbar >>> matplotlib.contour >>> matplotlib.figure >>> matplotlib.legend >>> matplotlib.mathtext >>> matplotlib.offsetbox >>> matplotlib.patheffects >>> matplotlib.projections >>> matplotlib.projections.geo >>> matplotlib.projections.polar >>> matplotlib.pylab >>> matplotlib.pyplot >>> matplotlib.quiver >>> matplotlib.table >>> matplotlib.text >>> matplotlib.textpath >>> matplotlib.tri >>> matplotlib.tri.triangulation >>> matplotlib.tri.tricontour >>> matplotlib.tri.trifinder >>> matplotlib.tri.triinterpolate >>> matplotlib.tri.tripcolor >>> matplotlib.tri.triplot >>> matplotlib.tri.trirefine >>> matplotlib.tri.tritools >>> matplotlib.type1font >>> pylab >>> 123 >>> [builder@localhost .in]$ > > > > _______________________________________________ > Devel mailing list > Devel@lists.altlinux.org > https://lists.altlinux.org/mailman/listinfo/devel -- С уважением Антон Мидюков