flake8 --diff не работает из каталога, кроме корня хранилища

Дерево репозитория показано выше

.
├── __init__.py
└── source
    ├── __init__.py
    └── main.py

файлmain.py

def add(a, b):
    return a + b

Когда я меняю файл main.py в

def add(a, b):
    return a +b

и сделать git diff -U0 | flake8 --diff из корня репозитория это показывает мне

source/main.py:2:15: E225 отсутствует пробел вокруг оператора

но когда я делаю ту же команду из source папка ничего не показывает

В тот же момент git diff -U0 показывает одинаковый результат внутри корневого хранилища и source папка

diff --git a/source/main.py b/source/main.py
index 4693ad3..fd47298 100644
--- a/source/main.py
+++ b/source/main.py
@@ -2 +2 @@ def add(a, b):
-    return a + b
+    return a +b

1 ответ

Решение

Очевидно, что flake8 хотел бы, чтобы пути в выходных данных были относительно текущего рабочего каталога. Это означает, что вы хотите:

git diff -U0 --relative | flake8 --diff

так как по умолчанию, git diff производит:

--- a/source/main.py
+++ b/source/main.py

как в вашем примере. Добавление --relative (по умолчанию это текущий каталог) должен выдать:

--- a/main.py
+++ b/main.py

вместо.

Другие вопросы по тегам