PyCon JP 2024

ロケール設定が保存されました。pretalxでは英語のサポートが充実していると思っていますが、問題やエラーが発生した場合は、ぜひご連絡ください。

Pydantic x Database API:Turu-pyの開発
2024/09/27 , 20F Track1

データ分析基盤を開発しているチームで Snowflake を安全に利用するために、 Turu-py というライブラリを開発した話をします。


Pydantic 利用したクエリ結果のバリデーションを簡単に行う PEP 249 – Python Database API のラッパーライブラリ Turu-py を作成しました。

チームメンバーは SQL を書くことに慣れており、またデータ分析基盤を扱う関係上、複雑なクエリ文を書くことが多いチームであったため、 ORM ではなく素の SQL を用いて開発をした方が良いと判断し、クエリ結果を型安全に扱えるライブラリを作成しました。

Turu-py の前に、Python 3.12 の Type Parameter Syntax を用いて、型安全なクエリビルダーの開発を検討しましたが、技術的な壁にぶつかったため現実的な解決策をとったものになります。


この題材を選んだ理由やきっかけ

チーム開発で利用するライブラリを公開しながら開発をしたので、そのあたりの話をできればと思いました。

また、上手くいかなかったものの、このライブラリを作る前に Python 3.12 で導入された Type Parameter Syntax の検証で作成したクエリビルダーの話をすることができます。

オーディエンスが持って帰れる具体的な知識やノウハウ

PEP249 Database API の話や turu-py というアプリの使い方。
Protocol や TypedDict、 Unpack 周りの Python の型付けの話。

オーディエンスに求める前提知識

Python を知っているのなら、それほど難しくありません。

typing を用いた型付きの知識を持っていると尚良いです。

オーディエンスの経験レベル

Beginner

発表の言語

日本語

発表資料の言語

日本語

See also: Pydantic x Database API:turu-pyの開発.pptx