hanpy_lt_34
はんなりPython #34 Python3.9 LT会
https://hannari-python.connpass.com/event/191566/
スポンサー forkwellさん(株式会社grooves) / ソニー株式会社
フライヤー
スポンサー動画
https://i.gyazo.com/f1f678dc4c1df1007e5779378b67a819.png
本日の内容
21:05 オープニング
21:15 LT開始
What's new Python3.9を読む @hideyan hideyan.icon
PEP585(listやdictのGeneric型化)について @nikkieさん
3.9で追加された ast モジュールの新機能 ast.unparse @t2yさん
22:00 休憩
フォークウェルさん動画
勉強会の宣伝なども行っていただけます!
はんなりPython宣伝
22:10 LT再開
新規モジュール graphlibのご紹介 @malo21stさん malo21st.icon
PidChildWatcherについて @yasshieee(やっしー)さん
zoneinfoを使おう @hrsano645さん hrsano645.icon
23:00 終了
paypayで投げ銭受付中
楽しかったなぁーと思ったらpaypayでぜひ投げ銭を!
使い道 LT頂いた方へのアマゾンギフト券、OSSへの募金
PyCon Charity silverスポンサーになった記事
投げ銭先
https://i.gyazo.com/c0d4700c3dd510d11e7cb02353214b36.png
はんなりPythonの会
第3週金曜日がはんなりPython定例会(最近はLT会)
今後もイベント盛り沢山
12月のLT会もヨロです
書き込みリンク
https://scrapbox.io/projects/hannari-python/invitations/bd627a7a804ebd568f3af97a1235d177
セルフページも是非!!
運営募集中
こんなことやってほしいとか
ハッシュタグ #はんなりPython #また出たなForkwell #また来てねSony
本日のLT
感想、思ったこと質問などを書いていただけると幸いです。
1.What's new Python3.9 #hideyan
こんにちは
質問や感想も自由にどうぞ。masayuki14.icon
質問はチャットからもどうぞ。masayuki14.icon
わくわく。
2.PEP585(listやdictのGeneric型化)について #nikkie
型ヒントのお話
静的型チェッカー
組み込み型がジェネリック型になった
なんでdeprecated??
3.9使わないとtypingを使わないといけない。将来直さないといけない。
機械学習のパッケージは最新バージョンに上がるのが半年くらいかかる
PEP560がエモい。
型ヒントが受け入れられたからCPython自体を変えられる。Pythonが現状に合わせて進化している
Listとかを引数にしない方が好ましいです。
抽象コレクション型を使うべき
凄い整理されたお話で分かりやすかったです hideyan.icon
3. 3.9 で追加された ast モジュールの新機能 ast.unparse #t2y
発表資料
ast.unparse ヘルパー関数
抽象構文木 Pythonハッカーガイドブック
ast : astの表現を文字列で見れる
ast.dump()の引数にindentが追加された。見やすくなった
ソースコード -> AST -> コードオブジェクト -> 実行
disモジュール アセンブラが確認できる
astを使って言語をハックできる
静的解析とかに使われている
プログラミング言語好きにはおススメ
前置き
ast.unparse
あったらいいのにが10年以上経て提供された
この周りはちょっとおもしろいので勉強します~ hideyan.icon
4. 新規モジュール graphlib のご紹介 #malo21st
LT資料:https://docs.google.com/presentation/d/11w4e9yTNs22r5vqEspF9il4EokvGkjAkmXxaUTty-fc/edit?usp=sharing
私のハンドルネームmalo21stですが、maloはすでに使われている(特に、イタリア系の人が名のっている)から21stをつけた
(ここから本題)
graphlibが気になった理由
すたPyのオーガナイザの辻先生がつぶやかれていた
graphlib
graphlibは、250行程度の短いプログラム
6つのメソッドでコントロールできる
トポロジカルソートができる(これ一つと言っても過言ではない)
DAG(有向非巡回グラフ)でないとエラーになる(有向巡回グラフはエラー!)
networkX
トポロジカルソートもできる
しかし、トポロジカルソートはgraphlibの方が早い
グラフ理論全般を扱うならコレ
結論:graphlibは、トポロジカルソートのみで使うなら良いぞ
(その他)
Python3.7でも、graphlib.py のセイウチ演算子(:=)を書き替えたら使える
LTで使用したグラフ図は、graphviz で可視化した
anacondaの方は、conda install -c conda-forge python-graphviz でインストールするとうまくいきます。
【サポートコーナー】
今回のLTで3つの異なるやり方でトポロジカルソートして、すべて違う結果だけどそれでいいの? トポロジカルソートの処理結果は、たくさんある中の1つを出力してるけど、本当にそれでいいの?
トポロジカルソートの結果は、一意に決まることは、ほとんどありません。今回3つ方法の処理結果は異なりますが、すべて正解です。
なお、netoworkXには、すべてのトポロジカルソートの処理結果を返すメソッドがあります。nx.all_topological_sorts(DAG) とするとすべての結果を返してくれます。ちなみにLTのグラフで実行すると150通りの処理結果が返って来ました。
networkXのトポロジカルソートの topological_sort と lexicographical_topological_sort は、何が違うの?
lexicographical_topological_sort は、辞書式トポロジカルソートとも言われます。どうもこれは、DFS(深さ優先探索)で実装しているみたいです。
ここを参考にLT資料作りました。https://showa-yojyo.github.io/notebook/python-networkx/topological-sorting.html
5. PidfdChildWatcherについて #yasshieeee
プロセスIDを監視する
ゴールディロックスに監視してくれる?
並列処理なお話
うどんでたとえる
multiprocessing
asyncio
threading
6. zoneinfoを使おう #hrsano645
スライド: https://gitpitch.com/hrsano645/slides?p=20201120_hannaripy#/1
タイムゾーン
zoneinfo
datetime.now()
タイムゾーンは設定されていない
指定しろ
aware と naive
混ざると困ることがある
windowsはtzinfoをインストールを!!!
#event
#LT