Metadata-Version: 1.2
Name: tinydb
Version: 3.15.2
Summary: TinyDB is a tiny, document oriented database optimized for your happiness :)
Home-page: https://github.com/msiemens/tinydb
Author: Markus Siemens
Author-email: markus@m-siemens.de
License: MIT
Project-URL: Documentation, http://tinydb.readthedocs.org/
Project-URL: Extensions, https://tinydb.readthedocs.io/en/latest/extensions.html
Project-URL: Issues, https://github.com/msiemens/tinydb/issues
Project-URL: Changelog, https://tinydb.readthedocs.io/en/latest/changelog.html
Description: .. image:: https://raw.githubusercontent.com/msiemens/tinydb/master/artwork/logo.png
            :scale: 100%
            :height: 150px
        
        |Build Status| |Coverage| |Version|
        
        Quick Links
        ***********
        
        - `Example Code`_
        - `Supported Python Versions`_
        - `Documentation <http://tinydb.readthedocs.org/>`_
        - `Changelog <https://tinydb.readthedocs.io/en/latest/changelog.html>`_
        - `Extensions <https://tinydb.readthedocs.io/en/latest/extensions.html>`_
        - `Contributing`_
        
        Introduction
        ************
        
        TinyDB is a lightweight document oriented database optimized for your happiness :)
        It's written in pure Python and has no external dependencies. The target are
        small apps that would be blown away by a SQL-DB or an external database server.
        
        TinyDB is:
        
        - **tiny:** The current source code has 1600 lines of code (with about 33%
          documentation) and 1800 lines of tests. For comparison: Buzhug_ has about 2500
          lines of code (w/o tests), CodernityDB_ has about 7000 lines of code
          (w/o tests).
        
        - **document oriented:** Like MongoDB_, you can store any document
          (represented as ``dict``) in TinyDB.
        
        - **optimized for your happiness:** TinyDB is designed to be simple and
          fun to use by providing a simple and clean API.
        
        - **written in pure Python:** TinyDB neither needs an external server (as
          e.g. `PyMongo <http://api.mongodb.org/python/current/>`_) nor any dependencies
          from PyPI.
        
        - **works on Python 2.7 and 3.3 – 3.7 and PyPy:** TinyDB works on all modern
          versions of Python and PyPy.
        
        - **powerfully extensible:** You can easily extend TinyDB by writing new
          storages or modify the behaviour of storages with Middlewares.
        
        - **100% test coverage:** No explanation needed.
        
        To dive straight into all the details, head over to the `TinyDB docs
        <https://tinydb.readthedocs.io/>`_. You can also discuss everything related
        to TinyDB like general development, extensions or showcase your TinyDB-based
        projects on the `discussion forum <http://forum.m-siemens.de/.>`_.
        
        Supported Python Versions
        *************************
        
        TinyDB has been tested with Python 2.7, 3.3 - 3.6 and PyPy.
        
        Example Code
        ************
        
        .. code-block:: python
        
            >>> from tinydb import TinyDB, Query
            >>> db = TinyDB('/path/to/db.json')
            >>> db.insert({'int': 1, 'char': 'a'})
            >>> db.insert({'int': 1, 'char': 'b'})
        
        Query Language
        ==============
        
        .. code-block:: python
        
            >>> User = Query()
            >>> # Search for a field value
            >>> db.search(User.name == 'John')
            [{'name': 'John', 'age': 22}, {'name': 'John', 'age': 37}]
        
            >>> # Combine two queries with logical and
            >>> db.search((User.name == 'John') & (User.age <= 30))
            [{'name': 'John', 'age': 22}]
        
            >>> # Combine two queries with logical or
            >>> db.search((User.name == 'John') | (User.name == 'Bob'))
            [{'name': 'John', 'age': 22}, {'name': 'John', 'age': 37}, {'name': 'Bob', 'age': 42}]
        
            >>> # More possible comparisons:  !=  <  >  <=  >=
            >>> # More possible checks: where(...).matches(regex), where(...).test(your_test_func)
        
        Tables
        ======
        
        .. code-block:: python
        
            >>> table = db.table('name')
            >>> table.insert({'value': True})
            >>> table.all()
            [{'value': True}]
        
        Using Middlewares
        =================
        
        .. code-block:: python
        
            >>> from tinydb.storages import JSONStorage
            >>> from tinydb.middlewares import CachingMiddleware
            >>> db = TinyDB('/path/to/db.json', storage=CachingMiddleware(JSONStorage))
        
        
        Contributing
        ************
        
        Whether reporting bugs, discussing improvements and new ideas or writing
        extensions: Contributions to TinyDB are welcome! Here's how to get started:
        
        1. Check for open issues or open a fresh issue to start a discussion around
           a feature idea or a bug
        2. Fork `the repository <https://github.com/msiemens/tinydb/>`_ on Github,
           create a new branch off the `master` branch and start making your changes
           (known as `GitHub Flow <https://guides.github.com/introduction/flow/index.html>`_)
        3. Write a test which shows that the bug was fixed or that the feature works
           as expected
        4. Send a pull request and bug the maintainer until it gets merged and
           published ☺
        
        .. |Build Status| image:: https://img.shields.io/azure-devops/build/msiemens/3e5baa75-12ec-43ac-9728-89823ee8c7e2/2.svg?style=flat-square
           :target: https://dev.azure.com/msiemens/github/_build?definitionId=2
        .. |Coverage| image:: http://img.shields.io/coveralls/msiemens/tinydb.svg?style=flat-square
           :target: https://coveralls.io/r/msiemens/tinydb
        .. |Version| image:: http://img.shields.io/pypi/v/tinydb.svg?style=flat-square
           :target: https://pypi.python.org/pypi/tinydb/
        .. _Buzhug: http://buzhug.sourceforge.net/
        .. _CodernityDB: https://github.com/perchouli/codernitydb
        .. _MongoDB: http://mongodb.org/
        
Keywords: database nosql
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Database
Classifier: Topic :: Database :: Database Engines/Servers
Classifier: Topic :: Utilities
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Operating System :: OS Independent
