Greetings PyMySQL -
I'm posting from the Openstack community, to let you know that we are seriously considering moving the Openstack platform to make use of the PyMySQL driver as the default MySQL driver for Openstack. The rationale for moving to PyMySQL from MySQL-Python comes down essentially to PyMySQL's ability to be eventlet/gevent monkeypatched, its Python 3 support, its availability on Pypi, as well as its generally active community and development pace.
Within Openstack-land, nothing really happens without some level of consensus around things, so in order to make PyMySQL a known quantity I've written up a summary of the MySQL driver situation here:
https://wiki.openstack.org/wiki/PyMySQL_evaluation. This document goes over the drivers that are available and then goes into a dive of PyMySQL's source code and documentation. This is meant to be a constructive critique, so I ask that as you read it, note that virtually all of the various "issues" reported are documented in the spirit of how minor and quickly fixable they are. This document is focused around the potential for improvement of the PyMySQL driver, which has already proven itself as potentially the most promising MySQL driver for Python right now.
As the creator/maintainer of SQLAlchemy, I've already been working with PyMySQL since 2010 when I first got a patch for a SQLAlchemy support. Now that I've looked a bit at PyMySQL, I have all kinds of ideas for improving it. However, it's not my project! So one thing I ask is that when reviewing my evaluation, maybe give me a heads up on how open the PyMySQL project would be towards pull requests in the areas of tests, documentation, and performance improvements, if me or others started sending pull requests along. I'd also be curious longer term what the PyMySQL project's appetite would be for things like optional C speedups (like those that SQLAlchemy has for data processing result rows) as well as more APIs for explicit async support (it's general knowledge that I'm not particularly enthusiastic about the async case, but we do really need DBAPIs to begin taking this use case more seriously).
Thanks for the great work on PyMySQL!
- mike