Metadata-Version: 1.1
Name: cyordereddict
Version: 1.0.0
Summary: Cython implementation of Python's collections.OrderedDict
Home-page: https://github.com/shoyer/cyordereddict
Author: Stephan Hoyer
Author-email: shoyer@gmail.com
License: MIT
Description: **This library is obsolete!** Python 3.5's ``collections.OrderedDict`` was `rewritten in C`_, and is now significantly faster than ``cyordereddict.OrderedDict`` for almost all operations.
        
        .. _rewritten in C: https://bugs.python.org/issue16991
        
        =============
        cyordereddict
        =============
        
        .. image:: https://travis-ci.org/shoyer/cyordereddict.svg?branch=master
            :target: https://travis-ci.org/shoyer/cyordereddict
        
        .. image:: https://badge.fury.io/py/cyordereddict.svg
            :target: https://pypi.python.org/pypi/cyordereddict
        
        The Python standard library's ``OrderedDict`` ported to Cython. A drop-in
        replacement that is 2-6x faster.
        
        Install:
            ``pip install cyordereddict``
        
        Dependencies:
            CPython (2.6, 2.7, 3.3 or 3.4) and a C compiler. Cython is only required
            for the dev version.
        
        Use:
            .. code-block:: python
        
                from cyordereddict import OrderedDict
        
        Benchmarks:
            Python 2.7:
        
            ==================  =================================  =========================
            Test                Code                                 Ratio (stdlib / cython)
            ==================  =================================  =========================
            ``__init__`` empty  ``OrderedDict()``                                        1.8
            ``__init__`` list   ``OrderedDict(list_data)``                               4.8
            ``__init__`` dict   ``OrderedDict(dict_data)``                               4.6
            ``__setitem__``     ``ordereddict[0] = 0``                                   8.6
            ``__getitem__``     ``ordereddict[0]``                                       3
            ``update``          ``ordereddict.update(dict_data)``                        5.5
            ``__iter__``        ``list(ordereddict)``                                    5.6
            ``items``           ``ordereddict.items()``                                  5.9
            ``__contains__``    ``0 in ordereddict``                                     2.3
            ==================  =================================  =========================
        
            Python 3.4:
        
            ==================  =================================  =========================
            Test                Code                                 Ratio (stdlib / cython)
            ==================  =================================  =========================
            ``__init__`` empty  ``OrderedDict()``                                        1.5
            ``__init__`` list   ``OrderedDict(list_data)``                               3.9
            ``__init__`` dict   ``OrderedDict(dict_data)``                               4.2
            ``__setitem__``     ``ordereddict[0] = 0``                                   8.4
            ``__getitem__``     ``ordereddict[0]``                                       2.9
            ``update``          ``ordereddict.update(dict_data)``                        6.5
            ``__iter__``        ``list(ordereddict)``                                    2.3
            ``items``           ``list(ordereddict.items())``                            2.1
            ``__contains__``    ``0 in ordereddict``                                     2.3
            ==================  =================================  =========================
            To run these yourself, use ``cyordereddict.benchmark()``
        
        Cavaets:
            ``cyorderedddict.OrderedDict`` is an extension type (similar to the
            built-in ``dict``) instead of a Python class. This is necessary for speed,
            but means that in a few pathological cases its behavior will differ from
            ``collections.OrderedDict``:
        
            * The ``inspect`` module does not work on ``cyorderedddict.OrderedDict``
              methods.
            * Extension types use slots instead of dictionaries, so you cannot add
              custom attributes without making a subclass (e.g.,
              ``OrderedDict.foo = 'bar'`` will fail).
        
            You can do anything else you might do with an OrderedDict, including
            subclassing: everything else passes the ``collections.OrderedDict`` test
            suite. We based the Cython code directly on the Python standard library,
            and thus use separate code bases for Python 2 and 3, specifically to
            reduce the potential for introducing new bugs or performance regressions.
        
        License:
            MIT. Based on the Python standard library, which is under the Python
            Software Foundation License.
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Cython
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
