{ "info": { "author": "Tiziano M\u00fcller", "author_email": "tiziano.mueller@chem.uzh.ch", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# aiida-graphql\n\n[![Build Status](https://travis-ci.com/dev-zero/aiida-graphql.svg?branch=develop)](https://travis-ci.com/dev-zero/aiida-graphql) [![codecov](https://codecov.io/gh/dev-zero/aiida-graphql/branch/develop/graph/badge.svg)](https://codecov.io/gh/dev-zero/aiida-graphql) [![PyPI](https://img.shields.io/pypi/pyversions/aiida-graphql)](https://pypi.org/project/aiida-graphql/)\n\nStrawberry-based GraphQL Server for AiiDA\n\nWhy GraphQL when there is already the REST API? See https://www.howtographql.com/basics/1-graphql-is-the-better-rest/\n... a lot of possible optimizations and fits the graph-based structure of the AiiDA DB a lot better than a REST API.\n\n## Requirements\n\n* Python 3.7+\n* https://pypi.org/project/strawberry-graphql/ 0.16.7+\n* https://pypi.org/project/aiida-core/ 1.0.0b6+\n\nFor development: https://poetry.eustace.io/\n\nWhy Strawberry for GraphQL? It uses graphql-core v3 (while graphene is still stuck with v2), uses typings and dataclasses for both validation and schema generation. And it uses modern Python to write the schema, in comparison to the [schema-first approach](https://ariadnegraphql.org/).\n\nWhy Python 3.7+? It's the future, and for Strawberry. In fact, were it not for a bug in `uvloop` this would be Python 3.8+ (for the walrus operator). And given the timeline these projects are running for, we'll probably see Python 3.9 until people effectively start using it.\n\nWhy Poetry? I wanted to get away from `setuptools` and used Poetry already in a [different project](https://github.com/dev-zero/cp2k-input-tools) and liked the virtualenv integration.\n\n# Usage\n\n## Development\n\nInstalling the dependencies:\n\n```bash\ngit clone https://github.com/dev-zero/aiida-graphql.git\ncd aiida-graphql\n\n# for poetry installation use the official documentation\npoetry install\n```\n\nTo run the development server:\n\n```console\n$ poetry run strawberry server aiida_graphql.schema\n```\n\nthen visit http://localhost:8000/graphql with your browser.\n\nExample query:\n\n```graphql\n{\n computers {\n uuid\n name\n description\n schedulerType\n transportType\n }\n}\n```\n\n![Query Screenshot](docs/screenshot.png?raw=true \"Query Screenshot\")\n\n\n# Available fields\n\n* node\n* calculation\n* computer\n* user\n* singlefile\n* gaussian_basissets (only if the [aiida-gaussian-datatypes](https://github.com/dev-zero/aiida-gaussian-datatypes) is installed)\n\nDocumentation and schema are embedded in the development server.\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dev-zero/aiida-graphql", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "aiida-graphql", "package_url": "https://pypi.org/project/aiida-graphql/", "platform": "", "project_url": "https://pypi.org/project/aiida-graphql/", "project_urls": { "Homepage": "https://github.com/dev-zero/aiida-graphql", "Repository": "https://github.com/dev-zero/aiida-graphql" }, "release_url": "https://pypi.org/project/aiida-graphql/0.0.2/", "requires_dist": [ "aiida (>=1.0.0b6,<2.0.0)", "strawberry-graphql (>=0.16.7,<0.17.0)" ], "requires_python": ">=3.7,<4.0", "summary": "Strawberry-based GraphQL API Server for AiiDA", "version": "0.0.2", "yanked": false, "yanked_reason": null }, "last_serial": 6041905, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "9e147c072e013460faee41e084059034", "sha256": "22011d14059c98f5f455e9cd3681d2d9ea494f4dd2f314e08ba24c79e0a5b86a" }, "downloads": -1, "filename": "aiida_graphql-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9e147c072e013460faee41e084059034", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 6628, "upload_time": "2019-10-22T08:14:15", "upload_time_iso_8601": "2019-10-22T08:14:15.122780Z", "url": "https://files.pythonhosted.org/packages/4d/a5/3bace3479a01b3408e6dec1ca42b8cb51fe7f82ff450cbae5e0d0d4fe63b/aiida_graphql-0.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c9a5e9c666582f2742e5d16cb44e95fe", "sha256": "678834e14e9b3869abeea6324229e34f1e2302ea04b78cec7ce47e0dfdde24db" }, "downloads": -1, "filename": "aiida-graphql-0.0.1.tar.gz", "has_sig": false, "md5_digest": "c9a5e9c666582f2742e5d16cb44e95fe", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 5764, "upload_time": "2019-10-22T08:14:11", "upload_time_iso_8601": "2019-10-22T08:14:11.661985Z", "url": "https://files.pythonhosted.org/packages/88/02/d5525463d6692d0680074037ed2a7fb01f5be63f42473d064619b3c940cf/aiida-graphql-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "607fd5d46253ff1109fc43cac5743be1", "sha256": "fd2993827f5742014f48a6fa2dab18d9f123df85ac05059f00e0a1be1e45eb8a" }, "downloads": -1, "filename": "aiida_graphql-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "607fd5d46253ff1109fc43cac5743be1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 6575, "upload_time": "2019-10-28T13:40:29", "upload_time_iso_8601": "2019-10-28T13:40:29.488034Z", "url": "https://files.pythonhosted.org/packages/9e/d8/ad6a024f3f854b33f9d9e0e83c023427a6469b4706736b541d0f46d42706/aiida_graphql-0.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "eaa8e94d8d10d9a390347a3ba0fe2e36", "sha256": "2c6afdee46a2b824c58647c041232798e13855adff30e15146c58f6080f1f6df" }, "downloads": -1, "filename": "aiida-graphql-0.0.2.tar.gz", "has_sig": false, "md5_digest": "eaa8e94d8d10d9a390347a3ba0fe2e36", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 5701, "upload_time": "2019-10-28T13:40:27", "upload_time_iso_8601": "2019-10-28T13:40:27.940531Z", "url": "https://files.pythonhosted.org/packages/26/4b/0064249862ba73186a6414e3295aa1d989e423bcb07085dcdc4be89994d7/aiida-graphql-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "607fd5d46253ff1109fc43cac5743be1", "sha256": "fd2993827f5742014f48a6fa2dab18d9f123df85ac05059f00e0a1be1e45eb8a" }, "downloads": -1, "filename": "aiida_graphql-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "607fd5d46253ff1109fc43cac5743be1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 6575, "upload_time": "2019-10-28T13:40:29", "upload_time_iso_8601": "2019-10-28T13:40:29.488034Z", "url": "https://files.pythonhosted.org/packages/9e/d8/ad6a024f3f854b33f9d9e0e83c023427a6469b4706736b541d0f46d42706/aiida_graphql-0.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "eaa8e94d8d10d9a390347a3ba0fe2e36", "sha256": "2c6afdee46a2b824c58647c041232798e13855adff30e15146c58f6080f1f6df" }, "downloads": -1, "filename": "aiida-graphql-0.0.2.tar.gz", "has_sig": false, "md5_digest": "eaa8e94d8d10d9a390347a3ba0fe2e36", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 5701, "upload_time": "2019-10-28T13:40:27", "upload_time_iso_8601": "2019-10-28T13:40:27.940531Z", "url": "https://files.pythonhosted.org/packages/26/4b/0064249862ba73186a6414e3295aa1d989e423bcb07085dcdc4be89994d7/aiida-graphql-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }