はじめに この記事は静岡大学情報学部ITソルーション室アドベントカレンダーの2日目の記事として執筆されました。他の記事もぜひ御覧ください。 本文 Pythonで条件分岐を書くとき、全てのケースを網羅したつもりが漏れていた——そんな経験はありませんか?RustやHaskellならコンパイラが網羅性を検証してくれますが、Pythonでは実行時まで気づけません。 この記事では assert_never を使って、分岐の網羅性を静的解析で担保する方法を紹介します。 問題例:Union型の変更がコードを壊す 以下のようなコードを考えてみましょう。 class Pending: ... class Approved: ... OrderStatus = Pending | Approved def to_response(status: OrderStatus) -> dict: if isinsta

