InterpreterPoolExecutorはThreadPoolExecutorのサブクラスとして実装されています。各ワーカースレッドが独立したサブインタープリター上で動作し、サブインタープリターごとにGILが独立しているため、スレッドベースでありながら真の並列実行が可能です。 3つのExecutorの実行モデルを図にすると以下のようになります。ThreadPoolExecutorではすべて同一のGIL Aを利用し、ProcessPoolExecutorではメインプロセスの外側に子プロセスを作っています。InterpreterPoolExecutorのスレッドは、メインプロセスの内部でサブインタープリターごとに別々のGIL B〜Eを利用しています。 3つのExecutorの実行モデル InterpreterPoolExecutorを使用する 基本的な使い方(submit) Interp
2月12日にkarpathy氏がGistに投稿した以下のmicrogptをご存知でしょうか。 この記事を執筆してる時点で一週間が経過していますが、なおも修正が行われているこれは、GPTの構造をPythonで簡易的に実装したソースコードになります。GPTの構造を理解するのにも役立つ内容となっており、その行数は最新(2/18 11時時点)で、200行という短さです。 加えて、プログラムファイルの先頭にあるDocstringの通り、Pythonの標準ライブラリのみを使用して実装が行われているため、他の複雑なライブラリを理解することなく、たった200行でGPTを知ることができる内容だということです。すごいですね。 The most atomic way to train and run inference for a GPT in pure, dependency-free Python. 2/2
はじめに 今回は、DSPyの基本的な構成とその使い方について記事にしました。 以下の流れで解説していきます。 1. DSPyとはなにか 2. DSPyの構成要素(それぞれの使い方と概要) 3. DSPyの構成(プログラムとコンパイル) 4. 複数あるLLMとシグネチャの設定方法について 5. プログラムとコンパイル(プロンプトの最適化)の実行例 DSPy(ドキュメント) DSPy(Github) 作業環境(バージョン) Python: 3.11 DSPy: 3.1.2 DSPyとは DSPy(Declarative Self-improving Python)はLLMアプリケーションを構築するフレームワークの一つです。名前の通り 宣言的(Declarative) な設計で 自己改善(Self-improving) を行うことができます。 「・・・えっ、何が宣言的なの?自己改善ってなに??」
From idea to app in minutesAn internal tool or a dashboard for your team, weekend project, data entry form, kiosk app or high-fidelity prototype - Flet is an ideal framework to quickly hack a great-looking interactive apps to serve a group of users. Simple architectureNo more complex architecture with JavaScript frontend, REST API backend, database, cache, etc. With Flet you just write a monolith
Python開発を“全部入り”で高速化するPyBun紹介 TL;DR 単一バイナリで install/run/test/build などをまとめて扱うPythonツールチェーン 全コマンドが --format=json に対応し、CIやエージェントに組み込みやすい PEP 723(スクリプト埋め込み依存)対応、MCP対応、サンドボックス実行など “開発運用” を強く意識 PyBunとは? Pythonプロジェクトの インストール・実行・テスト・ビルド・診断・MCP連携 を単一バイナリでこなすCLIです。 「pip/venv/pytest/buildの分散運用をまとめたい」「機械可読出力でツール連携したい」「エージェント/CIから安全に扱いたい」という課題にフォーカスしています。 こんな人に向いている Python開発の“いつもの作業”を 1つのCLIに寄せたい(install/run/te
SessionSmithとは? Jupyter NotebookやPythonスクリプトの変数・オブジェクトの状態をまるごと保存&復元できたら便利ですよね。SessionSmithは、たった2行で「セッション保存」「復元」ができる超軽量ツールです。データ分析系のPJTでは、データ分析からモデル精度の改善まで一つのファイルで実施するのは困難です。また、一つのファイルに責務を詰め込むのはベターとは言えないですよね。 そこで、読み込んでいるローカル変数等を全て一括でpickleファイルに書き出し、それを別のファイルで読み込むことで、継続することができるようになります。特に、 Google Colabなどではセッションの再起動で、最初からやり直しとなることがあるので、中断する時にも便利ではないでしょうか。 📦 インストール
なるほど。つまり、WSGIでは1リクエスト1プロセス前提であり、WebSocketやSEEなどの継続接続に対応していないということだ。 では、WSGIなんて使わずに同期・非同期どちらも扱えるASGIを使った方がいいのでは..? ASGIは万能? 0から開発するのであれば、ASGI選定はほぼ最適解といえるだろう。しかし、WSGI対応で開発されたプロジェクトのASGIへのリプレイスコストや開発メンバの学習コストを考えたとき、それは最適解とならないかもしれない。 実際、自身のチームでは開発経験の浅いメンバがいたこともあり、WSGIを選定していた。 AIチャットの導入 先述した通り、私たちのプロジェクトはWSGI想定で開発されており、Renderでもgunicornで運用していた。そこに、ReActエージェントを用いたAIチャットの導入が企画された。実装の詳細は省くが、langChain + Op
はじめに この記事は静岡大学情報学部ITソルーション室アドベントカレンダーの2日目の記事として執筆されました。他の記事もぜひ御覧ください。 本文 Pythonで条件分岐を書くとき、全てのケースを網羅したつもりが漏れていた——そんな経験はありませんか?RustやHaskellならコンパイラが網羅性を検証してくれますが、Pythonでは実行時まで気づけません。 この記事では assert_never を使って、分岐の網羅性を静的解析で担保する方法を紹介します。 問題例:Union型の変更がコードを壊す 以下のようなコードを考えてみましょう。 class Pending: ... class Approved: ... OrderStatus = Pending | Approved def to_response(status: OrderStatus) -> dict: if isinsta
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに uv は速い。速さの一つが、キャッシュをアグレッシブに使っていることにあります。そのアグレッシブさゆえに、ユーザーがuvのキャッシュ機構を把握していないと、無関係なプロジェクトを知らず知らず破壊することがあります。 キャッシュを通じたプロジェクト破壊 uvのキャッシュは、デフォルトでプロジェクトを跨いで共有されます。特にLinuxやWindowsの場合 (macOSについては後述)、プロジェクトで uv add foo を実行してインストールしたパッケージ foo のファイルは、キャッシュファイルのハードリンクとなります。2回
この記事は LayerX Tech Advent Calendar 2025 23日目の記事です。 Ai Workforce事業部 プロダクト部 FDEグループ エンジニアの 堤 です。 本記事では、プログラムを書き始めたばかりの頃に Pythonの静的解析ツールである Ruff のエラー修正を通じて学んだ経験と、それを踏まえて作った ruff-tutor-mcp というMCPサーバー、そしてAIコーディング時代の学び方について書きたいと思います。 最近、エンジニアのみなさんはコーディングエージェントを使っているのではないでしょうか。特に、Claude Codeがリリースされてからその流れが加速したように感じます。私自身も、特にClaude Opus 4.5が出て以来、本当に自分でコードを書くことが減りました。Claude Codeにコンテキストとして与える要件をマークダウンで書く時間が圧
こちらの記事は「Medley(メドレー) - Qiita Advent Calendar 2025」の15日目の記事です🎄 👋 はじめに 株式会社メドレーに2025年4月に新卒入社した、おぎのしきぶと申します。 突然ですがエンジニアの皆さん、休日は何をして過ごしていますか? 毎日仕事でコーディングをしていて飽き飽きしていませんか? そんなとき、休日に行いたいことといえば、もちろん「業務に無関係なコーディング」ですよね。 今日は、そういった気持ちで始めた「プログラミングをするゲーム」が思ったよりも業務だったというお話をします。 🎮 ゲームの紹介 今回紹介するのは「農家は Replace() されました」というゲームです。 このゲームは、Pythonライクなプログラミング言語を使って農場を自動化していくプログラミングシミュレーションゲームです。 プレイヤーはコードを書いてドローンを操作し
筒井(@ryu22e)です。今月の「Python Monthly Topics」は、型チェッカー「Pyrefly」を紹介します。 Pyreflyの概要と特徴 PyreflyはMeta社が開発した型チェッカーです。ロゴがホタル(firefly)をイメージしたデザインで、「パイアフライ」と発音します[1]。 Pythonの型チェッカーといえばMypy、Pyrightなどの既存ツールがありますが、Pyreflyにはそれらにはない以下の特徴があります。 Rustで実装されているため、高速に動作 WASM版もあるため、ブラウザ上で利用可能 コードに自動で型ヒントを付ける機能 Meta社製の型チェッカーといえばPyreがありますが、PyreflyはPyreの後継ツールです。Pyreflyが誕生した経緯については、以下のMeta社のブログに詳細が書かれています。 Introducing Pyrefly
これは何? タイトルに書いた Python では super() は スーパークラスとは限らない という事実を知ってびっくりしたので、どういうときにそうなるか、困りそうなポイント、なんかを考えたのでそのことを記した記事。 先にちょっと書いておくと。 super() が書かれているクラスをいくら見てもわからないクラスを指すことがあるよ、という話。 親の親のこともあるよ、とかではない。だったらびっくりしない。 super() って 親クラスのメソッドを呼ぶための関数だとかよく書いてあるけど、公式には違うことが書いてある(強調引用者)。 super([type[, object-or-type]]) メソッドの呼び出しを type の親または兄弟クラスに委譲するプロキシオブジェクトを返します。 ここを見るだけで、親じゃないことがあるということがわかる。そしてその先には 2 つ目の用途は、動的な実
はじめに データ事業本部のkobayashiです。 Pythonでテストを書いていると、外部APIの呼び出しやデータベースへの接続、複雑な処理などで、想定以上に時間がかかってしまうテストケースに遭遇することがあります。特にCIパイプラインでテストが無限にハングしてしまうと、全体の開発フローがストップしてしまい、大きな問題となります。 今回は、pytestでテストにタイムアウトを設定できるpytest-timeoutというプラグインを試してみました。 pytest-timeoutとは pytest-timeoutは、個々のテストやテストセッション全体にタイムアウトを設定できるpytestプラグインです。テストが無限ループやデッドロックなどで永遠に終わらない問題を防ぎ、CI/CD環境でのテスト実行を安定させることができます。 主な特徴としては以下になります。 テスト関数ごと、またはテストセッシ
はじめに 僕は普段 Ruby を書いており、趣味でたまに Python を嗜む程度のプログラマです。今回、知らない間に t-strings という聞き慣れない機能が追加されていたので調べてみました。 Python 3.14 で導入された t-strings 2025/10/07 (火) (現地時間) に Python 3.14 がリリースされました 🚀 リリースの内容を見ると t-strings (PEP 750: Template Strings) という機能が追加されたようです。 Template strings are a new mechanism for custom string processing. They share the familiar syntax of f-strings but, unlike f-strings, return an object rep
はじめに 七尾百合子さん、お誕生日 96日目 おめでとうございます! nikkieです。 LLM、特にClaudeでPythonを書いていて気になる点を書きます。 目次 はじめに 目次 ログメッセージに限っては、f-stringはいけません Ruff Pylint 『Python実践レシピ』 根拠 ログメッセージ以外では、f-stringを使いましょう 終わりに ログメッセージに限っては、f-stringはいけません 各種リンタが指摘します。 なので、LLM(特にClaude)のこの傾向への対処としては、LLMにリンタの使い方も伝えて、自身に気付かせる1ことになるかなと思います Ruff 元はflake8のプラグイン(flake8-logging-format)からです logging.info(f"{user} - Something happened") ではなく logging.in
FFI(Foreign Function Interface)の型変換のオーバーヘッド RustとPythonを連携させるとき、悩ましい問題がデータの受け渡しです。 # ユーザは様々な形式でデータを渡してくる import numpy as np import pandas as pd # 素数判定をRustで高速化したい primes = rust_lib.is_prime_batch(np.array([2, 3, 4, 5, 6])) # NumPy primes = rust_lib.is_prime_batch([2, 3, 4, 5, 6]) # Python list primes = rust_lib.is_prime_batch(pd.Series([2, 3, 4, 5, 6])) # Pandas // 従来のPyO3での実装: 型変換地獄 #[pyfunction]
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く