{ "info": { "author": "Sanhe Hu", "author_email": "husanhe@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": ".. image:: https://readthedocs.org/projects/sqlalchemy_mate/badge/?version=latest\n :target: https://sqlalchemy_mate.readthedocs.io/index.html\n :alt: Documentation Status\n\n.. image:: https://travis-ci.org/MacHu-GWU/sqlalchemy_mate-project.svg?branch=master\n :target: https://travis-ci.org/MacHu-GWU/sqlalchemy_mate-project?branch=master\n\n.. image:: https://codecov.io/gh/MacHu-GWU/sqlalchemy_mate-project/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/MacHu-GWU/sqlalchemy_mate-project\n\n.. image:: https://img.shields.io/pypi/v/sqlalchemy_mate.svg\n :target: https://pypi.python.org/pypi/sqlalchemy_mate\n\n.. image:: https://img.shields.io/pypi/l/sqlalchemy_mate.svg\n :target: https://pypi.python.org/pypi/sqlalchemy_mate\n\n.. image:: https://img.shields.io/pypi/pyversions/sqlalchemy_mate.svg\n :target: https://pypi.python.org/pypi/sqlalchemy_mate\n\n.. image:: https://img.shields.io/badge/STAR_Me_on_GitHub!--None.svg?style=social\n :target: https://github.com/MacHu-GWU/sqlalchemy_mate-project\n\n------\n\n\n.. image:: https://img.shields.io/badge/Link-Document-blue.svg\n :target: https://sqlalchemy_mate.readthedocs.io/index.html\n\n.. image:: https://img.shields.io/badge/Link-API-blue.svg\n :target: https://sqlalchemy_mate.readthedocs.io/py-modindex.html\n\n.. image:: https://img.shields.io/badge/Link-Source_Code-blue.svg\n :target: https://sqlalchemy_mate.readthedocs.io/py-modindex.html\n\n.. image:: https://img.shields.io/badge/Link-Install-blue.svg\n :target: `install`_\n\n.. image:: https://img.shields.io/badge/Link-GitHub-blue.svg\n :target: https://github.com/MacHu-GWU/sqlalchemy_mate-project\n\n.. image:: https://img.shields.io/badge/Link-Submit_Issue-blue.svg\n :target: https://github.com/MacHu-GWU/sqlalchemy_mate-project/issues\n\n.. image:: https://img.shields.io/badge/Link-Request_Feature-blue.svg\n :target: https://github.com/MacHu-GWU/sqlalchemy_mate-project/issues\n\n.. image:: https://img.shields.io/badge/Link-Download-blue.svg\n :target: https://pypi.org/pypi/sqlalchemy_mate#files\n\n\nWelcome to ``sqlalchemy_mate`` Documentation\n==============================================================================\n\nA library extend sqlalchemy module, save you from writing 50% database.\n\n\nFeatures\n------------------------------------------------------------------------------\n\n.. contents::\n :local:\n :depth: 1\n\n\nRead Database Credential Safely\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. contents::\n :local:\n :depth: 1\n\nPut your database connection credential in your source code is always a **BAD IDEA**.\n\n``sqlalchemy_mate`` provides several options to allow loading credential easily.\n\nIf you want to read db secret from other source, such as Bash Scripts that having lots of ``export DB_PASSWORD=\"xxx\"``, AWS Secret Manager, AWS Key Management System (KMS), please take a look at my another project `pysecret `_.\n\n\nFrom json file\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\nYou can put your credential in a json file somewhere in your $HOME directory, and let sqlalchemy_mate smartly load from it.\n\nYou need to specify two things:\n\n1. path to json file.\n2. field path to the data. If your connect info is nested deeply in the json, you can use the dot notation json path to point to it.\n\ncontent of json:\n\n.. code-block:: python\n\n {\n \"credentials\": {\n \"db1\": {\n \"host\": \"example.com\",\n \"port\": 1234,\n \"database\": \"test\",\n \"username\": \"admin\",\n \"password\": \"admin\",\n },\n \"db2\": {\n ...\n }\n }\n }\n\ncode:\n\n.. code-block:: python\n\n from sqlalchemy_mate import EngineCreator\n\n ec = EngineCreator.from_json(\n json_file=\"path-to-json-file\",\n json_path=\"credentials.db1\", # dot notation json path\n )\n engine = ec.create_postgresql_psycopg2()\n\n**Default data fields** are ``host``, ``port``, ``database``, ``username``, ``password``.\n\nIf your json schema is different, you need to add the ``key_mapping`` to **specify the field name mapping**:\n\n.. code-block:: python\n\n ec = EngineCreator.from_json(\n json_file=\"...\",\n json_path=\"...\",\n key_mapping={\n \"host\": \"your-host-field\",\n \"port\": \"your-port-field\",\n \"database\": \"your-database-field\",\n \"username\": \"your-username-field\",\n \"password\": \"your-password-field\",\n }\n )\n\n\nFrom ``$HOME/.db.json``\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\nYou can put lots of database connection info in a ``.db.json`` file in your ``$HOME`` directory.\n\n.. code-block:: python\n\n from sqlalchemy_mate import EngineCreator\n\n ec = EngineCreator.from_home_db_json(identifier=\"db1\")\n engine = ec.create_postgresql_psycopg2()\n\n``$HOME/.db.json`` **assumes flat json schema**, but you can use dot notation json path for ``identifier`` to adapt any json schema:\n\n.. code-block:: python\n\n {\n \"identifier1\": {\n \"host\": \"example.com\",\n \"port\": 1234,\n \"database\": \"test\",\n \"username\": \"admin\",\n \"password\": \"admin\",\n },\n \"identifier2\": {\n ...\n }\n }\n\n\nFrom json file on AWS S3\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\nThis is similar to ``from_json``, but the json file is stored on AWS S3.\n\n.. code-block:: python\n\n from sqlalchemy_mate import EngineCreator\n ec = EngineCreator.from_s3_json(\n bucket_name=\"my-bucket\", key=\"db.json\",\n json_path=\"identifier1\",\n aws_profile=\"my-profile\",\n )\n engine = ec.create_redshift()\n\n\nFrom Environment Variable\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\nYou can put your credentials in Environment Variable. For example:\n\n.. code-block:: bash\n\n export DB_DEV_HOST=\"...\"\n export DB_DEV_PORT=\"...\"\n export DB_DEV_DATABASE=\"...\"\n export DB_DEV_USERNAME=\"...\"\n export DB_DEV_PASSWORD=\"...\"\n\n.. code-block:: python\n\n from sqlalchemy_mate import EngineCreator\n # read from DB_DEV_USERNAME, DB_DEV_PASSWORD, ...\n ec = EngineCreator.from_env(prefix=\"DB_DEV\")\n engine = ec.create_redshift()\n\nIf you want to read database credential safely from cloud, for example, AWS EC2, AWS Lambda, you can use AWS KMS to decrypt your credentials\n\n.. code-block:: python\n\n # leave aws_profile=None if you are on cloud\n ec = EngineCreator.from_env(prefix=\"DB_DEV\", kms_decrypt=True, aws_profile=\"xxx\")\n engine = ec.create_redshift()\n\n\nSmart Insert\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIn bulk insert, if there are some rows having primary_key conflict, the classic solution is:\n\n.. code-block:: python\n\n for row in data:\n try:\n engine.execute(table.insert(), row)\n except sqlalchemy.sql.IntegrityError:\n pass\n\nIt is like one-by-one insert, which is super slow.\n\n``sqlalchemy_mate`` uses ``smart_insert`` strategy to try with smaller bulk insert, which has higher probabily to work. As a result, total number of commits are greatly reduced.\n\nWith sql expression:\n\n.. code-block:: python\n\n from sqlalchemy_mate import inserting\n engine = create_engine(...)\n t_users = Table(\n \"users\", metadata,\n Column(\"id\", Integer),\n ...\n )\n # lots of data\n data = [{\"id\": 1, \"name\": \"Alice}, {\"id\": 2, \"name\": \"Bob\"}, ...]\n # the magic function\n inserting.smart_insert(engine, t_users, data)\n\n\nWith ORM:\n\n.. code-block:: python\n\n from sqlalchemy_mate import ExtendedBase\n Base = declarative_base()\n class User(Base, ExtendedBase): # inherit from ExtendedBase\n ...\n # lots of users\n data = [User(id=1, name=\"Alice\"), User(id=2, name=\"Bob\"), ...]\n # the magic method\n User.smart_insert(engine_or_session, data) # That's it\n\n\nSmart Update / Upsert\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAutomatically update value by primary key.\n\n.. code-block:: python\n\n # in SQL expression\n #\n from sqlalchemy_mate import updating\n data = [{\"id\": 1, \"name\": \"Alice}, {\"id\": 2, \"name\": \"Bob\"}, ...]\n updating.update_all(engine, table, data)\n updating.upsert_all(engine, table, data)\n # in ORM\n #\n data = [User(id=1, name=\"Alice\"), User(id=2, name=\"Bob\"), ...]\n User.update_all(engine_or_session, user_list)\n User.upsert_all(engine_or_session, user_list)\n\n\n.. _install:\n\nInstall\n------------------------------------------------------------------------------\n\n``sqlalchemy_mate`` is released on PyPI, so all you need is:\n\n.. code-block:: console\n\n $ pip install sqlalchemy_mate\n\nTo upgrade to latest version:\n\n.. code-block:: console\n\n $ pip install --upgrade sqlalchemy_mate\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://pypi.python.org/pypi/sqlalchemy_mate/0.0.10#downloads", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/MacHu-GWU/", "keywords": "", "license": "MIT", "maintainer": "Unknown", "maintainer_email": "", "name": "sqlalchemy-mate", "package_url": "https://pypi.org/project/sqlalchemy-mate/", "platform": "Windows", "project_url": "https://pypi.org/project/sqlalchemy-mate/", "project_urls": { "Download": "https://pypi.python.org/pypi/sqlalchemy_mate/0.0.10#downloads", "Homepage": "https://github.com/MacHu-GWU/" }, "release_url": "https://pypi.org/project/sqlalchemy-mate/0.0.10/", "requires_dist": [ "sqlalchemy", "timeout-decorator (==0.4.1)", "sphinx (==1.8.1) ; extra == 'docs'", "sphinx-rtd-theme ; extra == 'docs'", "sphinx-jinja ; extra == 'docs'", "sphinx-copybutton ; extra == 'docs'", "docfly (>=0.0.17) ; extra == 'docs'", "rstobj (>=0.0.5) ; extra == 'docs'", "pygments ; extra == 'docs'", "pytest (==3.2.3) ; extra == 'tests'", "pytest-cov (==2.5.1) ; extra == 'tests'", "psycopg2-binary ; extra == 'tests'", "pandas ; extra == 'tests'" ], "requires_python": "", "summary": "A library extend sqlalchemy module, makes CRUD easier.", "version": "0.0.10" }, "last_serial": 5195198, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "bc87b4b1af6006c9b333df8c89eaaf7e", "sha256": "248175cdbed2fb099347b076f522e3505b4cd0e0b816cfe7f41e7caf5d32d82f" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.1.zip", "has_sig": false, "md5_digest": "bc87b4b1af6006c9b333df8c89eaaf7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58959, "upload_time": "2017-06-15T16:36:23", "url": "https://files.pythonhosted.org/packages/9e/12/3eae10120cd372684c671a8dab254da6d7e4e0fa4e0b6df79b1c3a7730a3/sqlalchemy_mate-0.0.1.zip" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "d5f22a996c65f68837a992d44ff7265b", "sha256": "102f7f1552472b08ae7df9594fffa077da2385b08d4799443dbd5dbf2c97f677" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d5f22a996c65f68837a992d44ff7265b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 235498, "upload_time": "2019-04-26T23:03:20", "url": "https://files.pythonhosted.org/packages/c2/9f/59e72ddc773609ca6a0489e1d7bff1466f4236e604ffed61c9c848472ee8/sqlalchemy_mate-0.0.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9f660c2ada15d8c9e5fdd36936e49be3", "sha256": "3118cc005afabca6264ce1418940a7543c465e385d606a5f28de77c8e86b681c" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.10.tar.gz", "has_sig": false, "md5_digest": "9f660c2ada15d8c9e5fdd36936e49be3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 160718, "upload_time": "2019-04-26T23:03:23", "url": "https://files.pythonhosted.org/packages/d5/3b/76c31e1c38267708a833dbbab886457e72dc49ac058aa4e90e568f1d808d/sqlalchemy_mate-0.0.10.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "409cca7a6ff499146e1ae68777c92094", "sha256": "a8698f5af1a1732b1a7dbb407d18d6870a4ffd477ecb65299b4bddcc62a93b90" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "409cca7a6ff499146e1ae68777c92094", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 153433, "upload_time": "2018-07-06T01:06:39", "url": "https://files.pythonhosted.org/packages/bc/01/b2a26c118214aa8b45b015b2c174340efb213fc366417e2f4d03532bedc3/sqlalchemy_mate-0.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5f47265853a10f9e4cfcc7ad667cec9", "sha256": "83e5d252053fd40bd9b2407d33adb9f4cb3e0609ceda7f6bc585664bdd0fb37e" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.2.tar.gz", "has_sig": false, "md5_digest": "a5f47265853a10f9e4cfcc7ad667cec9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 107686, "upload_time": "2018-07-06T01:06:40", "url": "https://files.pythonhosted.org/packages/8b/0d/df57a4527fcfca775276d7562808051ed69c6deafd8b4afdeb8ec4fd40b0/sqlalchemy_mate-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "0797eb1b4334e76ed2d2d8d73f2b6978", "sha256": "8523e27396a857b81f4985eb0ba683c4b5acdf69985a9f037dff625c132d2ad4" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "0797eb1b4334e76ed2d2d8d73f2b6978", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 182825, "upload_time": "2018-07-22T22:29:02", "url": "https://files.pythonhosted.org/packages/8f/72/f42b1d6b1864d16b665fe28adeca1d609f93d4633886c572839c4f9ad780/sqlalchemy_mate-0.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4718b4c0f700a53d25ac7572abbb4d1", "sha256": "69921ba9a64cbed0940116867b3a693005d2a0a801b073b61aa6564991a6f96e" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.3.tar.gz", "has_sig": false, "md5_digest": "d4718b4c0f700a53d25ac7572abbb4d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 121222, "upload_time": "2018-07-22T22:29:04", "url": "https://files.pythonhosted.org/packages/c2/28/e1d1a233b5e2131e4895e1ca8a9f873e3a5204eda879a3beadbf82692a9f/sqlalchemy_mate-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "6a2b1441f56e1d0c5c73b7b72fff5f39", "sha256": "7c4e5691c4b05d9b56863fc19d319f96e9457a61f4ddb2901c592c09e889e8cc" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "6a2b1441f56e1d0c5c73b7b72fff5f39", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 68943, "upload_time": "2018-08-11T17:42:33", "url": "https://files.pythonhosted.org/packages/b0/7f/29d8dff597a7f33229e921506b0fda83e05e4d18dfb1a0f5cd2de80773bc/sqlalchemy_mate-0.0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cc83006112f964dc9fee4137175c8d5a", "sha256": "06ad45be247214ce9e0d61519ee42bc5eebd786198e4c32b08f07ad96ee74e7d" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.4.tar.gz", "has_sig": false, "md5_digest": "cc83006112f964dc9fee4137175c8d5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55490, "upload_time": "2018-08-11T17:42:34", "url": "https://files.pythonhosted.org/packages/f8/80/9b32eaf7414dabaf31ebcbc9f9a69288e1a14f20af2e19f4520bddd12c81/sqlalchemy_mate-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "962fbdcb0acd80edad0c2031409da7ef", "sha256": "437b84853cc5a715fd087148d1a4e3d681679744e228922505baf9c68baa1379" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "962fbdcb0acd80edad0c2031409da7ef", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 217758, "upload_time": "2019-03-01T05:24:07", "url": "https://files.pythonhosted.org/packages/7e/51/4f31c9b376803b0e582d6e91d836b298ff8ba5574bd70da6c1f3f84d51e2/sqlalchemy_mate-0.0.5-py2.py3-none-any.whl" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "4eced0f74c27bf06e6e0ee3665488b12", "sha256": "e62ef36920b93992633bb9f8c822f9549afc0b5abca8d3d87b290e281938da95" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4eced0f74c27bf06e6e0ee3665488b12", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 217819, "upload_time": "2019-03-01T19:52:57", "url": "https://files.pythonhosted.org/packages/93/01/cbf0e776046448b734f92304135789f29117f775ff40a90dbb7f941186da/sqlalchemy_mate-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7b62c65f99d6a0a75c9937a710bf398e", "sha256": "17f002d8d3b52ae0f80dbd0401ad22b5d1526448951347ebefc7d29696f43ce9" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.6.tar.gz", "has_sig": false, "md5_digest": "7b62c65f99d6a0a75c9937a710bf398e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 144752, "upload_time": "2019-03-01T19:52:59", "url": "https://files.pythonhosted.org/packages/6d/a8/228b60b8d966e97adc545b93590fd5b31fa562f0f94c822b2796397340c5/sqlalchemy_mate-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "3e7fa2c0429e56aa82cd816b36c80d40", "sha256": "5c3ace7b1d8522dd0b2f607811e12cc1df8019a13094a966080d4c84167fdd9d" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3e7fa2c0429e56aa82cd816b36c80d40", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 215023, "upload_time": "2019-03-02T18:53:14", "url": "https://files.pythonhosted.org/packages/30/4d/6fdd22531c195158abc39d1a76af0dd096e37bb93e9ac7667677a24bce60/sqlalchemy_mate-0.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1c2444f09df9d3943831bcf42f846ed3", "sha256": "f74d492bebbf737270f4ec9eb6e4864e866edda953b98c62c1ac58cbecbf5963" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.7.tar.gz", "has_sig": false, "md5_digest": "1c2444f09df9d3943831bcf42f846ed3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 143338, "upload_time": "2019-03-02T18:53:16", "url": "https://files.pythonhosted.org/packages/e8/c0/0c209058c971d904ff6d9a052d6e612fdde59c1824b636df77f9aacf4e44/sqlalchemy_mate-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "05a09ada4341c632d6ec88ae7ff807c6", "sha256": "bdfce80083f0b7c81e481b412964140b89517e48ccb310db0592056b5903ade5" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "05a09ada4341c632d6ec88ae7ff807c6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 216275, "upload_time": "2019-03-04T17:37:02", "url": "https://files.pythonhosted.org/packages/05/d4/86c5671f3902c3cb2349a71b3601b690308f0636abed8a04eef305208419/sqlalchemy_mate-0.0.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "982d7b12d396e80985ace19d926bbb24", "sha256": "cfcbda8aa36b57fbd6de2c4a92bd5ce41da6c27f36ad89f3c32af3f376bd2c2e" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.8.tar.gz", "has_sig": false, "md5_digest": "982d7b12d396e80985ace19d926bbb24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 145268, "upload_time": "2019-03-04T17:37:04", "url": "https://files.pythonhosted.org/packages/ee/5e/126e5c2dbeb947ddfc02778b843ea67a21660b2e0ea939830fa26e8c1e0c/sqlalchemy_mate-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "0b4f5a58f2e87cd14ea491de26584592", "sha256": "bb210b34800dc647b6dc98dca4f0205d1f32a276894aeef9a37d57950ff04356" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0b4f5a58f2e87cd14ea491de26584592", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 235531, "upload_time": "2019-04-26T22:55:03", "url": "https://files.pythonhosted.org/packages/18/6b/e389ddfc2d8a8a875fb9747c6a2b723240eb3b2056448bc00d2822864f5b/sqlalchemy_mate-0.0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5c34e14394984b0f42cbb8fbf69fd06d", "sha256": "36d8a0739ccc034368ec9c605030341e4947e6523d984f527e0975c6c70c5814" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.9.tar.gz", "has_sig": false, "md5_digest": "5c34e14394984b0f42cbb8fbf69fd06d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 160791, "upload_time": "2019-04-26T22:55:06", "url": "https://files.pythonhosted.org/packages/e3/62/fd4a772ab18a4c1dc32ac0f0b336f165c8bc5469c9d1c77d416201c82700/sqlalchemy_mate-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d5f22a996c65f68837a992d44ff7265b", "sha256": "102f7f1552472b08ae7df9594fffa077da2385b08d4799443dbd5dbf2c97f677" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d5f22a996c65f68837a992d44ff7265b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 235498, "upload_time": "2019-04-26T23:03:20", "url": "https://files.pythonhosted.org/packages/c2/9f/59e72ddc773609ca6a0489e1d7bff1466f4236e604ffed61c9c848472ee8/sqlalchemy_mate-0.0.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9f660c2ada15d8c9e5fdd36936e49be3", "sha256": "3118cc005afabca6264ce1418940a7543c465e385d606a5f28de77c8e86b681c" }, "downloads": -1, "filename": "sqlalchemy_mate-0.0.10.tar.gz", "has_sig": false, "md5_digest": "9f660c2ada15d8c9e5fdd36936e49be3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 160718, "upload_time": "2019-04-26T23:03:23", "url": "https://files.pythonhosted.org/packages/d5/3b/76c31e1c38267708a833dbbab886457e72dc49ac058aa4e90e568f1d808d/sqlalchemy_mate-0.0.10.tar.gz" } ] }