Metadata-Version: 1.1
Name: intbitset
Version: 2.4.1
Summary: C-based extension implementing fast integer bit sets.
Home-page: http://github.com/inveniosoftware/intbitset/
Author: Invenio collaboration
Author-email: info@inveniosoftware.org
License: LGPL-3.0-or-later
Description: ===========
         intbitset
        ===========
        
        .. image:: https://img.shields.io/travis/inveniosoftware/intbitset.svg
                :target: https://travis-ci.org/inveniosoftware/intbitset
        
        .. image:: https://img.shields.io/coveralls/inveniosoftware/intbitset.svg
                :target: https://coveralls.io/r/inveniosoftware/intbitset
        
        .. image:: https://img.shields.io/github/tag/inveniosoftware/intbitset.svg
                :target: https://github.com/inveniosoftware/intbitset/releases
        
        .. image:: https://img.shields.io/pypi/dm/intbitset.svg
                :target: https://pypi.python.org/pypi/intbitset
        
        .. image:: https://img.shields.io/github/license/inveniosoftware/intbitset.svg
                :target: https://github.com/inveniosoftware/intbitset/blob/master/LICENSE
        
        
        Installation
        ============
        
        intbitset is on PyPI so all you need is a C compiler and pip: ::
        
            pip install intbitset
        
        Documentation
        =============
        
        The ``intbitset`` library provides a set implementation to store sorted
        unsigned integers either 32-bits integers (between ``0`` and
        ``2**31 - 1`` or ``intbitset.__maxelem__``) or an infinite range
        with fast set operations implemented via bit vectors in a *Python C
        extension* for speed and reduced memory usage.
        
        The ``inbitset`` class emulates the Python built-in set class interface
        with some additional specific methods such as its own fast dump and load
        marshalling functions.  ::
        
            >>> from intbitset import intbitset
            >>> x = intbitset([1,2,3])
            >>> y = intbitset([3,4,5])
            >>> x & y
            intbitset([3])
            >>> x | y
            intbitset([1, 2, 3, 4, 5])
        
        ``intbitset`` additionally support the `pickle protocol
        <https://docs.python.org/2/library/pickle.html>`_, the `iterator protocol
        <https://docs.python.org/2/library/stdtypes.html#iterator-types>`_ and can
        behave like a ``sequence`` that can be sliced. Because the intergers are
        always stored sorted, the fist element of a non-empty set `[0]` is also
        the `min()` integer and the last element `[-1]` is also the `max()` integer
        in the set.
        
        When compared to the standard library ``set`` class, ``intbitset`` set
        operations such as intersection, union and difference can be up to 5000
        faster for dense integer sets.
        
        Complete documentation is available at <http://intbitset.readthedocs.io> or
        can be built using Sphinx: ::
        
            pip install Sphinx
            python setup.py build_sphinx
        
        Testing
        =======
        
        Running the tests are as simple as: ::
        
            python setup.py test
        
        Running the tests on multiple Python versions: ::
        
            pip install tox
            tox
        
        
        Development
        ===========
        
        To regenerate the C code with Cython: ::
        
            pip install cython
            cython intbitset/intbitset.pyx
        
        Then commit the regenarted C source and update the CHANGE.rst
        
        
        License
        =======
        
        Copyright (C) CERN and others
        
        SPDX-License-Indetifier: LGPL-3.0-or-later
        
        intbitset is free software; you can redistribute it and/or modify it under the
        terms of the GNU Lesser General Public License as published by the Free Software
        Foundation; either version 3 of the License, or (at your option) any later
        version.
        
        intbitset is distributed in the hope that it will be useful, but WITHOUT ANY
        WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
        PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
        
        You should have received a copy of the GNU Lesser General Public License along with
        intbitset; if not, write to the Free Software Foundation, Inc., 59 Temple
        Place, Suite 330, Boston, MA 02111-1307, USA.
        
        In applying this licence, CERN does not waive the privileges and immunities
        granted to it by virtue of its status as an Intergovernmental Organization or
        submit itself to any jurisdiction.
        
Platform: any
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Cython
Classifier: Programming Language :: C
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
