{ "info": { "author": "Workhamper", "author_email": "raymond@workhamper.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Database" ], "description": "Firestore\n=========\n:Details: Firestore is an offline available ORM/ODM atop Google Firestore.\n:Repository: https://github.com/workenvoy/firestore\n:Author: Workenvoy Inc (http://github.com/workenvoy)\n:Maintainer: Raymond Ortserga (http://github.com/rayattack)\n\n.. image:: https://travis-ci.org/workenvoy/firestore.svg?branch=master\n :target: https://travis-ci.org/workenvoy/firestore\n\n.. image:: https://coveralls.io/repos/github/workenvoy/firestore/badge.svg?branch=master\n :target: https://coveralls.io/github/workenvoy/firestore?branch=master\n\n\nDetails\n=======\nFirestore is a Python Object-Document/Object-Collections Mapper for working with Google Firestore.\nThe Flexible, Extremely Scalable, realtime database by Google.\nYou can find some documentation at https://firestore.readthedocs.io - and there\nis also a `quickstart tutorial `_.\n\n\nOffline Support\n===============\nFirestore currently uses an in-memory data store\nto simulate access to Google Firestore\nwhen working offline. There is an optimistic persistence\nto disk and the contents can be\nseen in the /projectdir/localfire directory.\nDeleting this directly means you lose all the\ndata you might have saved prior to removing the directory from disk.\nMake sure to make a copy of this directory if you want to keep a\ncopy of your data and you are\nencouraged to contribute i.e. open an issue, submit a pull request if\nyou want to offer a helping hand.\n\n\nInstallation\n============\nWe recommend the use of virtual environments e.g. `virtualenv `_ to control\nyour package management. Installation of Firestore is\neasily done ``pip install -U firestore`` and requires\n`pip `_. to be installed.\nOtherwise, you can download the source code from `GitHub `_ and\nrun ``python setup.py install``.\n\n\nDependencies\n============\nWe tried to keep the dependencies to a minimum, and all dependencies are available using `pip `_.\nThe only dependencies you require to use Firestore are highlighted below:\n\n- google-cloud-firestore\n\nIf you are working with dates extensive we suggest you use a date parser:\n\n- dateutil>=2.1.0\n\n\nExamples\n========\nSample Firestore Code Snippet:\n\n.. code :: python\n\n from firestore import Collection, Document, Reference as Ref\n from firestore import Array\n from firestore import Integer\n from firestore import String\n from firestore.lazy import Datatype\n\n class SomeRootCollection(Collection):\n \"\"\"\n Root collections inherit directly from collection, whilst\n sub collections will inherit from a document.\n\n To understand this always remember in Firestore a collection can never be\n a child of another collection, and a sub-collection will always live\n under a document.\n To have mongo style sub-collections use the Map datatype\n \"\"\"\n pass\n\n\n class User(SomeRootCollection):\n \"\"\"\n This is the User document and will be saved under the\n collection `SomeRootCollection`.\n Documents live under collections or sub-collections directly\n \"\"\"\n __private__ = [\"password\"]\n\n first_name = String(required=True)\n middle_name = Datatype(datatype=\"String\") # You can use Datatype in place of more specific types\n last_name = Datatype(\"StrInG\") # Case insensitive\n age = Integer(minimum=0)\n photos = Reference('Photo')\n password = String(minimum=6) # private fields can not be viewed with get_XXX methods\n\n\n class Photo(User):\n \"\"\"\n This creates a photos subcollection under the User document for documents\n under the root collection\n \"\"\"\n id = String(required=True, id=True) # omit to have id auto-generated by cloud firestore\n photo_urls = Array()\n\n\n # Create a text-based post\n >>> user = User()\n >>> user.first_name = \"Alan\"\n >>> user.last_name = \"Turing\"\n >>> user.photos.append(\"https://cloudinary.com/img.jpg\")\n >>>\n >>> # this will persist user and photo at\n >>> # once unlike user.save that will save only user\n >>> user.persist()\n\n # Sometimes you want one thing to succeed before doing another\n >>> user.photos.safe_save() # only saves if parent was prior saved else fails\n >>> user.photos.save() # saves regardless\n\n # You can also save a photo by itself and query easily\n >>> photo = Photo()\n >>> photo.parent = user\n >>> photo.save() # save only photo\n >>> photo.parent.save()\n\n\nContributing\n============\nWe love contributors: `Contribution guidelines `_\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/workenvoy/firestore", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "firestore", "package_url": "https://pypi.org/project/firestore/", "platform": "", "project_url": "https://pypi.org/project/firestore/", "project_urls": { "Homepage": "https://github.com/workenvoy/firestore" }, "release_url": "https://pypi.org/project/firestore/0.0.8/", "requires_dist": [ "firebase-admin", "iso8601" ], "requires_python": "", "summary": "An offline-available ORM-like wrapper for Google Firestore Database", "version": "0.0.8" }, "last_serial": 5728590, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "0a111870e245503c00a342ef1fbe5e0b", "sha256": "fb54753d2ba4b1ca2756debf0234a05531d19e3f341242f755ce6b8c60ad3bf3" }, "downloads": -1, "filename": "firestore-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0a111870e245503c00a342ef1fbe5e0b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6771, "upload_time": "2019-07-29T19:50:00", "url": "https://files.pythonhosted.org/packages/a4/11/d8ba9d81b17315db66a14f0ede3d0291c6e3d80b1003ebdc016b4e2c308d/firestore-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d084e4c9c702d28d1d5413f231c11f71", "sha256": "4753ff288fa150b8856b649145727e3c2a6f9ddbb6592de5cd543c7e4b95a1d9" }, "downloads": -1, "filename": "firestore-0.0.2.tar.gz", "has_sig": false, "md5_digest": "d084e4c9c702d28d1d5413f231c11f71", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4546, "upload_time": "2019-07-29T19:50:02", "url": "https://files.pythonhosted.org/packages/b8/72/4d1f1257f936917eaea92c3d5e371638710f67ae4b14f84bba63e0e83d7a/firestore-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "5b2a9b9672d766134a090ff0c5304f1e", "sha256": "eaacff311b7d5dbee71dada8c74106fd1f3223e32bc9f4c733cec186679d8a0d" }, "downloads": -1, "filename": "firestore-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "5b2a9b9672d766134a090ff0c5304f1e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6901, "upload_time": "2019-07-31T10:47:15", "url": "https://files.pythonhosted.org/packages/06/72/54a5616d7fa5018f55bb74437ba877b23c4c853f389fbe15a67f0f3bf8fe/firestore-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "434f0fec7ecaebf0b23119341d927453", "sha256": "e355341047e704ad4defdd92beedd98ef0620a4d769d6c29c55b595824733de5" }, "downloads": -1, "filename": "firestore-0.0.3.tar.gz", "has_sig": false, "md5_digest": "434f0fec7ecaebf0b23119341d927453", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4638, "upload_time": "2019-07-31T10:47:16", "url": "https://files.pythonhosted.org/packages/e5/ff/6fe18da9d14dbedada79d9d691547419e426e7692f0c85cf86302ed967b9/firestore-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "ca3cbddc3ff22e63ee117155e7db812a", "sha256": "7e49e3d64e3fc3c2f3e7b153ed727deef923c51c08bf99dd904f9887fb93403d" }, "downloads": -1, "filename": "firestore-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "ca3cbddc3ff22e63ee117155e7db812a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7002, "upload_time": "2019-07-31T11:53:57", "url": "https://files.pythonhosted.org/packages/04/4f/75d8cea9c630f2a158a6243470b12bfd4aa0260d4ceae95bf6e042ea9b91/firestore-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e131ea6e26e4a93a1fec6b13b3e019a2", "sha256": "0f5dffde30fb1cfc11c88a34d4f0b2e4db3fb605aee398ba0eb456eab9d1a7a1" }, "downloads": -1, "filename": "firestore-0.0.4.tar.gz", "has_sig": false, "md5_digest": "e131ea6e26e4a93a1fec6b13b3e019a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4742, "upload_time": "2019-07-31T11:53:58", "url": "https://files.pythonhosted.org/packages/65/4e/0f7aade1cc22a1c41927a230a17a5752fd39fe83d789f095592ca087a0be/firestore-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "9a01148ecf4861f80ecb789b226a7901", "sha256": "fc2d5f3e4e74a1f583e7fe7ac49ceb7b8cae9128bc2b69da63714baaf4093fb4" }, "downloads": -1, "filename": "firestore-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "9a01148ecf4861f80ecb789b226a7901", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15082, "upload_time": "2019-07-31T12:16:17", "url": "https://files.pythonhosted.org/packages/0c/0d/4b664d6ba1bd5067588df2b00d5f67b7c98aea056a33dfe1d622dd71a10f/firestore-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dcae58dbe4894995bda0ee5308d430e3", "sha256": "0f2a24bc0fadb65a5f92a64379b50671393a16de81489437435b64979518ff03" }, "downloads": -1, "filename": "firestore-0.0.5.tar.gz", "has_sig": false, "md5_digest": "dcae58dbe4894995bda0ee5308d430e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9862, "upload_time": "2019-07-31T12:16:18", "url": "https://files.pythonhosted.org/packages/65/3b/087dbdd1b3074513b824d15609896ed59ab603652f67c5f91bb83e60186d/firestore-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "72f77197cf01d0c3ec388e643264d6cc", "sha256": "57db04028ae10693409e5c6d17c24aecc315a57df44999f4aa7769dcac0ebe79" }, "downloads": -1, "filename": "firestore-0.0.6-py3.7.egg", "has_sig": false, "md5_digest": "72f77197cf01d0c3ec388e643264d6cc", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 29866, "upload_time": "2019-07-31T12:32:26", "url": "https://files.pythonhosted.org/packages/65/de/8f473bc85094bfaf1cc65b4b9fd93304406d31f6851f22f4c1aa1cbbd8f7/firestore-0.0.6-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "ccab4e4d5713479288c95758959633e9", "sha256": "763e3ea10a3325d856d1e7649609931fe67f363b0eb9988b4af7613e53618521" }, "downloads": -1, "filename": "firestore-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "ccab4e4d5713479288c95758959633e9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15451, "upload_time": "2019-07-31T12:32:23", "url": "https://files.pythonhosted.org/packages/77/b0/1967a2b869ec9f0b918af1be159472f440b494af700773dd8a62ba86e01e/firestore-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "44d2ccc0dd1c0601067070f6a6de5073", "sha256": "793b4dff083f61a377fd907b4e5b0b152a29700e531bfbc830f33f7dd7ac2111" }, "downloads": -1, "filename": "firestore-0.0.6.tar.gz", "has_sig": false, "md5_digest": "44d2ccc0dd1c0601067070f6a6de5073", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9860, "upload_time": "2019-07-31T12:32:27", "url": "https://files.pythonhosted.org/packages/db/2f/b2cd77d2518f356daa07cb9e792b52353b4b907831222319844255a07c5a/firestore-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "ace2317988c9c20f49b90f6bc773724a", "sha256": "df4bfa1d295fa9e73e4f34226b64f292b2b5b38e9c3c83f3ca1508b523a8e6ef" }, "downloads": -1, "filename": "firestore-0.0.7-py3.7.egg", "has_sig": false, "md5_digest": "ace2317988c9c20f49b90f6bc773724a", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 78121, "upload_time": "2019-08-12T16:47:56", "url": "https://files.pythonhosted.org/packages/77/37/b58265167721e1a1c284ede0e45244a90d9961fec6bb927fc9c583056783/firestore-0.0.7-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "fb6d268cc7d862a12906f57e6550b034", "sha256": "5b23a2bbd027940c8e4e7f953541cb3bc5b2f082113742ff8c8ffa5c9de3e226" }, "downloads": -1, "filename": "firestore-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "fb6d268cc7d862a12906f57e6550b034", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34378, "upload_time": "2019-08-12T16:47:54", "url": "https://files.pythonhosted.org/packages/6d/8f/191cd68455c3fe1813b9ee782bf8beb91b23ec08d28f54baa0beb0be8082/firestore-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d48aee5cb015770523369d32370715dd", "sha256": "ba2da803b708ac4ee6951406431528382f371825deb391995adb7a2670c343a1" }, "downloads": -1, "filename": "firestore-0.0.7.tar.gz", "has_sig": false, "md5_digest": "d48aee5cb015770523369d32370715dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22520, "upload_time": "2019-08-12T16:47:58", "url": "https://files.pythonhosted.org/packages/c3/9c/c6ae77489a3296b035cf9985d9a707867d2a623bfd20f93baa259ab1235f/firestore-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "03a50ac7c2b88da9e4ab38163a6185a1", "sha256": "78762d2807587213cf5fd4c6653d15ef5aeeb1d8768aaed5c067597ce2db8ba2" }, "downloads": -1, "filename": "firestore-0.0.8-py3.7.egg", "has_sig": false, "md5_digest": "03a50ac7c2b88da9e4ab38163a6185a1", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 93121, "upload_time": "2019-08-26T02:24:49", "url": "https://files.pythonhosted.org/packages/25/e4/9e7340df908cbee45868449cde207f7fd68899b4d45c65cd24f4a84b0347/firestore-0.0.8-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "238980e7b9c89041c2d2b03f1204841f", "sha256": "ba1b8f5fe98c2cb15c4c220878e5abf780be73880e87b889d7d5cb8b60df50c3" }, "downloads": -1, "filename": "firestore-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "238980e7b9c89041c2d2b03f1204841f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 40001, "upload_time": "2019-08-26T02:24:43", "url": "https://files.pythonhosted.org/packages/f6/1b/9cf398d40e608c9c7884afb19da8a3af69f16db35e33f5ee15d223646e95/firestore-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "276f81dccf12f28bb7dde62770c761b6", "sha256": "00003c07da7ac03b03126bb7bbcb62402f2bdaa6880241824eb8e0f05a497548" }, "downloads": -1, "filename": "firestore-0.0.8.tar.gz", "has_sig": false, "md5_digest": "276f81dccf12f28bb7dde62770c761b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25526, "upload_time": "2019-08-26T02:24:51", "url": "https://files.pythonhosted.org/packages/bc/09/2b228b59dc3162b372fe5b1a86de903cac72048bf6b337e13ad830f089a0/firestore-0.0.8.tar.gz" } ], "0.1dev": [ { "comment_text": "", "digests": { "md5": "c3c5b7c9d65f60f156ee158a804f6ecb", "sha256": "1b22dc95f8708e51117d3b659bed306c03d4e0b1382a555260fc6a4ed1039b1f" }, "downloads": -1, "filename": "firestore-0.1dev.tar.gz", "has_sig": false, "md5_digest": "c3c5b7c9d65f60f156ee158a804f6ecb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 483, "upload_time": "2019-04-11T19:26:00", "url": "https://files.pythonhosted.org/packages/bb/b6/719f12c3784f0bc35cec4d479de604dd4075e05468940682ed39242a04f9/firestore-0.1dev.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "03a50ac7c2b88da9e4ab38163a6185a1", "sha256": "78762d2807587213cf5fd4c6653d15ef5aeeb1d8768aaed5c067597ce2db8ba2" }, "downloads": -1, "filename": "firestore-0.0.8-py3.7.egg", "has_sig": false, "md5_digest": "03a50ac7c2b88da9e4ab38163a6185a1", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 93121, "upload_time": "2019-08-26T02:24:49", "url": "https://files.pythonhosted.org/packages/25/e4/9e7340df908cbee45868449cde207f7fd68899b4d45c65cd24f4a84b0347/firestore-0.0.8-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "238980e7b9c89041c2d2b03f1204841f", "sha256": "ba1b8f5fe98c2cb15c4c220878e5abf780be73880e87b889d7d5cb8b60df50c3" }, "downloads": -1, "filename": "firestore-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "238980e7b9c89041c2d2b03f1204841f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 40001, "upload_time": "2019-08-26T02:24:43", "url": "https://files.pythonhosted.org/packages/f6/1b/9cf398d40e608c9c7884afb19da8a3af69f16db35e33f5ee15d223646e95/firestore-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "276f81dccf12f28bb7dde62770c761b6", "sha256": "00003c07da7ac03b03126bb7bbcb62402f2bdaa6880241824eb8e0f05a497548" }, "downloads": -1, "filename": "firestore-0.0.8.tar.gz", "has_sig": false, "md5_digest": "276f81dccf12f28bb7dde62770c761b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25526, "upload_time": "2019-08-26T02:24:51", "url": "https://files.pythonhosted.org/packages/bc/09/2b228b59dc3162b372fe5b1a86de903cac72048bf6b337e13ad830f089a0/firestore-0.0.8.tar.gz" } ] }