タグ

ブックマーク / zenn.dev/ara_ta3 (2)

  • PythonのProtocolとdependency-injectorでDIする

    概要 Python には他の静的型付け言語のような明確な interface キーワードがありませんが、それに代わる Protocol という概念を最近知りました。 そこで、個人的に好んで使っている「Service クラスに Repository を注入する」という DI(依存性注入)パターンを、この Protocol を使って Python でどう実現できるか試してみることにしました。 この記事では、dependency-injector も組み合わせ、その具体的な実装方法をサンプルコードと共に備忘録として残します。 今回使ったコードは以下に置いてあります。 Protocol でインタフェースを定義する まずはインタフェースを Protocol を使って定義します。 Protocol とは Python の Protocol は、Go 言語の interface に非常によく似た概念です

    PythonのProtocolとdependency-injectorでDIする
    sh19910711
    sh19910711 2025/07/28
    "Go 言語の interface に非常によく似た概念 / いわゆる構造的部分型(structural subtyping)と呼ばれ / 具象クラスと、それを利用するコードとの間に疎結合な関係を築くことができ、柔軟でテストしやすい設計が可能"
  • Claude Code Actionでコマンド実行するためのallowed_tools設定例

    はじめに Claude Code Action は、AI アシスタントによるコード生成や編集を支援する機能ですが、デフォルトではセキュリティ上の理由からコマンド実行が制限されています。 この記事は、allowed_tools の設定を追加して、npm コマンド等を実行できるようにしたときの備忘録です。 環境 サンプルコード まずはサンプルコードです。 uvu によるシンプルなテストコードを用意し、それを実行するためのコマンドを package.json の scripts に用意しました。 tree . ├── node_modules ├── package-lock.json ├── package.json └── sample.test.js 2 directories, 3 files cat package.json { "name": "claude-code-action-

    Claude Code Actionでコマンド実行するためのallowed_tools設定例
    sh19910711
    sh19910711 2025/06/07
    "デフォルトではセキュリティ上の理由からコマンド実行が制限 / 特定のコマンドのみにしたい場合は Bash(npm:*),Bash(node:*) のように記述 / サブコマンドまで指定したい場合は Bash(npm install),Bash(npm run test) "
  • 1