pd.requires
2007-11-10 08:16Продукт основан на попытке создать систему автоматического определения зависимостей языка питон в дистрибутиве AltLinux. Оригинальная версия проекта лежит здесь: http://code.dreambot.ru/svn/rpm-build-python, но в таком виде этот проект закрыт. Хотя, возможно, он даже не является последней версией - т.е. много версий уже было написано после нас совсем другим людьми.
Новая попытка создать продукт такого типа ориентирована на то, что бы быть универсальным аналитическим инструментом, причем, возможно не только питоновскими. Но пока получился наскоро выдранный питоновский код, который, правда, худо-бедно работает - хотя никто уже не помнит как и почему.
Репозиторий программы: http://code.dreambot.ru/svn/pd.requires/trunk/ . Последняя версия продукта залита в PYPI.
Краткое описание пакета
Пакет разработан для анализа зависимостей в модулях на питоне. Помимо библиотеки, предоставляет три утилиты:
- find_requires
находит все зависимости, требуемые питоновским пакетом. Зависимости распечатываются (пока) в формате "python<X>.<Y>(<DEPENDENCE>)", где X,Y - номера версии питона, а DEPENDENCE -- путь к модулю так, как он указывается в операторе import. Для каждой зависимости указывается в каком файле она возникла.
Формат вызова:
find_requires <FULL MODULE PATH> [<FULL MODULE PATH>]Ключи:
- "-f (RPM|PYPI)"
- Различный формат вывода списка зависимостей, по умолчанию PYPI;
- "-r"
- Выводить файл из которого возникла данная зависимость;
- find_provides
находит все зависимости, требуемые питоновским пакетом. Зависимости распечатываются (пока) в формате "python<X>.<Y>(<DEPENDENCE>)".
Формат вызова:
find_provides <FULL MODULE PATH> [<FULL MODULE PATH>]Ключи:
- "-f (RPM|PYPI)"
- Различный формат вывода списка зависимостей, по умолчанию PYPI;
- imalyzer
утилита анализатор зависимостей между файлами модулей питона, файлы передаются в утилиту единым списком, и утилита составляет отчет об их использовании.
Предполагаемое назначение - первичный анализ модулей на разбивку на пакеты и субпакеты. В настоящее время в этом качестве не пригодна. Рекомендуемый формат запуска:
imalyzer $(find $PWD -name "*.py")
Предполагается что все пакеты запускается из того каталога, в который установлены анализируемые модули, это не очень удобно, но такого решения требует унаследованный код. Упомянутый выше FULL MODULE PATH -- это путь к модулю, включающий в себя все каталоги.
Вложено:
Dependence analysis utils This packages to provide tools for dependence analysis of python modules. Programs -------- find_requires Program find all dependences required by python module or module set. [-f (RPM|PYPI)] [-r] -f Dependencies will be printed in RPM or PYPI format, it is PYPI by default; find_provides Programm find all dependencies provided by python module or module set. [-f (RPM|PYPI)] -f Dependencies will be out in RPM or PYPI format, it is PYPI by default; ...


