преобразование источника Jython / аст - PullRequest
1 голос
/ 18 сентября 2009

Мне нужно решить проблему в Jython. Функция у меня выглядит так:

ok = whatever1(x, ...)
self.assertTrue("whatever1 failed: "+x...(), ok)

ok = whatever2(x, ...)
self.assertTrue("whatever2 failed: "+x...(), ok)

[ many many lines ] ...

Есть много тестов, которые выглядят так, они в основном содержат ok = ... тесты, но есть и другие вещи, которые были сделаны. Я знаю, какие функции тестируемы, потому что они приходят только из одного пространства имен (или я могу оставить часть "ok ="). Вопрос - как автоматически преобразовать источник, чтобы я писал только:

ok = whatever1(x, ...) # this is transformed
ok = whatever2(x, ...) # this too
something_else(...) # this one isn't

а остальное генерируется автоматически?

Я знаю о unparse и ast - есть ли лучший способ решить эту проблему? (да, я знаю - может быть, как монада) Я тоже смотрю на библиотеку rope и не могу решить ... какой путь лучше выбрать здесь? Описанное мной преобразование - единственное, что мне нужно, и я не против создать временный файл, который будет включен в реальный код.

1 Ответ

2 голосов
/ 18 сентября 2009

Вы уверены, что вам нужен AST? Если интересуют только те строки, которые начинаются с «ok =», то, возможно, будет достаточно простой строковой работы с исходными файлами?

...