Metadata-Version: 1.1
Name: jsonobject-couchdbkit
Version: 0.6.5.4
Summary: Python couchdb kit
Home-page: http://couchdbkit.org
Author: Benoit Chesneau
Author-email: benoitc@e-engura.com
License: Apache License 2
Description: About the jsonobject fork of couchdbkit
        ---------------------------------------
        `jsonobject-couchdbkit`_ is a fork of couchdbkit that replaces couchdbkit.schema
        with a thin wrapper around jsonobject
        (which was, incidentally, written as a **way** faster replacement
        for couchdbkit.schema.) See `jsonobject`_.
        
        About
        -----
        
        `Couchdbkit`_ provides you a full featured and easy client to access and
        manage CouchDB. It allows you to manage a CouchDBserver, databases, doc
        managements and view access. All objects mostly reflect python objects for
        convenience. Server and Databases objects could be used for example as easy
        as using a dict.
        
        .. image:: https://secure.travis-ci.org/benoitc/couchdbkit.png?branch=master
            :alt: Build Status
            :target: https://secure.travis-ci.org/benoitc/couchdbkit
        
        Installation
        ------------
        
        Couchdbkit requires Python 2.x superior to 2.6.
        
        To install couchdbkit using pip you must make sure you have a
        recent version of distribute installed::
        
            $ curl -O http://python-distribute.org/distribute_setup.py
            $ sudo python distribute_setup.py
            $ easy_install pip
        
        To install or upgrade to the latest released version of couchdbkit::
        
            $ pip install couchdbkit
        
        Getting started
        ---------------
        
        This tutorial exposes key features of this library mainly through code
        examples. For in-depth description of the modules, you'll want to read
        the `API`_ documentation.
        
        Write your first CouchDB document
        +++++++++++++++++++++++++++++++++
        
        ::
        
          from couchdbkit import Server
          # server object
          server = Server()
        
          # create database
          db = server.get_or_create_db("greeting")
        
          doc = {"mydoc": "test"}
          db.save_doc(doc)
        
        ::
        
          import datetime
          from couchdbkit import *
        
          class Greeting(Document):
              author = StringProperty()
              content = StringProperty()
              date = DateTimeProperty()
        
        
        Store the submitted Greetings
        +++++++++++++++++++++++++++++
        
        Here is the code to save a greet on ``Greeting``  database. We also see how to create a database::
        
          from couchdbkit import Server
        
          # associate Greeting to the db
          Greeting.set_db(db)
        
          # create a new greet
          greet = Greeting(
              author="Benoit",
              content="Welcome to couchdbkit world",
              date=datetime.datetime.utcnow()
          )
        
          # save it
          greet.save()
        
        .. NOTE::
        
          You can just use the db object to save a Schema: ``db.save(greet)`` .
        
        
        Your document ``greet`` is now in the ``greetings`` db. Each document
        is saved with a ``doc_type`` field that allow you to find easily each
        kind of document with the views. By default ``doc_type`` is the name of
        the class.
        
        Now that you saved your document, you can update it::
        
          greet.author = u"Benoit Chesneau"
          greet.save()
        
        Here we updated the author name.
        
        Dynamic properties
        ++++++++++++++++++
        
        Mmm ok, but isn't CouchDB storing documents schema less? Do you want to
        add a property ? Easy::
        
          greet.homepage = "http://www.e-engura.org"
          greet.save()
        
        Now you have just added an homepage property to the document.
        
        Get all greetings
        +++++++++++++++++
        
        You first have to create a view and save it in the db. We will call it
        ``greeting/all``. To do this we will use the loader system of couchdbkit
        that allows you to send views to CouchDB.
        
        Let's create a folder that contains the design doc, and then the folder
        for the view. On unix::
        
          mkdir -p ~/Work/couchdbkit/example/_design/greeting/views/all
        
        In this folder we edit a file `map.js`::
        
          function(doc) {
            if (doc.doc_type == "Greeting")
              emit(doc._id, doc);
              }
          }
        
        Here is a folder structure::
        
          /Work/couchdbkit/example/:
        
          --_design/
          ---- greetings
          ------ view
        
        Here is a  screenshot:
        
        .. image:: http://couchdbkit.org/images/gettingstarted.png
        
        
        A system will be provided to manage view creation and other things. As
        some  noticed, this system works like `couchapp`_ and is fully
        compatible.
        
        Then we use push function to send the design document to CouchDB::
        
          from couchdbkit.designer import push
          push('/path/to/example/_design/greetings', db)
        
        The design doc is now in the ``greetings`` database and you can get all
        greets::
        
          greets = Greeting.view('greeting/all')
        
        .. _jsonobject-couchdbkit: https://github.com/dannyroberts/couchdbkit/tree/jsonobject
        .. _jsonobject: http://github.com/dannyroberts/jsonobject
        .. _Couchdbkit: http://couchdbkit.org
        .. _API: http://couchdbkit.org/doc/api/
        .. _couchapp:  http://github.com/couchapp/couchapp/tree/
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Other Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.5
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Database
Classifier: Topic :: Utilities
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Provides: couchdbkit
Obsoletes: couchdbkit
