Metadata-Version: 2.1
Name: tormysql
Version: 0.4.3
Summary: Tornado asynchronous MySQL Driver
Home-page: https://github.com/snower/TorMySQL
Author: snower, mosquito
Author-email: sujian199@gmail.com, me@mosquito.su
License: MIT
Description: TorMySQL
        ========
        
        |Build Status|
        
        The highest performance asynchronous MySQL driver.
        
        PyPI page: https://pypi.python.org/pypi/tormysql
        
        About
        =====
        
        Presents a Future-based API and greenlet for non-blocking access to
        MySQL.
        
        Support both `tornado <https://github.com/tornadoweb/tornado>`__ and
        `asyncio <https://docs.python.org/3/library/asyncio.html>`__.
        
        Installation
        ============
        
        ::
        
            pip install TorMySQL
        
        Used Tornado
        ============
        
        example pool
        ------------
        
        ::
        
            from tornado.ioloop import IOLoop
            from tornado import gen
            import tormysql
        
            pool = tormysql.ConnectionPool(
                max_connections = 20, #max open connections
                idle_seconds = 7200, #conntion idle timeout time, 0 is not timeout
                wait_connection_timeout = 3, #wait connection timeout
                host = "127.0.0.1",
                user = "root",
                passwd = "TEST",
                db = "test",
                charset = "utf8"
            )
        
            @gen.coroutine
            def test():
                with (yield pool.Connection()) as conn:
                    try:
                        with conn.cursor() as cursor:
                            yield cursor.execute("INSERT INTO test(id) VALUES(1)")
                    except:
                        yield conn.rollback()
                    else:
                        yield conn.commit()
        
                    with conn.cursor() as cursor:
                        yield cursor.execute("SELECT * FROM test")
                        datas = cursor.fetchall()
        
                print datas
                
                yield pool.close()
        
            ioloop = IOLoop.instance()
            ioloop.run_sync(test)
        
        example helpers
        ---------------
        
        ::
        
            from tornado.ioloop import IOLoop
            from tornado import gen
            import tormysql
        
            pool = tormysql.helpers.ConnectionPool(
                max_connections = 20, #max open connections
                idle_seconds = 7200, #conntion idle timeout time, 0 is not timeout
                wait_connection_timeout = 3, #wait connection timeout
                host = "127.0.0.1",
                user = "root",
                passwd = "TEST",
                db = "test",
                charset = "utf8"
            )
        
            @gen.coroutine
            def test():
                tx = yield pool.begin()
                try:
                    yield tx.execute("INSERT INTO test(id) VALUES(1)")
                except:
                    yield tx.rollback()
                else:
                    yield tx.commit()
        
                cursor = yield pool.execute("SELECT * FROM test")
                datas = cursor.fetchall()
        
                print datas
        
                yield pool.close()
        
            ioloop = IOLoop.instance()
            ioloop.run_sync(test)
        
        Used asyncio alone
        ==================
        
        example pool
        ------------
        
        ::
        
            from asyncio import events
            import tormysql
        
            pool = tormysql.ConnectionPool(
               max_connections = 20, #max open connections
               idle_seconds = 7200, #conntion idle timeout time, 0 is not timeout
               wait_connection_timeout = 3, #wait connection timeout
               host = "127.0.0.1",
               user = "root",
               passwd = "TEST",
               db = "test",
               charset = "utf8"
            )
        
            async def test():
               async with await pool.Connection() as conn:
                   try:
                       async with conn.cursor() as cursor:
                           await cursor.execute("INSERT INTO test(id) VALUES(1)")
                   except:
                       await conn.rollback()
                   else:
                       await conn.commit()
        
                   async with conn.cursor() as cursor:
                       await cursor.execute("SELECT * FROM test")
                       datas = cursor.fetchall()
        
               print(datas)
        
               await pool.close()
        
            ioloop = events.get_event_loop()
            ioloop.run_until_complete(test)
        
        example helpers
        ---------------
        
        ::
        
            from asyncio import events
            import tormysql
        
            pool = tormysql.helpers.ConnectionPool(
               max_connections = 20, #max open connections
               idle_seconds = 7200, #conntion idle timeout time, 0 is not timeout
               wait_connection_timeout = 3, #wait connection timeout
               host = "127.0.0.1",
               user = "root",
               passwd = "TEST",
               db = "test",
               charset = "utf8"
            )
        
            async def test():
               async with await pool.begin() as tx:
                   await tx.execute("INSERT INTO test(id) VALUES(1)")
        
               cursor = await pool.execute("SELECT * FROM test")
               datas = cursor.fetchall()
        
               print(datas)
        
               await pool.close()
        
            ioloop = events.get_event_loop()
            ioloop.run_until_complete(test)
        
        Resources
        =========
        
        You can read `PyMySQL Documentation <http://pymysql.readthedocs.io/>`__
        online for more information.
        
        License
        =======
        
        TorMySQL uses the MIT license, see LICENSE file for the details.
        
        .. |Build Status| image:: https://travis-ci.org/snower/TorMySQL.svg?branch=master
           :target: https://travis-ci.org/snower/TorMySQL
        
Keywords: tornado,mysql
Platform: UNKNOWN
Provides-Extra: tornado
