{ "info": { "author": "Eran Kampf", "author_email": "eran@ekampf.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4" ], "description": "===============================\nGraphene GAE\n===============================\n\n.. image:: https://travis-ci.org/graphql-python/graphene-gae.svg?branch=master\n :target: https://travis-ci.org/graphql-python/graphene-gae\n\n.. image:: https://coveralls.io/repos/github/graphql-python/graphene-gae/badge.svg?branch=master\n :target: https://coveralls.io/github/graphql-python/graphene-gae?branch=master\n\n.. image:: https://img.shields.io/pypi/v/graphene-gae.svg\n :target: https://pypi.python.org/pypi/graphene-gae\n\n\n\nA Google AppEngine integration library for `Graphene `__\n\n* Free software: BSD license\n* Documentation: https://graphene_gae.readthedocs.org.\n\nUpgrade Notes\n-------------\nIf you're upgrading from an older version (pre 2.0 version) \nplease check out the `Graphene Upgrade Guide `__.\n\n\nInstallation\n------------\n\nTo install Graphene-GAE on your AppEngine project, go to your\nproject folder and runthis command in your shell:\n\n.. code:: bash\n\n pip install graphene-gae -t ./libs\n\nThis will install the library and its dependencies to the `libs` folder\nunder your projects root - so the dependencies get uploaded withyour GAE\nproject when you publish your app.\n\nMake sure the `libs` folder is in your python path by adding the following\nto your `appengine_config.py`:\n\n.. code:: python\n\n import sys\n\n for path in ['libs']:\n if path not in sys.path:\n sys.path[0:0] = [path]\n\n\nExamples\n--------\n\nHere's a simple GAE model:\n\n.. code:: python\n\n class Article(ndb.Model):\n headline = ndb.StringProperty()\n summary = ndb.TextProperty()\n text = ndb.TextProperty()\n\n author_key = ndb.KeyProperty(kind='Author')\n\n created_at = ndb.DateTimeProperty(auto_now_add=True)\n updated_at = ndb.DateTimeProperty(auto_now=True)\n\nTo create a GraphQL schema for it you simply have to write the following:\n\n.. code:: python\n\n import graphene\n from graphene_gae import NdbObjectType\n\n class ArticleType(NdbObjectType):\n class Meta:\n model = Article\n\n class Query(graphene.ObjectType):\n articles = graphene.List(ArticleType)\n\n @graphene.resolve_only_args\n def resolve_articles(self):\n return Article.query()\n\n schema = graphene.Schema(query=QueryRoot)\n\nThen you can simply query the schema:\n\n.. code::python\n\n query = '''\n query GetArticles {\n articles {\n headline,\n summary,\n created_at\n }\n }\n '''\n result = schema.execute(query)\n\nTo learn more check out the following `examples `__:\n\n* `Starwars `__\n\nContributing\n------------\n\nAfter cloning this repo, ensure dependencies are installed by running:\n\n.. code:: sh\n\n make deps\n make install\n\nMake sure tests and lint are running:\n\n.. code:: sh\n\n make test\n make lint\n\n\n\n\nHistory\n-------\n1.0.7 (TBD)\n-----------\n* GraphQLHandler GET supoort ([PR #27](https://github.com/graphql-python/graphene-gae/pull/27))\n\n1.0.6 (2016-12-06)\n------------------\n* Fixed DeadlineExceededError import swo connections properly handle timeouts\n\n1.0.5 (2016-11-23)\n------------------\n* Improved behavior of `NdbConnectionField` when `transform_edges` also filters out some edges ([PR #26](https://github.com/graphql-python/graphene-gae/pull/25))\n\n1.0.3 (2016-11-22)\n------------------\n* Added `transform_edges` to `NdbConnectionField` ([PR #25](https://github.com/graphql-python/graphene-gae/pull/25))\n\n1.0.2 (2016-10-20)\n------------------\n* Added `_handle_graphql_errors` hook to GraphQLHandler\n\n1.0.1 (2016-09-28)\n------------------\n* Added missing support for StructuredProperty\n\n1.0 (2016-09-26)\n----------------\n* Upgraded to Graphene 1.0\n\n0.1.9 (2016-08-17)\n---------------------\n* Each NdbObject now exposes an `ndbId` String field that maps to the entity's `key.id()`\n* Added ndb boolean argument to NdbKeyStringField so now when looking at KeyProperty we can fetch either global GraphQL id or the NDB internal id.\n\n\n0.1.8 (2016-08-16)\n---------------------\n* Made connection_from_ndb_query resilient to random ndb timeouts\n\n\n0.1.7 (2016-06-14)\n---------------------\n* BREAKING: Fixed behavior of KeyProperty to expose GraphQL Global IDs instead of internal ndb.Key values. ([PR #16](https://github.com/graphql-python/graphene-gae/pull/16))\n\n0.1.6 (2016-06-10)\n---------------------\n* Changing development status to Beta\n* Added NdbNode.global_id_to_key [PR #15](https://github.com/graphql-python/graphene-gae/pull/15)\n\n0.1.5 (2016-06-08)\n---------------------\n* Fixed behavior of ndb.KeyProperty ([PR #14](https://github.com/graphql-python/graphene-gae/pull/14))\n\n0.1.4 (2016-06-02)\n---------------------\n* NdbConnectionField added arguments that can be used in quert:\n * keys_only - to execute a keys only query\n * batch_size - to control the NDB query iteration batch size\n * page_size - control the page sizes when paginating connection results\n* Added support for LocalStructuredProperty.\n * Given a property `ndb.LocalStructuredType(Something)` it will automatically\n map to a Field(SomethingType) - SomethingType has to be part of the schema.\n * Support for `repeated` and `required` propeties.\n\n\n0.1.3 (2016-05-27)\n---------------------\n* Added `graphene_gae.webapp2.GraphQLHandler` - a basic HTTP Handler to process GraphQL requests\n\n\n0.1.1 (2016-05-25)\n---------------------\n\n* Updated graphene dependency to latest 0.10.1 version.\n * NdbConnection.from_list now gets context as parameter\n\n\n0.1.0 (2016-05-11)\n---------------------\n\n* First release on PyPI.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/graphql-python/graphene-gae", "keywords": "graphene_gae", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "graphene-gae", "package_url": "https://pypi.org/project/graphene-gae/", "platform": "", "project_url": "https://pypi.org/project/graphene-gae/", "project_urls": { "Homepage": "https://github.com/graphql-python/graphene-gae" }, "release_url": "https://pypi.org/project/graphene-gae/2.0.0/", "requires_dist": null, "requires_python": "", "summary": "Graphene GAE Integration", "version": "2.0.0" }, "last_serial": 3540050, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "9c1bbb85f82a2aee437b2000c4d3c252", "sha256": "bd935e927c2503c45540d49b46760b9b6d82ca7afe06704f7731b37232282a64" }, "downloads": -1, "filename": "graphene_gae-1.0.tar.gz", "has_sig": false, "md5_digest": "9c1bbb85f82a2aee437b2000c4d3c252", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24808, "upload_time": "2016-09-26T17:54:36", "url": "https://files.pythonhosted.org/packages/7a/be/17588413c22092d1250771cf5642a92bceaaafa60c1728560069bb5207e2/graphene_gae-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "72d0bd9d71fc4966226314b155f48acf", "sha256": "a321a1d9ecf5a17a86b845963f2fbcb2caec3421bb8ba68c92251172fce900d9" }, "downloads": -1, "filename": "graphene_gae-1.0.1.tar.gz", "has_sig": false, "md5_digest": "72d0bd9d71fc4966226314b155f48acf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24878, "upload_time": "2016-09-28T18:24:10", "url": "https://files.pythonhosted.org/packages/d5/59/f0d129ae53c69fffd3436b4d9b91fefe21c84f6adf82b58019e8a2f009a4/graphene_gae-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "dd7ecdad581b146e6925f54933fb28e7", "sha256": "2ac232fc3e2dfd77296b860a3444dc4f1e0e7e37af20a831635bd81098139a75" }, "downloads": -1, "filename": "graphene_gae-1.0.2.tar.gz", "has_sig": false, "md5_digest": "dd7ecdad581b146e6925f54933fb28e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24971, "upload_time": "2016-10-20T21:45:01", "url": "https://files.pythonhosted.org/packages/60/5c/ca1e3c0a6a7247357017363f4b4a642c852689d42ab13b7394a752234182/graphene_gae-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "c1eae4d00cf9b99017f9174e6f5b2eb5", "sha256": "365d84772235eac2e9d7e47a57044ebf525738cd444d37b5506e99bce0bc9667" }, "downloads": -1, "filename": "graphene_gae-1.0.3.tar.gz", "has_sig": false, "md5_digest": "c1eae4d00cf9b99017f9174e6f5b2eb5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25643, "upload_time": "2016-11-22T23:38:20", "url": "https://files.pythonhosted.org/packages/30/c6/2cb3fdb196c3edf92e67a506b6ddac655a96d37361f654415570b0dee1ee/graphene_gae-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "479c262d6807fb95d91706c68778ff69", "sha256": "0d3eb40ed8c95955d2032f841da44ee21112a1a521a8cb5ce8d972c1ecf9cdb6" }, "downloads": -1, "filename": "graphene_gae-1.0.4.tar.gz", "has_sig": false, "md5_digest": "479c262d6807fb95d91706c68778ff69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25709, "upload_time": "2016-11-23T17:52:37", "url": "https://files.pythonhosted.org/packages/bd/6a/82f0168be9704073c57acea8fd627b713b8096a28a20fc92295a45e1f4dd/graphene_gae-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "f8570761edadc44972b4738750e0ba09", "sha256": "3ce64e17312bc7548c300acd5064dba33e57a6607313d9eeaa329c55101f11d7" }, "downloads": -1, "filename": "graphene_gae-1.0.5.tar.gz", "has_sig": false, "md5_digest": "f8570761edadc44972b4738750e0ba09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25902, "upload_time": "2016-11-24T01:55:12", "url": "https://files.pythonhosted.org/packages/1e/2b/828b94e74434154fbc38c394859698292cadb1b29d70a7d90d68eb3c5b7f/graphene_gae-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "bf15e9def174a6d2f374514ccc6b2a8e", "sha256": "736ab53713bf7750d5a21794d18e08d1fa8c080ff729344e2805ec833914b523" }, "downloads": -1, "filename": "graphene_gae-1.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bf15e9def174a6d2f374514ccc6b2a8e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13976, "upload_time": "2016-12-06T20:06:21", "url": "https://files.pythonhosted.org/packages/29/a6/274421ec96b564b402c4bfdd884a6099ee3ebb7d49c7bdb5c823e8028358/graphene_gae-1.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1e7c806533261f7cad457f0d7a6fedae", "sha256": "09cc1692ca85bf71577179d393d2974af2e14fef7cd1c32310126d7470ecee13" }, "downloads": -1, "filename": "graphene_gae-1.0.6.tar.gz", "has_sig": false, "md5_digest": "1e7c806533261f7cad457f0d7a6fedae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25812, "upload_time": "2016-12-06T20:06:23", "url": "https://files.pythonhosted.org/packages/6d/d5/8b683e878bac4f4f067ddd0c88c4d39d87ca9e1481aaa2ec6ab115867fa9/graphene_gae-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "e2970b3c34b20831a29864185592cd24", "sha256": "ed41a2af965c5969a0ba8638aeaf50d8bdb39784f01ef3e0837f59171902cbfe" }, "downloads": -1, "filename": "graphene_gae-1.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e2970b3c34b20831a29864185592cd24", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14003, "upload_time": "2017-01-06T00:02:49", "url": "https://files.pythonhosted.org/packages/dc/86/f6093e7d31642bb7389b7d4db5323002dd9830f9c131d5068d79e68db5b1/graphene_gae-1.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "50c00e5b5d5618b903e075e4b84c938b", "sha256": "2f964d5ebc17a867e7d4e0c39a2421462a104a409fd066c10e7fd70ea7c4fb61" }, "downloads": -1, "filename": "graphene_gae-1.0.7.tar.gz", "has_sig": false, "md5_digest": "50c00e5b5d5618b903e075e4b84c938b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25817, "upload_time": "2017-01-06T00:02:47", "url": "https://files.pythonhosted.org/packages/44/c6/2174c2d4fc19293e91ce318a307855ef344d33e77c0025aa1f9de6cb6ff8/graphene_gae-1.0.7.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "6271d7af8918acf088d4218bf0ee31e3", "sha256": "d0141b76853ae6297a12359c3b64b1d410439eeb339107bd839daef97cf73e34" }, "downloads": -1, "filename": "graphene_gae-2.0.0.tar.gz", "has_sig": false, "md5_digest": "6271d7af8918acf088d4218bf0ee31e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28299, "upload_time": "2018-02-01T00:42:09", "url": "https://files.pythonhosted.org/packages/56/a7/a3aee22a7215b09c6a884b8e4a2c56c5bf0e24a0de3e4c956318a43b1573/graphene_gae-2.0.0.tar.gz" } ], "2.0.dev2017072601": [ { "comment_text": "", "digests": { "md5": "6d482e63a54d6b6a4715b5a4536e0b16", "sha256": "379da0d0588363ba8d474560eb0f3d62cf1a8ba3d1056988ba2cd3a7d974a1f2" }, "downloads": -1, "filename": "graphene_gae-2.0.dev2017072601.tar.gz", "has_sig": false, "md5_digest": "6d482e63a54d6b6a4715b5a4536e0b16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26470, "upload_time": "2017-07-27T05:52:52", "url": "https://files.pythonhosted.org/packages/4c/a2/fdb94f5e6dfa8d0da25b8eb65dd346489e7fbd9d1faade8f48fcf031a7fd/graphene_gae-2.0.dev2017072601.tar.gz" } ], "2.0.dev2017072602": [ { "comment_text": "", "digests": { "md5": "0a42cff842a7ead83226d1aafa8164b2", "sha256": "3fe8ee41e1efabac53ee6f386b9f1ebd30727a1e9f246058a069a90087be543a" }, "downloads": -1, "filename": "graphene_gae-2.0.dev2017072602.tar.gz", "has_sig": false, "md5_digest": "0a42cff842a7ead83226d1aafa8164b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26501, "upload_time": "2017-07-27T07:00:37", "url": "https://files.pythonhosted.org/packages/f5/50/ed4b5558a19131ba5e6605b787ab3c2f1157a61dfecbfc38d0a6b5273b06/graphene_gae-2.0.dev2017072602.tar.gz" } ], "2.0.dev2017073101": [ { "comment_text": "", "digests": { "md5": "80012ca1b3aee1138f08b0bfdc1cc9bf", "sha256": "2522c729911fd863e6c0ab39bc49717e8385307a1b2f6ab91b31c10e25bbc3b1" }, "downloads": -1, "filename": "graphene_gae-2.0.dev2017073101-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "80012ca1b3aee1138f08b0bfdc1cc9bf", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14992, "upload_time": "2017-08-01T06:16:54", "url": "https://files.pythonhosted.org/packages/3f/47/0e689760ba6991c5dd5d9b5d68ef25f6222149c1d912b036dd920aa0ae50/graphene_gae-2.0.dev2017073101-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f161b8837e3197f84804d0be1119354a", "sha256": "aedadd3768f152d1a2da69ad6866b90035a035e4dba3ec620a292e9ebf13c1bb" }, "downloads": -1, "filename": "graphene_gae-2.0.dev2017073101.tar.gz", "has_sig": false, "md5_digest": "f161b8837e3197f84804d0be1119354a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26499, "upload_time": "2017-08-01T06:16:52", "url": "https://files.pythonhosted.org/packages/10/b4/920c4dd49511c8898e9bdb8550675e5acaf26f8a8b389d731238df867579/graphene_gae-2.0.dev2017073101.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6271d7af8918acf088d4218bf0ee31e3", "sha256": "d0141b76853ae6297a12359c3b64b1d410439eeb339107bd839daef97cf73e34" }, "downloads": -1, "filename": "graphene_gae-2.0.0.tar.gz", "has_sig": false, "md5_digest": "6271d7af8918acf088d4218bf0ee31e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28299, "upload_time": "2018-02-01T00:42:09", "url": "https://files.pythonhosted.org/packages/56/a7/a3aee22a7215b09c6a884b8e4a2c56c5bf0e24a0de3e4c956318a43b1573/graphene_gae-2.0.0.tar.gz" } ] }