Python/Refactoring: различия между версиями

Материал из ALT Linux Wiki
(→‎python-module-numpy: : циклическая зависимость в NumPy и matplotlib)
Строка 45: Строка 45:
  работать (помимо этого, этот пакет зависит от python-module-matplotlib и
  работать (помимо этого, этот пакет зависит от python-module-matplotlib и
  python-module-scipy).
  python-module-scipy).
Кстати, не пролучится оторвать python-module-matplotlib от BuildRequires в python-module-numpy, там цикл:
NumPy: doc/example.py:import matplotlib.pyplot as plt
matlotlib: pyplot.py:import numpy as np


== python-module-scipy ==
== python-module-scipy ==

Версия от 17:21, 24 января 2010

Рефакторинг модулей питона

Преамбула

Назрела необходимость в преобразовании некоторых модулей питона. Это не относится к маленьким модулям, там мало файлов и они порождают мало зависимостей. Речь идёт о крупных проектах, например, python-module-numpy, python-module-scipy, python-module-matplotlib, python-module-wx и т.п.

Устаревший Numeric

Сейчас почти все субмодули python-module-Numeric являются частью пакета python-module-numpy. Исключение составляет python2.6(arrayfns) (в NumPy он ещё сыр), являвшийся его частью, а теперь выделенный в отдельный модуль — python-module-arrayfns. На установленных модулях это сказаться не должно, но при сборке нужно учитывать: в BuildRequires заменять python-module-Numeric на python-module-numpy и, если вдруг появится необходимость, добавить python-module-arrayfns. Здесь от меня (real@) будет полное содействие. Только заранее прошу известить, что всё будете делать сами, и тогда я Ваши пакеты трогать не буду.

python-module-numpy

Пакет разбит на несколько подпакетов:

  • python-module-numpy
он тянет за собой python-module-numpy-testing, поскольку по полиси
тесты должны паковаться отдельно и с особыми названиями, а эти два пакета
связаны неразрывно.
  • libnumpy
там располагаются библиотеки, на которые могут линковаться
другие библиотеки, но ставить весь python-module-numpy смысла нет.
  • libnumpy-devel
это пакет для сборки зависящих пакетов. Увы, мейнтейнерам
придётся в своих спеках сделать замену в BuildRequires с python-module-numpy
на этот пакет. Также может оказаться необходимым туда же добавить пакет
python-module-numpy-tests, который может оказаться необходимым для
тестирования сборки Вашего пакета. В этом нелёгком деле я (real@) окажу
всемерную помощь, если будут запросы.
  • python-module-numpy-tests
собственно тесты. Могут порождать довольно
развесистые установочные зависимости. Если будут запросы в багзиллу, и такие
пакеты можно побить на части.
  • python-module-numpy-doc
документация, внедрённая внутрь %python_sitelibdir.
Частью потому, что может порождать дополнительные зависимости, частью логика
подсказывает держать документацию в отдельном пакете.
  • python-module-numpy-doc-html и python-module-numpy-doc-pdf
здесь, надеюсь, комментарии излишни. Раньше этих пакетов не было вовсе,
я просто воспользовался генератором доументации (sphinx).
  • python-module-numpy-addons
дополнения, некритичные для основного пакета.
Пока отключен, нужно собрать сначала python-module-stsci, чтобы он смог
работать (помимо этого, этот пакет зависит от python-module-matplotlib и
python-module-scipy).

Кстати, не пролучится оторвать python-module-matplotlib от BuildRequires в python-module-numpy, там цикл: NumPy: doc/example.py:import matplotlib.pyplot as plt matlotlib: pyplot.py:import numpy as np

python-module-scipy

В данный момент проводится работа по вышеприведённой схеме

В планах

  • python-module-matplotlib
  • python-module-gist
  • python-module-fipy
  • python-module-wx

Далее уже буду работать с opencascade и free-cad. Именно после выше перечисленного, чтобы не повторять одну и ту же работу дважды.

Ссылки