Необходимо подняться через дерево наследования и найти все интерфейсы для каждого класса в дереве и соответствовать typeof(IBar<>)
результату вызова Type.GetGenericTypeDefinition
, если интерфейс универсален. Это все немного болезненно, конечно.
См. этот ответ и эти для большего количества информации и кода.
Я бы взял исходные тексты существующего пакета Debian и заменил в нем фактический пакет вашим. Чтобы найти список пакетов, зависящих от поддержки python, выполните
apt-cache rdepends python-support
Выберите пакет, который имеет вид Архитектура: все
, так что это будет пакет на чистом Python. Просматривая этот список, я обнаружил, что, например, python-flup может быть хорошей отправной точкой.
Чтобы получить исходный код одного такого пакета, выполните
apt-get source <package>
Чтобы собрать его, выполните
cd <packagesrc>
dpkg-buildpackage -rfakeroot
При его редактировании ожидайте, что вам понадобятся только файлы в папке debian
; замените все ссылки на flup на свое собственное имя пакета.
После того, как вы начнете, это займет у вас день.
Во-первых, в Debian уже есть множество пакетов Python; вы можете загрузить исходный код (включая все пакеты) для любого из них либо с помощью apt-get source
, либо посетив http://packages.debian.org .
Вы могут найти следующие ресурсы использования:
Я думаю, вы хотите http://pypi.python.org/pypi/stdeb:
stdeb производит исходные пакеты Debian из пакетов Python с помощью новой команды distutils, sdist_dsc. Автоматические настройки по умолчанию предоставляются для пакета Debian, но многие аспекты но многие аспекты результирующего пакета могут быть настраивать (см. раздел, ниже). Дополнительная команда, bdist_deb, создаёт пакет Debian двоичный пакет, файл .deb.