일상적 이야기들.

flake8과 black의 조합. 본문

프로그래밍/PYTHON

flake8과 black의 조합.

noveljava 2021. 7. 4. 19:04
(venv) [~/Public/leetcode]$ flake8 97_Interleaving\ String.py 
97_Interleaving String.py:7:58: E203 whitespace before ':'
97_Interleaving String.py:10:62: E203 whitespace before ':'
97_Interleaving String.py:45:80: E501 line too long (111 > 79 characters)
97_Interleaving String.py:46:80: E501 line too long (111 > 79 characters)
97_Interleaving String.py:47:80: E501 line too long (211 > 79 characters)

혼자서 개발할 때에는 잘 지켜지지 않았던 lint 부분을 회사에 오면서 많이 신경쓰면서 코드를 작성하고 있습니다.

물론 회사 내에서도 파트원이 없기때문에 아직까지 엄청 타이트하게 서로간의 규약을 정하지는 않았습니다.

 

최소한의 규칙으로 flake8을 사용하자는 이야기를 하여서, flake8을 이용하여서 lint를 맞추고 있습니다.

- PEP8 규약을 따른다는 의미인데, 해당 규약을 검사해주는 도구들은 많이 있는데 저희는 flake8을 사용하기로 하였습니다.

vscode 문서에서, 찾아보면 여러개의 lint 도구가 있습니다.

https://code.visualstudio.com/docs/python/linting

 

Linting Python in Visual Studio Code

Linting Python in Visual Studio Code

code.visualstudio.com

 

다음과 같이 설치를 하고, 검토를 할 수 있습니다.

$pip install flake8
$flake8 .

 

문제가 있다면, 다음과 같이 에러가 나타나게 됩니다.

 - flake8 설정을 잡아주지 않아서, 현재 한라인의 최대 문자열은 80글자로 잡혀있습니다

$flake8 97_Interleaving\ String.py 
97_Interleaving String.py:7:58: E203 whitespace before ':'
97_Interleaving String.py:10:62: E203 whitespace before ':'
97_Interleaving String.py:45:80: E501 line too long (111 > 79 characters)
97_Interleaving String.py:46:80: E501 line too long (111 > 79 characters)
97_Interleaving String.py:47:80: E501 line too long (211 > 79 characters)

 

이와 같은 문제들은 하나하나 따라가면서 고칠 수 있지만, "black"이라는 도구를 통해서 해결이 가능합니다.

 -l 옵션을 통해서, Line수를 지정해줄 수 있습니다.

만약 적어주지 않는다면, flake8의 설정을 따라 가게 됩니다.

$pip install black
$black -l 120 

'프로그래밍 > PYTHON' 카테고리의 다른 글

Python - Sort 알고리즘  (0) 2023.08.24
GIL 에 대해서 이야기를 해보자.  (0) 2021.08.05
Vscode Setting 정보  (0) 2021.01.08
Mac - Bigsur 에서 pyenv 문제  (0) 2021.01.03
[TIL] Pytest - mock server 구축  (0) 2020.09.23
Comments