やっつけ不定記

好きなときに好きなことをちゃっちゃと書いてます

PyreのGetting Startedをやってみた

NANA MIZUKI LIVE GALAXY 2016の配信動画をお供に、Pyreというツールを眺めています。
本来の目的はPysaを試すことなのですが、公式ドキュメントの読み方が間違っていなければ、
PysaはPyreの一部、つまりPyreを使えなければいけないと理解しています。
https://pyre-check.org/docs/getting-started
Getting Startedをしてみないと始まらないので、雑にですが実施記録を書いてみます。
実施した環境はUbuntuのDockerコンテナです。

(1)環境の確認~前提ミドルウェアのインストール

root@[コンテナ名]:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04 LTS (Focal Fossa)"
・・・
root@[コンテナ名]:/# apt-get update
root@[コンテナ名]:/# apt-get install python3 python3-pip watchman python3-venv
---
ドキュメントにはないが、python3-venvを入れておかないと、
後の python3 -m venv ~/.venvs/venv で怒られる。
---
root@[コンテナ名]:/# cd
root@[コンテナ名]:/~# pwd
/root

(2)Getting Startedお試し

root@[コンテナ名]:/~# mkdir my_project && cd my_project
root@[コンテナ名]:~/my_project# python3 -m venv ~/.venvs/venv
root@[コンテナ名]:~/my_project# source ~/.venvs/venv/bin/activate
(venv) root@[コンテナ名]:~/my_project# pip install pyre-check
(途中の出力にERRORとあったけど、最終的に下記Successfullyになったので一旦無視。)
・・・
Successfully installed dataclasses-0.6 libcst-0.3.9 mypy-extensions-0.4.3
 psutil-5.7.2 pyre-check-0.0.52 pyre-extensions-0.0.18 pywatchman-1.4.1
  pyyaml-5.3.1 typing-extensions-3.7.4.2 typing-inspect-0.6.0
(venv) root@[コンテナ名]:~/my_project# pyre init
? Also initialize a watchman configuration? [Y/n] Y
{
    "watch": "/root/my_project",
    "watcher": "inotify",
    "version": "4.9.0"
}
 ? Which directory should pyre be initialized in? (Default: `.`): .
(venv) root@[コンテナ名]:~/my_project# echo "i: int = 'string'" > test.py
(venv) root@[コンテナ名]:~/my_project# pyre
 ? Found 1 type error!
test.py:1:0 Incompatible variable type [9]: i is declared to have type `int` but is used as type `str`.
(venv) root@[コンテナ名]:~/my_project#

<戦利品>
ヲタクに恋は難しい(9)
ぼくたちは勉強ができない(18)