chevron_left

メインカテゴリーを選択しなおす

cancel
きり丸
フォロー
住所
未設定
出身
未設定
ブログ村参加

2022/07/22

arrow_drop_down
  • FastAPIのpydanticの422UnprocessableEntityはExceptionのExceptionHandlerではキャッチできない

    FastAPIで意図しないエラーが発生したときにExceptionでハンドリングしていましたが、それだけではpydanticで発生するエラーがキャッチできなかったのでメモします。 なお、pydanticはAPIのRequestとResponseのモデルで使用していますので、フロントのバリデーションエラーと考えてください。 環境 Python 3.11 FastAPI 0.105.0 pydantic 2.5.3 ゴール pydanticで発生していた次の詳細すぎるメッセージが返却されないこと。 { "detail": [ { "type": "greater_than_equal", "loc…

  • AnyIOのテストをasyncioだけで動かす(asyncioとtrioの2倍動かないようにする)

    AnyIOを使用しているテストで、意図せずにasyncioとtrioの2つで動いてしまったテストがあったので、asyncioだけにした時のメモ。 環境 Python 3.11 AnyIO 3.7.1 Pytest 7.4.3 実装 conftest.pyに次の処理を入れると、asyncioだけが動きます。 @pytest.fixture def anyio_backend(): return 'asyncio' テストをAnyIOで動かすには 次のどちらかで動きます。 # 先頭で宣言する pytestmark = pytest.mark.anyio # または、メソッドごとに定義する @pyt…

  • SQLで条件が一致しないレコードを特定する(NOT EXISTS)

    小ネタ。 特定の条件に一致するレコードを取得するのはINNER JOIN等を使う方法は知ってましたが、一致しないレコードを取得する方法を知らなかったのでメモします。 環境 MySQL 8 実装 NOT EXISTSを使えば条件一致しないレコードを特定できます。逆に条件一致するレコードを調べるときはEXISTSを使えば特定できます。 SELECT * FROM users WHERE NOT EXISTS(SELECT 1 FROM user_profiles WHERE users.id = user_profiles.id) 検証方法 USERSテーブルとUSER_PROFILESテーブルを…

  • Pythonのenumはint等のプリミティブ型を継承すると便利

    基本的には推奨されない書き方のようですが、使ってみて便利だったのでメモします。 環境 Python 3.12 実装 int等のプリミティブな型の継承は次のとおりです。 from enum import Enum class IntInheritEnum(int, Enum): ID = 1 # 列挙型ではなく、intとして振舞うため1にアクセスできる IntInheritEnum.ID # 本来のアクセス方法 IntInheritEnum.ID.value ただし、自作クラス等は継承できません。metaclassの競合が起きるため、クラスで定義したかったものがあれば、namedtuple等を使…

arrow_drop_down

ブログリーダー」を活用して、きり丸さんをフォローしませんか?

ハンドル名
きり丸さん
ブログタイトル
きり丸の技術日記
フォロー
きり丸の技術日記

にほんブログ村 カテゴリー一覧

商用