Проблема с литеральными аргументами в строке PATTERN для фиксатора Python 2to3 - PullRequest
0 голосов
/ 07 апреля 2010

Я пишу исправление для инструмента 2to3 в python.

В моей строке шаблона у меня есть раздел, в котором я хотел бы сопоставить пустую строку в качестве аргумента или пустую строку Юникода. Соответствующий кусок моего шаблона выглядит так:

(args='""' | args='u""')

Моя проблема - второй вариант, никогда не совпадающий. Даже если он один, он не будет совпадать. Однако, если я просто скажу args = any, а затем выведу args, я могу обнаружить случаи, когда args точно равен второму варианту.

Происходит ли какая-то странная работа с юникодом? Почему второй буквальный вариант никогда не совпадет?

1 Ответ

1 голос
/ 09 апреля 2010

Поскольку сопоставление с образцом 2to3 предназначено для сопоставления токенов, а не литералов, прямого способа сделать это невозможно.

Вместо этого вы можете сопоставить (args = STRING), а затем определить значение строкового аргумента внутри функции преобразования и обработать его соответствующим образом.

...