Как избежать пробелов в именах каталогов в файлах MANIFEST.in? - PullRequest
1 голос
/ 14 октября 2011

Я унаследовал некоторый код с именами каталогов со встроенными пробелами, и у меня нет возможности переименовать каталог. Допустим, имя каталога «встроенные пробелы»

Теперь я пытаюсь получить доступ к некоторым файлам из этого каталога в файле MANIFEST.in

Я пробовал следующее:

recursive-include 'embedded spaces' *.dat
recursive-include "embedded spaces" *.dat
recursive-include embedded\ spaces *.dat

Все это выдает ошибки типа "предупреждение: не найдено файлов, соответствующих" пробелам "в каталоге" внедрено "

У меня есть обходной путь, который

recursive-include embedded* *.dat

но мне было интересно, есть ли менее хакерский способ кодирования пробелов в именах каталогов MANIFEST.in.

Ответы [ 2 ]

2 голосов
/ 14 октября 2011

Нет, это не появится.Проверка источника distutils.filelist, который выполняет работу по синтаксическому анализу MANIFEST.in, показывает, что строка разбита чисто на пустое пространство для определения действия и его параметров

Вот источник (в python 2,7)

def _parse_template_line(self, line):
    words = line.split()
    action = words[0]

    ...

    if action in ('include', 'exclude',
                  'global-include', 'global-exclude'):
        ...
    elif action in ('recursive-include', 'recursive-exclude'):
        if len(words) < 3:
            raise DistutilsTemplateError, \
                  "'%s' expects <dir> <pattern1> <pattern2> ..." % action

        dir = convert_path(words[1])
        patterns = map(convert_path, words[2:])

    ...
0 голосов
/ 14 октября 2011

Попробуйте recursive-include embedded?spaces *.dat.

...