GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

pytoolz

toolz – Pythonのための機能標準ライブラリ

投稿日:

Pythonのための機能標準ライブラリ。 http://toolz.readthedocs.org/

ツール

イテレータ、関数、および辞書用のユーティリティ関数のセット。

https://toolz.readthedocs.ioのPyToolzのドキュメントを参照してください。

ライセンス

新しいBSD。 ライセンスファイルを参照してください。

インストール

toolzはPython Package Index(PyPI)にあります:

pip install toolz

構造と遺産

toolzは3つの部分で実装されています:

iterableの操作のためのitertoolz 例: groupbyuniquegroupby

functoolz 、高次関数のために。 例: memoizecurrycompose

辞書の操作のためのdicttoolz 例: assocupdate-inmerge

これらの関数は、リスト処理のための機能的言語の遺産に由来します。 それらはよく相互運用され、一般的な複雑なタスクを達成します。

詳しくはAPIドキュメントをご覧ください。

これは、toolz内のtoolzから標準的な単語カウント関数を構築します。

>>> def stem(word):
...     """ Stem word to primitive form """
...     return word.lower().rstrip(",.!:;'-\"").lstrip("'\"")

>>> from toolz import compose, frequencies, partial
>>> from toolz.curried import map
>>> wordcount = compose(frequencies, map(stem), str.split)

>>> sentence = "This cat jumped over this other cat!"
>>> wordcount(sentence)
{'this': 2, 'cat': 2, 'jumped': 1, 'over': 1, 'other': 1}

依存関係

toolzは、共通のコードベースでPython 2.6+とPython 3.3+をサポートしています。 これは純粋なPythonであり、標準ライブラリ以外の依存関係を必要としません。

これは、要するに、軽量依存性である。

CyToolz

toolzプロジェクトはCythonで再実装されました。 cytoolzプロジェクトは、Pure Pythonの実装を置き換えるものです。 詳細は、 CyToolz Githubページを参照してください。

関連項目

  • Underscore.js :JavaScript用の同様のライブラリ
  • Enumerable :Ruby用の同様のライブラリ
  • Clojure :標準ライブラリにtoolzいくつかの対応がある関数型言語
  • itertools :イテレータツールのPython標準ライブラリ
  • functools :関数ツール用のPython標準ライブラリ

貢献歓迎

toolzはユーティリティ関数のリポジトリを目指しています。特に、関数型プログラミングとリスト処理の伝統に由来するものです。 この範囲に該当する寄付を歓迎します。

また、APIを小さく保ち、 toolz管理しやすくしています。 理想的な貢献は、既存の機能とは大きく異なり、いくつかの他の機能システムの先例があります。

投稿のアイデアについては、 問題のページご覧ください

コミュニティ

メーリングリストを参照してください。 私たちはフレンドリーです。







-pytoolz
-

執筆者: