Programing Language/Python

mypy, pyright 을 이용한 정적 타입 검사

JHeaon 2023. 6. 27. 09:08

 

mypy, pyright 사용법은 아래 게시글과 연동됨을 알립니다.

참고 : 파이썬 typing module을 통한 타입 표기법 : https://jheaon.tistory.com/63

 

typing module (Type annotation and Typehint) 을 통한 가독성 좋은 코드 작성하기

Python은 동적 프로그래밍 언어이기 때문에 코드를 실행하면 해당 변수의 타입을 추론하여 체크한다. 변수의 타입은 정해져 있지 않기 때문에 개발자가 자유롭게 사용할 수 있다는 장점이 있지만

jheaon.tistory.com

 

 

 

mypy vs pyright 2개의 차이는?

mypy와 pyright

mypy와 pyright 모두 파이썬 타입 검사를 위해 만들어진 정적 타입 검사 도구이다. 두 개의 차이점을 들어보자면 아래와 같다.

  • mypy : python에서 개발하는 공식 타입 체커
  • pyright : microsoft에서 개발하는 타입 체커

각 정적 타입 검사 도구에 따라 장단점이 나뉘기 때문에 자신이 선호하는 것을 골라 사용하면 된다. 

 

mypy 사용법

공식 문서 : https://mypy.readthedocs.io/en/stable/getting_started.html

 

Getting started - mypy 1.4.1 documentation

Previous Home

mypy.readthedocs.io

 

일단 pip 툴을 이용하여 mypy을 설치한다. 

 

🖥️ terminal 

pip install mypy

 

타입 체크를 원하는 파이썬 파일을 찾아 mypy 툴을 이용하여 실행한다. 

 

🖥️ terminal 

mypy program.py

 

mypy 경우에는 값을 출력해주진 않고 말 그대로 타입 에러가 어디에 있는지에 대해서만 알려주기 때문에 값을 출력하거나 반환하고 싶을 경우에는 && 을 이용하여 명령어를 붙여 사용하는 것을 권장하고 있다. 

 

🖥️ terminal 

mypy program.py && python program.py

 

 

 

pyright 사용법

공식 깃헙 : https://github.com/microsoft/pyright

 

GitHub - microsoft/pyright: Static Type Checker for Python

Static Type Checker for Python. Contribute to microsoft/pyright development by creating an account on GitHub.

github.com

공식 문서 : https://microsoft.github.io/pyright/#/installation

 

Pyright

 

microsoft.github.io

pyright 경우에는 visual studio code에서 extend로 지원하고 있으며, 해당 익스텐션을 깔아 사용하면 따로 설치를 할 필요 없이 해당 기능을 사용할 수 있다는 장점을 가지고 있다. 아래는 익스텐션으로 설치하지 않고 커멘드를 이용하여 설치하는 방법을 가이드하는 내용이다. 

 

 

🖥️ terminal 

pip install pyright

 

mypy와 마찬가지로 타입 체크를 원하는 파일에 pyright 툴을 이용하여 실행한다. 

 

🖥️ terminal 

pyright program.py

 

예전에는 NPM Package로 배포하고 있어서 npm 명령어를 사용하여 설치해주어야 했지만 현재는 pip로 배포가 된 상황이라 쉽게 pyright을 설치하여 사용할 수 있다. 

'Programing Language/Python'의 다른글

  • 현재글 mypy, pyright 을 이용한 정적 타입 검사

관련글