При упаковке пакета Python с помощью setup.py, который использует setuptools:
from setuptools import setup
...
исходный дистрибутив, созданный:
python setup.py sdist
содержит, как обычно, файлы, указанные в файле MANIFEST.in, но он также без исключения включает в себя все файлы, которые списки Subversion являются версиями под каталогом пакетов. Это очень раздражает. Это не только затрудняет осуществление какого-либо явного контроля над тем, какие файлы распространяются вместе с моим пакетом, но это означает, что когда я создаю свой пакет после "svn export" вместо "svn checkout", содержимое моего пакет может быть совсем другим, поскольку без .svn метаданных setuptools будут делать разные варианты того, что включать.
Мой вопрос: как я могу отключить это ужасное поведение, так что "setuptools" относится к моему проекту так же, как я использую Subversion или контроль над версией, о котором он никогда не слышал, или о голом дереве, созданном с помощью "svn export" что я создал в конце моего проекта, чтобы убедиться, что он строит чисто где-то помимо моего рабочего каталога?
Лучшее, что я до сих пор уладил, - уродливый патч обезьяны:
from setuptools.command import sdist
del sdist.finders[:]
Но это Python, а не джунгли, поэтому, конечно, я хочу лучшее решение, в котором вообще нет обезьян. Как я могу приручить setuptools, отключить его магию и заставить себя вести себя разумно, посмотрев на видимые, предсказуемые правила в моем MANIFEST.py?