DESCRIPTION.rst 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. CyToolz
  2. =======
  3. |Build Status| |Version Status|
  4. Cython implementation of the
  5. |literal toolz|_ `package, <https://pypi.python.org/pypi/toolz/>`__ which
  6. provides high performance utility functions for iterables, functions,
  7. and dictionaries.
  8. .. |literal toolz| replace:: ``toolz``
  9. .. _literal toolz: https://github.com/pytoolz/toolz
  10. ``toolz`` is a pure Python package that borrows heavily from contemporary
  11. functional languanges. It is designed to interoperate seamlessly with other
  12. libraries including ``itertools``, ``functools``, and third party libraries.
  13. High performance functional data analysis is possible with builtin types
  14. like ``list`` and ``dict``, and user-defined data structures; and low memory
  15. usage is achieved by using the iterator protocol and returning iterators
  16. whenever possible.
  17. ``cytoolz`` implements the same API as ``toolz``. The main differences are
  18. that ``cytoolz`` is faster (typically 2-5x faster with a few spectacular
  19. exceptions) and ``cytoolz`` offers a C API that is accessible to other
  20. projects developed in Cython. Since ``toolz`` is able to process very
  21. large (potentially infinite) data sets, the performance increase gained by
  22. using ``cytoolz`` can be significant.
  23. See the PyToolz documentation at https://toolz.readthedocs.io and the full
  24. `API Documentation <https://toolz.readthedocs.io/en/latest/api.html>`__
  25. for more details.
  26. LICENSE
  27. -------
  28. New BSD. See `License File <https://github.com/pytoolz/cytoolz/blob/master/LICENSE.txt>`__.
  29. Install
  30. -------
  31. ``cytoolz`` is on the Python Package Index (PyPI):
  32. ::
  33. pip install cytoolz
  34. Dependencies
  35. ------------
  36. ``cytoolz`` supports Python 2.7+ and Python 3.4+ with a common codebase.
  37. It is developed in Cython, but requires no dependecies other than CPython
  38. and a C compiler. Like ``toolz``, it is a light weight dependency.
  39. Contributions Welcome
  40. ---------------------
  41. ``toolz`` (and ``cytoolz``) aims to be a repository for utility functions,
  42. particularly those that come from the functional programming and list
  43. processing traditions. We welcome contributions that fall within this scope
  44. and encourage users to scrape their ``util.py`` files for functions that are
  45. broadly useful.
  46. Please take a look at our issue pages for
  47. `toolz <https://github.com/pytoolz/toolz/issues>`__ and
  48. `cytoolz <https://github.com/pytoolz/cytoolz/issues>`__
  49. for contribution ideas.
  50. Community
  51. ---------
  52. See our `mailing list <https://groups.google.com/forum/#!forum/pytoolz>`__.
  53. We're friendly.
  54. .. |Build Status| image:: https://travis-ci.org/pytoolz/cytoolz.svg?branch=master
  55. :target: https://travis-ci.org/pytoolz/cytoolz
  56. .. |Version Status| image:: https://badge.fury.io/py/cytoolz.svg
  57. :target: http://badge.fury.io/py/cytoolz