Mypy - Python 타입힌트 정적검사 소개 및 Django 적용

런던행·2021년 4월 16일
0

Python 기초

목록 보기
10/11

python 3.5부터는 타입힌트를 제공해준다.
유의해야 할 점은 개발자가 실수로 타입힌트를 잘못 적어도 런타임시 문제가 발생하지 않는다. (필자가 격어봄)
정적에서 이를 탐지할 수 있는 툴이 바로 Mypy 이다.

pip install mypy

mypy_test.py

value: str = 1
print(value)

실행 하면 문제가 발생하지 않는다. mypy로 타입힌트 정적 검사를 수행해 보자.

mypy mypy_test.py

my_test.py:1: error: Incompatible types in assignment (expression has type "int", variable has type "str")
Found 1 error in 1 file (checked 1 source file)

하지만 mypy가 완벽한 도구는 아니라는 말이 있어서 잘못된 탐지를 할 경우에는 무시하는 주석 구문을 추가한다

value: str = 1 # type: ignore

django에 mypy 적용

장고에 mypy를 간단하게 적용해보자. 자세한 사항은 아래 링크된 깃에서 확인하자.
https://github.com/typeddjango/django-stubs

pip3 install django-stubs

프로젝트 루트 디렉토리에서 setup.cfg 생성 후 아래 내용을 기입한다.
myproject.settings는 본인 프로젝트 설정에 맞게 변경하는걸 잊지 말자.

[mypy]
plugins =
    mypy_django_plugin.main

[mypy.plugins.django-stubs]
django_settings_module = "myproject.settings"

실행은

pypy 프로젝트명

고칠게 보인다..

profile
unit test, tdd, bdd, laravel, django, android native, vuejs, react, embedded linux, typescript

0개의 댓글