AnswerDotAI/fastcore

Python supercharged for the fastai library

何を解決するか

Python 標準ライブラリの制限や「荒削りな部分」に対処し、Ruby や Haskell、NumPy などの言語からインスパイアされた機能を導入します。データ操作、クラス拡張、並列処理のための欠落しているユーティリティを提供することで、Python をより柔軟で表現力豊かな言語にします。

動作方法

fastcore は以下のメカニズムを通じて Python の動的性を拡張します:

  • 拡張されたデータ構造: 標準の listL に置き換え、高度なインデックス操作とメソッドチェーンをサポートします。
  • メタプログラミング: @patch デコレータを使用して、既存のクラス(ビルトインも含む)にメソッドを追加できます。サブクラス化は不要です。
  • 関数型ツール: カリー化、バインディング、合成、マッピングのためのユーティリティを提供し、関数型プログラミングスタイルを可能にします。
  • 開発者ユーティリティ: store_attr()__init__ メソッド内の属性割り当てを自動化し、@delegates でキーワード引数の処理と IDE サポートを改善します。

対象ユーザー

より簡潔で読みやすく、関数型プログラミングスタイルのコードを書きたい Python 開発者、また標準の Python コレクションや並列処理ツールのより強力な代替手段を探している開発者。

主な特徴

  • L クラス: list の即時置き換えで、コレクションベースのインデックス操作と組み込みの .map() および .filter() メソッドを備えます。
  • モンキーパッチ: @patch デコレータにより、既存のクラスをスムーズに拡張できます。
  • ボイラープレート削減: store_attr() でクラス初期化を簡素化します。
  • 並列処理: より使いやすい並列実行を可能にする拡張された ThreadPoolExecutorProcessPoolExecutor
  • 拡張された Pathlib: 標準の Path クラスに ls()read_json() などの有用なメソッドを追加します。
  • CLI ツール: fastcore.script で Python 関数を迅速にコマンドラインインターフェースに変換できます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト