hanpy_lt_34
はんなりPython #34 Python3.9 LT会 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への募金
投げ銭先
https://i.gyazo.com/c0d4700c3dd510d11e7cb02353214b36.png
はんなりPythonの会
第3週金曜日がはんなりPython定例会(最近はLT会)
書き込みリンク
セルフページも是非!!
運営募集中
こんなことやってほしいとか
本日のLT
感想、思ったこと質問などを書いていただけると幸いです。
こんにちは
質問や感想も自由にどうぞ。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
私のハンドルネーム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(深さ優先探索)で実装しているみたいです。
プロセスIDを監視する
ゴールディロックスに監視してくれる?
並列処理なお話
うどんでたとえる
multiprocessing
asyncio
threading
タイムゾーン
zoneinfo
datetime.now()
タイムゾーンは設定されていない
指定しろ
aware と naive
混ざると困ることがある
windowsはtzinfoをインストールを!!!