diff --git a/AUTHORS.md b/AUTHORS.md new file mode 100644 index 0000000..202aafa --- /dev/null +++ b/AUTHORS.md @@ -0,0 +1,3 @@ +Erik Welch [@eriknw](https://github.com/eriknw/) + +[Matthew Rocklin](http://matthewrocklin.com) [@mrocklin](http://github.com/mrocklin/) diff --git a/README.rst b/README.rst index e304b68..6304326 100644 --- a/README.rst +++ b/README.rst @@ -1,6 +1,74 @@ CyToolz -===== +======= -Cython implementation of the `toolz `__ package. +|Build Status| |Coverage Status| |Downloads| -**CURRENTLY IN ALPHA** (but feedback and pull requests are most welcome!) +Cython implementation of the +|literal toolz|_ `package, ` which +provides high performance utility functions for iterables, functions, +and dictionaries. + +.. |literal toolz| replace:: ``toolz`` +.. _literal toolz: https://github.com/pytoolz/toolz + +``toolz`` is a pure Python package that borrows heavily from contemporary +functional languanges. It is designed to interoperate seemlessly with other +libraries including ``itertools``, ``functools``, and third party libraries. +High performance functional data analysis is possible with builtin types +like ``list`` and ``dict``, and user-defined data structures; and low memory +usage is achieved by using the iterator protocol and returning iterators +whenever possible. + +``cytoolz`` implements the same API as ``toolz``. The main differences are +that ``cytoolz`` is faster (typically 2-5x faster with a few spectactular +exceptions) and ``cytoolz`` offers a C API that is accessible to other +projects developed in Cython. Since ``toolz`` is able to process very +large (potentially infinite) data sets, the performance increase gained by +using ``cytoolz`` can be significant. + +See the PyToolz documentation at http://toolz.readthedocs.org and the full +`API Documentation `__ +for more details. + +LICENSE +------- + +New BSD. See `License File `__. + + +Install +------- + +``cytoolz`` is on the Python Package Index (PyPI): + +:: + + pip install cytoolz + +Dependencies +------------ + +``cytoolz`` supports Python 2.6+ and Python 3.2+ with a common codebase. +It is developed in Cython, but requires no dependecies other than CPython +and a C compiler. Like ``toolz``, it is a light weight dependency. + +Contributions Welcome +--------------------- + +``toolz`` (and ``cytoolz``) 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 +ang encourage users to scrape their ``util.py`` files for functions that are +broadly useful. + +Please take a look at our issue pages for +`toolz `__ and +`cytoolz `__ +for contribution ideas. + +.. |Build Status| image:: https://travis-ci.org/pytoolz/cytoolz.png + :target: https://travis-ci.org/pytoolz/cytoolz +.. |Version Status| image:: https://pypip.in/v/cytoolz/badge.png + :target: https://pypi.python.org/pypi/cytoolz/ +.. |Downloads| image:: https://pypip.in/d/cytoolz/badge.png + :target: https://pypi.python.org/pypi/cytoolz/ diff --git a/cytoolz/__init__.py b/cytoolz/__init__.py index 88e8c1b..15e003c 100644 --- a/cytoolz/__init__.py +++ b/cytoolz/__init__.py @@ -17,4 +17,4 @@ # Aliases comp = compose -from ._version import __version__ +from ._version import __version__, __toolz_version__ diff --git a/cytoolz/_version.py b/cytoolz/_version.py index 74fc1d9..f8f6e64 100644 --- a/cytoolz/_version.py +++ b/cytoolz/_version.py @@ -1 +1,2 @@ -__version__ = '0.5.3dev' +__version__ = '0.6.0dev' +__toolz_version__ = '0.6.0' diff --git a/setup.py b/setup.py index 69c21d9..aee4fff 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ -""" Build `cytoolz` with or without Cython. +""" Build ``cytoolz`` with or without Cython. Deployed versions of CyToolz do not rely on Cython by default even if the user has Cython installed. A C compiler is used to compile the distributed @@ -64,8 +64,46 @@ if __name__ == '__main__': setup( name='cytoolz', + version=VERSION, + description=('Cython implementation of Toolz: ' + 'High performance functional utilities'), cmdclass=cmdclass, ext_modules=ext_modules, + long_description=(open('README.rst').read() if exists('README.rst') + else ''), + url='https://github.com/pytoolz/cytoolz', + author='https://raw.github.com/pytoolz/cytoolz/master/AUTHORS.md', + author_email='erik.n.welch@gmail.com', + maintainer='Erik Welch', + maintainer_email='erik.n.welch@gmail.com', + licence = 'BSD', packages=['cytoolz'], package_data={'cytoolz': ['*.pxd']}, + # include_package_data = True, + keywords=('functional utility itertools functools iterator generator' + 'curry memoize lazy streaming bigdata cython toolz cytoolz'), + classifiers = [ + 'Development Status :: 4 - Beta', + 'Intended Audience :: Developers', + 'Intended Audience :: Education', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: BSD License', + 'Operating System :: OS Independent', + 'Programming Language :: Cython', + 'Programming Language :: Python', + 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 2.6', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.2', + 'Programming Language :: Python :: 3.3', + # 'Programming Language :: Python :: 3.4', + 'Topic :: Scientific/Engineering', + 'Topic :: Scientific/Engineering :: Information Analysis', + 'Topic :: Software Development', + 'Topic :: Software Development :: Libraries', + 'Topic :: Software Development :: Libraries :: Python Modules', + 'Topic :: Utilities', + ], + zip_safe=False )