{ "info": { "author": "MP Team", "author_email": "feedback@materialsproject.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Topic :: Database", "Topic :: Database :: Database Engines/Servers", "Topic :: Database :: Front-Ends" ], "description": "[![Build Status](https://travis-ci.org/materialsproject/optimade.svg?branch=master)](https://travis-ci.org/materialsproject/optimade)\n\nA library of tools for implementing and consuming\n[OPTiMaDe](http://www.optimade.org) APIs in Python.\n\nThe aim of OPTiMaDe is to develop a common API, compliant\nwith the [JSON API 1.0](http://jsonapi.org/format/1.0/)\nspec, to enable interoperability\namong databases\nthat contain calculated properties of\nexisting and hypothetical materials.\n\n### Status\nThis library is under development. Progress is expected during the [CECAM Workshop on Open Databases Integration for Materials Design](https://www.cecam.org/workshop-4-1525.html) during the week of June 11, 2018 to June 15, 2018.\n\n### Getting Started\n\nInstall via `pip install optimade`. Example use:\n\n```python\nfrom optimade.filter import Parser\n\np = Parser(version=(0, 9, 5))\np.parse(\"filter=a<3\")\n```\n```\nTree(start, [Token(KEYWORD, 'filter='), Tree(expression, [Tree(term, [Tree(atom, [Tree(comparison, [Token(VALUE, 'a'), Token(OPERATOR, '<'), Token(VALUE, '3')])])])])])\n```\n```python\np = Parser()\np.version\n```\n```\n(0, 9, 5)\n```\n```python\ntree = p.parse('filter=_mp_bandgap > 5.0 AND _cod_molecular_weight < 350')\nprint(p)\n```\n```\nstart\n filter=\n expression\n term\n term\n atom\n comparison\n _mp_bandgap\n >\n 5.0\n AND\n atom\n comparison\n _cod_molecular_weight\n <\n 350\n```\n```python\n# Assumes graphviz installed on system and `pip install pydot`\nfrom lark.tree import pydot__tree_to_png\n\npydot__tree_to_png(tree, \"exampletree.png\")\n```\n![example tree](exampletree.png)\n\n\n\n\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/materialsproject/optimade/", "keywords": "optimade jsonapi materials", "license": "modified BSD", "maintainer": "", "maintainer_email": "", "name": "optimade", "package_url": "https://pypi.org/project/optimade/", "platform": "", "project_url": "https://pypi.org/project/optimade/", "project_urls": { "Homepage": "https://github.com/materialsproject/optimade/" }, "release_url": "https://pypi.org/project/optimade/0.1.12/", "requires_dist": [ "marshmallow-jsonapi (>=0.19.0)", "marshmallow (>=2.15.3)", "pymongo (>=3.6.1)", "lark-parser (>=0.5.6)" ], "requires_python": ">=3", "summary": "Tools for implementing and consuming OPTiMaDe APIs.", "version": "0.1.12" }, "last_serial": 3961329, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "9a2d05ea373bbba7355b7481121e2c94", "sha256": "0ca906582d047c578e6c6763832eacb78004d0bed753228da92464d54cce2874" }, "downloads": -1, "filename": "optimade-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9a2d05ea373bbba7355b7481121e2c94", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 1705, "upload_time": "2018-06-05T20:58:52", "url": "https://files.pythonhosted.org/packages/a8/59/2ddcaabcde4e1a3207101514004ca720404d53ea06ca7a94d1c25f76d1bc/optimade-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9161af7e8945a544b731aed7fd32246d", "sha256": "798fc161f0c79557b2490c440dc1b47a228e55b0f47fa2be218ba794ad000ed6" }, "downloads": -1, "filename": "optimade-0.1.0.tar.gz", "has_sig": false, "md5_digest": "9161af7e8945a544b731aed7fd32246d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 1518, "upload_time": "2018-06-05T20:58:53", "url": "https://files.pythonhosted.org/packages/3e/d9/6668bfaebb27ee5e8610c8b1be4f2830dd286334b085fc36e3bfc406db67/optimade-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "8db9c1ede90c84b80f5b8d9c2e1e3d5a", "sha256": "33cee38d63e5231d7f3044518eaa0b6985b1774c7d5f684b2d801b223ea6dc94" }, "downloads": -1, "filename": "optimade-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8db9c1ede90c84b80f5b8d9c2e1e3d5a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 2416, "upload_time": "2018-06-13T16:40:15", "url": "https://files.pythonhosted.org/packages/0f/2f/9dc8f694dd19113d4654cc3f23c4c1ae4ca1dadf88bdd7b5931742056687/optimade-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae7f74738a1692b28e00fb8b0bab9f3d", "sha256": "adf354a1f58a5e3b078b85670a947c1e91272f3b8e1d654282b6da74bb6dae5a" }, "downloads": -1, "filename": "optimade-0.1.1.tar.gz", "has_sig": false, "md5_digest": "ae7f74738a1692b28e00fb8b0bab9f3d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 2099, "upload_time": "2018-06-13T16:40:16", "url": "https://files.pythonhosted.org/packages/01/0e/1a396868027c65cade722b582e45862a8e50bf225c1ca39f2b0ac3d887be/optimade-0.1.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "a064fd6e891ea6f793251215e5c0e159", "sha256": "af985fa880ed74c76472a779d193dbf0a502afa993a3cfb80ddb62b56425cee1" }, "downloads": -1, "filename": "optimade-0.1.10-py3-none-any.whl", "has_sig": false, "md5_digest": "a064fd6e891ea6f793251215e5c0e159", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3837, "upload_time": "2018-06-14T12:41:32", "url": "https://files.pythonhosted.org/packages/ec/5f/59808899308c4562ab324f84eb5d81784c8b2e93df5e12017a20d16f1753/optimade-0.1.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "afccdd5c7133b295d4c2dafea7b52ca4", "sha256": "1bbaff86d5bd9d253dcb2083e898f77d3b4212eb2c394527be204846cbb87b3b" }, "downloads": -1, "filename": "optimade-0.1.10.tar.gz", "has_sig": false, "md5_digest": "afccdd5c7133b295d4c2dafea7b52ca4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 3445, "upload_time": "2018-06-14T12:41:33", "url": "https://files.pythonhosted.org/packages/45/af/85533eec57efa22166e45b2624854224cb0607a3b3c2a1121a2c01f6c7d9/optimade-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "b6cff6484049fdb4fc49a8c8eaa2dda2", "sha256": "1e3c5cd89f2a557a9bfa9192246377abddce19d77f803d8f62b5e699e0c65360" }, "downloads": -1, "filename": "optimade-0.1.11-py3-none-any.whl", "has_sig": false, "md5_digest": "b6cff6484049fdb4fc49a8c8eaa2dda2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3868, "upload_time": "2018-06-14T12:49:19", "url": "https://files.pythonhosted.org/packages/02/e5/a7a9b3daad6a3539b8e039563f941428f29ab57de57efcbd6017af46260b/optimade-0.1.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "41dd3edce31896298748b50ba4ecf305", "sha256": "5198c134928f5136e30e44628bae6fd75824048a5bd5919725b2ae09050d756e" }, "downloads": -1, "filename": "optimade-0.1.11.tar.gz", "has_sig": false, "md5_digest": "41dd3edce31896298748b50ba4ecf305", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 3477, "upload_time": "2018-06-14T12:49:20", "url": "https://files.pythonhosted.org/packages/98/2b/d0ce464df5ee7c763aa72e540bfb906c416171c993c7e6d43dbc12e6b92a/optimade-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "9fd0ee0335e29f8aeb0f7af2a2843155", "sha256": "4f21de924357a5efedfb28e70714dd483591923c910596b1cc3861188e6ebbfc" }, "downloads": -1, "filename": "optimade-0.1.12-py3-none-any.whl", "has_sig": false, "md5_digest": "9fd0ee0335e29f8aeb0f7af2a2843155", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 4308, "upload_time": "2018-06-14T13:12:58", "url": "https://files.pythonhosted.org/packages/25/e3/aa8d477d0d7264bdbbe7e244a72e4461d0f15be92fd696f438390f9af99f/optimade-0.1.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eda2c34ebaef2d0f2f5b411ad86f8340", "sha256": "b2d09278457792c4e3b59109f3d4b6aaff38072d0303d6b4d3d7c1392828fca5" }, "downloads": -1, "filename": "optimade-0.1.12.tar.gz", "has_sig": false, "md5_digest": "eda2c34ebaef2d0f2f5b411ad86f8340", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4041, "upload_time": "2018-06-14T13:13:02", "url": "https://files.pythonhosted.org/packages/89/6b/3e3d9caea7ceeb75f48826f6b4b813e3c31a74ad1b0df26e755197908625/optimade-0.1.12.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "e6d5e070829fdda0d778280e1c5dd264", "sha256": "870ba39b02cc24023c0f106d07c64c664edca35907c0f6e80c92f85098729db6" }, "downloads": -1, "filename": "optimade-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e6d5e070829fdda0d778280e1c5dd264", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 2407, "upload_time": "2018-06-14T10:25:16", "url": "https://files.pythonhosted.org/packages/1e/ed/9230aa927f953eb4e2c162c5bc2adee8a1528419c2634f1c682492a3ba5f/optimade-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1291227272ba2fd8b2cce0b49c01969", "sha256": "323d528f745fd4604de645a0e1786bb9b74c56c584d140a887fdff25bdb31386" }, "downloads": -1, "filename": "optimade-0.1.2.tar.gz", "has_sig": false, "md5_digest": "b1291227272ba2fd8b2cce0b49c01969", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 2083, "upload_time": "2018-06-14T10:25:17", "url": "https://files.pythonhosted.org/packages/c5/b1/020ef036bd7b4a9dff5935f1a4fe49b2049e51ee2cdb52649869d5dbccaa/optimade-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "724bf7fc40f668d99de3a6ffaa286e4c", "sha256": "e7ee90100a8995d13b2d7fe6269817a5d90abe09f58c9a6ed78fdb918b16eb0b" }, "downloads": -1, "filename": "optimade-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "724bf7fc40f668d99de3a6ffaa286e4c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 2449, "upload_time": "2018-06-14T12:01:27", "url": "https://files.pythonhosted.org/packages/54/55/c4dd1b1cabfd4dbac287794b79dee0615eddaf651c5d1b85e561d05454c2/optimade-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8e0bf832db893e97f2aeba2a4198c574", "sha256": "e14241a798a5bf4d74d11c94f31567cc76faa6b98240a3ad8b4bc7d08c9d7a4c" }, "downloads": -1, "filename": "optimade-0.1.3.tar.gz", "has_sig": false, "md5_digest": "8e0bf832db893e97f2aeba2a4198c574", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 2185, "upload_time": "2018-06-14T12:01:29", "url": "https://files.pythonhosted.org/packages/72/d9/17a970a49ec576ba38f1d4bedaed864f980d71ab98dd26330828f43ac150/optimade-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "49129031d03075c84b4936aa8112abd6", "sha256": "0c42ae5320f83c6b3e07b41df47542ce79ee49a04575bff125e12cce38c3678c" }, "downloads": -1, "filename": "optimade-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "49129031d03075c84b4936aa8112abd6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 2450, "upload_time": "2018-06-14T12:08:06", "url": "https://files.pythonhosted.org/packages/30/d6/faa04dd55a817d1ee1fd4e2d1797d9b28d26cf9fd8cc1df5b5e41813442d/optimade-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "162876df3bd293725bf72fb81013dad5", "sha256": "224bbdf38755a871a95dd968203b4842fd1abb63c92ed7bfe0ebe4a5d1e50cce" }, "downloads": -1, "filename": "optimade-0.1.4.tar.gz", "has_sig": false, "md5_digest": "162876df3bd293725bf72fb81013dad5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 3057, "upload_time": "2018-06-14T12:08:08", "url": "https://files.pythonhosted.org/packages/77/a1/5685ce71cf0907ac98c8c0fe0d597fdd2ce364c9af866559ea832fd9334f/optimade-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "3eb0fd20667a393d37e22c2cd640d36b", "sha256": "8a7113ee9ccb19ef777328bc57582af94d199931658e74bf45b427a8b149e7ba" }, "downloads": -1, "filename": "optimade-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "3eb0fd20667a393d37e22c2cd640d36b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 2447, "upload_time": "2018-06-14T12:09:18", "url": "https://files.pythonhosted.org/packages/30/dc/12033b4258ebc3245dd1c8acde8a6a91c189880fdf460a204f6e9fdd298c/optimade-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "24779177a11f94bb72f60629e1948ec1", "sha256": "d8de35fdad3930a4d3c7e21c9f32af7289418a745406cb7f2aad4fa55c0e62e8" }, "downloads": -1, "filename": "optimade-0.1.5.tar.gz", "has_sig": false, "md5_digest": "24779177a11f94bb72f60629e1948ec1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 3378, "upload_time": "2018-06-14T12:09:19", "url": "https://files.pythonhosted.org/packages/59/21/b81f2b54c4422b57d4e90873a68843795b307a6a2c2fb239d540192fa26e/optimade-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "b04c67d86b529cf5ec151ef1428350c5", "sha256": "fc10e5dde3da7812fa44f0aea826f5d2c8034a70fbb9c5fb9f5373c490f4aa5f" }, "downloads": -1, "filename": "optimade-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "b04c67d86b529cf5ec151ef1428350c5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3306, "upload_time": "2018-06-14T12:21:54", "url": "https://files.pythonhosted.org/packages/19/5f/3d64141857206c3ae62a47225302f4a4430fa1c4383722ebaf07e9b9253e/optimade-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "01fcb1ea83ba8e8fd05e8fcd92909e92", "sha256": "76e324eab80a0b3fdd97fbc8050d28adc952f086f4ca754932c4bae1b12a9ead" }, "downloads": -1, "filename": "optimade-0.1.6.tar.gz", "has_sig": false, "md5_digest": "01fcb1ea83ba8e8fd05e8fcd92909e92", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 3396, "upload_time": "2018-06-14T12:21:55", "url": "https://files.pythonhosted.org/packages/ea/a2/8c2b9aa56c484556cca6c5e90b8af328714018320c26bafa1cf702fc9333/optimade-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "60f69233906f3e992943031dd11fadf7", "sha256": "ef61253823645c8b082191bb5964af119fbe975b121bbc4c06fd66327bc361e1" }, "downloads": -1, "filename": "optimade-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "60f69233906f3e992943031dd11fadf7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3307, "upload_time": "2018-06-14T12:26:16", "url": "https://files.pythonhosted.org/packages/83/75/35d1c0afc12bbfe3f0fec490be13ff420b35f0a96ee50f8f848b6fbceffc/optimade-0.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe0cf5a5f33806242c38705c936c487a", "sha256": "d8a94470512adb96b950773ffddba2cda2057c72a396187859245a6e82488ae7" }, "downloads": -1, "filename": "optimade-0.1.7.tar.gz", "has_sig": false, "md5_digest": "fe0cf5a5f33806242c38705c936c487a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 3394, "upload_time": "2018-06-14T12:26:17", "url": "https://files.pythonhosted.org/packages/88/45/78f4e6ba88ede43314ab6f926a74b20f345d5de85fc8f0b3c3c886d9bbd9/optimade-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "f639b5910625119a969af3d91b7a8624", "sha256": "698219044f7a8ded9badc8f3b502aa01b5c43a0ee9e96e1d33d6482b661a17dd" }, "downloads": -1, "filename": "optimade-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "f639b5910625119a969af3d91b7a8624", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3305, "upload_time": "2018-06-14T12:28:44", "url": "https://files.pythonhosted.org/packages/92/e1/6972c87dfd49520c25cf39a3f93257d73d8fb980afd1b53772455a057a03/optimade-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bceb9076fe2c40fce785e3459f48808f", "sha256": "407c4c3a6554dc868e1a25e0124b9c090119135cc44dc573b76f9461e33458c1" }, "downloads": -1, "filename": "optimade-0.1.8.tar.gz", "has_sig": false, "md5_digest": "bceb9076fe2c40fce785e3459f48808f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 3399, "upload_time": "2018-06-14T12:28:45", "url": "https://files.pythonhosted.org/packages/9e/2f/8233006ab117dd31302b747506e8d8edb897f5e4a85353ee53c5f9cf3626/optimade-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "4529b36065708567b72eefc8e7faa18e", "sha256": "471999b3086423a2e78a7792e0cd64ec9baca5aec9143c2f395c98ef7435538f" }, "downloads": -1, "filename": "optimade-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "4529b36065708567b72eefc8e7faa18e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3778, "upload_time": "2018-06-14T12:35:30", "url": "https://files.pythonhosted.org/packages/a2/25/d9c14549ba14598116cfe1484ef6b47057351062edf80c5c5c0896365aa4/optimade-0.1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "09ae30843d57082529e0ae5d070e5129", "sha256": "507a3f174ebd3bd7a155d0f2a9b54c1a79bb56aa3b59ae1dd371a010b8ac3e3a" }, "downloads": -1, "filename": "optimade-0.1.9.tar.gz", "has_sig": false, "md5_digest": "09ae30843d57082529e0ae5d070e5129", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 3406, "upload_time": "2018-06-14T12:35:31", "url": "https://files.pythonhosted.org/packages/4c/b8/ff2aebfcd705e41c8aa22d71db78c97d4c8208caab841808952cad235c8b/optimade-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9fd0ee0335e29f8aeb0f7af2a2843155", "sha256": "4f21de924357a5efedfb28e70714dd483591923c910596b1cc3861188e6ebbfc" }, "downloads": -1, "filename": "optimade-0.1.12-py3-none-any.whl", "has_sig": false, "md5_digest": "9fd0ee0335e29f8aeb0f7af2a2843155", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 4308, "upload_time": "2018-06-14T13:12:58", "url": "https://files.pythonhosted.org/packages/25/e3/aa8d477d0d7264bdbbe7e244a72e4461d0f15be92fd696f438390f9af99f/optimade-0.1.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eda2c34ebaef2d0f2f5b411ad86f8340", "sha256": "b2d09278457792c4e3b59109f3d4b6aaff38072d0303d6b4d3d7c1392828fca5" }, "downloads": -1, "filename": "optimade-0.1.12.tar.gz", "has_sig": false, "md5_digest": "eda2c34ebaef2d0f2f5b411ad86f8340", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4041, "upload_time": "2018-06-14T13:13:02", "url": "https://files.pythonhosted.org/packages/89/6b/3e3d9caea7ceeb75f48826f6b4b813e3c31a74ad1b0df26e755197908625/optimade-0.1.12.tar.gz" } ] }