ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: "Антон Мидюков" <midyukov-anton@ya.ru>
To: devel@lists.altlinux.org
Subject: Re: [devel] Обновление numpy и matplotlib
Date: Sun, 16 Apr 2017 14:48:12 +0700
Message-ID: <99b393d5-c606-5bd0-d1a3-20736a9f050a@ya.ru> (raw)
In-Reply-To: <alpine.LFD.2.20.1704160938430.1081@imap.altlinux.org>

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 "<string>", line 1, in <module>
>>>    File "/usr/lib64/python3/site-packages/matplotlib/tri/__init__.py",
>>>  line 10, in <module>
>>>      from .tricontour import *
>>>    File 
>>> "/usr/lib64/python3/site-packages/matplotlib/tri/tricontour.py",
>>>  line 6, in <module>
>>>      from matplotlib.contour import ContourSet
>>>    File "/usr/lib64/python3/site-packages/matplotlib/contour.py", 
>>> line 23,
>>>  in <module>
>>>      import matplotlib.text as text
>>>    File "/usr/lib64/python3/site-packages/matplotlib/text.py", line 
>>> 33, in
>>>  <module>
>>>      from matplotlib.backend_bases import RendererBase
>>>    File "/usr/lib64/python3/site-packages/matplotlib/backend_bases.py",
>>>  line 63, in <module>
>>>      import matplotlib.textpath as textpath
>>>    File "/usr/lib64/python3/site-packages/matplotlib/textpath.py", 
>>> line 20,
>>>  in <module>
>>>      from matplotlib.mathtext import MathTextParser
>>>    File "/usr/lib64/python3/site-packages/matplotlib/mathtext.py", 
>>> line 23,
>>>  in <module>
>>>      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 <antohami@altlinux.org> 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

-- 
С уважением Антон Мидюков <antohami@altlinux.org>



  reply	other threads:[~2017-04-16  7:48 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-13 14:00 Антон Мидюков
2017-04-14 10:00 ` Ivan Zakharyaschev
2017-04-16  1:58   ` Антон Мидюков
2017-04-16  7:01     ` Ivan Zakharyaschev
2017-04-16  7:48       ` Антон Мидюков [this message]
2017-04-16  8:30         ` Ivan Zakharyaschev
2017-04-16  8:43         ` Ivan Zakharyaschev
2017-04-16 13:32           ` Vladimir D. Seleznev
2017-04-16 14:49             ` Ivan Zakharyaschev
2017-04-16 15:26           ` Антон Мидюков
2017-04-16 16:42             ` Yuri Sedunov
2017-04-16 16:46             ` Ivan Zakharyaschev
2017-04-16 16:50             ` Dmitry V. Levin
2017-04-17  1:35               ` Антон Мидюков
2017-04-16 16:55           ` Ivan Zakharyaschev
2017-04-17  1:39             ` Антон Мидюков
2017-04-17  8:13               ` Ivan Zakharyaschev
2017-04-17  8:14                 ` Ivan Zakharyaschev
2017-04-17  8:49                   ` Антон Мидюков
2017-04-17  8:58                     ` Ivan Zakharyaschev
2017-04-17  9:00                     ` Антон Мидюков
2017-04-17  9:12                       ` Ivan Zakharyaschev
2017-04-28 12:31                         ` Антон Мидюков
2017-04-14 15:13 ` Michael Shigorin
2017-04-14 16:32   ` Ivan Zakharyaschev
2017-04-14 17:03     ` Michael Shigorin
2017-04-14 17:23       ` Ivan Zakharyaschev
2017-04-14 20:31         ` Ivan Zakharyaschev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=99b393d5-c606-5bd0-d1a3-20736a9f050a@ya.ru \
    --to=midyukov-anton@ya.ru \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git