この記事は2024年6月29日で公開された中国語の記事「Python 潮流周刊#58:最快运行原型的语言」の日本語訳です。主に LLM によって翻訳され、手修正で校正されていりますが、もし不自然の点が気づいたら、「記事の改善」機能で、編集リクエストをいただけるとありがたいです。
こちらから最新号まで購読できます(英語のみですので、ご了承ください。)
こんにちは、Python エンジニアのネコです。毎週、英語を中心とした高品質な Python、AI、そして一般的な技術に関する情報をお届けしています。また、Telegram のチャンネルでは、より幅広いニュースや情報も補足的に発信していますので、ぜひフォローしてみてください。
今週は、12本の記事と12のオープンソースプロジェクトを紹介しました。全文は2100文字です。
🦄記事&チュートリアル
決済システムは当初 COBOL 言語で開発され、1990年代に Java や C++ への移行が始まりましたが、現在はよりモダンな言語、すなわち Python へと移行しています。著者はこの現象について独自の見解を示し、4つの観点からその理由を説明しています。最も重要な点は、Python がプロトタイプを最速で実行可能にし、「早いが勝ち」と言われる現代において、主導権を握る地位を獲得できるということです。
2、PEP-2026 提案: Python がカレンダーバージョンを採用
前回号ですでに、Python がカレンダーバージョンを採用する提案についてお伝えしましたが、これが対応する PEP 提案です。形式は 3.YY.micro で、YY はそのバージョンがリリースされた年を示します。例えば 3.26 は 2026 年のリリースを意味します。
3、Python のルーティングとスケジューリングを最適化:新しい OSS のソルバー Timefold
Timefold のメリットと使用方法を紹介し、車両経路問題、従業員シフトスケジューリング、タスク割り当て、保守スケジューリング、その他の組合せ最適化問題の最適化に利用できます。
CPython インタプリタのソースコード詳細解析シリーズから、集合型がどのように実装されているか、そのデータモデル、主要メソッドの実装 (挿入、検索、削除、pop) について解説しています。
weakrefモジュールを使ったことがない方もいるかもしれませんが、これは多くのライブラリやフレームワーク、さらには Python 自体の基盤となっています。この記事では、弱参照とは何か、その用途、そして実際のコードでの使用方法について解説しています。
生成 AI はプログラマーの開発作業をより迅速かつ効率的に支援しています。著者は自身の経験をもとに、多数の漫画の中から目的の一枚を探し出す際に、AI がどのように段階的に支援するかを実演しています。問題やプロジェクトのアイデアを提示し、AI に繰り返し挑戦させることで、その可能性の限界を探ってみましょう。日常業務を改善するヒントが見つかるかもしれません。
著者がコマンドラインから LLM にアクセスする方法について講演を行い、この記事はその講演ビデオの解説付き文字起こし/補足版となっています。記事内には多数の参考資料が含まれています。
自作のパッケージを PyPI に公開するにはどんな手順が必要でしょうか? 公開要件を満たす Python パッケージの作り方はなんだろう? 利用できるパッケージビルドツールは? 設定ファイルの各項目の意味はなんです? パッケージの公開方法は? その他の注意点はあるんでしょうか?
プロジェクトを新しい環境にクローンして実行する必要に迫られたことは? セットアップ時の仮想環境作成や依存パッケージのインストールなどの作業は、スクリプトで自動化できます。記事では非常に基本的な実装例を紹介しています。
10、Make で Python 開発者エクスペリエンスを向上させる
生産性の高い Python 開発者は、どのようにツールを活用して開発環境の課題を解決しているのでしょうか? 筆者が長年の開発経験をもとに、Make と Makefile を活用して様々な問題を解決し、開発効率を向上させる方法を紹介しています。
著者は Notebook の流行が必ずしも良いことではないと考えています。記事では、個人での利用とチーム開発の両方の観点から、それぞれNotebookの問題点を4つずつ挙げています。バージョン管理の欠如、IDEのようにコードが読みやすく整理されていない、共同作業に向かない、移植性とテストの困難さなどが挙げられています。
12、6ヶ月かけて LiveAPI プロキシを開発して得た10の教訓
実際のプロジェクト開発では、筆者と同じような状況に直面することがあるかもしれません:問題Aを解決するために、数々の困難を乗り越えてソリューションBを実装したものの、その後、特定の条件下では機能しないことが判明し、最終的には新たなソリューションCを採用せざるを得なかった、といったケースです。この問題解決の過程で、貴重な教訓が得られました。
🐿️プロジェクト&リソース
1、Your-Journey-To-Fluent-Python:Fluent Python への道
これはオープンソースの Python 電子書籍で、全30章構成となっています。Python の基礎から応用までの一連の内容を網羅しており、オンライン閲覧可能で、PDF版もダウンロードできます。
CLI ライブラリで、ローカル環境の大規模言語モデルと連携したり、クラウド上の大規模言語モデルを呼び出せます。コマンドラインでプロンプトを実行して、結果を SQLite に保存して、埋め込みを生成するなどの機能を提供します。(スター数 3.4K)
3、lmdocs:LLM で Python プロジェクトのドキュメントを生成する
プロジェクト開発が完了したら、大規模言語モデル (LLM) が直接すべてのドキュメントを生成してくれます!
4、make-python-devex:Make、Homebrew、pyenv、poetry などのツールを使った実例
Python 開発環境構築時の、環境管理、バージョン選択、依存関係管理などの課題に対する設定例です。
5、vulture:未使用の Python コードを検出する
このライブラリの名前「vulture」は「ハゲワシ」意味で、その用途を的確に表しています:コード内のデッドコードを検出して除去します。静的コード解析を使用しているため、高速に動作します。(スター数 3.2K)
6、CleanMyWechat: PC 版 WeChat のキャッシュファイルを自動削除
PC 版 WeChat 向けのクリーナーツールで、すべてのチャットで自動的にダウンロードされた大量のファイル、動画、画像などのデータを自動削除し、ストレージ容量を解放します。(スター数 4.2K)
7、wxauto:Windows 版 WeChat の自動化、メッセージの送受信が可能なシンプルな WeChat ボット
Windows 版 WeChat 向けの自動化ツールで、メッセージの送受信やチャット画像の保存が可能です。(スター数 1.8K)
8、youdaonote-pull:クリックで Youdao ノートの全ノートをエクスポート/バックアップ
中国のノートアプリである Youdao ノートの全ノートを元のフォーマットでダウンロードし、Markdown に変換できます。デフォルトでは Youdao ノートの画像をローカルにダウンロードし、SM.MS へのアップロードも指定可能です。(スター数 1.2K)
9、reladiff:クロスデータベースでの大規模データセット高速比較
異なるデータベース間でのデータ比較を、データベース内で差分計算を行い、データ転送を最小限に抑えることで高性能を実現します。ハッシュマッチングベースの分割統治アルゴリズムを採用し、10以上のデータベースに対応しています。
完全な人事管理システムで、13の異なるモジュールで構成されています。フロントエンドには Vue フレームワークを採用しています。
11、burr:意思決定が可能なアプリケーション(チャットボット、エージェント、シミュレーションなど)を構築
LLMを利用するあらゆるプロジェクトに対応し、リアルタイムの追跡・監視システムインターフェースを提供します。
12、thread:AI搭載の Jupyter Notebook
おなじみの Jupyter Notebook 環境で、ローカル環境の AI を活用してコードセルの生成・編集、エラーの自動修正、データとのチャット機能を利用できます。
🐧 バックナンバー
Python トレンド週刊#8:Python 3.13 ではインタープリターの 50% 高速化を計画しています!(2023.06.24)日本語訳
🐱購読はこちら
技術ニュースレターは、情報過多の時代において質の高い知識を見極めるためのスマートな手段です。このプラットフォームは日本の Python 開発者向けに特化しており、シェアする価値のある記事、チュートリアル、オープンソースプロジェクト、ソフトウェアツール、ポッドキャスト、動画、話題のトピックなど、豊富なコンテンツを厳選してご紹介します。今すぐ購読すると、毎週1本の記事が配信され、少しずつスキルアップできます。