Metadata-Version: 1.1
Name: mongocapsule
Version: 0.1.2
Summary: Encapsulated MongoEngine.
Home-page: https://github.com/prashnts/mongocapsule
Author: Prashant Sinha
Author-email: prashant@ducic.ac.in
License: MIT
Download-URL: https://github.com/prashnts/mongocapsule/tarball/0.1.2
Description: MongoCapsule
        ============
        
        |Build Status|
        
        |Code Climate|
        
        |Test Coverage|
        
        |PyPI|
        
        |PyPI|
        
        Overview
        --------
        
        MongoCapsule is a very thin wrapper around MongoEngine built for your
        happiness. It encapsulates MongoEngine attributes under a single
        namespace and hence allows explicit declaration without context
        switches.
        
        In addition to that, MongoCapsule adds pagination support to all the
        query results.
        
        MongoEngine is a great ORM for using MongoDB in any Python project.
        However, since MongoEngine works in “contexts”, using multiple databases
        requires trickery such as ``db_alias`` and ``switch_db``. MongoCapsule
        solves this by attaching references to MongoEngine attributes to itself.
        
        Quickstart
        ----------
        
        If you are familiar with MongoEngine, you can use MongoCapsule already!
        Create the database object and use it to define your document and
        fields.
        
        .. code:: python
        
            from mongocapsule import MongoCapsule
        
            db = MongoCapsule('test_db')
        
            class Fruits(db.Document):
                name = db.StringField()
        
        Refer to `MongoEngine Docs`_ for details.
        
        Installation
        ------------
        
        To install use pip:
        
        .. code:: bash
        
                pip install mongocapsule
        
        Or clone the repo:
        
        .. code:: bash
        
                git clone https://github.com/prashnts/mongocapsule.git
                python setup.py install
        
        Additional API
        --------------
        
        MongoCapsule adds Pagination support to the MongoEngine ``QuerySet``
        object. It returns 10 objects per page, however, this can be changed.
        
        .. code:: python
        
        
            # Obtain nth Page of any arbitrary query:
        
            query_results = Document.objects(...).sort(...)
        
            result_page = query_results.page(2)     # Obtain second page
        
            total_pages = query_results.page_count
        
            # Update number of items returned per page:
        
            db.QuerySet.set_page_limit(20)
        
        Contributing
        ------------
        
        Code Patches, suggestions and bug reports welcome! Please use GitHub
        issues for the same.
        
        Rant
        ----
        
        I wrote this module because the examples in official MongoEngine
        documentation encourages using ``from mongoengine import *`` which not
        only pollutes the local namespace, but makes class definitions implicit.
        Of course, cherrypicked imports are possible, however that requires a
        lot of extra imports in each files.
        
        The biggest problem, however, comes when you’re using multiple databases
        or hosts – in those cases, you need to use context switches or ugly
        ``meta`` attributes in the declaration.
        
        .. _MongoEngine Docs: http://docs.mongoengine.org/index.html
        
        .. |Build Status| image:: https://img.shields.io/travis/prashnts/mongocapsule/master.svg
           :target: https://travis-ci.org/prashnts/mongocapsule
        .. |Code Climate| image:: https://img.shields.io/codeclimate/github/prashnts/mongocapsule.svg
           :target: https://codeclimate.com/github/prashnts/mongocapsule
        .. |Test Coverage| image:: https://img.shields.io/codeclimate/coverage/github/prashnts/mongocapsule.svg
           :target: https://codeclimate.com/github/prashnts/mongocapsule
        .. |PyPI| image:: https://img.shields.io/pypi/pyversions/mongocapsule.svg?maxAge=2592000
           :target: https://pypi.python.org/pypi/mongocapsule
        .. |PyPI| image:: https://img.shields.io/pypi/v/mongocapsule.svg?maxAge=2592000
           :target: https://pypi.python.org/pypi/mongocapsule
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
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.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
