{ "info": { "author": "Ulf Bartel", "author_email": "elastic.code@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6" ], "description": "Python-NDB-ORM\n==============\n\n[![Travis CI](https://travis-ci.org/berlincode/ndb-orm.svg?branch=master&style=flat)](https://travis-ci.org/berlincode/ndb-orm)\n[![Python versions](https://img.shields.io/pypi/pyversions/ndb-orm.svg)](https://pypi.python.org/pypi/ndb-orm/)\n[![Apache License 2.0](https://img.shields.io/pypi/l/ndb-orm.svg)](https://github.com/berlincode/ndb-orm/blob/master/LICENSE.txt)\n\nNDB-ORM is a python3 compatible orm for google cloud datastore based on ndb.model (created by Guido van Rossum) and\nmay be used outside of app engine standard environment.\n\n * Plays nicely with datastore entities generated from app engine standard\n * Python3 compatible\n * Usable from outside of app engine standard\n * Based on the original ndb package\n * Protobuffer implementation was ported to google.cloud.proto.datastore.v1.entity_pb2 (which is also used by gcloud-datastore-python)\n * No dependencies to old appengine libraries\n * Makes porting of app engine standard project easier\n * Works with [google-cloud-datastore](https://pypi.python.org/pypi/google-cloud-datastore)\n * Key handling is used from google.cloud.datastore\n\nThis is not a drop-in replacement for the whole ndb package (no ndb.context, ndb.tasklets, ndb.query or ndb.Key), \nbut allows you to use ndb.model classes.\n\nFor more details of all the possobilities of the ndb.model orm, plead have a look at \"[The Python NDB Client Library Overview](https://cloud.google.com/appengine/docs/standard/python/ndb/)\".\n\nATTENTION\n-----------\n\nWhile reading of entities generated with app engine standard should be no problem, threre are limitations reading\nentities written with this package (also also with google-cloud-datastore) from app engine standard. The reason is that\nsome types have changed format (e.g. datetime properties with google-cloud-datastore support timezones).\n\nAdditional (as you might have expected) using the PickleProperty between different Python version\nis expected to fail and thus pickle.loads is disabled by default. You can enable it by setting\nndb_orm.model.ENABLE_PICKLE_LOADS to True.\n\nQuick Start\n-----------\n\n$ pip install --upgrade ndb-orm\n\n\nSimple example session with google-cloud-datastore \n--------------------------------------------------\n\n```python\n>>> #\n>>> # creating an entity with google-cloud-datastore\n>>> #\n\n>>> from google.cloud import datastore\n>>> \n>>> client = datastore.Client()\n>>> \n>>> kind = 'Task' # The kind for the new entity\n>>> name = 'sampletask' # The name/ID for the new entity\n>>> \n>>> key = client.key(kind, name) # The Cloud Datastore key for the new entity\n>>> \n>>> entity = datastore.Entity(key=key, exclude_from_indexes=('text',))\n>>> entity.update({\n... 'text': 'Much to do',\n... 'done': False,\n... })\n>>> \n>>> client.put(entity)\n\n>>> #\n>>> # now getting the just saved entity as ndb.Model by defining an entity\n>>> # 'Task' and enabling ndb_orm\n>>> #\n\n>>> import ndb_orm as ndb\n>>> ndb.enable_use_with_gcd(client.project)\n>>> \n>>> class Task(ndb.Model):\n... text = ndb.TextProperty(indexed=False)\n... done = ndb.BooleanProperty()\n... update = ndb.DateTimeProperty(auto_now=True)\n>>> \n>>> entity = client.get(key) # now get get an ndb model for the same data ! \n>>> print(entity)\nTask(key=, done=False, text='Much to do')\n>>>\n>>> client.put(entity) # save entity ('update' property gets set automatically)\n>>>\n>>> print(client.get(key)) # get entity with 'update' property set\nTask(key=, done=False, text='Much to do', update=datetime.datetime(2017, 8, 28, 22, 16, 15, 652839, tzinfo=))\n \n>>> #\n>>> # access to this entity without ndb-orm still possible\n>>> #\n\n>>> ndb.enable_use_with_gcd() # disable ndb-orm - now we wont receive a ndb.Model anymore\n \n>>> print(client.get(key)) # a normale get still works without ndb-orm\n), 'text': 'Much to do'}>\n>>> \n```\n\nMost property types should work just fine. Even the StructuredProperty class, and keywords 'indexed', 'repeated', 'compression', 'name' and 'required'\nshould work as well.\n\nEnjoy this beautiful ORM !\n\nPublic repository\n-----------------\n\n[https://github.com/berlincode/ndb-orm](https://github.com/berlincode/ndb-orm)\n\n\nLicense\n-------\n\nCopyright \"the ndb authors\" and Ulf Bartel. Code is licensed under the\n[Apache 2.0](./LICENSE.txt).\n\n\nv0.1.0, 2017-08-28 -- Initial public release.\nv0.2.0, 2017-08-28 -- First usable version.\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/berlincode/ndb-orm", "keywords": "ndb", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "ndb-orm", "package_url": "https://pypi.org/project/ndb-orm/", "platform": "", "project_url": "https://pypi.org/project/ndb-orm/", "project_urls": { "Homepage": "https://github.com/berlincode/ndb-orm" }, "release_url": "https://pypi.org/project/ndb-orm/0.10.0/", "requires_dist": null, "requires_python": "", "summary": "google datatstore ndb orm which might be used with google-cloud-datastore (python3 compatible)", "version": "0.10.0" }, "last_serial": 4815792, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "3de7ed9350c951ec5b640cc7588a2d10", "sha256": "dcf87b515bc3d6bc727bf1785745df2afe6db0c7b53f5c1d4cc2da022f73acc9" }, "downloads": -1, "filename": "ndb-orm-0.1.0.tar.gz", "has_sig": false, "md5_digest": "3de7ed9350c951ec5b640cc7588a2d10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49496, "upload_time": "2017-08-28T00:17:50", "url": "https://files.pythonhosted.org/packages/70/ac/0e40526e63c4cc246ca1b980ef58724f3127b8c8056cec2333508bc04808/ndb-orm-0.1.0.tar.gz" } ], "0.10.0": [ { "comment_text": "", "digests": { "md5": "50bb203c219e39e5f407b73b816903b9", "sha256": "5fa108b9de6beff644c036fc89ed95fe1c2c4e445c84a300a40aace41287fae9" }, "downloads": -1, "filename": "ndb-orm-0.10.0.tar.gz", "has_sig": false, "md5_digest": "50bb203c219e39e5f407b73b816903b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54658, "upload_time": "2019-02-13T13:43:34", "url": "https://files.pythonhosted.org/packages/3a/f9/a2ad8f92b7d8c546200e95e0175a6ad9f4b12bb5335afadac4f9cb4e8425/ndb-orm-0.10.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a10b019422ec5fc9609ff2f79b3bc980", "sha256": "a99d30ace2ac048441aa2aa856ec45e9bd8ce899d403e549654f581474048204" }, "downloads": -1, "filename": "ndb-orm-0.2.0.tar.gz", "has_sig": false, "md5_digest": "a10b019422ec5fc9609ff2f79b3bc980", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51533, "upload_time": "2017-08-28T22:44:11", "url": "https://files.pythonhosted.org/packages/ab/46/1ecd6cf87014a40ffeba8c228a13f911aeae21c0916a09d37f8b3f82604a/ndb-orm-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "2f2e15a8aa6bb79f73a6d2a46259491b", "sha256": "3ae65122a8c6d52faff5d6f5ec115899dab3f5c53212f2e964259b2f27be8fd1" }, "downloads": -1, "filename": "ndb-orm-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2f2e15a8aa6bb79f73a6d2a46259491b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51589, "upload_time": "2017-09-01T20:21:10", "url": "https://files.pythonhosted.org/packages/fe/b9/6d849145e6345f2c43d46154d240ff5902c1d55a2b286f37b8173164479e/ndb-orm-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "510c81d15bc62d2235df71e252acaebb", "sha256": "7c64260816474cac68285a5330fef8ae3927335e50055df5f1a44a5dd848d93f" }, "downloads": -1, "filename": "ndb-orm-0.3.1.tar.gz", "has_sig": false, "md5_digest": "510c81d15bc62d2235df71e252acaebb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51770, "upload_time": "2017-09-01T20:41:09", "url": "https://files.pythonhosted.org/packages/da/7d/461729ea598c57a1589c663f1e1a7ff7a3891fcfb133a6dfb8b24ed19d3f/ndb-orm-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "089be5ea8d990848df2bbc3bd01aefe6", "sha256": "c0c3b914e6b119b25517d7c33c77650a4dd83dacc51ead7459f687f3917a9a76" }, "downloads": -1, "filename": "ndb-orm-0.4.0.tar.gz", "has_sig": false, "md5_digest": "089be5ea8d990848df2bbc3bd01aefe6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87958, "upload_time": "2017-09-02T09:51:09", "url": "https://files.pythonhosted.org/packages/41/91/757ecae2b0763e00a92ea905555ae6dc6595d30f040cd934748a7bb669bf/ndb-orm-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "810687229bc80359b950b5d891b36668", "sha256": "cbf463af0891590a77ef92dda4a93498c9c836a48c8f9c49b941cd179cc9352b" }, "downloads": -1, "filename": "ndb-orm-0.5.0.tar.gz", "has_sig": false, "md5_digest": "810687229bc80359b950b5d891b36668", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52822, "upload_time": "2017-09-03T18:58:30", "url": "https://files.pythonhosted.org/packages/bc/9a/8eebd81860cf6c898672bd16a1a8cd95a819e7f19a3e7c5d1c91002ae9e1/ndb-orm-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "4b1c67403a64d88d453996baaf8605f9", "sha256": "003c22aa2df5f61f35bc9159c766a9830e96b308124e31170b33579af32eb025" }, "downloads": -1, "filename": "ndb-orm-0.6.0.tar.gz", "has_sig": false, "md5_digest": "4b1c67403a64d88d453996baaf8605f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52920, "upload_time": "2017-09-05T18:24:31", "url": "https://files.pythonhosted.org/packages/5c/1d/7155331f554822c2475f8506f1b197d2cecb333caa2bb3857499eafb6b00/ndb-orm-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "e9e827c084ac8afb49f149ccef2c34a5", "sha256": "6b1ae15bf01f868c7b374737b59afe27f39343a84cc4b32ee9abbca0b7df43d9" }, "downloads": -1, "filename": "ndb-orm-0.6.1.tar.gz", "has_sig": false, "md5_digest": "e9e827c084ac8afb49f149ccef2c34a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52908, "upload_time": "2017-09-11T18:09:04", "url": "https://files.pythonhosted.org/packages/a7/16/64a8418b88528bd1636e9a466746c2b8b6112b63a6dafaf7f3da08ed7828/ndb-orm-0.6.1.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "0b8cb3573879b01b3508770bd3b71638", "sha256": "2421e5cf49336376736d2f4184b11f283ced4ba005506431f6a5fb4b24b92cb6" }, "downloads": -1, "filename": "ndb-orm-0.7.0.tar.gz", "has_sig": false, "md5_digest": "0b8cb3573879b01b3508770bd3b71638", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53447, "upload_time": "2017-09-17T09:45:41", "url": "https://files.pythonhosted.org/packages/1f/ab/e93093f4ccae6ba0e6686f8cf00705f2f05d6dbd94bb7e8a7bb271b55036/ndb-orm-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "ebbbea6eca6358d22b02fc25571ed5f3", "sha256": "5457eaca4c7a83a0608234c3015c4aaf47d08b6881f9d50398bf857495b1485a" }, "downloads": -1, "filename": "ndb-orm-0.7.1.tar.gz", "has_sig": false, "md5_digest": "ebbbea6eca6358d22b02fc25571ed5f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53375, "upload_time": "2017-09-24T06:28:49", "url": "https://files.pythonhosted.org/packages/1a/1e/5b7b1f44b096726cb239cc6946235b63baa83317da791d35a0a788153e5c/ndb-orm-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "1035a042d8c84e88865920e294350e6a", "sha256": "87c6f908ba74663feaf7b8a91a59caa408fd03b83ad381ac16fadf53be4c9e7a" }, "downloads": -1, "filename": "ndb-orm-0.7.2.tar.gz", "has_sig": false, "md5_digest": "1035a042d8c84e88865920e294350e6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53439, "upload_time": "2017-09-24T20:53:05", "url": "https://files.pythonhosted.org/packages/d5/b2/01eff62951be274fa9cd1534d008dad1cc3f21fab8efb38337c8807f45eb/ndb-orm-0.7.2.tar.gz" } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "cc776358423408127008313fef82fea6", "sha256": "fd5b0638820fd07b45226e2f0ae01bfab2cb1976f436b1b54bd46b070565bee4" }, "downloads": -1, "filename": "ndb-orm-0.7.3.tar.gz", "has_sig": false, "md5_digest": "cc776358423408127008313fef82fea6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53445, "upload_time": "2017-10-20T15:57:28", "url": "https://files.pythonhosted.org/packages/6d/84/2af40b75d8a921ac08bd02c2458d2340b945c41ad5ce65f29777db56e592/ndb-orm-0.7.3.tar.gz" } ], "0.7.5": [ { "comment_text": "", "digests": { "md5": "491b96e4d075e94054a9a71fa3d75e1c", "sha256": "83768269297c9a2bacaa8de561841621c883213d813bc4c1827cc50c4ebba76c" }, "downloads": -1, "filename": "ndb-orm-0.7.5.tar.gz", "has_sig": false, "md5_digest": "491b96e4d075e94054a9a71fa3d75e1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53469, "upload_time": "2018-02-10T11:32:39", "url": "https://files.pythonhosted.org/packages/86/1f/65c44419c8f92c8d252fd6b4f35cf449bf03d54a8034d290fbf5cdd3b190/ndb-orm-0.7.5.tar.gz" } ], "0.7.6": [ { "comment_text": "", "digests": { "md5": "0c73a1553216f25d448ae063955e4361", "sha256": "8197237911f6d28480d1d699048c6fe013e34e7bd76c9d9eef28a2b7a03a6709" }, "downloads": -1, "filename": "ndb-orm-0.7.6.tar.gz", "has_sig": false, "md5_digest": "0c73a1553216f25d448ae063955e4361", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53537, "upload_time": "2018-02-11T00:03:17", "url": "https://files.pythonhosted.org/packages/7a/93/b1705ddcf489910fd7379a9fd4c5681d8a1135672f97ef511746f581782e/ndb-orm-0.7.6.tar.gz" } ], "0.7.7": [ { "comment_text": "", "digests": { "md5": "70a65df82d6a17f3693c30e21147faa7", "sha256": "379cd643548718c507f417a97b14e56fc07d72c7faa2c93b14adc3222f2c8ff9" }, "downloads": -1, "filename": "ndb-orm-0.7.7.tar.gz", "has_sig": false, "md5_digest": "70a65df82d6a17f3693c30e21147faa7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53533, "upload_time": "2018-02-12T22:03:20", "url": "https://files.pythonhosted.org/packages/67/87/eb665714960ceeb0d9f590f61f5be7b1ec24193046150a21701571b75622/ndb-orm-0.7.7.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "1b1cb9e65c39a39aaf68c6dacdd97e51", "sha256": "93021c4fe0bc3d168a1eb49b40fcaf52323307716f1fe892fd99c3fc5122afc8" }, "downloads": -1, "filename": "ndb-orm-0.8.0.tar.gz", "has_sig": false, "md5_digest": "1b1cb9e65c39a39aaf68c6dacdd97e51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53559, "upload_time": "2018-04-04T17:58:04", "url": "https://files.pythonhosted.org/packages/52/08/ca53f045daf8dd4f9709bd5ce956ab15b3453953bb2b44861ddf258fe38a/ndb-orm-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "fb879aef8eb8b17e0c700691e76aae70", "sha256": "daaed31088e76da4f404cd1fc2c10312a58bced5a0eec2c2df61cf6d1286c81e" }, "downloads": -1, "filename": "ndb-orm-0.8.1.tar.gz", "has_sig": false, "md5_digest": "fb879aef8eb8b17e0c700691e76aae70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53592, "upload_time": "2018-04-25T20:38:09", "url": "https://files.pythonhosted.org/packages/f9/37/84a7c91dacfe89c6cb967315b06a441ddbbb563f2373d86a5bf6b2a8d18e/ndb-orm-0.8.1.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "dc21ce037537ceaaed6a793f40f1a20a", "sha256": "9cb65e451f2508fe4ddf902aed219aaace15a44c9d1e7dab02e09131b6a9bb44" }, "downloads": -1, "filename": "ndb-orm-0.9.0.tar.gz", "has_sig": false, "md5_digest": "dc21ce037537ceaaed6a793f40f1a20a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53664, "upload_time": "2018-04-30T17:28:29", "url": "https://files.pythonhosted.org/packages/45/ff/9d47af9b18c066671d3b3177d4f03710bbdc856cffd137788866137664c9/ndb-orm-0.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "50bb203c219e39e5f407b73b816903b9", "sha256": "5fa108b9de6beff644c036fc89ed95fe1c2c4e445c84a300a40aace41287fae9" }, "downloads": -1, "filename": "ndb-orm-0.10.0.tar.gz", "has_sig": false, "md5_digest": "50bb203c219e39e5f407b73b816903b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54658, "upload_time": "2019-02-13T13:43:34", "url": "https://files.pythonhosted.org/packages/3a/f9/a2ad8f92b7d8c546200e95e0175a6ad9f4b12bb5335afadac4f9cb4e8425/ndb-orm-0.10.0.tar.gz" } ] }