PyLadies Tokyo 二周年記念パーティ LT

7
Mypy status 201610 2016-10-22 Tetsuya Morimoto

Transcript of PyLadies Tokyo 二周年記念パーティ LT

Page 1: PyLadies Tokyo 二周年記念パーティ LT

Mypy status 201610

2016-10-22 Tetsuya Morimoto

Page 2: PyLadies Tokyo 二周年記念パーティ LT

Intoroduction● 森本 哲也 (@t2y)● サーバーサイドエンジニア

○ プログラミング言語歴 : Python → Java → Go

● Python Insider の翻訳: http://blog-ja.python.org/● PyPI: https://pypi.org/user/t2y/● はてなブログ: http://t2y.hatenablog.jp/● Qiita: http://qiita.com/t2y

Page 3: PyLadies Tokyo 二周年記念パーティ LT

Background● 2014-12 mypy 0.1.0● 2015-04 mypy 0.2.0

● 2015-09 型ヒント (Type Hints)○ Python 3.5.0 リリース

○ 型ヒントを記述するための型アノテーションの構文を標準化 (typing モジュール )○ [翻訳] PEP 484 -- 型ヒント

○ mypy 0.2.0 から鋭意開発中の状態だった

● 2016-02 mypy 0.3.0● 2016-05 mypy 0.4, 0.4.1● 2016-06 mypy 0.4.2● 2016-07 mypy 0.4.3● 2016-08 mypy 0.4.4

● 2016-10-07 mypy 0.4.5 ← イマココ!

Rapid Release な体制になってきた?

Dropbox 社へ

● Jukka Lehtosalo: mypy 作者● Guido van Rossum: python 作者

Page 4: PyLadies Tokyo 二周年記念パーティ LT

Case Example● Static types in Python, oh my(py)!

○ Tim Abbott 著 (Zulip のリード開発者 )○ [翻訳] Python の静的型、すごい mypy!

● Zulip というグループチャットアプリケーションに型アノテーションを付けた話○ Python 2 で約50,000行、毎月数十人が数百コミット

○ GSOC で優秀な学生がほとんどの作業をしてくれた

○ そんながんばらずに適当にやってたけど、数ヶ月で完了した

○ やってみたら Python 2 から Python 2+3 両対応がすごく簡単にできた

○ mypy の実行時間は Zulip で約3秒、十分に速いし誤検知もあまりない

○ 型アノテーションがあると可読性が上がるし、リファクタリングも安心

○ 学習コストを強いるんじゃないかと不安に思ってたけど、みんな普通に対応してくれる

Page 5: PyLadies Tokyo 二周年記念パーティ LT

Discussion● なぜ型アノテーションが Python 2+3 対応を容易にするのか?

○ str vs. Text (unicode in Python 2, str in Python 3): mypy○ bytes vs. str: Python 3○ str vs. unicode: Python 2○ これらの型アノテーションをちゃんと付けた場合に限る

● 本来は Python 2 でも文字列を扱うときは全て unicode 文字列であるべき?○ 文字列が ASCII の場合、str と unicode 文字列の型の違いが曖昧

○ str 型でもプログラムは動いてしまうことがある (str→unicodeの暗黙の型変換 )

● ライブラリもテキストを unicode 文字列で扱うとは限らない○ os (os.path)○ csv○ ConfigParser

標準ライブラリでさえ統一できていない

Python 3 対応で最も影響が大きい (変更が多い)

Page 6: PyLadies Tokyo 二周年記念パーティ LT

Conclusion● 型チェッカーとしての mypy が実用レベルになったらしい

○ 型ヒントの利点を活かせるときがきた

● mypy を使うと Python 2 から 3 への移行が容易になるかも?

● 型ヒントを書いて Python における静的解析を試してみましょう!

Page 7: PyLadies Tokyo 二周年記念パーティ LT

An Aside● 著者に翻訳の許可をとったときに翻訳記事がどのぐらい読まれたか教えてほしいと

依頼された

● Qiita の公開後の PV をみてた○ 2.5時間: 1,000○ 6時間 : 2,000○ 翌日 : 6,000○ 3日 : 9,500

過去に私が翻訳した記事の中では驚異的な数字!!!