Github: https://github.com/python/mypy
Mypy:Pythonのためのオプションの静的型付け
質問がありましたか? Gitterに参加してください!
メーリングリストはありません。 私たちはいつも笑い声で質問に答えることができて満足しています。 バグが見つかった場合は、新しい問題を提出する前に、問題追跡ツールで重複を検索してください。
- mypyの問題のためのmypyトラッカー
- 特定のモジュールに関する問題の型付きトラッカー
- 新しいタイプのシステム機能(PEP 484の変更)の議論のためのタイピング・トラッカーとタイピング・モジュールのランタイム・バグ
mypyとは何ですか?
MypyはPythonのオプションの静的型チェッカーです。 タイプヒント( PEP 484 )をPythonプログラムに追加し、mypyを使用してタイプヒントを静的にチェックすることができます。 プログラムを実行しなくてもバグを見つけてください!
動的な型定義と静的な型定義をプログラムに混在させることができます。 レガシーコードのように静的な入力が便利でない場合は、常に動的な型に戻すことができます。
あなたの食欲をほぐす小さな例があります(Python 3):
from typing import Iterator
def fib(n: int) -> Iterator[int]:
a, b = 0, 1
while a < n:
yield a
a, b = b, a + b
その他の例については、ドキュメントを参照してください。
Python 2.7の場合、標準アノテーションはコメントとして記述されます。
def is_palindrome(s):
# type: (str) -> bool
return s == s[::-1]
Python 2のサポートに関するドキュメントを参照してください。
Mypyは開発中です。 いくつかの機能が欠けており、バグがあります。 下記の「開発状況」を参照してください。
要件
mypyを実行するには、Python 3.4以降が必要です。 複数のPythonバージョン(2.xと3.x)を問題なく同じシステムにインストールすることができます。
Ubuntu、Mint、Debianでは、次のようにPython 3をインストールすることができます:
$ sudo apt-get install python3 python3-pip
他のLinuxのフレーバー、OS XとWindowsでは、パッケージは
クイックスタート
Mypyはpipを使用してインストールできます:
$ python3 -m pip install -U mypy
最新バージョンのコードを実行したい場合は、gitからインストールできます:
$ python3 -m pip install -U git+git://github.com/python/mypy.git
さて、システム上のPythonが適切に設定されている場合(以下の「トラブルシューティング」を参照)、プログラムの静的に型付けされた部分を次のようにタイプチェックできます:
$ mypy PROGRAM
型エラーがあっても、静的に型付けされたプログラムを実行するためにPythonインタプリタを使うことができます:
$ python3 PROGRAM
IDEとLinterの統合
Mypyは一般的なIDEに統合することができます:
- Vim: vim-mypy
- Emacs: FlycheckとFlycheck-mypyの使用
- 崇高なテキスト: SublimeLinter-contrib-mypy
- Atom: linter-mypy
- PyCharm:PyCharm はPEP 484の独自の実装を統合しています 。
Mypyは、 flake8-mypyを使用してFlake8に統合することもできます。
Webサイトとドキュメント
ドキュメントおよび追加情報は、Webサイトから入手できます。
あるいは、ドキュメントに直接ジャンプすることもできます:
トラブルシューティング
設定によっては、次のようにpip
を実行する必要があります。
$ python3 -m pip install -U mypy
これにより、適切なバージョンのmypyのパーサーであるtyped-astが自動的にインストールされます。 何らかの理由でそれができない場合は、手動でインストールできます。
$ python3 -m pip install -U typed-ast
インストール後にmypy
コマンドが見つからない場合: python3 -m pip install
と、 typing
モジュールを含むmypy
スクリプトと依存関係がシステムに依存する場所にインストールされます。 場合によっては、スクリプトディレクトリがPATH
に存在しないため、 PATH
に手動でターゲットディレクトリを追加するか、スクリプトへのシンボリックリンクを作成する必要があります。 特に、Mac OS Xでは、 /Library/Frameworks
下にスクリプトをインストールすることができます:
/Library/Frameworks/Python.framework/Versions/<version>/bin
Windowsでは、スクリプトは通常\PythonNN\Scripts
にインストールされます。 ですから、このようなプログラムをタイプしてみてください( \Python34
をPythonのインストールパスに置き換えてください):
C:\>\Python34\python \Python34\Scripts\mypy PROGRAM
virtualenv
virtualenv
を使用している場合は、python3環境を実行していることを確認してください。 v2環境でpip3
経由でインストールしてpip3
、インストールされたモジュールをコマンドラインから実行する環境は設定されません。
$ python3 -m pip install -U virtualenv
$ python3 -m virtualenv env
mypyに貢献するためのクイックスタート
貢献したい場合は、まずmypy gitリポジトリをクローンします:
$ git clone --recurse-submodules https://github.com/python/mypy.git
--recurse-submodules
なしでrepoをすでにクローンしている場合、次のようにtypeshed repoをプルする必要があります:
$ git submodule init
$ git submodule update
どちらの方法でも、タイプド・レポ( https://github.com/python/typeshed
)のクローンを含むサブディレクトリをtypeshed
する必要がありhttps://github.com/python/typeshed
。
mypyディレクトリから、pipを使用してmypyをインストールします。
$ cd mypy
$ python3 -m pip install -U .
python3
をあなたのPython 3インタプリタに置き換えてください。 ルートとして上記を実行する必要があります。 たとえば、Ubuntuでは次のようになります。
$ sudo python3 -m pip install -U .
今度は上記のようにmypy
プログラムを使用できます。 問題が発生した場合は、上記の「トラブルシューティング」を参照してください。
mypyのgitバージョンで作業する
mypyにはサブモジュール「typeshed」が含まれています。 http://github.com/python/typeshedを参照してください 。 このサブモジュールには、Python標準ライブラリの型が含まれています。
gitのサブモジュールが動作する方法のために、あなたはする必要があります
git submodule update typeshed
分岐、マージ、リベース、またはプルするたびに
(これを自動化することも可能です:Googleで “git hook update submodule”を検索する)
テスト
Test README.mdを参照してください。
開発状況
Mypyはalphaソフトウェアですが、すでにDropboxで1年以上実稼動に使用されており、豊富なテストスイートを備えています。
将来の計画に興味がある場合は、ロードマップを参照してください。
課題トラッカー
mypy issue trackerを使用して、バグや拡張機能のアイディアを報告してください:
https://github.com/python/mypy/issues
トラッカーの質問もお気軽に。
従業員求む
テスト、開発、文書作成などの作業の助けを借りて、プロジェクトに非常に感謝しています。 すべての経験レベルの貢献者のためのタスクがあります。 あなたがちょうど始めているのであれば、 ゲッターチャットで初心者の良いアイデアを尋ねてください。
詳細については、 CONTRIBUTING.mdファイルを参照してください。
ライセンス
Mypyは、MITライセンスの条件に基づいてライセンスされています(ファイルLICENSEを参照)。