-
Poetry 와 packageDjango 2022. 2. 20. 14:45
Poetry
매 번 pip freeze 할 필요 없이, 알아서 poetry.lock 으로 종속성을 관리해 준다. 또한 pyproject.toml 로 여러 가지 설정들이 하나의 파일로 통합되어서 프로젝트 관리하는 것을 도와준다.
Poetry 설치
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
패키지 설치
Black
black은 code formatter 이다. 우리가 작성한 코드를 blakc 코드 스타일에 맞게 자동 수정해준다.
black 설치 : poetry add black
black 실행 : poetry run black .
black 설정 : pyproject.toml에서 아래 코드 추가 (대괄호는 섹션이라한다)
[tool.black]
line-length = 120 -> 한줄에 120자넘어가지 않게 제한 한다.
mypy
타입스크립트처럼 타입을 지정 해주고 제대로 지정 되었는지 검사해주는 라이브러리
django stub -> mypy와 django를 같이 사용할 수 있도록 도와주는 우리들의 친구
django-stub, mypy 설치 : poetry add django-stubs mypy
mypy 실행 : poetry run mypy . (전부 검사)
mypy에 의해서 문제가 발견이 되면 에러 메시지를 따라서 적절히 수정하면 된다.
mypy 설정 :
pyproject.toml 에서
[tool.mypy]
strict = true -> 함수의 argument와 return 값에 type hint가 제대로 되어 있는지를 검사한다.
[[tool.mypy.overrides]]
module = "*.migrations.*" -> module migrations 안에 있는 모든 파일들을 가리킨다.
ignore_errors = true -> 에러를 무시한다. (Mypy 검사를 하지 않겠다)
[[tool.mypy.overrides]]
module = "manage" -> manage.py를 가리킨다.
ignore_errors = true -> 에러를 무시한다. (Mypy 검사를 하지 않겠다)
isort
import 순서를 정렬 해준다.
isort 설치 : poetry add isort
isort 설정 :
[tool.isort]
profile = "black" -> isort에게 나 black이랑 같이 쓰고있어 라고 알려줌으로써 서로 호환되도록 만들어 주는 것
black, isort, mypy 테스트 한 번에 하기
root경로에 test.sh 생성
set -euo pipefail -> 스크립트의 명령을 실행하다가 중간에 실패하는 경우에 더 이상 진행하지 않도록 한다.
sudo chmod 777 ./test.sh -> 실행 권한 주기
./test.sh
'Django' 카테고리의 다른 글
Django allauth Google Login page가 바로 안보일 때 (0) 2022.02.26 Django Unit Test in VSCode (0) 2022.02.20 Django Tip (0) 2022.02.20 django basic (0) 2022.02.20 TemplateDoesNotExist error (0) 2022.01.25