diff options
author | vitalyisaev <vitalyisaev@ydb.tech> | 2023-11-30 13:26:22 +0300 |
---|---|---|
committer | vitalyisaev <vitalyisaev@ydb.tech> | 2023-11-30 15:44:45 +0300 |
commit | 0a98fece5a9b54f16afeb3a94b3eb3105e9c3962 (patch) | |
tree | 291d72dbd7e9865399f668c84d11ed86fb190bbf /contrib/python/toolz/py3/README.rst | |
parent | cb2c8d75065e5b3c47094067cb4aa407d4813298 (diff) | |
download | ydb-0a98fece5a9b54f16afeb3a94b3eb3105e9c3962.tar.gz |
YQ Connector:Use docker-compose in integrational tests
Diffstat (limited to 'contrib/python/toolz/py3/README.rst')
-rw-r--r-- | contrib/python/toolz/py3/README.rst | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/contrib/python/toolz/py3/README.rst b/contrib/python/toolz/py3/README.rst new file mode 100644 index 0000000000..e62ac7917e --- /dev/null +++ b/contrib/python/toolz/py3/README.rst @@ -0,0 +1,132 @@ +Toolz +===== + +|Build Status| |Coverage Status| |Version Status| + +A set of utility functions for iterators, functions, and dictionaries. + +See the PyToolz documentation at https://toolz.readthedocs.io + +LICENSE +------- + +New BSD. See `License File <https://github.com/pytoolz/toolz/blob/master/LICENSE.txt>`__. + +Install +------- + +``toolz`` is on the Python Package Index (PyPI): + +:: + + pip install toolz + +Structure and Heritage +---------------------- + +``toolz`` is implemented in three parts: + +|literal itertoolz|_, for operations on iterables. Examples: ``groupby``, +``unique``, ``interpose``, + +|literal functoolz|_, for higher-order functions. Examples: ``memoize``, +``curry``, ``compose``, + +|literal dicttoolz|_, for operations on dictionaries. Examples: ``assoc``, +``update-in``, ``merge``. + +.. |literal itertoolz| replace:: ``itertoolz`` +.. _literal itertoolz: https://github.com/pytoolz/toolz/blob/master/toolz/itertoolz.py + +.. |literal functoolz| replace:: ``functoolz`` +.. _literal functoolz: https://github.com/pytoolz/toolz/blob/master/toolz/functoolz.py + +.. |literal dicttoolz| replace:: ``dicttoolz`` +.. _literal dicttoolz: https://github.com/pytoolz/toolz/blob/master/toolz/dicttoolz.py + +These functions come from the legacy of functional languages for list +processing. They interoperate well to accomplish common complex tasks. + +Read our `API +Documentation <https://toolz.readthedocs.io/en/latest/api.html>`__ for +more details. + +Example +------- + +This builds a standard wordcount function from pieces within ``toolz``: + +.. code:: python + + >>> def stem(word): + ... """ Stem word to primitive form """ + ... return word.lower().rstrip(",.!:;'-\"").lstrip("'\"") + + >>> from toolz import compose, frequencies + >>> 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} + +Dependencies +------------ + +``toolz`` supports Python 3.5+ with a common codebase. +It is pure Python and requires no dependencies beyond the standard +library. + +It is, in short, a lightweight dependency. + + +CyToolz +------- + +The ``toolz`` project has been reimplemented in `Cython <http://cython.org>`__. +The ``cytoolz`` project is a drop-in replacement for the Pure Python +implementation. +See `CyToolz GitHub Page <https://github.com/pytoolz/cytoolz/>`__ for more +details. + +See Also +-------- + +- `Underscore.js <https://underscorejs.org/>`__: A similar library for + JavaScript +- `Enumerable <https://ruby-doc.org/core-2.0.0/Enumerable.html>`__: A + similar library for Ruby +- `Clojure <https://clojure.org/>`__: A functional language whose + standard library has several counterparts in ``toolz`` +- `itertools <https://docs.python.org/2/library/itertools.html>`__: The + Python standard library for iterator tools +- `functools <https://docs.python.org/2/library/functools.html>`__: The + Python standard library for function tools + +Contributions Welcome +--------------------- + +``toolz`` aims to be a repository for utility functions, particularly +those that come from the functional programming and list processing +traditions. We welcome contributions that fall within this scope. + +We also try to keep the API small to keep ``toolz`` manageable. The ideal +contribution is significantly different from existing functions and has +precedent in a few other functional systems. + +Please take a look at our +`issue page <https://github.com/pytoolz/toolz/issues>`__ +for contribution ideas. + +Community +--------- + +See our `mailing list <https://groups.google.com/forum/#!forum/pytoolz>`__. +We're friendly. + +.. |Build Status| image:: https://github.com/pytoolz/toolz/workflows/Test/badge.svg + :target: https://github.com/pytoolz/toolz/actions +.. |Coverage Status| image:: https://coveralls.io/repos/pytoolz/toolz/badge.svg?branch=master + :target: https://coveralls.io/r/pytoolz/toolz +.. |Version Status| image:: https://badge.fury.io/py/toolz.svg + :target: https://badge.fury.io/py/toolz |