{ "info": { "author": "The Children's Hospital of Philadelphia", "author_email": "cbmisupport@email.chop.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Healthcare Industry", "Intended Audience :: Science/Research", "License :: Other/Proprietary License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Topic :: Database", "Topic :: Scientific/Engineering :: Information Analysis", "Topic :: Scientific/Engineering :: Visualization", "Topic :: Software Development :: Code Generators", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# Data Models SQLAlchemy\n\n[![Circle CI](https://circleci.com/gh/chop-dbhi/data-models-sqlalchemy/tree/master.svg?style=svg)](https://circleci.com/gh/chop-dbhi/data-models-sqlalchemy/tree/master) [![Coverage Status](https://coveralls.io/repos/chop-dbhi/data-models-sqlalchemy/badge.svg?branch=master&service=github)](https://coveralls.io/github/chop-dbhi/data-models-sqlalchemy?branch=master)\n\nSQLAlchemy models and DDL and ERD generation for [chop-dbhi/data-models-service](https://github.com/chop-dbhi/data-models-service) style JSON endpoints.\n\nWeb service available at http://dmsa.a0b.io/\n\n## SQLAlchemy Models\n\nIn your shell, hopefully within a virtualenv:\n\n```sh\npip install dmsa\n```\n\nIn python:\n\n```python\nfrom sqlalchemy import MetaData\nfrom dmsa import make_model_from_service\n\nmetadata = MetaData()\nmetadata = make_model_from_service('omop', '5.0.0',\n 'http://data-models.origins.link/',\n metadata)\n\nfor tbl in metadata.sorted_tables:\n print tbl.name\n```\n\nThese models are dynamically generated at runtime from JSON endpoints provided by chop-dbhi/data-models-service, which reads data stored in chop-dbhi/data-models. Any data model stored there can be converted into SQLAlchemy models. At the time of writing, the following are available.\n\nCAVEAT: The models are currently \"Classical\"-style and therefore un-mapped. See more information [here](https://github.com/chop-dbhi/data-models-sqlalchemy/issues/22).\n\n- i2b2\n - 1.7.0\n- i2b2 for PEDSnet\n - 2.0.1\n- OMOP\n - 4.0.0\n - 5.0.0\n- PCORnet\n - 1.0.0\n - 2.0.0\n - 3.0.0\n- PEDSnet\n - 1.0.0\n - 2.0.0\n - 2.1.0\n - 2.2.0\n\n## DDL and ERD Generation\n\nUse of the included Dockerfile is highly recommended to avoid installing DBMS and graphing specific system requirements.\n\nThe following DBMS dialects are supported when generating DDL:\n\n- PostgreSQL\n- MySQL\n- MS SQL Server\n- Oracle\n\n### With Docker:\n\nRetrieve the image:\n\n```sh\ndocker pull dbhi/data-models-sqlalchemy\n```\n\nUsage Message:\n\n```sh\ndocker run --rm dbhi/data-models-sqlalchemy dmsa -h\n```\n\nGenerate OMOP V5 creation DDL for Oracle:\n\n```sh\ndocker run --rm dbhi/data-models-sqlalchemy dmsa ddl -tci omop 5.0.0 oracle\n```\n\nGenerate OMOP V5 drop DDL for Oracle:\n\n```sh\ndocker run --rm dbhi/data-models-sqlalchemy dmsa ddl -tci --drop omop 5.0.0 oracle\n```\n\nGenerate OMOP V5 data deletion DML for Oracle:\n\n```sh\ndocker run --rm dbhi/data-models-sqlalchemy dmsa ddl --delete-data omop 5.0.0 oracle\n```\n\nGenerate i2b2 PEDSnet V2 ERD (the image will land at `./erd/i2b2_pedsnet_2.0.0_erd.png`):\n\n```sh\ndocker run --rm -v $(pwd)/erd:/erd dbhi/data-models-sqlalchemy dmsa erd -o /erd/i2b2_pedsnet_2.0.0_erd.png i2b2_pedsnet 2.0.0\n```\n\nThe `graphviz` graphing package supports a number of other output formats, which are interpreted from the passed extension.\n\n### Without Docker:\n\nInstall the system requirements (see Dockerfile for details):\n\n- Python 2.7\n- `graphviz` for ERD generation\n- Oracle `instantclient-basic` and `-sdk` and `libaio1` for Oracle DDL generation\n- `libpq-dev` for PostgreSQL DDL generation\n- `unixodbc-dev` for MS SQL Server DDL generation\n\nInstall the python requirements, hopefully within a virtualenv (see Dockerfile for details):\n\n```sh\npip install cx-Oracle # for Oracle DDL generation\npip install psycopg2 # for PostgreSQL DDL generation\npip install PyMySQL # for MySQL DDL generation\npip install pyodbc # for MS SQL Server DDL generation\n```\n\nInstall the data-models-sqlalchemy python package:\n\n```sh\npip install dmsa\n```\n\nUsage Message:\n\n```sh\ndmsa -h\n```\n\nGenerate OMOP V5 creation DDL for Oracle:\n\n```sh\ndmsa ddl -tci omop 5.0.0 oracle\n```\n\nGenerate OMOP V5 drop DDL for Oracle:\n\n```sh\ndmsa ddl -tci --drop omop 5.0.0 oracle\n```\n\nGenerate OMOP V5 data deletion DML for Oracle:\n\n```sh\ndmsa ddl --delete-data omop 5.0.0 oracle\n```\n\nGenerate i2b2 PEDSnet V2 ERD (the image will land at `./erd/i2b2_pedsnet_2.0.0_erd.png`):\n\n```sh\nmkdir -p erd\ndmsa erd -o ./erd/i2b2_pedsnet_2.0.0_erd.png i2b2_pedsnet 2.0.0\n```\n\n## Web Service\n\nThe web service uses a [Gunicorn](http://gunicorn.org/) server in the Docker container and the Flask debug server locally. It exposes the following endpoints:\n\n- Creation DDL at `///ddl//`\n- Creation DDL for only `table`, `constraint`, or `index` elements at `///ddl//`\n- Drop DDL at `///drop//`\n- Drop DDL for only `table`, `constraint`, or `index` elements at `///drop//`\n- Data deletion DML at `///delete//`\n- ERDs at `///erd/`\n- Oracle logging scripts at `///logging/oracle/`\n- Oracle logging scripts for only `table` or `index` elements at `///logging/oracle//`\n- Oracle nologging scripts at `///nologging/oracle/`\n- Oracle nologging scripts for only `table` or `index` elements at `///logging/oracle//`\n\n### With Docker:\n\nUsage:\n\n```sh\ndocker run dbhi/data-models-sqlalchemy gunicorn -h\n```\n\nRun:\n\n```sh\ndocker run dbhi/data-models-sqlalchemy # Uses Dockerfile defaults of 0.0.0.0:80\n```\n\n### Without Docker:\n\nInstall Flask:\n\n```sh\npip install Flask\n```\n\nUsage Message:\n\n```sh\ndmsa -h\n```\n\nRun:\n\n```sh\ndmsa serve # Uses Flask defaults of 127.0.0.1:5000\n```", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/chop-dbhi/data-models-sqlalchemy/tarball/0.5.8", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/chop-dbhi/data-models-sqlalchemy", "keywords": "healthcare,data models,SQLAlchemy,DDL,ERD", "license": "Other/Proprietary", "maintainer": "", "maintainer_email": "", "name": "dmsa", "package_url": "https://pypi.org/project/dmsa/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/dmsa/", "project_urls": { "Download": "https://github.com/chop-dbhi/data-models-sqlalchemy/tarball/0.5.8", "Homepage": "https://github.com/chop-dbhi/data-models-sqlalchemy" }, "release_url": "https://pypi.org/project/dmsa/0.5.8/", "requires_dist": [ "ERAlchemy (==0.0.28)", "Flask (==0.10.1)", "SQLAlchemy (==1.0.5)", "docopt (==0.6.2)", "requests (==2.7.0)" ], "requires_python": "", "summary": "SQLAlchemy models and DDL and ERD generation from chop-dbhi/data-models style JSON endpoints.", "version": "0.5.8" }, "last_serial": 1953511, "releases": { "0.2": [], "0.3": [ { "comment_text": "", "digests": { "md5": "32387f30a830226aeb8e8595362c205c", "sha256": "0cfd946a23d07d1b2b3e85babb287eda16d692796ffefb9206e9619b05d93034" }, "downloads": -1, "filename": "dmsa-0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "32387f30a830226aeb8e8595362c205c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 19117, "upload_time": "2015-06-23T20:39:46", "url": "https://files.pythonhosted.org/packages/d1/5d/cda19f2d86baec2d0bb097803f7ef790780f850974ad5f26dc6465c8e513/dmsa-0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f65fb12de792c1fdbdf3f0b598233f6", "sha256": "d60fecab5bb20774d3e5d0a7b937ac8a4ead143fe53d52700cc7f5d6e20b0e2c" }, "downloads": -1, "filename": "dmsa-0.3.tar.gz", "has_sig": false, "md5_digest": "6f65fb12de792c1fdbdf3f0b598233f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9515, "upload_time": "2015-06-23T20:38:37", "url": "https://files.pythonhosted.org/packages/21/57/22e82bfc4db14dacd6ada1d0c424dcfd4d012735f430328e4facf05f6454/dmsa-0.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "689a7e4c4564442b7eceb1a2cd3b0810", "sha256": "e63fbffcb6fbcbb68df93cf4ac45476d9d33aa2df801a2350136e34e290c50c5" }, "downloads": -1, "filename": "dmsa-0.4.4-py2.7.egg", "has_sig": false, "md5_digest": "689a7e4c4564442b7eceb1a2cd3b0810", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 39222, "upload_time": "2015-07-21T14:15:20", "url": "https://files.pythonhosted.org/packages/b4/3a/ef0fda3cfa024f02fffdd6f67934e88fb340eee9be26e3b5b568051d2db7/dmsa-0.4.4-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "3db3bfc91cfea942d71b140f8ca68f91", "sha256": "0785b9d6c62872ab5c1baca2d6421eb75af2eb45bd7c78e98e53fc0728217694" }, "downloads": -1, "filename": "dmsa-0.4.4-py2-none-any.whl", "has_sig": false, "md5_digest": "3db3bfc91cfea942d71b140f8ca68f91", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 20793, "upload_time": "2015-07-21T14:15:23", "url": "https://files.pythonhosted.org/packages/4a/01/40d5f39e5b292ff2702d2372bdcb9c902cd820243953d388544caa172245/dmsa-0.4.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7951ed24d51089c5ce43105047e4780c", "sha256": "40b6a78afdf206f5de83c4729fa13f37e570293a2701a32658363b477aae0089" }, "downloads": -1, "filename": "dmsa-0.4.4.tar.gz", "has_sig": false, "md5_digest": "7951ed24d51089c5ce43105047e4780c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11582, "upload_time": "2015-07-21T14:15:27", "url": "https://files.pythonhosted.org/packages/c3/01/f8216a6f84d219b8296206019a2bfb11fc300ad306d18e13037e167b882d/dmsa-0.4.4.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "c332496f7b460735ec791124916814d8", "sha256": "7c445e79b3626b97c71cb918273e833d7e79fa0c573b403968e975745236b381" }, "downloads": -1, "filename": "dmsa-0.5.1-py2.7.egg", "has_sig": false, "md5_digest": "c332496f7b460735ec791124916814d8", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 27600, "upload_time": "2015-08-04T22:56:58", "url": "https://files.pythonhosted.org/packages/20/a3/c9ca5f443347e7eb8127da1dcc98fe500b17d4e1bf4a18bc7e27ef59e817/dmsa-0.5.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "ece00eaf36aedb9e63bbac94a34d2372", "sha256": "0bcfe935c276473d25438daa14fb9eb6c97dabd9afccbd6f4ad392aa6f1947fa" }, "downloads": -1, "filename": "dmsa-0.5.1-py2-none-any.whl", "has_sig": false, "md5_digest": "ece00eaf36aedb9e63bbac94a34d2372", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 16815, "upload_time": "2015-08-04T22:57:01", "url": "https://files.pythonhosted.org/packages/79/4c/4684b00e2e5b04345b3cc76aed0f889b3bea8689f7170703a0b2d0f0f24e/dmsa-0.5.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "066e1b9a855d8cf13a29ffda8f1afae7", "sha256": "2078ca5b06e9493ad26574f78c9a0630186db742485ad0c64ab0a826423dad55" }, "downloads": -1, "filename": "dmsa-0.5.1.tar.gz", "has_sig": false, "md5_digest": "066e1b9a855d8cf13a29ffda8f1afae7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11636, "upload_time": "2015-08-04T22:57:05", "url": "https://files.pythonhosted.org/packages/f5/a4/7f960e2bc4a58ce62dc65f9b42a96bb6a7989a187ccfd28a9bd284ca2a6d/dmsa-0.5.1.tar.gz" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "b9feeb143f75695859adec25af027103", "sha256": "5576ab6d0335b0fe19fea7d88d01bdfce377820f819b1c44e4b68e3b55329d3a" }, "downloads": -1, "filename": "dmsa-0.5.4-py2.7.egg", "has_sig": false, "md5_digest": "b9feeb143f75695859adec25af027103", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 27733, "upload_time": "2015-09-06T22:44:47", "url": "https://files.pythonhosted.org/packages/12/04/c5b941e44e6598a447b51b2b2e425c08c095e9e52d118b2058633d57e945/dmsa-0.5.4-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "a9523a8eb15fd4d27a89df092dee8366", "sha256": "3a1f6b2030c7cfd260713e8b1724ffcd668b397db7d3826868c4ea249a3c0a8b" }, "downloads": -1, "filename": "dmsa-0.5.4-py2-none-any.whl", "has_sig": false, "md5_digest": "a9523a8eb15fd4d27a89df092dee8366", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 16949, "upload_time": "2015-09-06T22:44:51", "url": "https://files.pythonhosted.org/packages/6d/9c/57bd5bb376fb79006df1e8e7712d6e67cf4fe1d75e764a5045c73b1ff500/dmsa-0.5.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "547f9aa31576905eadd8cc573072d21d", "sha256": "ee89be95d59eaeaf78aac186976ac98eefc46bc5526c72f3be68e10a1a4e7388" }, "downloads": -1, "filename": "dmsa-0.5.4.tar.gz", "has_sig": false, "md5_digest": "547f9aa31576905eadd8cc573072d21d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11746, "upload_time": "2015-09-06T22:44:55", "url": "https://files.pythonhosted.org/packages/9a/07/452d3558560a11ae9f41338bfb7883a8ee49cdd280f572708c7d883d036e/dmsa-0.5.4.tar.gz" } ], "0.5.6": [ { "comment_text": "", "digests": { "md5": "ee43f08c42a10e2bb7109d9096d9dec8", "sha256": "d2a85165a9122e16938de79926e9aa9392a70b628e825942b51a37e8f55c37f2" }, "downloads": -1, "filename": "dmsa-0.5.6-py2.7.egg", "has_sig": false, "md5_digest": "ee43f08c42a10e2bb7109d9096d9dec8", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 40575, "upload_time": "2015-09-16T18:39:01", "url": "https://files.pythonhosted.org/packages/56/ab/027a7b60788e227f0ef79279f3ba2e08a44e433f1eede8a0d519514a5ad8/dmsa-0.5.6-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "155cab7ee8a04947c0b7ff9738414b5b", "sha256": "2cc149154a36cf2139cdb7a399523b4c726d3251c00291a159b432105c133ed4" }, "downloads": -1, "filename": "dmsa-0.5.6-py2-none-any.whl", "has_sig": false, "md5_digest": "155cab7ee8a04947c0b7ff9738414b5b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 22467, "upload_time": "2015-09-16T18:39:08", "url": "https://files.pythonhosted.org/packages/fd/b3/e8b425d7cab0f596b1c006353e3887087bea95169156e220f89767213492/dmsa-0.5.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5321c061128a1ba276a5ca236aa02046", "sha256": "b3cd113fec08f261881d66d39e75782765b983e9e335eaf3924ae11d6a5a92b0" }, "downloads": -1, "filename": "dmsa-0.5.6.tar.gz", "has_sig": false, "md5_digest": "5321c061128a1ba276a5ca236aa02046", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14359, "upload_time": "2015-09-16T18:39:15", "url": "https://files.pythonhosted.org/packages/35/d1/bdfea94c52e153ac467fbe2db1773fbd8b0aec72c6345ebf4b137a87d617/dmsa-0.5.6.tar.gz" } ], "0.5.7": [ { "comment_text": "", "digests": { "md5": "ee5c78602f7f608f1a98dc23f16bda6a", "sha256": "264c94c6c63c51f26b71334c0e2a8ccb75e03d38ae67834857d031387ef7dd45" }, "downloads": -1, "filename": "dmsa-0.5.7-py2.7.egg", "has_sig": false, "md5_digest": "ee5c78602f7f608f1a98dc23f16bda6a", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 42194, "upload_time": "2015-12-09T19:23:24", "url": "https://files.pythonhosted.org/packages/da/18/ee65197bd1edb94383f8fb6cbc42abd617e84f214f84e4e64d2809de04a0/dmsa-0.5.7-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "bdc780e73dcf6f77d33b8a5de72ebde2", "sha256": "4f3916f04babec0af62c8d05eb191fd990fcea64ea7c6c01fdc153efd9ce3b6b" }, "downloads": -1, "filename": "dmsa-0.5.7-py2-none-any.whl", "has_sig": false, "md5_digest": "bdc780e73dcf6f77d33b8a5de72ebde2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 23280, "upload_time": "2015-12-09T19:22:59", "url": "https://files.pythonhosted.org/packages/9e/57/683f80c87c766983f89abe40bdadc14da1a97235e7daf06bbe073fdf553a/dmsa-0.5.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de5b41b6db24de6e3fe70f876f0a87d8", "sha256": "ca00787d17d618fa47ac8462e5dbe07589a719b04e73b4512cf1bd4b6c75947b" }, "downloads": -1, "filename": "dmsa-0.5.7.tar.gz", "has_sig": false, "md5_digest": "de5b41b6db24de6e3fe70f876f0a87d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15079, "upload_time": "2015-12-09T19:23:43", "url": "https://files.pythonhosted.org/packages/5e/3a/5decd9d3b0b3488513d0c09452c1cad9743d1a5a0588df57571e3d086acf/dmsa-0.5.7.tar.gz" } ], "0.5.8": [ { "comment_text": "", "digests": { "md5": "7cc9c158f85515e3c0358dae97d4411c", "sha256": "940be1d3de4d511b95029ce21d7f47ae6bf10668642ecf7accc8ca1c0e89bde8" }, "downloads": -1, "filename": "dmsa-0.5.8-py2.7.egg", "has_sig": false, "md5_digest": "7cc9c158f85515e3c0358dae97d4411c", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 46546, "upload_time": "2016-02-12T17:51:42", "url": "https://files.pythonhosted.org/packages/58/04/b8cac86b7f120f2e89e5d88494a8f67823f5900ed693ed76e383778b28af/dmsa-0.5.8-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "5ff285ae0b9b729dbe6d4c1fe762de93", "sha256": "ce0d02fd91e1b8158df39c2ada2951064a96ee22f0d3e6fbc92785f0b4f2ca9a" }, "downloads": -1, "filename": "dmsa-0.5.8-py2-none-any.whl", "has_sig": false, "md5_digest": "5ff285ae0b9b729dbe6d4c1fe762de93", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 24814, "upload_time": "2016-02-12T17:51:36", "url": "https://files.pythonhosted.org/packages/79/a9/ee5ca1ebacc78a958e303b23060f4e371179ea60b0de51941b08ed87b95f/dmsa-0.5.8-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6ee46394a1aaa9d9e7f428f11a7149c0", "sha256": "f66ac8a7b378d0e5729ce3a3edffff7ec2d606f7e765a5418d2cb2bab408b351" }, "downloads": -1, "filename": "dmsa-0.5.8.tar.gz", "has_sig": false, "md5_digest": "6ee46394a1aaa9d9e7f428f11a7149c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16099, "upload_time": "2016-02-12T17:51:48", "url": "https://files.pythonhosted.org/packages/01/71/3a5bf012d831033113a5e3b3f42ba441839bc1f5df120fadcb4e175b8abf/dmsa-0.5.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7cc9c158f85515e3c0358dae97d4411c", "sha256": "940be1d3de4d511b95029ce21d7f47ae6bf10668642ecf7accc8ca1c0e89bde8" }, "downloads": -1, "filename": "dmsa-0.5.8-py2.7.egg", "has_sig": false, "md5_digest": "7cc9c158f85515e3c0358dae97d4411c", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 46546, "upload_time": "2016-02-12T17:51:42", "url": "https://files.pythonhosted.org/packages/58/04/b8cac86b7f120f2e89e5d88494a8f67823f5900ed693ed76e383778b28af/dmsa-0.5.8-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "5ff285ae0b9b729dbe6d4c1fe762de93", "sha256": "ce0d02fd91e1b8158df39c2ada2951064a96ee22f0d3e6fbc92785f0b4f2ca9a" }, "downloads": -1, "filename": "dmsa-0.5.8-py2-none-any.whl", "has_sig": false, "md5_digest": "5ff285ae0b9b729dbe6d4c1fe762de93", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 24814, "upload_time": "2016-02-12T17:51:36", "url": "https://files.pythonhosted.org/packages/79/a9/ee5ca1ebacc78a958e303b23060f4e371179ea60b0de51941b08ed87b95f/dmsa-0.5.8-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6ee46394a1aaa9d9e7f428f11a7149c0", "sha256": "f66ac8a7b378d0e5729ce3a3edffff7ec2d606f7e765a5418d2cb2bab408b351" }, "downloads": -1, "filename": "dmsa-0.5.8.tar.gz", "has_sig": false, "md5_digest": "6ee46394a1aaa9d9e7f428f11a7149c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16099, "upload_time": "2016-02-12T17:51:48", "url": "https://files.pythonhosted.org/packages/01/71/3a5bf012d831033113a5e3b3f42ba441839bc1f5df120fadcb4e175b8abf/dmsa-0.5.8.tar.gz" } ] }