AnswerDotAI/fastcore
Python supercharged for the fastai library
何を解決するか
Python 標準ライブラリの制限や「荒削りな部分」に対処し、Ruby や Haskell、NumPy などの言語からインスパイアされた機能を導入します。データ操作、クラス拡張、並列処理のための欠落しているユーティリティを提供することで、Python をより柔軟で表現力豊かな言語にします。
動作方法
fastcore は以下のメカニズムを通じて Python の動的性を拡張します:
- 拡張されたデータ構造: 標準の
listをLに置き換え、高度なインデックス操作とメソッドチェーンをサポートします。 - メタプログラミング:
@patchデコレータを使用して、既存のクラス(ビルトインも含む)にメソッドを追加できます。サブクラス化は不要です。 - 関数型ツール: カリー化、バインディング、合成、マッピングのためのユーティリティを提供し、関数型プログラミングスタイルを可能にします。
- 開発者ユーティリティ:
store_attr()で__init__メソッド内の属性割り当てを自動化し、@delegatesでキーワード引数の処理と IDE サポートを改善します。
対象ユーザー
より簡潔で読みやすく、関数型プログラミングスタイルのコードを書きたい Python 開発者、また標準の Python コレクションや並列処理ツールのより強力な代替手段を探している開発者。
主な特徴
- L クラス:
listの即時置き換えで、コレクションベースのインデックス操作と組み込みの.map()および.filter()メソッドを備えます。 - モンキーパッチ:
@patchデコレータにより、既存のクラスをスムーズに拡張できます。 - ボイラープレート削減:
store_attr()でクラス初期化を簡素化します。 - 並列処理: より使いやすい並列実行を可能にする拡張された
ThreadPoolExecutorとProcessPoolExecutor。 - 拡張された Pathlib: 標準の
Pathクラスにls()やread_json()などの有用なメソッドを追加します。 - CLI ツール:
fastcore.scriptで Python 関数を迅速にコマンドラインインターフェースに変換できます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト