Hello community,

here is the log from the commit of package python-mysqlclient for 
openSUSE:Factory checked in at 2019-01-03 18:06:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-mysqlclient (Old)
 and      /work/SRC/openSUSE:Factory/.python-mysqlclient.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-mysqlclient"

Thu Jan  3 18:06:11 2019 rev:2 rq:656808 version:1.3.14

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-mysqlclient/python-mysqlclient.changes    
2018-07-10 16:14:33.189618079 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-mysqlclient.new.28833/python-mysqlclient.changes
 2019-01-03 18:06:12.604162649 +0100
@@ -1,0 +2,13 @@
+Mon Dec 10 11:39:10 UTC 2018 - Alexei Podvalsky <[email protected]>
+
+- Update to 1.3.14:
+  * Support static linking of MariaDB Connector/C (#265)
+  * Better converter for Decimal and Float (#267, #268, #273, #286)
+  * Add Connection._get_native_connection for XTA project (#269)
+  * Fix SEGV on MariaDB Connector/C when Connection.close() is called 
+    for closed connection. (#270, #272, #276)
+  * Fix Connection.client_flag (#266)
+  * Fix SSCursor may raise same exception twice (#282)
+  * Fixed SSL support is not detected when built with MySQL < 5.1 (#291)
+
+-------------------------------------------------------------------

Old:
----
  mysqlclient-1.3.13.tar.gz

New:
----
  mysqlclient-1.3.14.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-mysqlclient.spec ++++++
--- /var/tmp/diff_new_pack.XnoY2y/_old  2019-01-03 18:06:13.044162258 +0100
+++ /var/tmp/diff_new_pack.XnoY2y/_new  2019-01-03 18:06:13.048162254 +0100
@@ -19,7 +19,7 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define oldpython python
 Name:           python-mysqlclient
-Version:        1.3.13
+Version:        1.3.14
 Release:        0
 Summary:        Python interface to MySQL
 License:        GPL-2.0-or-later

++++++ mysqlclient-1.3.13.tar.gz -> mysqlclient-1.3.14.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysqlclient-1.3.13/HISTORY.rst 
new/mysqlclient-1.3.14/HISTORY.rst
--- old/mysqlclient-1.3.13/HISTORY.rst  2018-06-27 13:27:48.000000000 +0200
+++ new/mysqlclient-1.3.14/HISTORY.rst  2018-12-04 10:58:37.000000000 +0100
@@ -1,4 +1,28 @@
 ======================
+ What's new in 1.3.14
+======================
+
+Release: 2018-12-04
+
+* Support static linking of MariaDB Connector/C (#265)
+
+* Better converter for Decimal and Float (#267, #268, #273, #286)
+
+* Add ``Connection._get_native_connection`` for XTA project (#269)
+
+* Fix SEGV on MariaDB Connector/C when ``Connection.close()`` is called
+  for closed connection. (#270, #272, #276)
+
+* Fix ``Connection.client_flag`` (#266)
+
+* Fix SSCursor may raise same exception twice (#282)
+
+* ``waiter`` option is now deprecated. (#285)
+
+* Fixed SSL support is not detected when built with MySQL < 5.1 (#291)
+
+
+======================
  What's new in 1.3.13
 ======================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysqlclient-1.3.13/INSTALL.rst 
new/mysqlclient-1.3.14/INSTALL.rst
--- old/mysqlclient-1.3.13/INSTALL.rst  2016-07-26 10:12:24.000000000 +0200
+++ new/mysqlclient-1.3.14/INSTALL.rst  2018-12-04 09:41:39.000000000 +0100
@@ -8,40 +8,17 @@
 Prerequisites
 -------------
 
-+ Python 2.6, 2.7, 3.3 or higher
-
-  * http://www.python.org/
++ Python 2.7, 3.4 or higher
 
 + setuptools
 
   * http://pypi.python.org/pypi/setuptools
 
-+ MySQL 5.0 or higher
++ MySQL 5.5 or higher
 
   * http://www.mysql.com/downloads/
 
-  * MySQL-4.0 and MySQL-4.1 may work, but not supported.
-
-  * MySQL-5.0 is supported and tested, including stored procedures.
-
-  * MySQL-5.1 is supported (currently a release candidate) but untested.
-    It should work.
-
-  * Red Hat Linux packages:
-
-    - mysql-devel to compile
-
-    - mysql and/or mysql-devel to run
-
-  * MySQL.com RPM packages:
-
-    - MySQL-devel to compile
-
-    - MySQL-shared if you want to use their shared
-      library. Otherwise you'll get a statically-linked module,
-      which may or may not be what you want.
-
-    - MySQL-shared to run if you compiled with MySQL-shared installed
+  * MySQL-5.0 may work, but not supported.
 
 + C compiler
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysqlclient-1.3.13/MySQLdb/connections.py 
new/mysqlclient-1.3.14/MySQLdb/connections.py
--- old/mysqlclient-1.3.13/MySQLdb/connections.py       2018-06-27 
13:17:09.000000000 +0200
+++ new/mysqlclient-1.3.14/MySQLdb/connections.py       2018-12-04 
09:41:58.000000000 +0100
@@ -200,6 +200,10 @@
         # PEP-249 requires autocommit to be initially off
         autocommit = kwargs2.pop('autocommit', False)
         self.waiter = kwargs2.pop('waiter', None)
+        if self.waiter:
+            from warnings import warn
+            warn("waiter is deprecated and will be removed in 1.4.",
+                 DeprecationWarning, 2)
 
         super(Connection, self).__init__(*args, **kwargs2)
         self.cursorclass = cursorclass
@@ -325,12 +329,10 @@
         return s
 
     def begin(self):
-        """Explicitly begin a connection. Non-standard.
-        DEPRECATED: Will be removed in 1.3.
-        Use an SQL BEGIN statement instead."""
-        from warnings import warn
-        warn("begin() is non-standard and will be removed in 1.4",
-             DeprecationWarning, 2)
+        """Explicitly begin a connection.
+
+        This method is not used when autocommit=False (default).
+        """
         self.query("BEGIN")
 
     if not hasattr(_mysql.connection, 'warning_count'):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysqlclient-1.3.13/MySQLdb/converters.py 
new/mysqlclient-1.3.14/MySQLdb/converters.py
--- old/mysqlclient-1.3.13/MySQLdb/converters.py        2017-08-30 
11:49:19.000000000 +0200
+++ new/mysqlclient-1.3.14/MySQLdb/converters.py        2018-12-04 
09:41:58.000000000 +0100
@@ -66,7 +66,10 @@
     return s.encode()
 
 def Float2Str(o, d):
-    return '%.15g' % o
+    s = repr(o)
+    if 'e' not in s:
+        s += 'e0'
+    return s
 
 def None2NULL(o, d):
     """Convert None to NULL."""
@@ -79,6 +82,8 @@
     that method when the connection is created."""
     return string_literal(o, d)
 
+def Decimal2Literal(o, d):
+    return format(o, 'f')
 
 def char_array(s):
     return array.array('c', s)
@@ -139,5 +144,6 @@
     from decimal import Decimal
     conversions[FIELD_TYPE.DECIMAL] = Decimal
     conversions[FIELD_TYPE.NEWDECIMAL] = Decimal
+    conversions[Decimal] = Decimal2Literal
 except ImportError:
     pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysqlclient-1.3.13/MySQLdb/cursors.py 
new/mysqlclient-1.3.14/MySQLdb/cursors.py
--- old/mysqlclient-1.3.13/MySQLdb/cursors.py   2018-04-20 09:39:06.000000000 
+0200
+++ new/mysqlclient-1.3.14/MySQLdb/cursors.py   2018-11-05 13:06:10.000000000 
+0100
@@ -75,6 +75,7 @@
         self._result = None
         self._warnings = None
         self.rownumber = None
+        self._rows = None
 
     def close(self):
         """Close the cursor. No further queries will be possible."""
@@ -172,23 +173,27 @@
         nr = db.next_result()
         if nr == -1:
             return None
-        self._do_get_result()
+        self._do_get_result(db)
         self._post_get_result()
         self._warning_check()
         return 1
 
-    def _post_get_result(self): pass
+    def _do_get_result(self, db):
+        self._result = result = self._get_result()
+        if result is None:
+            self.description = self.description_flags = None
+        else:
+            self.description = result.describe()
+            self.description_flags = result.field_flags()
 
-    def _do_get_result(self):
-        db = self._get_db()
-        self._result = self._get_result()
         self.rowcount = db.affected_rows()
         self.rownumber = 0
-        self.description = self._result and self._result.describe() or None
-        self.description_flags = self._result and self._result.field_flags() 
or None
         self.lastrowid = db.insert_id()
         self._warnings = None
 
+    def _post_get_result(self):
+        pass
+
     def setinputsizes(self, *args):
         """Does nothing, required by DB API."""
 
@@ -248,7 +253,6 @@
         except Exception:
             exc, value = sys.exc_info()[:2]
             self.errorhandler(self, exc, value)
-        self._executed = query
         if not self._defer_warnings:
             self._warning_check()
         return res
@@ -364,21 +368,19 @@
         if isinstance(q, unicode):
             q = q.encode(db.encoding, 'surrogateescape')
         self._query(q)
-        self._executed = q
         if not self._defer_warnings:
             self._warning_check()
         return args
 
-    def _do_query(self, q):
+    def _query(self, q):
         db = self._get_db()
-        self._last_executed = q
+        self._result = None
         db.query(q)
-        self._do_get_result()
+        self._do_get_result(db)
+        self._post_get_result()
+        self._executed = q
         return self.rowcount
 
-    def _query(self, q):
-        return self._do_query(q)
-
     def _fetch_row(self, size=1):
         if not self._result:
             return ()
@@ -408,11 +410,6 @@
     def _get_result(self):
         return self._get_db().store_result()
 
-    def _query(self, q):
-        rowcount = self._do_query(q)
-        self._post_get_result()
-        return rowcount
-
     def _post_get_result(self):
         self._rows = self._fetch_row(0)
         self._result = None
@@ -481,7 +478,8 @@
 
     _defer_warnings = True
 
-    def _get_result(self): return self._get_db().use_result()
+    def _get_result(self):
+        return self._get_db().use_result()
 
     def fetchone(self):
         """Fetches a single row from the cursor."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysqlclient-1.3.13/MySQLdb/release.py 
new/mysqlclient-1.3.14/MySQLdb/release.py
--- old/mysqlclient-1.3.13/MySQLdb/release.py   2018-06-27 13:28:40.000000000 
+0200
+++ new/mysqlclient-1.3.14/MySQLdb/release.py   2018-12-04 11:06:11.000000000 
+0100
@@ -1,4 +1,4 @@
 
 __author__ = "Andy Dustman <[email protected]>"
-version_info = (1,3,13,'final',0)
-__version__ = "1.3.13"
+version_info = (1,3,14,'final',0)
+__version__ = "1.3.14"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysqlclient-1.3.13/PKG-INFO 
new/mysqlclient-1.3.14/PKG-INFO
--- old/mysqlclient-1.3.13/PKG-INFO     2018-06-27 13:28:40.000000000 +0200
+++ new/mysqlclient-1.3.14/PKG-INFO     2018-12-04 11:06:12.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: mysqlclient
-Version: 1.3.13
+Version: 1.3.14
 Summary: Python interface to MySQL
 Home-page: https://github.com/PyMySQL/mysqlclient-python
 Author: Andy Dustman
@@ -99,6 +99,7 @@
 Classifier: Programming Language :: Python :: 3.4
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
 Classifier: Topic :: Database
 Classifier: Topic :: Database :: Database Engines/Servers
 Description-Content-Type: text/markdown
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysqlclient-1.3.13/_mysql.c 
new/mysqlclient-1.3.14/_mysql.c
--- old/mysqlclient-1.3.13/_mysql.c     2017-12-21 12:09:51.000000000 +0100
+++ new/mysqlclient-1.3.14/_mysql.c     2018-12-04 10:40:05.000000000 +0100
@@ -69,7 +69,11 @@
        PyObject *converter;
 } _mysql_ConnectionObject;
 
-#define check_connection(c) if (!(c->open)) return _mysql_Exception(c)
+#define check_connection(c) \
+    if (!(c->open)) { \
+               return _mysql_Exception(c); \
+    };
+
 #define result_connection(r) ((_mysql_ConnectionObject *)r->conn)
 #define check_result_connection(r) check_connection(result_connection(r))
 
@@ -90,12 +94,8 @@
 static int _mysql_server_init_done = 0;
 #define check_server_init(x) if (!_mysql_server_init_done) { if 
(mysql_server_init(0, NULL, NULL)) { _mysql_Exception(NULL); return x; } else { 
_mysql_server_init_done = 1;} }
 
-#if MYSQL_VERSION_ID >= 50500
-#define HAVE_OPENSSL 1
-#endif
-
 /* According to https://dev.mysql.com/doc/refman/5.1/en/mysql-options.html
-   The MYSQL_OPT_READ_TIMEOUT apear in the version 5.1.12 */
+   The MYSQL_OPT_READ_TIMEOUT appear in the version 5.1.12 */
 #if MYSQL_VERSION_ID > 50112
 #define HAVE_MYSQL_OPT_TIMEOUTS 1
 #endif
@@ -115,7 +115,15 @@
                Py_DECREF(t);
                return NULL;
        }
-       merr = mysql_errno(&(c->connection));
+       if (!(c->open)) {
+               /* GH-270: When connection is closed, accessing the 
c->connection
+                * object may cause SEGV.
+                */
+               merr = CR_SERVER_GONE_ERROR;
+       }
+       else {
+               merr = mysql_errno(&(c->connection));
+       }
        switch (merr) {
        case 0:
                e = _mysql_InterfaceError;
@@ -490,12 +498,10 @@
        MYSQL *conn = NULL;
        PyObject *conv = NULL;
        PyObject *ssl = NULL;
-#if HAVE_OPENSSL
        char *key = NULL, *cert = NULL, *ca = NULL,
                 *capath = NULL, *cipher = NULL;
        PyObject *ssl_keepref[5] = {NULL};
        int n_ssl_keepref = 0;
-#endif
        char *host = NULL, *user = NULL, *passwd = NULL,
                 *db = NULL, *unix_socket = NULL;
        unsigned int port = 0;
@@ -559,18 +565,12 @@
 #endif
 
        if (ssl) {
-#if HAVE_OPENSSL
                PyObject *value = NULL;
                _stringsuck(ca, value, ssl);
                _stringsuck(capath, value, ssl);
                _stringsuck(cert, value, ssl);
                _stringsuck(key, value, ssl);
                _stringsuck(cipher, value, ssl);
-#else
-               PyErr_SetString(_mysql_NotSupportedError,
-                               "client library does not have SSL support");
-               return -1;
-#endif
        }
 
        Py_BEGIN_ALLOW_THREADS ;
@@ -608,18 +608,15 @@
        if (local_infile != -1)
                mysql_options(&(self->connection), MYSQL_OPT_LOCAL_INFILE, 
(char *) &local_infile);
 
-#if HAVE_OPENSSL
        if (ssl) {
                mysql_ssl_set(&(self->connection), key, cert, ca, capath, 
cipher);
        }
-#endif
 
        conn = mysql_real_connect(&(self->connection), host, user, passwd, db,
                                  port, unix_socket, client_flag);
 
        Py_END_ALLOW_THREADS ;
 
-#if HAVE_OPENSSL
        if (ssl) {
                int i;
                for (i=0; i<n_ssl_keepref; i++) {
@@ -627,7 +624,6 @@
                        ssl_keepref[i] = NULL;
                }
        }
-#endif
 
        if (!conn) {
                _mysql_Exception(self);
@@ -744,12 +740,13 @@
 }
 
 static char _mysql_ConnectionObject_fileno__doc__[] =
-"Return underlaying fd for connection";
+"Return underlaying fd for connection (deprecated)";
 
 static PyObject *
 _mysql_ConnectionObject_fileno(
        _mysql_ConnectionObject *self)
 {
+    check_connection(self);
        return PyInt_FromLong(self->connection.net.fd);
 }
 
@@ -761,16 +758,11 @@
        _mysql_ConnectionObject *self,
        PyObject *noargs)
 {
-       if (self->open) {
-               Py_BEGIN_ALLOW_THREADS
-               mysql_close(&(self->connection));
-               Py_END_ALLOW_THREADS
-               self->open = 0;
-       } else {
-               PyErr_SetString(_mysql_ProgrammingError,
-                               "closing a closed connection");
-               return NULL;
-       }
+    check_connection(self);
+    Py_BEGIN_ALLOW_THREADS
+    mysql_close(&(self->connection));
+    Py_END_ALLOW_THREADS
+    self->open = 0;
        _mysql_ConnectionObject_clear(self);
        Py_RETURN_NONE;
 }
@@ -842,6 +834,7 @@
 {
        int flag, err;
        if (!PyArg_ParseTuple(args, "i", &flag)) return NULL;
+       check_connection(self);
        Py_BEGIN_ALLOW_THREADS
        err = mysql_autocommit(&(self->connection), flag);
        Py_END_ALLOW_THREADS
@@ -858,6 +851,7 @@
        _mysql_ConnectionObject *self,
        PyObject *args)
 {
+       check_connection(self);
        if (self->connection.server_status & SERVER_STATUS_AUTOCOMMIT) {
                Py_RETURN_TRUE;
        }
@@ -873,6 +867,7 @@
        PyObject *noargs)
 {
        int err;
+       check_connection(self);
        Py_BEGIN_ALLOW_THREADS
        err = mysql_commit(&(self->connection));
        Py_END_ALLOW_THREADS
@@ -890,13 +885,13 @@
        PyObject *noargs)
 {
        int err;
+       check_connection(self);
        Py_BEGIN_ALLOW_THREADS
        err = mysql_rollback(&(self->connection));
        Py_END_ALLOW_THREADS
        if (err) return _mysql_Exception(self);
-       Py_INCREF(Py_None);
-       return Py_None;
-}              
+    Py_RETURN_NONE;
+}
 
 static char _mysql_ConnectionObject_next_result__doc__[] =
 "If more query results exist, next_result() reads the next query\n\
@@ -917,6 +912,7 @@
        PyObject *noargs)
 {
        int err;
+       check_connection(self);
        Py_BEGIN_ALLOW_THREADS
        err = mysql_next_result(&(self->connection));
        Py_END_ALLOW_THREADS
@@ -939,6 +935,7 @@
        int err, flags=0;
        if (!PyArg_ParseTuple(args, "i", &flags))
                return NULL;
+       check_connection(self);
        Py_BEGIN_ALLOW_THREADS
        err = mysql_set_server_option(&(self->connection), flags);
        Py_END_ALLOW_THREADS
@@ -963,6 +960,7 @@
        _mysql_ConnectionObject *self,
        PyObject *noargs)
 {
+       check_connection(self);
        return PyString_FromString(mysql_sqlstate(&(self->connection)));
 }
 
@@ -977,6 +975,7 @@
        _mysql_ConnectionObject *self,
        PyObject *noargs)
 {
+       check_connection(self);
        return PyInt_FromLong(mysql_warning_count(&(self->connection)));
 }              
 
@@ -1686,6 +1685,28 @@
 }
 #endif
 
+static char _mysql_ConnectionObject_get_native_connection__doc__[] =
+"Return the internal MYSQL* wrapped in a PyCapsule object.\n\
+NOTE: this is a private API introduced ONLY for XTA integration,\n\
+      don't use it for different use cases.\n\
+      This method is supported only for XTA integration and support must\n\
+      be asked to LIXA project: http://www.tiian.org/lixa/\n\
+      Please DO NOT ask support to PyMySQL/mysqlclient-python project.\n\
+";
+
+static PyObject *
+_mysql_ConnectionObject_get_native_connection(
+       _mysql_ConnectionObject *self,
+       PyObject *noargs)
+{
+       PyObject *result;
+       check_connection(self);
+       result = PyCapsule_New(&(self->connection), 
+               "_mysql.connection.native_connection", NULL);
+       return result;
+}
+
+
 static char _mysql_get_client_info__doc__[] =
 "get_client_info() -- Returns a string that represents\n\
 the client library version.";
@@ -2272,6 +2293,12 @@
        },
 #endif
        {
+               "_get_native_connection",
+               (PyCFunction)_mysql_ConnectionObject_get_native_connection,
+               METH_NOARGS,
+               _mysql_ConnectionObject_get_native_connection__doc__
+       },
+       {
                "close",
                (PyCFunction)_mysql_ConnectionObject_close,
                METH_NOARGS,
@@ -2455,8 +2482,8 @@
        {
                "client_flag",
                T_UINT,
-               READONLY,
                offsetof(_mysql_ConnectionObject,connection.client_flag),
+               READONLY,
                "Client flags; refer to MySQLdb.constants.CLIENT"
        },
        {NULL} /* Sentinel */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysqlclient-1.3.13/doc/user_guide.rst 
new/mysqlclient-1.3.14/doc/user_guide.rst
--- old/mysqlclient-1.3.13/doc/user_guide.rst   2018-06-27 13:17:09.000000000 
+0200
+++ new/mysqlclient-1.3.14/doc/user_guide.rst   2018-12-04 09:41:39.000000000 
+0100
@@ -434,7 +434,7 @@
       can be either:
 
       * a callable object which takes a string argument (the MySQL
-        value),' returning a Python value
+        value), returning a Python value
 
       * a sequence of 2-tuples, where the first value is a combination
        of flags from ``MySQLdb.constants.FLAG``, and the second value
@@ -653,7 +653,6 @@
     Causes the cursor to return rows as a tuple of the column values.
 
 CursorDictRowsMixIn
-
     Causes the cursor to return rows as a dictionary, where the keys
     are column names and the values are column values. Note that if
     the column names are not unique, i.e., you are selecting from two
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysqlclient-1.3.13/metadata.cfg 
new/mysqlclient-1.3.14/metadata.cfg
--- old/mysqlclient-1.3.13/metadata.cfg 2018-06-27 13:21:29.000000000 +0200
+++ new/mysqlclient-1.3.14/metadata.cfg 2018-12-04 11:00:25.000000000 +0100
@@ -1,6 +1,6 @@
 [metadata]
-version: 1.3.13
-version_info: (1,3,13,'final',0)
+version: 1.3.14
+version_info: (1,3,14,'final',0)
 description: Python interface to MySQL
 author: Andy Dustman
 author_email: [email protected]
@@ -27,6 +27,7 @@
         Programming Language :: Python :: 3.4
         Programming Language :: Python :: 3.5
         Programming Language :: Python :: 3.6
+        Programming Language :: Python :: 3.7
         Topic :: Database
         Topic :: Database :: Database Engines/Servers
 py_modules:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysqlclient-1.3.13/mysqlclient.egg-info/PKG-INFO 
new/mysqlclient-1.3.14/mysqlclient.egg-info/PKG-INFO
--- old/mysqlclient-1.3.13/mysqlclient.egg-info/PKG-INFO        2018-06-27 
13:28:40.000000000 +0200
+++ new/mysqlclient-1.3.14/mysqlclient.egg-info/PKG-INFO        2018-12-04 
11:06:11.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: mysqlclient
-Version: 1.3.13
+Version: 1.3.14
 Summary: Python interface to MySQL
 Home-page: https://github.com/PyMySQL/mysqlclient-python
 Author: Andy Dustman
@@ -99,6 +99,7 @@
 Classifier: Programming Language :: Python :: 3.4
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
 Classifier: Topic :: Database
 Classifier: Topic :: Database :: Database Engines/Servers
 Description-Content-Type: text/markdown
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysqlclient-1.3.13/setup.py 
new/mysqlclient-1.3.14/setup.py
--- old/mysqlclient-1.3.13/setup.py     2018-06-27 13:22:42.000000000 +0200
+++ new/mysqlclient-1.3.14/setup.py     2018-12-04 10:59:41.000000000 +0100
@@ -2,9 +2,7 @@
 
 import os
 import io
-import sys
 
-import distutils.errors
 import setuptools
 
 if os.name == "posix":
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysqlclient-1.3.13/setup_posix.py 
new/mysqlclient-1.3.14/setup_posix.py
--- old/mysqlclient-1.3.13/setup_posix.py       2018-06-27 13:17:09.000000000 
+0200
+++ new/mysqlclient-1.3.14/setup_posix.py       2018-12-04 09:41:39.000000000 
+0100
@@ -72,17 +72,21 @@
     include_dirs = [dequote(i[2:])
                     for i in mysql_config('include') if i.startswith('-I')]
 
+    if static:
+        # properly handle mysql client libraries that are not called 
libmysqlclient
+        client = None
+        CLIENT_LIST = ['mysqlclient', 'mysqlclient_r', 'mysqld', 'mariadb',
+                       'perconaserverclient', 'perconaserverclient_r']
+        for c in CLIENT_LIST:
+            if c in libraries:
+                client = c
+                break
 
-    # properly handle mysql client libraries that are not called libmysqlclient
-    client = None
-    CLIENT_LIST = ['mysqlclient', 'mysqlclient_r', 'mysqld',
-                   'perconaserverclient', 'perconaserverclient_r']
-    for c in CLIENT_LIST:
-        if c in libraries:
-            client = c
-            break
+        if client == 'mariadb':
+            client = 'mariadbclient'
+        if client is None:
+            raise ValueError("Couldn't identify mysql client library")
 
-    if static:
         extra_objects.append(os.path.join(library_dirs[0], 'lib%s.a' % client))
         if client in libraries:
             libraries.remove(client)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysqlclient-1.3.13/tests/capabilities.py 
new/mysqlclient-1.3.14/tests/capabilities.py
--- old/mysqlclient-1.3.13/tests/capabilities.py        2016-07-26 
10:12:24.000000000 +0200
+++ new/mysqlclient-1.3.14/tests/capabilities.py        2018-12-04 
09:41:58.000000000 +0100
@@ -195,13 +195,24 @@
 
     def test_DECIMAL(self):
         # DECIMAL
+        from decimal import Decimal
         def generator(row,col):
-            from decimal import Decimal
             return Decimal("%d.%02d" % (row, col))
         self.check_data_integrity(
             ('col1 DECIMAL(5,2)',),
             generator)
 
+        val = Decimal('1.11111111111111119E-7')
+        self.cursor.execute('SELECT %s', (val,))
+        result = self.cursor.fetchone()[0]
+        self.assertEqual(result, val)
+        self.assertIsInstance(result, Decimal)
+
+        self.cursor.execute('SELECT %s + %s', (Decimal('0.1'), Decimal('0.2')))
+        result = self.cursor.fetchone()[0]
+        self.assertEqual(result, Decimal('0.3'))
+        self.assertIsInstance(result, Decimal)
+
     def test_DATE(self):
         ticks = time()
         def generator(row,col):
@@ -279,3 +290,9 @@
                  ('col1 INT','col2 BLOB'),
                  generator)
 
+    def test_DOUBLE(self):
+        for val in (18014398509481982.0, 0.1):
+            self.cursor.execute('SELECT %s', (val,));
+            result = self.cursor.fetchone()[0]
+            self.assertEqual(result, val)
+            self.assertIsInstance(result, float)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysqlclient-1.3.13/tests/test_MySQLdb_nonstandard.py 
new/mysqlclient-1.3.14/tests/test_MySQLdb_nonstandard.py
--- old/mysqlclient-1.3.13/tests/test_MySQLdb_nonstandard.py    2016-07-26 
10:12:24.000000000 +0200
+++ new/mysqlclient-1.3.14/tests/test_MySQLdb_nonstandard.py    2018-11-02 
11:05:48.000000000 +0100
@@ -92,3 +92,14 @@
         self.assertTrue(isinstance(self.conn.get_server_info(), str),
                         "Should return an str.")
 
+    def test_client_flag(self):
+        conn = connection_factory(
+            use_unicode=True,
+            client_flag=MySQLdb.constants.CLIENT.FOUND_ROWS)
+
+        self.assertIsInstance(conn.client_flag, (int, MySQLdb.compat.long))
+        self.assertTrue(conn.client_flag & MySQLdb.constants.CLIENT.FOUND_ROWS)
+        with self.assertRaises(TypeError if MySQLdb.compat.PY2 else 
AttributeError):
+            conn.client_flag = 0
+
+        conn.close()


Reply via email to