Submit Search
Upload
mypy - 待望のPython3.9型ヒント対応
•
1 like
•
882 views
K
KyutatsuNishiura
Follow
Python Charity Talks in Japan 2021.02のLT資料です。
Read less
Read more
Presentations & Public Speaking
Report
Share
Report
Share
1 of 20
Download now
Download to read offline
Recommended
2023-03-23_Spiral.AI
2023-03-23_Spiral.AI
SasakiYuichi1
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
配送ルート最適化の為のAI開発の今と未来
配送ルート最適化の為のAI開発の今と未来
Yosuke Takada
アジャイルとスクラムとは 原則、価値、プラクティス
アジャイルとスクラムとは 原則、価値、プラクティス
Yasui Tsutomu
オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介
OSSラボ株式会社
Machine learning CI/CD with OSS
Machine learning CI/CD with OSS
yusuke shibui
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
Yasuharu Nishi
Recommended
2023-03-23_Spiral.AI
2023-03-23_Spiral.AI
SasakiYuichi1
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
配送ルート最適化の為のAI開発の今と未来
配送ルート最適化の為のAI開発の今と未来
Yosuke Takada
アジャイルとスクラムとは 原則、価値、プラクティス
アジャイルとスクラムとは 原則、価値、プラクティス
Yasui Tsutomu
オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介
OSSラボ株式会社
Machine learning CI/CD with OSS
Machine learning CI/CD with OSS
yusuke shibui
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
Yasuharu Nishi
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
優れた研究論文の書き方―7つの提案
優れた研究論文の書き方―7つの提案
Masanori Kado
Marp Tutorial
Marp Tutorial
Rui Watanabe
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
Yuya Unno
N04_デジタルバンクを目指す北國銀行の挑戦とその歩み [Microsoft Japan Digital Days]
N04_デジタルバンクを目指す北國銀行の挑戦とその歩み [Microsoft Japan Digital Days]
日本マイクロソフト株式会社
なぜコンピュータを学ばなければならないのか 21世紀の君主論
なぜコンピュータを学ばなければならないのか 21世紀の君主論
Tokoroten Nakayama
わりとディープ?同値分割↔境界値分析
わりとディープ?同値分割↔境界値分析
scarletplover
WebSocketのキホン
WebSocketのキホン
You_Kinjoh
トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本
トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本
Hajime Fujita
とある診断員とAWS
とある診断員とAWS
zaki4649
優れた研究論文の書き方
優れた研究論文の書き方
Masanori Kado
4つの戦犯から考えるサービスづくりの失敗
4つの戦犯から考えるサービスづくりの失敗
toshihiro ichitani
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
Hitachi, Ltd. OSS Solution Center.
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
YoheiGibo
DataDrift in Azure Machine Learning
DataDrift in Azure Machine Learning
Keita Onabuta
Agile Quality アジャイル品質パターン (QA2AQ)
Agile Quality アジャイル品質パターン (QA2AQ)
Hironori Washizaki
研究発表を準備する(2022年版)
研究発表を準備する(2022年版)
Takayuki Itoh
What is quality culture? Is it something tasty?
What is quality culture? Is it something tasty?
Yasuharu Nishi
デプロイメントパイプラインって何?
デプロイメントパイプラインって何?
ke-m kamekoopa
機械学習 入門
機械学習 入門
Hayato Maki
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)
Tetsuya Morimoto
PyPy 紹介
PyPy 紹介
shoma h
More Related Content
What's hot
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
優れた研究論文の書き方―7つの提案
優れた研究論文の書き方―7つの提案
Masanori Kado
Marp Tutorial
Marp Tutorial
Rui Watanabe
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
Yuya Unno
N04_デジタルバンクを目指す北國銀行の挑戦とその歩み [Microsoft Japan Digital Days]
N04_デジタルバンクを目指す北國銀行の挑戦とその歩み [Microsoft Japan Digital Days]
日本マイクロソフト株式会社
なぜコンピュータを学ばなければならないのか 21世紀の君主論
なぜコンピュータを学ばなければならないのか 21世紀の君主論
Tokoroten Nakayama
わりとディープ?同値分割↔境界値分析
わりとディープ?同値分割↔境界値分析
scarletplover
WebSocketのキホン
WebSocketのキホン
You_Kinjoh
トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本
トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本
Hajime Fujita
とある診断員とAWS
とある診断員とAWS
zaki4649
優れた研究論文の書き方
優れた研究論文の書き方
Masanori Kado
4つの戦犯から考えるサービスづくりの失敗
4つの戦犯から考えるサービスづくりの失敗
toshihiro ichitani
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
Hitachi, Ltd. OSS Solution Center.
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
YoheiGibo
DataDrift in Azure Machine Learning
DataDrift in Azure Machine Learning
Keita Onabuta
Agile Quality アジャイル品質パターン (QA2AQ)
Agile Quality アジャイル品質パターン (QA2AQ)
Hironori Washizaki
研究発表を準備する(2022年版)
研究発表を準備する(2022年版)
Takayuki Itoh
What is quality culture? Is it something tasty?
What is quality culture? Is it something tasty?
Yasuharu Nishi
デプロイメントパイプラインって何?
デプロイメントパイプラインって何?
ke-m kamekoopa
機械学習 入門
機械学習 入門
Hayato Maki
What's hot
(20)
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
優れた研究論文の書き方―7つの提案
優れた研究論文の書き方―7つの提案
Marp Tutorial
Marp Tutorial
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
N04_デジタルバンクを目指す北國銀行の挑戦とその歩み [Microsoft Japan Digital Days]
N04_デジタルバンクを目指す北國銀行の挑戦とその歩み [Microsoft Japan Digital Days]
なぜコンピュータを学ばなければならないのか 21世紀の君主論
なぜコンピュータを学ばなければならないのか 21世紀の君主論
わりとディープ?同値分割↔境界値分析
わりとディープ?同値分割↔境界値分析
WebSocketのキホン
WebSocketのキホン
トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本
トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本
とある診断員とAWS
とある診断員とAWS
優れた研究論文の書き方
優れた研究論文の書き方
4つの戦犯から考えるサービスづくりの失敗
4つの戦犯から考えるサービスづくりの失敗
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
DataDrift in Azure Machine Learning
DataDrift in Azure Machine Learning
Agile Quality アジャイル品質パターン (QA2AQ)
Agile Quality アジャイル品質パターン (QA2AQ)
研究発表を準備する(2022年版)
研究発表を準備する(2022年版)
What is quality culture? Is it something tasty?
What is quality culture? Is it something tasty?
デプロイメントパイプラインって何?
デプロイメントパイプラインって何?
機械学習 入門
機械学習 入門
Similar to mypy - 待望のPython3.9型ヒント対応
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)
Tetsuya Morimoto
PyPy 紹介
PyPy 紹介
shoma h
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
Tetsuya Morimoto
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Katsuhiro Morishita
Django で始める PyCharm 入門
Django で始める PyCharm 入門
kashew_nuts
Pipenvのご紹介 v2
Pipenvのご紹介 v2
C Y
MTプラグイン入門以前
MTプラグイン入門以前
Hiroshi Yamato
Pyconjp2014_implementations
Pyconjp2014_implementations
masahitojp
Pythonによる画像処理について
Pythonによる画像処理について
Yasutomo Kawanishi
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Junichi Ishida
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
Tetsuya Morimoto
Python札幌201406
Python札幌201406
Shinya Okano
TypeScript で型を上手く使う試み.pdf
TypeScript で型を上手く使う試み.pdf
Ryo Higashigawa
Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話
Yusuke Miyazaki
PyLadies Tokyo 二周年記念パーティ LT
PyLadies Tokyo 二周年記念パーティ LT
Tetsuya Morimoto
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
Katsuhiro Miura
Chainerで学ぶdeep learning
Chainerで学ぶdeep learning
Retrieva inc.
LLoT ランゲージアップデート Python
LLoT ランゲージアップデート Python
hirokiky
TDDはじめる前に
TDDはじめる前に
Yasui Tsutomu
Similar to mypy - 待望のPython3.9型ヒント対応
(20)
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)
PyPy 紹介
PyPy 紹介
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Django で始める PyCharm 入門
Django で始める PyCharm 入門
Pipenvのご紹介 v2
Pipenvのご紹介 v2
MTプラグイン入門以前
MTプラグイン入門以前
Pyconjp2014_implementations
Pyconjp2014_implementations
Pythonによる画像処理について
Pythonによる画像処理について
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
Python札幌201406
Python札幌201406
TypeScript で型を上手く使う試み.pdf
TypeScript で型を上手く使う試み.pdf
Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話
PyLadies Tokyo 二周年記念パーティ LT
PyLadies Tokyo 二周年記念パーティ LT
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
Chainerで学ぶdeep learning
Chainerで学ぶdeep learning
LLoT ランゲージアップデート Python
LLoT ランゲージアップデート Python
TDDはじめる前に
TDDはじめる前に
mypy - 待望のPython3.9型ヒント対応
1.
mypy - 待望の3.9型ヒント対応 Kyutatsu
2.
自己紹介 • Kyutatsu (
西浦久達, にしうらきゅうたつ) • Webエンジニアをやってます。 • Python, Django, DRF, AWS… • https://qtatsu.hatenablog.com/ (はてブ: qtatsuの週報)
3.
新しい型ヒント、使った方がいい? • Python3.9から型ヒントの書き方に変更が入った。 • これからは、新しい書き方を使うべきなのか?
4.
型ヒントとは? • 参考資料 • 公式ドキュメント
https://docs.python.org/3/library/typing.html • PyCon2021 https://youtu.be/jLQLFFznPIo • あくまでヒント。 • 型を間違えても、処理が可能なら実行時にエラーは起きない。
5.
mypyとは? • コードの実行前に、型が正しいかチェックできる。 成功例 $ mypy
slide.py Success: no issues found in 1 source file • Ref. https://github.com/python/mypy
6.
mypyとは? • コードの実行前に、型が正しいかチェックできる。 $ mypy
slide.py slide.py:2: error: Unsupported operand types for + ("str" and "int") Found 1 error in 1 file (checked 1 source file) 型に問題があった! • Ref. https://github.com/python/mypy
7.
Python3.9: typingモジュールに新機能追加! ところが… mypy(0.790) $ mypy
slide.py slide.py:1: error: "list" is not subscriptable, use "typing.List" instead Found 1 error in 1 file (checked 1 source file) Python3.9の書き方でエラー(あってるのに…)
8.
Python3.9: typingモジュールに新機能追加! mypy(0.800)が1/22にリリース! $ mypy
slide.py Success: no issues found in 1 source file ところが…
9.
新しい記法を試してみる! mypy(0.800)が対応してくれた、 python3.9(3.10)の新記法を試してみる!
10.
組み込みlist python3.8以前 • 他、tuple, dict,
setなど • PEP585を反映 python3.9∼ 組み込みの list がそのまま利用できるようになった!
11.
組み込みlist $ mypy slide.py mypy==0.790 slide.py:1:
error: "list" is not subscriptable, use "typing.List" instead Found 1 error in 1 file (checked 1 source file)
12.
組み込みlist Success: no issues
found in 1 source file $ mypy slide.py mypy==0.800
13.
「 | 」で複数の型を指定 python3.9以前 python3.10∼
? PEP604を反映
14.
__future__でPython3.10の機能を先取りできる • Ref. https://docs.python.org/ja/3/library/__future__.html •
Python側は、3.7以降なら利用可能 • Mypy側は最新の0.800で対応済み!
15.
「 | 」で複数の型を指定 $
mypy slide.py mypy==0.790 slide.py:3: error: Invalid type comment or annotation Found 1 error in 1 file (checked 1 source file)
16.
「 | 」で複数の型を指定 Success:
no issues found in 1 source file $ mypy slide.py mypy==0.800
17.
古い記法はdeprecated • Python3.9のtypingモジュールでの変更は多め。 • 古い書き方は非推奨になっている! •
以下はhttps://docs.python.org/3/library/typing.htmlから引用 “class typing.List(list, MutableSequence[T]) ….(省略)….. バージョン 3.9 で非推奨: builtins.list は [] をサポートするようになり ました。 PEP 585 および Generic Alias Type を参照してください。
18.
新しい型ヒント、使った方がいい? • mypyが対応したので、3.9(3.10)記法で是非書くべき! • Pythonのバージョンが低くても、__future__を使えば 利用可能(3.7以上)。 •
このLTが終わったら、是非 ` pip install mypy==0.800` を実行してください!
19.
その他の改善 • https://mypy-lang.blogspot.com/2021/01/mypy-0800- released.html • https://docs.python.org/3/library/typing.html
20.
おわり ご静聴ありがとうございました!
Download now