원문 캡처 · github.com
원문 캡처 · github.com

Pyrefly 1.4.0은 uv 워크스페이스 안의 편집 가능 패키지도 타입 검사하고, VS Code 확장이 기본적으로 현재 Python 환경에 설치된 Pyrefly를 실행하도록 바뀌었다. 2026년 10월 14일 공개된 이번 릴리스에는 66명의 기여자가 참여해 1,191개 커밋이 포함됐다.

VS Code 확장은 활성 환경에 Pyrefly가 없으면 번들 바이너리로 대체한다. 기존처럼 번들 바이너리를 계속 쓰려면 pyrefly.pyreflyExecutable을 bundled로 설정하면 된다. 언어 서버 출력 채널에서 어떤 바이너리를 선택했는지와 이유를 확인할 수 있다. 자세한 내용은 Pyrefly 바이너리 선택 안내를 참고하면 된다.

uv 워크스페이스에서는 이전에 프로젝트 내부의 편집 가능 소스를 설치된 패키지로 취급해 검사에서 제외했지만, 이제 해당 소스를 검사한다. 따라서 기존에 드러나지 않았던 오류가 나타날 수 있다. 일반 site-packages는 계속 검사 대상에서 제외된다. --typeshed-path는 번들 typeshed 위에 덧붙이는 대신 이를 완전히 대체하며, site-package-path 설정 이름은 site-packages-path로 바뀌었다. 이전 이름도 계속 사용할 수 있다.

이번 버전은 pyproject.toml의 basedpyright 설정을 읽어 해당 타입 검사 모드를 적용한다. 또 unknown-member-type, unknown-return-type, untyped-function-decorator, uninitialized-instance-variable 등 선택적으로 켤 수 있는 검사 항목을 추가했다. JAX shape 스텁은 jax-pyrefly-stubs 패키지로 처음 안정 버전에 포함돼 PyPI에 공개됐다. Polars의 select와 with_columns는 위치·키워드 인수를 처리하면서 스키마 정보를 보존하도록 개선됐다.

업그레이드하려면 pip install --upgrade pyrefly==1.4.0을 실행한다. 새 버전에서 추가 오류가 생길 수 있으며, 릴리스 노트는 이를 한꺼번에 수정하기 어려운 경우 다음 절차로 임시 억제할 수 있다고 안내한다.

pyrefly check --suppress-errors를 실행한 뒤 포매터를 돌리고, pyrefly check --remove-unused-ignores를 실행한다. 형식 검사와 포매팅이 깨끗하게 끝날 때까지 반복한다. 이 과정은 코드에 # pyrefly: ignore 주석을 추가한다. 자세한 내용은 오류 억제 문서에서 확인할 수 있다.

Pyrefly는 이번 릴리스에서 GitHub 버그 이슈 87건을 닫았다. 전체 변경 사항은 Pyrefly 1.4.0 릴리스 노트에서 볼 수 있다.