PyCon JP 2024

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 を用いて、型安全なクエリビルダーの開発を検討しましたが、技術的な壁にぶつかったため現実的な解決策をとったものになります。


Why did you choose this topic?

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

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

Knowledges and know-how the audience can get from your talk

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

Prior knowledges speakers assume the audience to have

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

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

Audience experiment

Beginner

Language of presentation

日本語

Language of presentation material

日本語

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