11
11
12
12
from MySQLdb .compat import unicode
13
13
14
- restr = br """
14
+ restr = r """
15
15
\s
16
16
values
17
17
\s*
@@ -179,23 +179,12 @@ def execute(self, query, args=None):
179
179
db = self ._get_db ()
180
180
if PY2 and isinstance (query , unicode ):
181
181
query = query .encode (db .unicode_literal .charset )
182
- else :
183
- def decode (x ):
184
- if isinstance (x , bytes ):
185
- x = x .decode ('ascii' , 'surrogateescape' )
186
- return x
187
182
188
183
if args is not None :
189
184
if isinstance (args , dict ):
190
- if PY2 :
191
- args = dict ((key , db .literal (item )) for key , item in args .iteritems ())
192
- else :
193
- args = dict ((key , decode (db .literal (item ))) for key , item in args .items ())
185
+ args = dict ((key , db .literal (item )) for key , item in args .iteritems ())
194
186
else :
195
- if PY2 :
196
- args = tuple (map (db .literal , args ))
197
- else :
198
- args = tuple ([decode (db .literal (x )) for x in args ])
187
+ args = tuple (map (db .literal , args ))
199
188
if not PY2 and isinstance (query , bytes ):
200
189
query = query .decode (db .unicode_literal .charset )
201
190
query = query % args
@@ -246,8 +235,10 @@ def executemany(self, query, args):
246
235
del self .messages [:]
247
236
db = self ._get_db ()
248
237
if not args : return
249
- if isinstance (query , unicode ):
238
+ if PY2 and isinstance (query , unicode ):
250
239
query = query .encode (db .unicode_literal .charset )
240
+ elif not PY2 and isinstance (query , bytes ):
241
+ query = query .decode (db .unicode_literal .charset )
251
242
m = insert_values .search (query )
252
243
if not m :
253
244
r = 0
@@ -277,7 +268,10 @@ def executemany(self, query, args):
277
268
exc , value , tb = sys .exc_info ()
278
269
del tb
279
270
self .errorhandler (self , exc , value )
280
- r = self ._query ('\n ' .join ([query [:p ], ',\n ' .join (q ), query [e :]]))
271
+ qs = '\n ' .join ([query [:p ], ',\n ' .join (q ), query [e :]])
272
+ if not PY2 :
273
+ qs = qs .encode (db .unicode_literal .charset , 'surrogateescape' )
274
+ r = self ._query (qs )
281
275
if not self ._defer_warnings : self ._warning_check ()
282
276
return r
283
277
0 commit comments