def detect_long_method(directory):
path, dirs, files = next(os.walk(directory))
output = lm.output_long_methods(directory)
# print (output.stdout)
split_lines = output.splitlines()
output_lines = [output.decode('utf-8') for output in split_lines if len(output) > 3 and\
('R0915' in output.decode('utf-8') or 'R0913' in output.decode('utf-8') or 'R0912' in output.decode('utf-8') or \
'R0904' in output.decode('utf-8') or 'R0902' in output.decode('utf-8'))]
return output_lines
Эта функция выполняет команду командной строки, получает стандартный вывод и назначает его переменной output
. Он разбивается на строки с помощью функции .splitlines()
.
В output_lines
он проверяет, содержит ли каждая строка (в байтах) слово R0915..etc.
, и если длина строки превышает 3, то, наконец, преобразует их в строку.
Однако, это довольно медленно, и я чувствую, что есть способ написать это более аккуратно и более эффективно.
Любая помощь?