#Python

147 件の記事

logging と観測性
読了 9分

logging と観測性

標準 logging の落とし穴、structlog などの構造化ロギング、OpenTelemetry での分散トレース、Sentry でのエラートラッキングまで。

Pydantic v2 の深層 — 検証、シリアライズ、カスタム validator
読了 11分

Pydantic v2 の深層 — 検証、シリアライズ、カスタム validator

FastAPI の核である Pydantic を独立した章で掘り下げます。v2 の性能と API の変化、model_validator/field_validator の使いどころ、シリアライズ制御、JSON Schema 生成までを扱います。

Python自動化 #4 — Webスクレイピング ②: Playwright で動的ページを扱う
読了 5分

Python自動化 #4 — Webスクレイピング ②: Playwright で動的ページを扱う

requests で取得すると空の HTML しか返ってこない JavaScript レンダリングページを Playwright で扱います。インストールと最初のスクリプトから、wait_for_selector による待機、ログイン自動化、無限スクロール、CSV 保存まで一気に整理します。

typing 上級 — Variance、ParamSpec、Self、overload
読了 8分

typing 上級 — Variance、ParamSpec、Self、overload

中級 typing の次の段階として、covariance/contravariance、ParamSpec と Concatenate、Self、TypeGuard/TypeIs、@overload までまとめます。

typing 本格 — Generic、Protocol、TypedDict、Literal
読了 8分

typing 本格 — Generic、Protocol、TypedDict、Literal

基礎の型ヒントの次の段階 — 型をパラメータ化する Generic、ダックタイピングを正確に書く Protocol、dict の形を明示する TypedDict、狭い union の Literal までを整理します。

uv でのライブラリ公開 — pyproject.toml と PyPI リリース
読了 9分

uv でのライブラリ公開 — pyproject.toml と PyPI リリース

pyproject.toml の意味を一度に整理し、uv build・uv publish で最初のライブラリを PyPI にリリースする手順を扱います。

イテラブル、ジェネレータ、yield from
読了 8分

イテラブル、ジェネレータ、yield from

for がどう動作するかを扱います。イテラブルプロトコル、ジェネレータ関数と式、yield from による委譲、send/throw までを整理します。

ルーティング、Pydantic モデル、依存性注入
読了 7分

ルーティング、Pydantic モデル、依存性注入

APIRouter でルートを分離し、Pydantic v2 スキーマで入出力を定義し、Depends で共通ロジックを分離するパターンまでまとめます。

エラーと例外処理
読了 8分

エラーと例外処理

try/except/else/finally の役割、raise とユーザー定義例外、そして 3.11 がもたらした ExceptionGroup と except* までまとめます。

コレクションと内包表記
読了 7分

コレクションと内包表記

list/tuple/dict/set の 4 コレクションの使いどころと、一行で新しいコレクションを作る内包表記・ジェネレータ式までまとめます。

コンテキストマネージャ (with、contextlib)
読了 7分

コンテキストマネージャ (with、contextlib)

try/finally を一行にする with、__enter__/__exit__ による自作、@contextmanager で生成器のように短く作る方法、そして ExitStack/suppress などの実戦の道具まで整理します。

ディスクリプタと __set_name__
読了 8分

ディスクリプタと __set_name__

property が動作する原理 — __get__/__set__ プロトコルとデータ / 非データディスクリプタ、__set_name__ できれいなバリデーションフィールドを作るところまでまとめます。