Metadata-Version: 1.0
Name: couchdbkit
Version: 0.4.10
Summary: Python couchdb kit
Home-page: http://couchdbkit.org
Author: Benoit Chesneau
Author-email: benoitc@e-engura.com
License: Apache License 2
Description: 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.
        
        Installation
        ------------
        
        Couchdbkit requires Python 2.x superior to 2.5.
        
        Install from sources::
        
          $ python setup.py install
        
        Or from Pypi::
        
          $ easy_install -U 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
        +++++++++++++++++++++++++++++++++
        
        ::
        
          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::
        
          # server object
          server = Server()
          
          # create database
          db = server.get_or_create_db("greeting")
          
          # 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: Here we use `contain` to associate the db to the `Greeting` object. 
        This function could be use to associate multiple dcouemnt objects to one db::
        
          contain(db, Doc1, ...)
        
        
        Your document `greet` is now in the `greetings` db. Each document is saved 
        witha `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`_.
        
        Then we use `FileSystemDocsLoader` object to send the design document to 
        CouchDB::
        
          from couchdbkit.loaders import FileSystemDocsLoader
          
          loader = FileSystemDocsLoader('/path/to/example/_design')
          loader.sync(db, verbose=True)
        
        The design doc is now in the `greetings` database and you can get all greets::
        
          greets = Greeting.view('greeting/all')
        
        .. _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
Classifier: Topic :: Database
Classifier: Topic :: Utilities
Classifier: Topic :: Software Development :: Libraries :: Python Modules
