この記事は2024年5月25日で公開された中国語の記事「Python 潮流周刊#52:Python 处理 Excel 的资源」の日本語訳です。主に LLM によって翻訳され、手修正で校正されていりますが、もし不自然の点が気づいたら、「記事の改善」機能で、編集リクエストをいただけるとありがたいです。
こちらから最新号まで購読できます(英語のみですので、ご了承ください。)
こんにちは。毎週、Python や AI を中心とした高品質な技術情報をお届けしています。掲載している記事の多くは英語ですが、技術者にとって有益な内容を厳選して紹介しています。また、Telegramのチャンネル では、より幅広いニュースや情報も補足的に発信していますので、ぜひフォローしてみてください。
🦄記事&チュートリアル
この記事は2007年に執筆されたもので、正規表現の2つの実装方法を紹介し、比較しています。1つは従来の方法、もう1つは Thompson NFA 方式です。後者は特定のタスクで従来の方法より数百万倍も高速になる場合がありますが、普及度はまだ低いのが現状です。著者は、プログラミング言語がこの方式を採用することを提案しています。また、著者は正規表現に関する記事をさらに3本執筆しており、詳しくは記事の最後で紹介されています。
2、メモリ内でまだ実行中のコードを利用して、削除されたソースコードを復元するにはどうすればよいですか?
著者はうっかりローカルのソースコードを削除してしまいましたが、実行中の Docker コンテナからコードの復元に成功しました。使用したライブラリは pyrasite
と uncompyle6
で、記事ではその具体的な手順が詳しく紹介されています。
この PEP は Python 3.13 バージョンに統合される予定で、著者の一人には中国の開発者 @高天 さんが含まれています。初期の Python では、すべての名前空間が辞書で実装されていましたが、後にパフォーマンス向上のために関数の名前空間だけが別の方法で処理されるようになり、それによって予期しない挙動が発生するケースがありました。本提案では、すべての名前空間の実装を再び統一し、一貫性を持たせることを目指しています。
4、ただ 100 行のコードで Python の pyinstaller を代替する
著者が開発したpackaged
プロジェクトは、pyinstaller を代替し、Python プロジェクトを実行可能ファイルにパッケージングできるツールです。本記事では、その実装過程を紹介しており、特筆すべき点の一つは python-build-standalone を利用していることです。さらにユニークな点として、自己解凍型圧縮ツールの makeself を使用しています。
5、py.space:Python アプリケーションをウェブ上で無料開発
py.space
は最近公開されたWebサイトで、Anvil
のライト版とも言え、Web 上で動作する Python アプリケーションを開発できます。このチュートリアルでは、その基本的な機能について解説しています。
6、Python 3.12 での静的型付き関数型プログラミング
本記事は、Python 3.12 のパターンマッチングや typing
モジュールのジェネリック機能を活用し、データクラスと組み合わせることで、関数型プログラミングに類似した機能を実現する方法を紹介しています。match-case はまだあまり使われていませんが、本記事は良い活用例を示しています。
7、Python を使って GitHub のプロフィール README を動的に生成する方法
GitHub は個人の README ファイル追加をサポートしており、多くのオープンソースプロジェクトが、私たちのプロフィールページをカスタマイズすることを可能にしています。著者は、Python を使って自分のブログ記事の情報を取得し、GitHub Actions を利用して動的更新を実現しています。
pyastgrep
は著者が開発したライブラリで、XPath 構文で Python の特定の構文要素を検索できます。本記事では、他のツールではカバーできない独自のコーディング規約のチェックを実行するためのカスタムコードチェックとして、このライブラリをどのように活用するかを紹介しています。
9、pygments を使ってコードスニペットの画像を生成する
pygments
はコードやテキストをハイライト表示できるライブラリです。著者は PyCon での講演時にコードスニペットを提示するために、このライブラリを使用して自身のコードの画像を生成しました。この記事は、具体的な実装プロセス、利点、そして役立つ提案を紹介しています。
10、純粋な NumPy を使って Llama 3 を実装する
Llama 3 は、現在の代表的なオープンソースの LLM の一つです。本記事は、このモデルの主要なコンポーネントを詳細に解説し、深層学習フレームワークに依存せず、純粋な NumPy のみを使用して Llama 3 モデルを実装する方法を紹介しています。
この記事は、現時点では未解決の法的な問題を提起しています。AI によるプログラミング支援が普及し、人間が AI に依存して完成させるコードがますます増える中、これらのコードの知的財産権はどのように判断されるべきでしょうか。AI が生成した部分には法的に著作権が認められないため、法律的リスクをもたらす可能性があります。
12、「クレバーな」コードはあなたが書いた最悪のコードかもしれない
「クレバーなコード(clever code)」は、「クリアなコード(clear code)」ではない可能性が高いため、技巧的なワンライナーコードの多用を戒めています。コードの可読性は極めて重要であり、この記事は良いコードと悪いコードの違いを示し、クリアなコードを書くための具体的なアドバイスを提供しています。
🐿️プロジェクト&リソース
この Web サイトでは、Excelファイルを読み書きできるライブラリ(openpyxl、xlsxwriter、pyxlsb、pylightxl、xlrd、xlwt、xlutils)と、Excel のアドイン開発用ライブラリ(PyXLL、xlwings)が収録されています。
2、yen:Python のインストールが不要な仮想環境管理ツール
最もシンプルな Python 環境管理ツールと言われるツールで、Python の事前インストールは不要です。コードの半分は Rust で書かれています。
PyTorch のスキルアップのためのプログラミングパズルを21個収録しているリポジトリです。(スター数 2.8K)
IoC コンテナを提供し、オブジェクトの作成と管理を簡素化します。これにより、オブジェクトの手動での受け渡しやグローバル変数の使用を避けることができます。
5、hstream:Python スクリプトを Web アプリケーションに変換
Djangoと HTMX をベースに、Pythonスクリプトを対話的な Web アプリケーションに変身させます。
6、cover-agent:AI がテストを自動生成し、コードカバレッジを向上
AI がテストコードを自動生成することで、コードカバレッジを効果的に向上させるツールです。現在は主に単体テストを対象としており、現時点ではターミナルでの実行のみをサポートしています。(スター数 2.6K)
7、pygments:Python 製の汎用的な構文ハイライトツール
この構文ハイライトツールは、500 以上の言語とテキスト形式をサポートしており、コードリポジトリ、フォーラム、Wiki など、ソースコードの整形が必要な様々な場所で利用できます。(スター数 1.7K)
8、hashquery:データウェアハウスで BI モデルを定義・クエリ実行
データウェアハウスで BI モデルを定義し、クエリを実行するツールです。式は Python で定義され、SQL にコンパイルされます。複雑な多層クエリを表現でき、標準 SQL の表現能力を上回ります。
9、Python のメトリクス監視ライブラリには何がありますか?
Hacker News の質疑応答スレッドで、以下のようなプロジェクトが挙がっています:pymetrics、ddtrace、datadog、statsd、pyformance、Prometheus の Python クライアントなど。
10、stamina:本番環境で使用できる Python のリトライライブラリ
既存のライブラリ tenacity
をベースに開発され、本番環境向けのリトライライブラリです。主な特徴は、特定の例外の場合のみリトライする、指数バックオフ、非同期処理の自動対応、テスト用としてのグローバルな無効化が可能、そして、Prometheus と structlog と標準ライブラリの logging などに標準で対応している点です。
11、piku:自分のサーバーへの git push デプロイを可能にする
git push
コマンドを通じて、サーバーの規模を問わず、自分のアプリケーションを個人サーバーにデプロイできます。ARM および Intel アーキテクチャをサポートしており、Python、Nginx、uWSGIが動作するあらゆるクラウドサービスやベアメタルサーバーに適用可能です。(スター数2.6K)
自然言語に基づいて、実行可能な SQL ステートメントを生成しますが、PostgreSQL データベースのみをサポートしています。