Для git alias problem я хотел бы иметь возможность выбрать одну функцию Python из файла по имени. например:Сценарий Bash для выбора одной функции Python из файла
...
def notyet():
wait for it
def ok_start(x):
stuff
stuff
def dontgettrickednow():
keep going
#stuff
more stuff
def ok_stop_now():
В алгоритмических терминах, следующий будет достаточно близко:
- Начало фильтрации, когда вы найдете строку, которая соответствует
/^(\s*)def $1[^a-zA-Z0-9]/
- соответствие Keep, пока не найдете строку, которая не
^\s*#
или^/\1\s]
(то есть, возможно, с отступом или с отступом, превышающим предыдущий)
(Меня не волнует, если декораторы перед тем, как подобрать следующую функцию. Результат для чтения человеком.)
Я пытался сделать это с помощью Awk (чего я едва знаю), но это немного сложнее, чем я думал. Для начала мне понадобится способ хранения длины отступа перед оригиналом def
.
Wow, awesome :) Я могу подтвердить, что он работает над моими действиями в реальном мире. Интересным аспектом является наличие двух функций с одним и тем же именем (может случиться, если они находятся в разных классах), он возвращает их обоих из конца в конец. Не уверен, что это было предназначено (или действительно то, что должно быть правильным) - кажется хорошим результатом. –
@SteveBennett: Я просто редактировал, чтобы изменить это поведение. Теперь он должен обрабатывать только первую найденную функцию. – Birei
Я вроде как вариант «выберите все функции с тем же именем» на самом деле - иначе я не уверен, как вы получите доступ ко второму func с тем же именем. –