Skip to content

Commit e9d38fa

Browse files
committed
Removed super() call due to limited super() support in uPython
1 parent d743bca commit e9d38fa

File tree

1 file changed

+38
-10
lines changed

1 file changed

+38
-10
lines changed

pymysql/cursors.py

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -372,14 +372,25 @@ def __iter__(self):
372372
NotSupportedError = err.NotSupportedError
373373

374374

375-
class DictCursorMixin(object):
376-
# You can override this to use OrderedDict or other dict-like types.
375+
class DictCursor(Cursor):
376+
"""A cursor which returns results as a dictionary"""
377377
dict_type = dict
378378

379379
def _do_get_result(self):
380-
print(dir(super(DictCursorMixin, self)))
381-
#super(DictCursorMixin, self)._do_get_result()
382-
super()._do_get_result()
380+
conn = self._get_db()
381+
382+
self.rownumber = 0
383+
self._result = result = conn._result
384+
385+
self.rowcount = result.affected_rows
386+
self.description = result.description
387+
self.lastrowid = result.insert_id
388+
self._rows = result.rows
389+
self._warnings_handled = False
390+
391+
if not self._defer_warnings:
392+
self._show_warnings()
393+
383394
fields = []
384395
if self.description:
385396
for f in self._result.fields:
@@ -398,10 +409,6 @@ def _conv_row(self, row):
398409
return self.dict_type(zip(self._fields, row))
399410

400411

401-
class DictCursor(DictCursorMixin, Cursor):
402-
"""A cursor which returns results as a dictionary"""
403-
404-
405412
class SSCursor(Cursor):
406413
"""
407414
Unbuffered Cursor, mainly useful for queries that return a lot of data,
@@ -520,5 +527,26 @@ def scroll(self, value, mode='relative'):
520527
raise err.ProgrammingError("unknown scroll mode %s" % mode)
521528

522529

523-
class SSDictCursor(DictCursorMixin, SSCursor):
530+
class SSDictCursor(SSCursor):
524531
"""An unbuffered cursor, which returns results as a dictionary"""
532+
533+
dict_type = dict
534+
535+
def _do_get_result(self):
536+
fields = []
537+
if self.description:
538+
for f in self._result.fields:
539+
name = f.name
540+
if name in fields:
541+
name = f.table_name + '.' + name
542+
fields.append(name)
543+
self._fields = fields
544+
545+
if fields and self._rows:
546+
self._rows = [self._conv_row(r) for r in self._rows]
547+
548+
def _conv_row(self, row):
549+
if row is None:
550+
return None
551+
return self.dict_type(zip(self._fields, row))
552+

0 commit comments

Comments
 (0)