aiomysql


Nameaiomysql JSON
Version 0.2.0 PyPI version JSON
download
home_pagehttps://github.com/aio-libs/aiomysql
SummaryMySQL driver for asyncio.
upload_time2023-06-11 19:57:53
maintainer
docs_urlNone
authorNikolay Novik
requires_python>=3.7
licenseMIT
keywords mysql mariadb asyncio aiomysql
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            aiomysql
========
.. image:: https://github.com/aio-libs/aiomysql/actions/workflows/ci-cd.yml/badge.svg?branch=master
    :target: https://github.com/aio-libs/aiomysql/actions/workflows/ci-cd.yml
.. image:: https://codecov.io/gh/aio-libs/aiomysql/branch/master/graph/badge.svg
    :target: https://codecov.io/gh/aio-libs/aiomysql
    :alt: Code coverage
.. image:: https://badge.fury.io/py/aiomysql.svg
    :target: https://badge.fury.io/py/aiomysql
    :alt: Latest Version
.. image:: https://readthedocs.org/projects/aiomysql/badge/?version=latest
    :target: https://aiomysql.readthedocs.io/
    :alt: Documentation Status
.. image:: https://badges.gitter.im/Join%20Chat.svg
    :target: https://gitter.im/aio-libs/Lobby
    :alt: Chat on Gitter

**aiomysql** is a "driver" for accessing a `MySQL` database
from the asyncio_ (PEP-3156/tulip) framework. It depends on and reuses most
parts of PyMySQL_ . *aiomysql* tries to be like awesome aiopg_ library and
preserve same api, look and feel.

Internally **aiomysql** is copy of PyMySQL, underlying io calls switched
to async, basically ``yield from`` and ``asyncio.coroutine`` added in
proper places)). `sqlalchemy` support ported from aiopg_.


Documentation
-------------
https://aiomysql.readthedocs.io/

Basic Example
-------------

**aiomysql** based on PyMySQL_ , and provides same api, you just need
to use  ``await conn.f()`` or ``yield from conn.f()`` instead of calling
``conn.f()`` for every method.

Properties are unchanged, so ``conn.prop`` is correct as well as
``conn.prop = val``.

.. code:: python

    import asyncio
    import aiomysql


    async def test_example(loop):
        pool = await aiomysql.create_pool(host='127.0.0.1', port=3306,
                                          user='root', password='',
                                          db='mysql', loop=loop)
        async with pool.acquire() as conn:
            async with conn.cursor() as cur:
                await cur.execute("SELECT 42;")
                print(cur.description)
                (r,) = await cur.fetchone()
                assert r == 42
        pool.close()
        await pool.wait_closed()


    loop = asyncio.get_event_loop()
    loop.run_until_complete(test_example(loop))


Example of SQLAlchemy optional integration
------------------------------------------
Sqlalchemy support has been ported from aiopg_ so api should be very familiar
for aiopg_ user.:

.. code:: python

    import asyncio
    import sqlalchemy as sa

    from aiomysql.sa import create_engine


    metadata = sa.MetaData()

    tbl = sa.Table('tbl', metadata,
                   sa.Column('id', sa.Integer, primary_key=True),
                   sa.Column('val', sa.String(255)))


    async def go(loop):
        engine = await create_engine(user='root', db='test_pymysql',
                                     host='127.0.0.1', password='', loop=loop)
        async with engine.acquire() as conn:
            await conn.execute(tbl.insert().values(val='abc'))
            await conn.execute(tbl.insert().values(val='xyz'))

            async for row in conn.execute(tbl.select()):
                print(row.id, row.val)

        engine.close()
        await engine.wait_closed()


    loop = asyncio.get_event_loop()
    loop.run_until_complete(go(loop))


Requirements
------------

* Python_ 3.7+
* PyMySQL_


.. _Python: https://www.python.org
.. _asyncio: http://docs.python.org/3.5/library/asyncio.html
.. _aiopg: https://github.com/aio-libs/aiopg
.. _PyMySQL: https://github.com/PyMySQL/PyMySQL
.. _Tornado-MySQL: https://github.com/PyMySQL/Tornado-MySQL

Changes
-------

0.2.0 (2023-06-11)
^^^^^^^^^^^^^^^^^^

* Bump minimal SQLAlchemy version to 1.3 #815

* Remove deprecated Pool.get #706

* | Partially ported `PyMySQL#304 <https://github.com/PyMySQL/PyMySQL/pull/304>`_ #792
  | aiomysql now reraises the original exception during connect() if it's not `IOError`, `OSError` or `asyncio.TimeoutError`.
  | This was previously always raised as `OperationalError`.

* Fix debug log level with sha256_password authentication #863

* Modernized code with `pyupgrade <https://github.com/asottile/pyupgrade>`_ to Python 3.7+ syntax #930

* Removed tests for EoL MariaDB versions 10.3, 10.7 and 10.8, added tests for MariaDB 10.9, 10.10, 10.11 #932

0.1.1 (2022-05-08)
^^^^^^^^^^^^^^^^^^

* Fix SSL connection handshake charset not respecting client configuration #776

0.1.0 (2022-04-11)
^^^^^^^^^^^^^^^^^^

* Don't send sys.argv[0] as program_name to MySQL server by default #620

* Allow running process as anonymous uid #587

* Fix timed out MySQL 8.0 connections raising InternalError rather than OperationalError #660

* Fix timed out MySQL 8.0 connections being returned from Pool #660

* Ensure connections are properly closed before raising an OperationalError when the server connection is lost #660

* Ensure connections are properly closed before raising an InternalError when packet sequence numbers are out of sync #660

* Unix sockets are now internally considered secure, allowing sha256_password and caching_sha2_password auth methods to be used #695

* Test suite now also tests unix socket connections #696

* Fix SSCursor raising InternalError when last result was not fully retrieved #635

* Remove deprecated no_delay argument #702

* Support PyMySQL up to version 1.0.2 #643

* Bump minimal PyMySQL version to 1.0.0 #713

* Align % formatting in Cursor.executemany() with Cursor.execute(), literal % now need to be doubled in Cursor.executemany() #714

* Fixed unlimited Pool size not working, this is now working as documented by passing maxsize=0 to create_pool #119

* Added Pool.closed property as present in aiopg #463

* Fixed SQLAlchemy connection context iterator #410

* Fix error packet handling for SSCursor #428

* Required python version is now properly documented in python_requires instead of failing on setup.py execution #731

* Add rsa extras_require depending on PyMySQL[rsa] #557

* Migrate to PEP 517 build system #746

* Self-reported `__version__` now returns version generated by `setuptools-scm` during build, otherwise `'unknown'` #748

* Fix SSCursor raising query timeout error on wrong query #428


0.0.22 (2021-11-14)
^^^^^^^^^^^^^^^^^^^

* Support python 3.10 #505


0.0.21 (2020-11-26)
^^^^^^^^^^^^^^^^^^^

* Allow to use custom Cursor subclasses #374

* Fill Connection class with actual client version #388

* Fix legacy __aiter__ methods #403

* Fix & update docs #418 #437

* Ignore pyenv's .python-version file #424

* Replace asyncio.streams.IncompleteReadError with asyncio.IncompleteReadError #460 #454

* Add support for SQLAlchemy default parameters #455 #466

* Update dependencies #485

* Support Python 3.7 & 3.8 #493


0.0.20 (2018-12-19)
^^^^^^^^^^^^^^^^^^^

* Fixed connect_timeout #360

* Fixed support for SQLA executemany #324

* Fix the python 3.7 compatibility #357

* Fixed reuse connections when StreamReader has an exception #339

* Fixes warning when inserting binary strings #326


0.0.19 (2018-07-12)
^^^^^^^^^^^^^^^^^^^

* See v0.0.18


0.0.18 (2018-07-09)
^^^^^^^^^^^^^^^^^^^

* Updated to support latest PyMySQL changes.

* aiomysql now sends client connection info.

* MySQL8+ Support including sha256_password and cached_sha2_password authentication plugins.

* Default max packet length sent to the server is no longer 1.

* Fixes issue where cursor.nextset can hang on query sets that raise errors.


0.0.17 (2018-07-06)
^^^^^^^^^^^^^^^^^^^

* Pinned version of PyMySQL


0.0.16 (2018-06-03)
^^^^^^^^^^^^^^^^^^^

* Added ability to execute precompiled sqlalchemy queries #294 (Thanks @vlanse)


0.0.15 (2018-05-20)
^^^^^^^^^^^^^^^^^^^

* Fixed handling of user-defined types for sqlalchemy  #290

* Fix KeyError when server reports unknown collation #289


0.0.14 (2018-04-22)
^^^^^^^^^^^^^^^^^^^

* Fixed SSL connection finalization  #282


0.0.13 (2018-04-19)
^^^^^^^^^^^^^^^^^^^

* Added SSL support #280 (Thanks @terrycain)

* Fixed __all__ in aiomysql/__init__ #270 (Thanks @matianjun1)

* Added docker fixtures #275 (Thanks @terrycain)


0.0.12 (2018-01-18)
^^^^^^^^^^^^^^^^^^^

* Fixed support for SQLAlchemy 1.2.0

* Fixed argument for cursor.execute in sa engine #239 (Thanks @NotSoSuper)


0.0.11 (2017-12-06)
^^^^^^^^^^^^^^^^^^^

* Fixed README formatting on pypi


0.0.10 (2017-12-06)
^^^^^^^^^^^^^^^^^^^

* Updated regular expressions to be compatible with pymysql #167 (Thanks @AlexLisovoy)

* Added connection recycling in the pool #216


0.0.9 (2016-09-14)
^^^^^^^^^^^^^^^^^^

* Fixed AttributeError in  _request_authentication function #104 (Thanks @ttlttl)

* Fixed legacy auth #105

* uvloop added to test suite #106

* Fixed bug with unicode in json field #107 (Thanks @methane)


0.0.8 (2016-08-24)
^^^^^^^^^^^^^^^^^^

* Default min pool size reduced to 1 #80 (Thanks @Drizzt1991)

* Update to PyMySQL 0.7.5 #89

* Fixed connection cancellation in process of executing a query #79 (Thanks @Drizzt1991)


0.0.7 (2016-01-27)
^^^^^^^^^^^^^^^^^^

* Fix for multiple results issue, ported from pymysql #52

* Fixed useless warning with no_delay option #55

* Added async/await support for Engine, SAConnection, Transaction #57

* pool.release returns future so we can wait on it in __aexit__ #60

* Update to PyMySQL 0.6.7


0.0.6 (2015-12-11)
^^^^^^^^^^^^^^^^^^

* Fixed bug with SA rollback (Thanks @khlyestovillarion!)

* Fixed issue with default no_delay option (Thanks @khlyestovillarion!)


0.0.5 (2015-10-28)
^^^^^^^^^^^^^^^^^^

* no_delay option is deprecated and True by default

* Add Cursor.mogrify() method

* Support for "LOAD LOCAL INFILE" query.

* Check connection inside pool, in case of timeout drop it, fixes #25

* Add support of python 3.5 features to pool, connection and cursor


0.0.4 (2015-05-23)
^^^^^^^^^^^^^^^^^^

* Allow to call connection.wait_closed twice.

* Fixed sqlalchemy 1.0.0 support.

* Fix #11: Rename Connection.wait_closed() to .ensure_closed()

* Raise ResourceWarning on non-closed Connection

* Rename Connection.connect to _connect


0.0.3 (2015-03-10)
^^^^^^^^^^^^^^^^^^

* Added support for PyMySQL up to 0.6.6.

* Ported improvements from PyMySQL.

* Added basic documentation.

* Fixed and added more examples.


0.0.2 (2015-02-17)
^^^^^^^^^^^^^^^^^^

* Added MANIFEST.in.


0.0.1 (2015-02-17)
^^^^^^^^^^^^^^^^^^

* Initial release.

* Implemented plain connections: connect, Connection, Cursor.

* Implemented database pools.

* Ported sqlalchemy optional support.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/aio-libs/aiomysql",
    "name": "aiomysql",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "mysql,mariadb,asyncio,aiomysql",
    "author": "Nikolay Novik",
    "author_email": "nickolainovik@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/67/76/2c5b55e4406a1957ffdfd933a94c2517455291c97d2b81cec6813754791a/aiomysql-0.2.0.tar.gz",
    "platform": "POSIX",
    "description": "aiomysql\n========\n.. image:: https://github.com/aio-libs/aiomysql/actions/workflows/ci-cd.yml/badge.svg?branch=master\n    :target: https://github.com/aio-libs/aiomysql/actions/workflows/ci-cd.yml\n.. image:: https://codecov.io/gh/aio-libs/aiomysql/branch/master/graph/badge.svg\n    :target: https://codecov.io/gh/aio-libs/aiomysql\n    :alt: Code coverage\n.. image:: https://badge.fury.io/py/aiomysql.svg\n    :target: https://badge.fury.io/py/aiomysql\n    :alt: Latest Version\n.. image:: https://readthedocs.org/projects/aiomysql/badge/?version=latest\n    :target: https://aiomysql.readthedocs.io/\n    :alt: Documentation Status\n.. image:: https://badges.gitter.im/Join%20Chat.svg\n    :target: https://gitter.im/aio-libs/Lobby\n    :alt: Chat on Gitter\n\n**aiomysql** is a \"driver\" for accessing a `MySQL` database\nfrom the asyncio_ (PEP-3156/tulip) framework. It depends on and reuses most\nparts of PyMySQL_ . *aiomysql* tries to be like awesome aiopg_ library and\npreserve same api, look and feel.\n\nInternally **aiomysql** is copy of PyMySQL, underlying io calls switched\nto async, basically ``yield from`` and ``asyncio.coroutine`` added in\nproper places)). `sqlalchemy` support ported from aiopg_.\n\n\nDocumentation\n-------------\nhttps://aiomysql.readthedocs.io/\n\nBasic Example\n-------------\n\n**aiomysql** based on PyMySQL_ , and provides same api, you just need\nto use  ``await conn.f()`` or ``yield from conn.f()`` instead of calling\n``conn.f()`` for every method.\n\nProperties are unchanged, so ``conn.prop`` is correct as well as\n``conn.prop = val``.\n\n.. code:: python\n\n    import asyncio\n    import aiomysql\n\n\n    async def test_example(loop):\n        pool = await aiomysql.create_pool(host='127.0.0.1', port=3306,\n                                          user='root', password='',\n                                          db='mysql', loop=loop)\n        async with pool.acquire() as conn:\n            async with conn.cursor() as cur:\n                await cur.execute(\"SELECT 42;\")\n                print(cur.description)\n                (r,) = await cur.fetchone()\n                assert r == 42\n        pool.close()\n        await pool.wait_closed()\n\n\n    loop = asyncio.get_event_loop()\n    loop.run_until_complete(test_example(loop))\n\n\nExample of SQLAlchemy optional integration\n------------------------------------------\nSqlalchemy support has been ported from aiopg_ so api should be very familiar\nfor aiopg_ user.:\n\n.. code:: python\n\n    import asyncio\n    import sqlalchemy as sa\n\n    from aiomysql.sa import create_engine\n\n\n    metadata = sa.MetaData()\n\n    tbl = sa.Table('tbl', metadata,\n                   sa.Column('id', sa.Integer, primary_key=True),\n                   sa.Column('val', sa.String(255)))\n\n\n    async def go(loop):\n        engine = await create_engine(user='root', db='test_pymysql',\n                                     host='127.0.0.1', password='', loop=loop)\n        async with engine.acquire() as conn:\n            await conn.execute(tbl.insert().values(val='abc'))\n            await conn.execute(tbl.insert().values(val='xyz'))\n\n            async for row in conn.execute(tbl.select()):\n                print(row.id, row.val)\n\n        engine.close()\n        await engine.wait_closed()\n\n\n    loop = asyncio.get_event_loop()\n    loop.run_until_complete(go(loop))\n\n\nRequirements\n------------\n\n* Python_ 3.7+\n* PyMySQL_\n\n\n.. _Python: https://www.python.org\n.. _asyncio: http://docs.python.org/3.5/library/asyncio.html\n.. _aiopg: https://github.com/aio-libs/aiopg\n.. _PyMySQL: https://github.com/PyMySQL/PyMySQL\n.. _Tornado-MySQL: https://github.com/PyMySQL/Tornado-MySQL\n\nChanges\n-------\n\n0.2.0 (2023-06-11)\n^^^^^^^^^^^^^^^^^^\n\n* Bump minimal SQLAlchemy version to 1.3 #815\n\n* Remove deprecated Pool.get #706\n\n* | Partially ported `PyMySQL#304 <https://github.com/PyMySQL/PyMySQL/pull/304>`_ #792\n  | aiomysql now reraises the original exception during connect() if it's not `IOError`, `OSError` or `asyncio.TimeoutError`.\n  | This was previously always raised as `OperationalError`.\n\n* Fix debug log level with sha256_password authentication #863\n\n* Modernized code with `pyupgrade <https://github.com/asottile/pyupgrade>`_ to Python 3.7+ syntax #930\n\n* Removed tests for EoL MariaDB versions 10.3, 10.7 and 10.8, added tests for MariaDB 10.9, 10.10, 10.11 #932\n\n0.1.1 (2022-05-08)\n^^^^^^^^^^^^^^^^^^\n\n* Fix SSL connection handshake charset not respecting client configuration #776\n\n0.1.0 (2022-04-11)\n^^^^^^^^^^^^^^^^^^\n\n* Don't send sys.argv[0] as program_name to MySQL server by default #620\n\n* Allow running process as anonymous uid #587\n\n* Fix timed out MySQL 8.0 connections raising InternalError rather than OperationalError #660\n\n* Fix timed out MySQL 8.0 connections being returned from Pool #660\n\n* Ensure connections are properly closed before raising an OperationalError when the server connection is lost #660\n\n* Ensure connections are properly closed before raising an InternalError when packet sequence numbers are out of sync #660\n\n* Unix sockets are now internally considered secure, allowing sha256_password and caching_sha2_password auth methods to be used #695\n\n* Test suite now also tests unix socket connections #696\n\n* Fix SSCursor raising InternalError when last result was not fully retrieved #635\n\n* Remove deprecated no_delay argument #702\n\n* Support PyMySQL up to version 1.0.2 #643\n\n* Bump minimal PyMySQL version to 1.0.0 #713\n\n* Align % formatting in Cursor.executemany() with Cursor.execute(), literal % now need to be doubled in Cursor.executemany() #714\n\n* Fixed unlimited Pool size not working, this is now working as documented by passing maxsize=0 to create_pool #119\n\n* Added Pool.closed property as present in aiopg #463\n\n* Fixed SQLAlchemy connection context iterator #410\n\n* Fix error packet handling for SSCursor #428\n\n* Required python version is now properly documented in python_requires instead of failing on setup.py execution #731\n\n* Add rsa extras_require depending on PyMySQL[rsa] #557\n\n* Migrate to PEP 517 build system #746\n\n* Self-reported `__version__` now returns version generated by `setuptools-scm` during build, otherwise `'unknown'` #748\n\n* Fix SSCursor raising query timeout error on wrong query #428\n\n\n0.0.22 (2021-11-14)\n^^^^^^^^^^^^^^^^^^^\n\n* Support python 3.10 #505\n\n\n0.0.21 (2020-11-26)\n^^^^^^^^^^^^^^^^^^^\n\n* Allow to use custom Cursor subclasses #374\n\n* Fill Connection class with actual client version #388\n\n* Fix legacy __aiter__ methods #403\n\n* Fix & update docs #418 #437\n\n* Ignore pyenv's .python-version file #424\n\n* Replace asyncio.streams.IncompleteReadError with asyncio.IncompleteReadError #460 #454\n\n* Add support for SQLAlchemy default parameters #455 #466\n\n* Update dependencies #485\n\n* Support Python 3.7 & 3.8 #493\n\n\n0.0.20 (2018-12-19)\n^^^^^^^^^^^^^^^^^^^\n\n* Fixed connect_timeout #360\n\n* Fixed support for SQLA executemany #324\n\n* Fix the python 3.7 compatibility #357\n\n* Fixed reuse connections when StreamReader has an exception #339\n\n* Fixes warning when inserting binary strings #326\n\n\n0.0.19 (2018-07-12)\n^^^^^^^^^^^^^^^^^^^\n\n* See v0.0.18\n\n\n0.0.18 (2018-07-09)\n^^^^^^^^^^^^^^^^^^^\n\n* Updated to support latest PyMySQL changes.\n\n* aiomysql now sends client connection info.\n\n* MySQL8+ Support including sha256_password and cached_sha2_password authentication plugins.\n\n* Default max packet length sent to the server is no longer 1.\n\n* Fixes issue where cursor.nextset can hang on query sets that raise errors.\n\n\n0.0.17 (2018-07-06)\n^^^^^^^^^^^^^^^^^^^\n\n* Pinned version of PyMySQL\n\n\n0.0.16 (2018-06-03)\n^^^^^^^^^^^^^^^^^^^\n\n* Added ability to execute precompiled sqlalchemy queries #294 (Thanks @vlanse)\n\n\n0.0.15 (2018-05-20)\n^^^^^^^^^^^^^^^^^^^\n\n* Fixed handling of user-defined types for sqlalchemy  #290\n\n* Fix KeyError when server reports unknown collation #289\n\n\n0.0.14 (2018-04-22)\n^^^^^^^^^^^^^^^^^^^\n\n* Fixed SSL connection finalization  #282\n\n\n0.0.13 (2018-04-19)\n^^^^^^^^^^^^^^^^^^^\n\n* Added SSL support #280 (Thanks @terrycain)\n\n* Fixed __all__ in aiomysql/__init__ #270 (Thanks @matianjun1)\n\n* Added docker fixtures #275 (Thanks @terrycain)\n\n\n0.0.12 (2018-01-18)\n^^^^^^^^^^^^^^^^^^^\n\n* Fixed support for SQLAlchemy 1.2.0\n\n* Fixed argument for cursor.execute in sa engine #239 (Thanks @NotSoSuper)\n\n\n0.0.11 (2017-12-06)\n^^^^^^^^^^^^^^^^^^^\n\n* Fixed README formatting on pypi\n\n\n0.0.10 (2017-12-06)\n^^^^^^^^^^^^^^^^^^^\n\n* Updated regular expressions to be compatible with pymysql #167 (Thanks @AlexLisovoy)\n\n* Added connection recycling in the pool #216\n\n\n0.0.9 (2016-09-14)\n^^^^^^^^^^^^^^^^^^\n\n* Fixed AttributeError in  _request_authentication function #104 (Thanks @ttlttl)\n\n* Fixed legacy auth #105\n\n* uvloop added to test suite #106\n\n* Fixed bug with unicode in json field #107 (Thanks @methane)\n\n\n0.0.8 (2016-08-24)\n^^^^^^^^^^^^^^^^^^\n\n* Default min pool size reduced to 1 #80 (Thanks @Drizzt1991)\n\n* Update to PyMySQL 0.7.5 #89\n\n* Fixed connection cancellation in process of executing a query #79 (Thanks @Drizzt1991)\n\n\n0.0.7 (2016-01-27)\n^^^^^^^^^^^^^^^^^^\n\n* Fix for multiple results issue, ported from pymysql #52\n\n* Fixed useless warning with no_delay option #55\n\n* Added async/await support for Engine, SAConnection, Transaction #57\n\n* pool.release returns future so we can wait on it in __aexit__ #60\n\n* Update to PyMySQL 0.6.7\n\n\n0.0.6 (2015-12-11)\n^^^^^^^^^^^^^^^^^^\n\n* Fixed bug with SA rollback (Thanks @khlyestovillarion!)\n\n* Fixed issue with default no_delay option (Thanks @khlyestovillarion!)\n\n\n0.0.5 (2015-10-28)\n^^^^^^^^^^^^^^^^^^\n\n* no_delay option is deprecated and True by default\n\n* Add Cursor.mogrify() method\n\n* Support for \"LOAD LOCAL INFILE\" query.\n\n* Check connection inside pool, in case of timeout drop it, fixes #25\n\n* Add support of python 3.5 features to pool, connection and cursor\n\n\n0.0.4 (2015-05-23)\n^^^^^^^^^^^^^^^^^^\n\n* Allow to call connection.wait_closed twice.\n\n* Fixed sqlalchemy 1.0.0 support.\n\n* Fix #11: Rename Connection.wait_closed() to .ensure_closed()\n\n* Raise ResourceWarning on non-closed Connection\n\n* Rename Connection.connect to _connect\n\n\n0.0.3 (2015-03-10)\n^^^^^^^^^^^^^^^^^^\n\n* Added support for PyMySQL up to 0.6.6.\n\n* Ported improvements from PyMySQL.\n\n* Added basic documentation.\n\n* Fixed and added more examples.\n\n\n0.0.2 (2015-02-17)\n^^^^^^^^^^^^^^^^^^\n\n* Added MANIFEST.in.\n\n\n0.0.1 (2015-02-17)\n^^^^^^^^^^^^^^^^^^\n\n* Initial release.\n\n* Implemented plain connections: connect, Connection, Cursor.\n\n* Implemented database pools.\n\n* Ported sqlalchemy optional support.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "MySQL driver for asyncio.",
    "version": "0.2.0",
    "project_urls": {
        "CI: GitHub": "https://github.com/aio-libs/aiomysql/actions",
        "Docs: RTD": "https://aiomysql.readthedocs.io/",
        "Download": "https://pypi.python.org/pypi/aiomysql",
        "GitHub: discussions": "https://github.com/aio-libs/aiomysql/discussions",
        "GitHub: issues": "https://github.com/aio-libs/aiomysql/issues",
        "GitHub: repo": "https://github.com/aio-libs/aiomysql",
        "Homepage": "https://github.com/aio-libs/aiomysql"
    },
    "split_keywords": [
        "mysql",
        "mariadb",
        "asyncio",
        "aiomysql"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4287c982ee8b333c85b8ae16306387d703a1fcdfc81a2f3f15a24820ab1a512d",
                "md5": "677da8788742d34daa5e34512ef01442",
                "sha256": "b7c26da0daf23a5ec5e0b133c03d20657276e4eae9b73e040b72787f6f6ade0a"
            },
            "downloads": -1,
            "filename": "aiomysql-0.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "677da8788742d34daa5e34512ef01442",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 44215,
            "upload_time": "2023-06-11T19:57:51",
            "upload_time_iso_8601": "2023-06-11T19:57:51.090120Z",
            "url": "https://files.pythonhosted.org/packages/42/87/c982ee8b333c85b8ae16306387d703a1fcdfc81a2f3f15a24820ab1a512d/aiomysql-0.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "67762c5b55e4406a1957ffdfd933a94c2517455291c97d2b81cec6813754791a",
                "md5": "96198d120c1109f53bed9724b1182c86",
                "sha256": "558b9c26d580d08b8c5fd1be23c5231ce3aeff2dadad989540fee740253deb67"
            },
            "downloads": -1,
            "filename": "aiomysql-0.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "96198d120c1109f53bed9724b1182c86",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 114706,
            "upload_time": "2023-06-11T19:57:53",
            "upload_time_iso_8601": "2023-06-11T19:57:53.608492Z",
            "url": "https://files.pythonhosted.org/packages/67/76/2c5b55e4406a1957ffdfd933a94c2517455291c97d2b81cec6813754791a/aiomysql-0.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-06-11 19:57:53",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "aio-libs",
    "github_project": "aiomysql",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "aiomysql"
}
        
Elapsed time: 0.10287s