Metadata-Version: 1.1
Name: aiomysql
Version: 0.0.8
Summary: MySQL driver for asyncio.
Home-page: https://github.com/aio-libs/aiomysql
Author: Nikolay Novik
Author-email: nickolainovik@gmail.com
License: MIT
Download-URL: https://pypi.python.org/pypi/aiomysql
Description: aiomysql
        ========
        .. image:: https://travis-ci.org/aio-libs/aiomysql.svg?branch=master
            :target: https://travis-ci.org/aio-libs/aiomysql
        .. image:: https://coveralls.io/repos/aio-libs/aiomysql/badge.svg
            :target: https://coveralls.io/r/aio-libs/aiomysql
        .. 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
        
        **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/
        
        
        Mailing List
        ------------
        https://groups.google.com/forum/#!forum/aio-libs
        
        
        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
            from aiomysql import create_pool
        
        
            loop = asyncio.get_event_loop()
        
            async def go():
                async with create_pool(host='127.0.0.1', port=3306,
                                       user='root', password='',
                                       db='mysql', loop=loop) as pool:
                    async with pool.get() as conn:
                        async with conn.cursor() as cur:
                            await cur.execute("SELECT 42;")
                            value = await cur.fetchone()
                            print(value)
        
        
            loop.run_until_complete(go())
        
        
        Connection Pool
        ---------------
        Connection pooling ported from aiopg_ :
        
        .. code:: python
        
            import asyncio
            import aiomysql
        
        
            loop = asyncio.get_event_loop()
        
        
            @asyncio.coroutine
            def test_example():
                pool = yield from aiomysql.create_pool(host='127.0.0.1', port=3306,
                                                       user='root', password='',
                                                       db='mysql', loop=loop)
                with (yield from pool) as conn:
                    cur = yield from conn.cursor()
                    yield from cur.execute("SELECT 10")
                    # print(cur.description)
                    (r,) = yield from cur.fetchone()
                    assert r == 10
                pool.close()
                yield from pool.wait_closed()
        
            loop.run_until_complete(test_example())
        
        
        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
           from aiomysql.sa import create_engine
           import sqlalchemy as sa
        
        
           metadata = sa.MetaData()
        
           tbl = sa.Table('tbl', metadata,
               sa.Column('id', sa.Integer, primary_key=True),
               sa.Column('val', sa.String(255)))
        
        
           @asyncio.coroutine
           def go():
               engine = yield from create_engine(user='root',
                                                 db='aiomysql',
                                                 host='127.0.0.1',
                                                 password='')
        
               with (yield from engine) as conn:
                   yield from conn.execute(tbl.insert().values(val='abc'))
        
                   res = yield from conn.execute(tbl.select())
                   for row in res:
                       print(row.id, row.val)
        
        
           asyncio.get_event_loop().run_until_complete(go())
        
        
        Requirements
        ------------
        
        * Python_ 3.3+
        * asyncio_ or Python_ 3.4+
        * PyMySQL_
        
        
        .. _Python: https://www.python.org
        .. _asyncio: http://docs.python.org/3.4/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.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.
Platform: POSIX
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Operating System :: POSIX
Classifier: Environment :: Web Environment
Classifier: Development Status :: 3 - Alpha
Classifier: Topic :: Database
Classifier: Topic :: Database :: Front-Ends
