{ "info": { "author": "Frazer McLean", "author_email": "frazer@frazermclean.co.uk", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3" ], "description": "sqlalchemy_aio\n==============\n\n|PyPI Version| |Documentation| |Travis| |Coverage| |MIT License|\n\n``sqlalchemy_aio`` adds asyncio and `Trio`_ support to SQLAlchemy core, derived\nfrom `alchimia`_.\n\n.. _alchimia: https://github.com/alex/alchimia\n.. _Trio: https://github.com/python-trio/trio\n\n\nGetting started\n---------------\n\n.. code-block:: python\n\n import asyncio\n\n from sqlalchemy_aio import ASYNCIO_STRATEGY\n\n from sqlalchemy import (\n Column, Integer, MetaData, Table, Text, create_engine, select)\n from sqlalchemy.schema import CreateTable, DropTable\n\n\n async def main():\n engine = create_engine(\n # In-memory sqlite database cannot be accessed from different\n # threads, use file.\n 'sqlite:///test.db', strategy=ASYNCIO_STRATEGY\n )\n\n metadata = MetaData()\n users = Table(\n 'users', metadata,\n Column('id', Integer, primary_key=True),\n Column('name', Text),\n )\n\n # Create the table\n await engine.execute(CreateTable(users))\n\n conn = await engine.connect()\n\n # Insert some users\n await conn.execute(users.insert().values(name='Jeremy Goodwin'))\n await conn.execute(users.insert().values(name='Natalie Hurley'))\n await conn.execute(users.insert().values(name='Dan Rydell'))\n await conn.execute(users.insert().values(name='Casey McCall'))\n await conn.execute(users.insert().values(name='Dana Whitaker'))\n\n result = await conn.execute(users.select(users.c.name.startswith('D')))\n d_users = await result.fetchall()\n\n await conn.close()\n\n # Print out the users\n for user in d_users:\n print('Username: %s' % user[users.c.name])\n\n # Supports context async managers\n async with engine.connect() as conn:\n async with conn.begin() as trans:\n assert await conn.scalar(select([1])) == 1\n\n await engine.execute(DropTable(users))\n\n\n if __name__ == '__main__':\n loop = asyncio.get_event_loop()\n loop.run_until_complete(main())\n\nGetting started with Trio\n-------------------------\n\nTo use the above example with `Trio`_, just change the following:\n\n.. code-block:: python\n\n import trio\n from sqlalchemy_aio import TRIO_STRATEGY\n\n async def main():\n engine = create_engine('sqlite:///test.db', strategy=TRIO_STRATEGY)\n\n ...\n\n trio.run(main)\n\nWhat is this?\n-------------\n\nIt's *not* an ``asyncio`` implementation of SQLAlchemy or the drivers it uses.\n``sqlalchemy_aio`` lets you use SQLAlchemy by running operations in a separate\nthread.\n\nIf you're already using `run_in_executor`_ to execute SQLAlchemy tasks,\n``sqlalchemy_aio`` will work well with similar performance. If performance is\ncritical, perhaps `asyncpg`_ can help.\n\n.. _asyncpg: https://github.com/MagicStack/asyncpg\n.. _`run_in_executor`: https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.AbstractEventLoop.run_in_executor\n\nDocumentation\n-------------\n\n`The documentation`_ has more information, including limitations of the API.\n\n.. _The documentation: https://sqlalchemy-aio.readthedocs.io/en/latest/\n\n\n.. |PyPI Version| image:: https://img.shields.io/pypi/v/sqlalchemy_aio.svg?style=flat-square\n :target: https://pypi.python.org/pypi/sqlalchemy_aio/\n.. |Documentation| image:: https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat-square\n :target: https://sqlalchemy-aio.readthedocs.io/en/latest/\n.. |Travis| image:: http://img.shields.io/travis/RazerM/sqlalchemy_aio/master.svg?style=flat-square&label=travis\n :target: https://travis-ci.org/RazerM/sqlalchemy_aio\n.. |Coverage| image:: https://img.shields.io/codecov/c/github/RazerM/sqlalchemy_aio/master.svg?style=flat-square\n :target: https://codecov.io/github/RazerM/sqlalchemy_aio?branch=master\n.. |MIT License| image:: http://img.shields.io/badge/license-MIT-blue.svg?style=flat-square\n :target: https://raw.githubusercontent.com/RazerM/sqlalchemy_aio/master/LICENSE\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/RazerM/sqlalchemy_aio", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "sqlalchemy-aio", "package_url": "https://pypi.org/project/sqlalchemy-aio/", "platform": "", "project_url": "https://pypi.org/project/sqlalchemy-aio/", "project_urls": { "Homepage": "https://github.com/RazerM/sqlalchemy_aio" }, "release_url": "https://pypi.org/project/sqlalchemy-aio/0.14.1/", "requires_dist": [ "outcome", "represent (>=1.4)", "sqlalchemy", "pytest (>=3); extra == 'test'", "pytest-asyncio (>=0.8); extra == 'test'", "pytest-trio (>=0.5.1); extra == 'test'", "pytest (>=3); extra == 'test-noextras'", "pytest-asyncio (>=0.8); extra == 'test-noextras'", "trio (>=0.9); extra == 'trio'" ], "requires_python": ">=3.5", "summary": "Async support for SQLAlchemy.", "version": "0.14.1" }, "last_serial": 5294001, "releases": { "0.10.0": [ { "comment_text": "", "digests": { "md5": "af4944c0c489234bfa174d1c5a4a23cf", "sha256": "b374e64f9b89a153d81574d3693e423788566c7d8e5ca76b4659cba9334b3e12" }, "downloads": -1, "filename": "sqlalchemy_aio-0.10.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "af4944c0c489234bfa174d1c5a4a23cf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7310, "upload_time": "2016-12-19T01:19:08", "url": "https://files.pythonhosted.org/packages/99/80/25ca095d711a8fcc73b4313e4b237da054316fca33f45cfc8762e369fe8a/sqlalchemy_aio-0.10.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8f9d4912209d624c6b94cf13e471c33", "sha256": "db40bdb14312a1c6a153357a1db89e56220fa406bd608916bafa7f7a9d34ad55" }, "downloads": -1, "filename": "sqlalchemy_aio-0.10.0.tar.gz", "has_sig": false, "md5_digest": "d8f9d4912209d624c6b94cf13e471c33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5146, "upload_time": "2016-12-19T01:19:10", "url": "https://files.pythonhosted.org/packages/bf/63/15b1be4f762e343eb51dfd0bc1833243e02e6e031ee59b9b620e8872f247/sqlalchemy_aio-0.10.0.tar.gz" } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "9107f56a3ebfe7dcc30c57491d074fc9", "sha256": "2c2a46504c999b4ae5751c90a86aa78cee8cc216f9d432264fb850ffe2d78965" }, "downloads": -1, "filename": "sqlalchemy_aio-0.11.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9107f56a3ebfe7dcc30c57491d074fc9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 7600, "upload_time": "2017-03-13T00:07:34", "url": "https://files.pythonhosted.org/packages/8d/54/98f52442306fdfdb0d8605e869f8ddd71e48167fd7f40cfcda7dc8f0d2e6/sqlalchemy_aio-0.11.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fa3065e871ec9e9d542a79f5aee5024c", "sha256": "736ab30fed217bc9602824b8b7daafcd52e0e19eb4cf07a940d82de5981877e8" }, "downloads": -1, "filename": "sqlalchemy_aio-0.11.0.tar.gz", "has_sig": false, "md5_digest": "fa3065e871ec9e9d542a79f5aee5024c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 5405, "upload_time": "2017-03-13T00:07:36", "url": "https://files.pythonhosted.org/packages/54/d1/bc4c157c6de34d33d624fb7503442c6ef5e1449a04ab81a1276ad5748f44/sqlalchemy_aio-0.11.0.tar.gz" } ], "0.12.0": [ { "comment_text": "", "digests": { "md5": "0213b526a181870a20b0036ce6411bc4", "sha256": "88074855e18895a8a9d7fa70a6027c2b994ccd99b8593b77d6999c6d4271651d" }, "downloads": -1, "filename": "sqlalchemy_aio-0.12.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0213b526a181870a20b0036ce6411bc4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 8670, "upload_time": "2018-02-06T00:04:09", "url": "https://files.pythonhosted.org/packages/3d/d7/6b1fec6d577e6f1bafdf5761c7348f388022235058579329f1aee8c4f303/sqlalchemy_aio-0.12.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b84045161e1c8150ca058c54c3200a53", "sha256": "b820ad84ec5f9a66a2d8814f16cc2ea1b427b514f2926d60d67ae5208c07d565" }, "downloads": -1, "filename": "sqlalchemy_aio-0.12.0.tar.gz", "has_sig": false, "md5_digest": "b84045161e1c8150ca058c54c3200a53", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6175, "upload_time": "2018-02-06T00:04:11", "url": "https://files.pythonhosted.org/packages/25/5b/7d7847127c97f353bce0bbfcd34f71d7dbefe7ec5b7179129e209abf5ff8/sqlalchemy_aio-0.12.0.tar.gz" } ], "0.13.0": [ { "comment_text": "", "digests": { "md5": "a703264275fe92354fd15363d0ca3a39", "sha256": "717b48eae9534f362f3a1bd86a0b7889ac0900c337cbe870bb76c16d51443ab0" }, "downloads": -1, "filename": "sqlalchemy_aio-0.13.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a703264275fe92354fd15363d0ca3a39", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 19822, "upload_time": "2018-07-29T18:20:15", "url": "https://files.pythonhosted.org/packages/69/6b/c04c5dcf927cb1b15ada48e94e71f0bafde1fa7297b94f3f05aae0935669/sqlalchemy_aio-0.13.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6428ed0500f4c6b0194460e2b1f97fc6", "sha256": "41fa9ea9779b9cc68afc767f3b1c8b9ab33ba657d917db14f37c2a8871bcc548" }, "downloads": -1, "filename": "sqlalchemy_aio-0.13.0.tar.gz", "has_sig": false, "md5_digest": "6428ed0500f4c6b0194460e2b1f97fc6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 10704, "upload_time": "2018-07-29T18:20:17", "url": "https://files.pythonhosted.org/packages/0f/28/39856441c01f72f5840c765981f2e9c6356fdbb44b7c186c916d9e6d9c76/sqlalchemy_aio-0.13.0.tar.gz" } ], "0.14.0": [ { "comment_text": "", "digests": { "md5": "086af96b0c3fa2e95d1751951a67bac3", "sha256": "943a5bba8de36d0fd77c3edeac9657e4933201441ccbbbdb08f67fd4e118482b" }, "downloads": -1, "filename": "sqlalchemy_aio-0.14.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "086af96b0c3fa2e95d1751951a67bac3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 24574, "upload_time": "2018-10-27T22:22:29", "url": "https://files.pythonhosted.org/packages/f5/ee/c6a853cd65d4cd2eedb6e913036ab28f3c8047991f1cf5ea6f7485a80ffc/sqlalchemy_aio-0.14.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b0ca54c4772247f6a5ee7303a44bbce1", "sha256": "19d5d90221a20924128ca3bf0734b6a50045611e43151951766efe958e49378b" }, "downloads": -1, "filename": "sqlalchemy_aio-0.14.0.tar.gz", "has_sig": false, "md5_digest": "b0ca54c4772247f6a5ee7303a44bbce1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 13565, "upload_time": "2018-10-27T22:22:54", "url": "https://files.pythonhosted.org/packages/52/12/3c1f21ac3d3b71f35553356cda816744637e611602bdeee39d79930a2f15/sqlalchemy_aio-0.14.0.tar.gz" } ], "0.14.1": [ { "comment_text": "", "digests": { "md5": "9396a7726608e41ab17cb7d40ddfdc48", "sha256": "bdf8ee3ca5c30bcc794d9445fa4eb69e9a86f57d9bfd6d2a4ecdb9703d8e2b86" }, "downloads": -1, "filename": "sqlalchemy_aio-0.14.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9396a7726608e41ab17cb7d40ddfdc48", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 24606, "upload_time": "2019-05-20T20:02:21", "url": "https://files.pythonhosted.org/packages/eb/88/ac248d784cbb93881ebadc1ab2e858689932a45f7c85f80d1581d9882f8e/sqlalchemy_aio-0.14.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "644ae755cc314497499167db8bbf9333", "sha256": "baaed3643745683b75dafaeeabf7d6c51861713c551e729906b53b9ee266f54d" }, "downloads": -1, "filename": "sqlalchemy_aio-0.14.1.tar.gz", "has_sig": false, "md5_digest": "644ae755cc314497499167db8bbf9333", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 13574, "upload_time": "2019-05-20T20:02:23", "url": "https://files.pythonhosted.org/packages/35/6b/d3522f584cce6452c5930d9ec02bb30c3cb5a77a0143c40f950f0834c414/sqlalchemy_aio-0.14.1.tar.gz" } ], "0.1b1": [ { "comment_text": "", "digests": { "md5": "4b5a405e10cdecc2ecc64a49a1b20c67", "sha256": "8952d70450518ac30fffc8745e1487ef8d921e2052e24f7c331ce0d866b3c211" }, "downloads": -1, "filename": "sqlalchemy_aio-0.1b1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4b5a405e10cdecc2ecc64a49a1b20c67", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6253, "upload_time": "2016-10-03T21:00:19", "url": "https://files.pythonhosted.org/packages/88/6a/994b54d23f77b18f9318922e09bd6705b9448e572309ed6c72d3e19238a4/sqlalchemy_aio-0.1b1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eacc96431d3f20cc227664bc1f79e4c2", "sha256": "77cd3b4b4860c43b62048e29f39b7cf6b28b2cd28069223011caf1016b3e147d" }, "downloads": -1, "filename": "sqlalchemy_aio-0.1b1.tar.gz", "has_sig": false, "md5_digest": "eacc96431d3f20cc227664bc1f79e4c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4262, "upload_time": "2016-10-03T21:00:22", "url": "https://files.pythonhosted.org/packages/b9/e8/10416c2c3c42a6c0acb41cd1c0ec37282684b0eb47f4f157bca004ec3462/sqlalchemy_aio-0.1b1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9396a7726608e41ab17cb7d40ddfdc48", "sha256": "bdf8ee3ca5c30bcc794d9445fa4eb69e9a86f57d9bfd6d2a4ecdb9703d8e2b86" }, "downloads": -1, "filename": "sqlalchemy_aio-0.14.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9396a7726608e41ab17cb7d40ddfdc48", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 24606, "upload_time": "2019-05-20T20:02:21", "url": "https://files.pythonhosted.org/packages/eb/88/ac248d784cbb93881ebadc1ab2e858689932a45f7c85f80d1581d9882f8e/sqlalchemy_aio-0.14.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "644ae755cc314497499167db8bbf9333", "sha256": "baaed3643745683b75dafaeeabf7d6c51861713c551e729906b53b9ee266f54d" }, "downloads": -1, "filename": "sqlalchemy_aio-0.14.1.tar.gz", "has_sig": false, "md5_digest": "644ae755cc314497499167db8bbf9333", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 13574, "upload_time": "2019-05-20T20:02:23", "url": "https://files.pythonhosted.org/packages/35/6b/d3522f584cce6452c5930d9ec02bb30c3cb5a77a0143c40f950f0834c414/sqlalchemy_aio-0.14.1.tar.gz" } ] }