{ "info": { "author": "Roy Enjoy", "author_email": "kirpit@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "**couchbasekit** is `a wrapper around CouchBase Python driver for document\nvalidation and more`. It was inspired by\n`MongoKit `_ and was developed by\n*the project coming soon?*, which is also an open source project.\n\nYou can get detailed information about couchbase itself from\nhttp://www.couchbase.com/ and about its Python driver form\nhttp://www.couchbase.com/develop/python/next.\n\nDocumentation: https://couchbasekit.readthedocs.org/en/latest/\n\nSource code: https://github.com/kirpit/couchbasekit\n\nQuick Start\n===========\n\nLess talk, more code. Set your authentication details first::\n\n from couchbasekit import Connection\n\n # you should do this somewhere beginning such as settings.py:\n Connection.auth('myusername', 'p@ssword')\n\n\nThen define your model document.\n\n**author.py**::\n\n import datetime\n from couchbasekit import Document, register_view\n from couchbasekit.fields import EmailField, ChoiceField\n from example.samples.publisher import Publisher\n from example.samples.book import Book\n\n class Gender(ChoiceField):\n CHOICES = {\n 'M': 'Male',\n 'F': 'Female',\n }\n\n\n @register_view('dev_authors')\n class Author(Document):\n __bucket_name__ = 'couchbasekit_samples'\n __key_field__ = 'slug' # optional\n doc_type = 'author'\n structure = {\n 'slug': unicode,\n 'first_name': unicode,\n 'last_name': unicode,\n 'gender': Gender,\n 'email': EmailField,\n 'publisher': Publisher, # kind of foreign key\n 'books': [Book], # 1-to-many\n 'has_book': bool,\n 'age': int,\n 'birthday': datetime.date,\n 'created_at': datetime.datetime,\n }\n default_values = { # optional\n 'has_book': False,\n # don't worry about the timezone info!\n # it's auto assigned as to UTC, so all you have to do is:\n 'created_at': datetime.datetime.utcnow,\n }\n required_fields = ( # optional\n 'slug',\n 'first_name',\n 'last_name',\n 'email',\n )\n\n\nThen use it as such;\n\n>>> from example.samples.author import Author, Gender\n>>> from couchbasekit.fields import EmailField\n>>>\n>>> douglas = Author()\n>>> douglas.is_new_record\nTrue\n>>> try:\n... douglas.validate()\n... except Author.StructureError as why:\n... print why\n...\nKey field 'slug' is defined but not provided.\n>>>\n>>> douglas.slug = u'douglas_adams'\n>>> try:\n... douglas.validate()\n... except Author.StructureError as why:\n... print why\n...\nRequired field for 'first_name' is missing.\n>>>\n>>> isinstance(douglas, dict)\nTrue\n>>> douglas.update({\n... 'first_name': u'Douglas',\n... 'last_name': u'Adams',\n... 'gender': Gender('M'),\n... 'email': EmailField('dna@example.com'),\n... })\n...\n>>> douglas.validate()\nTrue\n>>> douglas.save()\n14379837794698\n>>> douglas.cas_value # CAS value (version) of the couchbase document\n14379837794698\n>>> douglas.id\nu'douglas_adams'\n>>> douglas.doc_id\nu'author_douglas_adams'\n>>> douglas.birthday is None\nTrue\n>>> douglas.non_exist_field\nTraceback (most recent call last):\n File \"\", line 1, in \n File \"couchbasekit/document.py\", line 68, in __getattr__\n return super(Document, self).__getattribute__(item)\nAttributeError: 'Author' object has no attribute 'non_exist_field'\n>>>\n>>> dna = Author('douglas_adams')\n>>> dna.is_new_record\nFalse\n>>> douglas==dna\nTrue\n>>> douglas.has_book = True\n>>> douglas==dna\nFalse\n>>> # because we set @register_view decorator, here are the CouchBase views:\n>>> douglas.view()\n\n>>> view = douglas.view('by_fullname')\n>>> view\n\n>>> view.results({'key': 'Douglas Adams'})\n\n>>> # please refer to CouchBase views documentation for further usage..\n>>> # and the bucket itself for advanced folks:\n>>> douglas.bucket\n\n>>> print [m for m in dir(douglas.bucket) if not m.startswith('_')]\n['add', 'append', 'cas', 'decr', 'delete', 'design_docs', 'flush', 'gat', 'get', 'getl', 'incr', 'info', 'mc_client', 'name', 'password', 'prepend', 'replace', 'save', 'server', 'set', 'stats', 'touch', 'view']\n>>> # nice!", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kirpit/couchbasekit", "keywords": "couchbase,couchdb,nosql,validation", "license": "LICENSE.txt", "maintainer": null, "maintainer_email": null, "name": "couchbasekit", "package_url": "https://pypi.org/project/couchbasekit/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/couchbasekit/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/kirpit/couchbasekit" }, "release_url": "https://pypi.org/project/couchbasekit/0.2.2/", "requires_dist": null, "requires_python": null, "summary": "A wrapper around CouchBase Python driver for document validation and more.", "version": "0.2.2" }, "last_serial": 788474, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "ed1140c709aaa5a1548e942365ad430d", "sha256": "1c0be4226d83849c1b1a731da8e3b573e44800af31ec7c413c7a08f28ae73cb3" }, "downloads": -1, "filename": "couchbasekit-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ed1140c709aaa5a1548e942365ad430d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19069, "upload_time": "2012-11-21T11:16:18", "url": "https://files.pythonhosted.org/packages/87/90/41a331320a11a9f61edd71fdff13eb11b1c00d6342370e3ec8a7ac9eb6c5/couchbasekit-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "b95c97626bd4b7cb0c992ef048570453", "sha256": "c941e5e95d5158709099b13ceda350cf5da2e780c3b75b14d3acd93ad78f24dc" }, "downloads": -1, "filename": "couchbasekit-0.1.1.tar.gz", "has_sig": false, "md5_digest": "b95c97626bd4b7cb0c992ef048570453", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17886, "upload_time": "2012-12-02T23:51:07", "url": "https://files.pythonhosted.org/packages/f3/0c/e3376d79144424145c4f2e54481a029236ace73a8f1fbb1f5513f82fb7b9/couchbasekit-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "4f01181ca1ab22c6c84248a71fb05281", "sha256": "b41d48849e00889bf5bcac4064d56b5e932096263b1ee24064762828f9c2f274" }, "downloads": -1, "filename": "couchbasekit-0.1.2.tar.gz", "has_sig": false, "md5_digest": "4f01181ca1ab22c6c84248a71fb05281", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18494, "upload_time": "2012-12-09T12:47:43", "url": "https://files.pythonhosted.org/packages/49/b5/4737c4e2f2832ea30a4c53b1fc4895bc99814e4e989df0c5a2ae085fdb2c/couchbasekit-0.1.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "b5362b97b64ef99c887c5529674417a4", "sha256": "a14b996d4ac7ad29a9620eb55ac247445c79e2f5e026f1acec3304a0e296a111" }, "downloads": -1, "filename": "couchbasekit-0.2.1.tar.gz", "has_sig": false, "md5_digest": "b5362b97b64ef99c887c5529674417a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14962, "upload_time": "2012-12-28T15:37:15", "url": "https://files.pythonhosted.org/packages/76/08/5a393525f1ded968372b17390a1e71c5c581c8ade1e1e84a9c9b5f252dd0/couchbasekit-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "36ab609762cb00e7bd11d7d4e1bbf8bb", "sha256": "7a1a8ca72c3bee26201626326d63c8f8a08d32dae83d50bf99983befc60d86f5" }, "downloads": -1, "filename": "couchbasekit-0.2.2.tar.gz", "has_sig": false, "md5_digest": "36ab609762cb00e7bd11d7d4e1bbf8bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15841, "upload_time": "2013-04-18T12:06:35", "url": "https://files.pythonhosted.org/packages/7f/7a/d2f2ef450962a6095505f38f5802f2a3df20d04c41f6d3fea06739629e1a/couchbasekit-0.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "36ab609762cb00e7bd11d7d4e1bbf8bb", "sha256": "7a1a8ca72c3bee26201626326d63c8f8a08d32dae83d50bf99983befc60d86f5" }, "downloads": -1, "filename": "couchbasekit-0.2.2.tar.gz", "has_sig": false, "md5_digest": "36ab609762cb00e7bd11d7d4e1bbf8bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15841, "upload_time": "2013-04-18T12:06:35", "url": "https://files.pythonhosted.org/packages/7f/7a/d2f2ef450962a6095505f38f5802f2a3df20d04c41f6d3fea06739629e1a/couchbasekit-0.2.2.tar.gz" } ] }