Как я могу заставить setuptools игнорировать инвентарь Subversion?

При упаковке пакета Python с помощью setup.py, который использует setuptools:

from setuptools import setup
...

исходный дистрибутив, созданный:

python setup.py sdist

не только включает в себя, как обычно, файлы, указанные в MANIFEST.in, но и также включает в себя все файлы, которые Subversion перечисляет как контролируемые версиями в каталоге пакета. Это очень раздражает. Мало того, что это затрудняет осуществление какого-либо явного контроля над тем, какие файлы распространяются вместе с моим пакетом, но это также означает, что когда я собираю свой пакет после «экспорта svn» вместо «svn checkout» содержимое моего пакета может быть совершенно другим, поскольку без метаданных .svn setuptools будет по-разному выбирать, что включать.

Мой вопрос: как я могу отключить это ужасное поведение, чтобы "setuptools"? обрабатывает мой проект одинаково, независимо от того, использую ли я Subversion, или контроль версий, о котором он никогда не слышал, или голое дерево, созданное с помощью "svn export" что я создал в конце моего проекта, чтобы убедиться, что он собирается где-то еще, кроме моего рабочего каталога?

Лучшее, что мне удалось сделать, это уродливая обезьяна-патч:

from setuptools.command import sdist
del sdist.finders[:]

Но это Python, а не джунгли, так что, конечно, я хочу лучшее решение, в котором совсем нет обезьян. Как я могу приручить setuptools, отключить его магию и заставить его вести себя разумно, взглянув на видимые, предсказуемые правила в моем файле MANIFEST.py?

Ответы на вопрос(5)

Ваш ответ на вопрос