{ "info": { "author": "Damien Coupry", "author_email": "damien.coupry@uni-leipzig.de", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: Implementation :: CPython" ], "description": "\nAuToGraFS\n=========\n\nOriginal publication: `\"Automatic Topological Generator for Framework Structures\"`__.\n\n.. _here: http://pubs.acs.org/doi/abs/10.1021/jp507643v \n\n__ here_\n\n*This version is under active development*. Bug hunting is very much going on, and there are still some old funtionalities that are not yet reimplemented.\n\nTODO:\n-----\n\nMedium priority:\n- offer an isotropic scaling option\n- the symmetry axes detection has trouble with planar shapes\n- more robust mmanalysis module\n\nLow priority:\n\n- unit testing coverage is non-existant\n- documentation writing\n- better handling of the databases:\n + precomputing sbu-topologies correspondance\n + use better format than pickle\n\nInstall:\n--------\n\n.. highlight:: bash\n\n$ pip install --user --upgrade AuToGraFS\n\n\nFor a manual install, first install the dependencies,\n\n1. python >=3.4\n2. ase, scipy, numpy<1.15.0\n\n\nthen clone this repository and add it to you pythonpath::\n\n\t$ cd $HOME\n\t$ git clone https://github.com/DCoupry/autografs.git\n\t$ export PYTHONPATH=$HOME/autografs:$PYTHONPATH`\n\n\nExamples:\n---------\n\nFrom any python script or command line:\n\n.. highlight:: python\n\n>>> from autografs import Autografs\n>>> mofgen = Autografs()\n>>> mof = mofgen.make(topology_name=\"pcu\", \n>>> sbu_names=[\"Zn_mof5_octahedral\", \"Benzene_linear\"])\n>>> mof.write()\n\nCustom databases can be accessed by passing the path during instanciation\n\n>>> mofgen = Autografs(topology_path=\"my_topo_path\",sbu_path=\"my_sbu_path\")\n>>> mof = mofgen.set_topology(topology_name=custom_topology_name,sbu_name=custom_sbu_names)\n\nWhen looping over both SBU and topologies, it is better to set the topology directly\n(here, my_topologies and my_sbu_names are appropriate dummy colletions)\n\n>>> for topologi_name in my_topology_names:\n>>> mofgen.set_topology(topology_name=topology_name)\n>>> for sbu_names in my_sbu_names:\n>>> mof = mofgen.make(sbu_names=sbu_names)\n\nIt is possible to pass more than one SBU of each shape, optionally with an associated probabilistic weight.\nThis weight defaults to 1.0/(number of similar sbu).\n\n>>> mof = mofgen.make(topology_name=\"pcu\", \n>>> sbu_names=[\"Zn_mof5_octahedral\", (\"Benzene_linear\",2.0),(\"Acetylene_linear\",0.5)])\n>>> mof.write()\n\nThis is particularly helpful in combination with an initial supercell for statistically introducing defects.\n\n>>> mof = mofgen.make(topology_name=\"pcu\", \n>>> sbu_names=[(\"Zn_mof5_octahedral\",2.0),(\"defect_octahedral\",0.5), \"Benzene_linear\"],\n>>> supercell=(3,3,3))\n>>> mof.write()\n\nSupercell can also be generated post-alignement, carrying everything done before.\n\n>>> supercell_6x6x6 = mof.get_supercell(m=2)\n>>> supercell_6x6x6.write()\n\nDefects and modifications can be introduced at any time directly:\n\n>>> # get the site directly\n>>> sbu = mof[7]\n>>> # change all hydrogens to Fluorine\n>>> atoms = sbu.atoms.copy()\n>>> symbols = atoms.get_chemical_symbols()\n>>> symbols = [s if s!=\"H\" else \"F\" for s in symbols]\n>>> atoms.set_chemical_symbols(symbols)\n>>> # by setting the atoms back, \n>>> # mmtypes and bonding are updated.\n>>> sbu.set_atoms(atoms=atoms,analyze=True)\n>>> # delete another sbu. H will cap the dangling bits.\n>>> del mof[8]\n>>> mof.write()\n\nMethods are also available for the rotation, functionalization and flipping.\n\n>>> # rotate the sbu 7 buy 45 degrees\n>>> mof.rotate(index=7,angle=45.0)\n>>> # if a C* axis or reflection plane is detected\n>>> # in the sbu 8 , flip around it\n>>> mof.flip(index=8)\n>>> # replace all functionalizable H sites with NH2\n>>> nh2 = mofgen.sbu[\"NH2_point_group\"]\n>>> sites = mof.list_functionalizable_sites(self,symbol=\"H\")\n>>> for site in sites:\n>>> mof.functionalize(where=site,fg=nh2)\n>>> mof.write()\n\nAt any moment, we can monitor the bonding matrix and mmtypes, or get a cleaned version without dummies.\n\n>>> from ase.visualize import view\n>>> # with the dummies included\n>>> mmtypes = mof.get_mmtypes()\n>>> bonds = mof.get_bonds()\n>>> # without the dummies\n>>> atoms,bonds,mmtypes = mof.get_atoms(dummies=False)\n>>> view(atoms)\n\nIf you know the shape of each slot and its index within the topology, it is possible to directly pass a dictionary mapping\nthe SBU to a particular slot.\n\n>>> # method to investigate the topology shapes and slots\n>>> topology = mofgen.get_topology(topology_name=\"pcu\")\n>>> sbu_dict = {}\n>>> for slot_index,slot_shape in topology.shapes.items():\n>>> # do something to choose an sbu\n>>> ...\n>>> sbu_dict[slot_index] = \"chosen_sbu_name\"\n>>> # now pass it directly\n>>> mof = mofgen.make(topology_name=\"pcu\", sbu_dict=sbu_dict)\n>>> mof.write()\n\nYou can access the databases as dictionaries using the following:\n\n>>> sbudict = mofgen.sbu\n>>> topodict = mofgen.topologies\n\nOr using tools to find compatible objects:\n\n>>> sbu_list = mofgen.list_available_sbu(topology_name=\"pcu\")\n>>> topology_list = mofgen.list_available_topologies(sbu_names=[\"Zn_mof5_octahedral\", \"Benzene_linear\"])\n\nAAuToGraFS is also aware of topologically equivalent positions, and can generate multi components frameworks\nwith minimal effort.\n\n>>> sbu_dicts = mofgen.list_available_frameworks()\n>>> for sbu_dict in sbu_dicts:\n>>> mof = mofgen.make(sbu_dict=sbu_dict)\n>>> mof.view()\n\nA useful utility is the Atom typer, which assigns bond orders and UFF atom types to a structure:\n\n>>> from autografs.mmanalysis import analyze_mm\n>>> bonds, types = analyze_mm(sbu=mofgen.sbu[\"Zn_mof5_octahedral\"])\n\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/DCoupry/autografs", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "AuToGraFS", "package_url": "https://pypi.org/project/AuToGraFS/", "platform": "", "project_url": "https://pypi.org/project/AuToGraFS/", "project_urls": { "Homepage": "https://github.com/DCoupry/autografs" }, "release_url": "https://pypi.org/project/AuToGraFS/2.3.2/", "requires_dist": [ "ase", "scipy (>=0.15.0)", "numpy (<1.15.0)" ], "requires_python": ">=3.4.0", "summary": "Generator for topological frameworks and chemical structures.", "version": "2.3.2" }, "last_serial": 4238110, "releases": { "2.0.1b0": [ { "comment_text": "", "digests": { "md5": "33969d90723097b076644c5334a8f610", "sha256": "eb89f9358e29ac3e597d25464609b0be7bf1ae3bf0163f97569ed2f5516717cd" }, "downloads": -1, "filename": "AuToGraFS-2.0.1b0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "33969d90723097b076644c5334a8f610", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 38072, "upload_time": "2018-03-17T15:42:30", "url": "https://files.pythonhosted.org/packages/a6/4d/a6250afe2286fbda39afeaafa638c15b44d8d9dc6c972f47bbe0019fbbb9/AuToGraFS-2.0.1b0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f0287b107f37e35ca239caea8fcd9414", "sha256": "7218874e98433722e1cd7f5205b7b3f5967ad9418ab27e4eade65550b3b987f9" }, "downloads": -1, "filename": "AuToGraFS-2.0.1b0.tar.gz", "has_sig": false, "md5_digest": "f0287b107f37e35ca239caea8fcd9414", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 28731, "upload_time": "2018-03-17T15:42:32", "url": "https://files.pythonhosted.org/packages/00/7a/360a916ffb4abd27071e863741a4e9d8a9eb84444cc20db5a76bca76ff81/AuToGraFS-2.0.1b0.tar.gz" } ], "2.0.2b0": [ { "comment_text": "", "digests": { "md5": "3d865b2c9732548682832799146992d6", "sha256": "5c1d6d9785afa30789679a7e9dea20f0cf77c9b660131a4c7e93e162f7f48526" }, "downloads": -1, "filename": "AuToGraFS-2.0.2b0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3d865b2c9732548682832799146992d6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 38091, "upload_time": "2018-03-17T15:50:09", "url": "https://files.pythonhosted.org/packages/19/c7/45bcf0769b2b2903818126e5632812d6992e1190d332f235810b6c967707/AuToGraFS-2.0.2b0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5f0dcdc62b1ac31a30d46651fa0d6ab8", "sha256": "c25321aa54497aa7224508b0716877e7d1cdd67e6048095b942d58f62b9b48a7" }, "downloads": -1, "filename": "AuToGraFS-2.0.2b0.tar.gz", "has_sig": false, "md5_digest": "5f0dcdc62b1ac31a30d46651fa0d6ab8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 28715, "upload_time": "2018-03-17T15:50:11", "url": "https://files.pythonhosted.org/packages/25/fe/6bf3caf744c0bfa9135955ffde2a66356a5002516cfe5f15885826bd7d3f/AuToGraFS-2.0.2b0.tar.gz" } ], "2.0.2b1": [ { "comment_text": "", "digests": { "md5": "112460b45f31ef2a3a5196d6c313c92c", "sha256": "c625effcbd4841421b49460137a8bc2720796e143d5bc081314472147cb88079" }, "downloads": -1, "filename": "AuToGraFS-2.0.2b1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "112460b45f31ef2a3a5196d6c313c92c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 38754, "upload_time": "2018-03-17T16:01:09", "url": "https://files.pythonhosted.org/packages/b5/8f/24ef5057064a7995b42223606cf1fedc0937242359936876632b71d0df8b/AuToGraFS-2.0.2b1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eaad8f9d75886856510d0a8ce32dea88", "sha256": "48c1c94b59516b479f183d921616ba00426857339d1b9c849c9ee520f719d0ad" }, "downloads": -1, "filename": "AuToGraFS-2.0.2b1.tar.gz", "has_sig": false, "md5_digest": "eaad8f9d75886856510d0a8ce32dea88", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 28922, "upload_time": "2018-03-17T16:01:11", "url": "https://files.pythonhosted.org/packages/0d/48/ab42b105ce7f6bcc0024919aaf4a3ec37b2de3918558e5102fe4aa562978/AuToGraFS-2.0.2b1.tar.gz" } ], "2.0.3b0": [ { "comment_text": "", "digests": { "md5": "67e9cb346e20a21f4c354904339ec5c5", "sha256": "289b43a07a2a07cec22f6170698e521a60c52148cfa5a9b33eec1e0888da1c27" }, "downloads": -1, "filename": "AuToGraFS-2.0.3b0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "67e9cb346e20a21f4c354904339ec5c5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 358902, "upload_time": "2018-03-17T16:24:37", "url": "https://files.pythonhosted.org/packages/58/96/0c4929b93687ea49826ff062e24bd1ddd1c811400efd678b4880e2229815/AuToGraFS-2.0.3b0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4c9325de68cd4c6e213c9b3fb415628", "sha256": "96fdbdfedb4ce60afa35a25332c635d88c1acfad6ea75bca09ed01cb7b46aebc" }, "downloads": -1, "filename": "AuToGraFS-2.0.3b0.tar.gz", "has_sig": false, "md5_digest": "c4c9325de68cd4c6e213c9b3fb415628", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 341066, "upload_time": "2018-03-17T16:24:41", "url": "https://files.pythonhosted.org/packages/dd/c6/f1af07e409f9df2c9fe310a26f15ddf8f4f45a184cf663f9a97d26096e4b/AuToGraFS-2.0.3b0.tar.gz" } ], "2.0.4b0": [ { "comment_text": "", "digests": { "md5": "90684eb4e2b623b9291e2b60581c6f9e", "sha256": "a69d2d8cc690f14a4957daf58a92315a4dba70fdc9d4983e5e52d619839de6a8" }, "downloads": -1, "filename": "AuToGraFS-2.0.4b0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "90684eb4e2b623b9291e2b60581c6f9e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 358922, "upload_time": "2018-03-17T19:18:28", "url": "https://files.pythonhosted.org/packages/25/64/a6d13e0bf99356299c6e19f4e9e3b3d099faf82050d052669ab2507e8ff2/AuToGraFS-2.0.4b0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89f77f86f0fe3fc180cdbd0a48144a6f", "sha256": "16193f118561274a3515229a1835620279cb650de3098e235c20a99989f3d4cf" }, "downloads": -1, "filename": "AuToGraFS-2.0.4b0.tar.gz", "has_sig": false, "md5_digest": "89f77f86f0fe3fc180cdbd0a48144a6f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 341037, "upload_time": "2018-03-17T19:18:31", "url": "https://files.pythonhosted.org/packages/2a/6f/df0ff2cc3c73255108ad12f5438656fb845d90c09a19444c6bf23dfe799e/AuToGraFS-2.0.4b0.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "3ef23f5025df14ca684ba4f25b862561", "sha256": "916c3d207e0299490e885628a9b8011bedff705b66d7a2c26be7c53444a52cc6" }, "downloads": -1, "filename": "AuToGraFS-2.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3ef23f5025df14ca684ba4f25b862561", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4.0", "size": 357751, "upload_time": "2018-07-25T15:19:24", "url": "https://files.pythonhosted.org/packages/26/b5/1f92e31282266680dd62cecdd04a194fc1716fa0aa21a4e7f586dceb30c5/AuToGraFS-2.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "52a0ab650000329545da13ffd5465624", "sha256": "1e99061e91d36adc6d6a5c3c6281ea927c9cdd23c95ff6bae665cbab6d3ff7d6" }, "downloads": -1, "filename": "AuToGraFS-2.1.1.tar.gz", "has_sig": false, "md5_digest": "52a0ab650000329545da13ffd5465624", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 342799, "upload_time": "2018-07-25T15:19:26", "url": "https://files.pythonhosted.org/packages/bf/31/41b7ac2a6b378bbbecc5e327252bb909b52142adecee9b75270b6c0d62ef/AuToGraFS-2.1.1.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "b0e9db78c5d4fa4845fcec2eba252932", "sha256": "0f0c58638553cae97658c23e322d50179375f2a10243b6dd1f2505cee7f853c0" }, "downloads": -1, "filename": "AuToGraFS-2.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b0e9db78c5d4fa4845fcec2eba252932", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4.0", "size": 361866, "upload_time": "2018-08-27T14:06:21", "url": "https://files.pythonhosted.org/packages/d3/c0/5e9d45e2a1f0ecf81c1e26bfb98e83f050d1e8336ef01e6cdad1fb6d576f/AuToGraFS-2.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b73e6c25a2d7aa2ba62f31fa2793019", "sha256": "061c160e90ac48d2bb026a7b9dc60c9178d2637776c8a4bd64c694fe78424cce" }, "downloads": -1, "filename": "AuToGraFS-2.2.0.tar.gz", "has_sig": false, "md5_digest": "2b73e6c25a2d7aa2ba62f31fa2793019", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 344659, "upload_time": "2018-08-27T14:06:23", "url": "https://files.pythonhosted.org/packages/a1/a6/db2582e25d3c9fe636106054a45efa5524c457bf8f2db1febbcbd6e6fc94/AuToGraFS-2.2.0.tar.gz" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "c6d73d008a60a59c61093851980de3d5", "sha256": "2049e308acc28b5edb4e159f2239723207a7a5649387e93a3e8d5bff2c64923c" }, "downloads": -1, "filename": "AuToGraFS-2.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c6d73d008a60a59c61093851980de3d5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4.0", "size": 360476, "upload_time": "2018-08-28T16:53:05", "url": "https://files.pythonhosted.org/packages/74/06/7711cd54e1bf8f211a69f24582e87da405fd031ec46aec69f99303e85aa1/AuToGraFS-2.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "06a1a5b664edc16f73e3f2a4a6640474", "sha256": "ced6d176c7ef812740f16832eb1ccaac1d2b2dc4e78ed7f8eeb22abb22d4e362" }, "downloads": -1, "filename": "AuToGraFS-2.3.0.tar.gz", "has_sig": false, "md5_digest": "06a1a5b664edc16f73e3f2a4a6640474", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 345295, "upload_time": "2018-08-28T16:53:10", "url": "https://files.pythonhosted.org/packages/d8/46/df0ba09a9f22fcdbaf6681c469f09cd01ed9183008407af73dd756dc9075/AuToGraFS-2.3.0.tar.gz" } ], "2.3.1": [ { "comment_text": "", "digests": { "md5": "93cae4fa505e7e1c936f756744f383b3", "sha256": "9b094bc9168f172ef949ad1e3778488d053abd70572988b2e7dcf8656a645553" }, "downloads": -1, "filename": "AuToGraFS-2.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "93cae4fa505e7e1c936f756744f383b3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4.0", "size": 364682, "upload_time": "2018-09-03T09:55:51", "url": "https://files.pythonhosted.org/packages/a0/d5/af2676e8bd37d6f97d260c2592e76e65d88edfdb83d4e47dea5b6af2503d/AuToGraFS-2.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4604b7e7931a35a67352d1b06487de99", "sha256": "45c43d2bb6b57fd8030e29df46eccf680448fb5c6c0fbdcad072a3c239439643" }, "downloads": -1, "filename": "AuToGraFS-2.3.1.tar.gz", "has_sig": false, "md5_digest": "4604b7e7931a35a67352d1b06487de99", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 349022, "upload_time": "2018-09-03T09:55:56", "url": "https://files.pythonhosted.org/packages/a1/17/ba87a902a6b3879c092c02cbb9d0ca8e0c4ab3223b7f49e94947079593b6/AuToGraFS-2.3.1.tar.gz" } ], "2.3.2": [ { "comment_text": "", "digests": { "md5": "8cc14796e982380376cbe4f457f8c9df", "sha256": "f6a5af8b7fce01be401dd3b914cbc9552592900663c29c722073eb987edc6b0e" }, "downloads": -1, "filename": "AuToGraFS-2.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8cc14796e982380376cbe4f457f8c9df", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4.0", "size": 367671, "upload_time": "2018-09-04T15:26:37", "url": "https://files.pythonhosted.org/packages/8a/3c/fb0464e1b647d86077fa3b0739608051f82129240ca4e7cb25ab2cd96833/AuToGraFS-2.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6335b59064c60f0b79a01344a0da8a08", "sha256": "1fbec74e4164d1ab00bb3fc1f3c3f5fa05318ed2b02d5669c23c87322a4959f1" }, "downloads": -1, "filename": "AuToGraFS-2.3.2.tar.gz", "has_sig": false, "md5_digest": "6335b59064c60f0b79a01344a0da8a08", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 350272, "upload_time": "2018-09-04T15:26:40", "url": "https://files.pythonhosted.org/packages/f4/92/7dc7fe1e4695646bae4bfd354b7f54917bc396f434afa0121512e79ca62c/AuToGraFS-2.3.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8cc14796e982380376cbe4f457f8c9df", "sha256": "f6a5af8b7fce01be401dd3b914cbc9552592900663c29c722073eb987edc6b0e" }, "downloads": -1, "filename": "AuToGraFS-2.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8cc14796e982380376cbe4f457f8c9df", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4.0", "size": 367671, "upload_time": "2018-09-04T15:26:37", "url": "https://files.pythonhosted.org/packages/8a/3c/fb0464e1b647d86077fa3b0739608051f82129240ca4e7cb25ab2cd96833/AuToGraFS-2.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6335b59064c60f0b79a01344a0da8a08", "sha256": "1fbec74e4164d1ab00bb3fc1f3c3f5fa05318ed2b02d5669c23c87322a4959f1" }, "downloads": -1, "filename": "AuToGraFS-2.3.2.tar.gz", "has_sig": false, "md5_digest": "6335b59064c60f0b79a01344a0da8a08", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 350272, "upload_time": "2018-09-04T15:26:40", "url": "https://files.pythonhosted.org/packages/f4/92/7dc7fe1e4695646bae4bfd354b7f54917bc396f434afa0121512e79ca62c/AuToGraFS-2.3.2.tar.gz" } ] }