GEPS 032: Python 3 support/Python 3 Deprecated
(Redirected from Python 3 Deprecated)
GEPS Closed This GEPS (Gramps Enhancement Proposal) is closed and available in the version of Gramps indicated below. |
See GEPS 031: Python 3 support
- Enhancement Request #2620: GEPS 031: Python 3 support - 3.2
Lost - 1 of 4495 issues disappeared due to a table lost during a MantisBT upgrade. Per a developer maillist posting, this Python 3.0 compatibility enhancement was completed in 2009 for the Gramps 3.2 version.
python -3 gramps.py on trunk (2009/2010-11-26/2012-11-24), see Dependency upgrades.
End 2012
Python 3
- bsddb
gramps/gui/logger/_errorreportassistant.py:41:
DeprecationWarning: in 3.x, the bsddb module has been removed; please use the pybsddb project instead import bsddb
- reload
gramps/grampsapp.py:37:
DeprecationWarning: In 3.x, reload() is renamed to imp.reload() reload(sys)
- int division
gramps/gen/db/write.py:1130:
DeprecationWarning: classic int division round(lockstats['maxnlocks']*100/lockstats['maxlocks']),
gramps/gen/db/write.py:1131:
DeprecationWarning: classic int division round(lockstats['maxnobjects']*100/lockstats['maxobjects'])))
gramps/gui/widgets/grampletpane.py:1274:
DeprecationWarning: classic int division if x < (sx/len(self.columns) * (i + 1)):
- __eq__
gramps/gen/lib/date.py:76:
DeprecationWarning: Overriding __eq__ blocks inheritance of __hash__ in 3.x class Span(object):
gramps/gen/lib/date.py:505:
DeprecationWarning: Overriding __eq__ blocks inheritance of __hash__ in 3.x class Date(object):
gramps/gen/lib/grampstype.py:87:
DeprecationWarning: Overriding __eq__ blocks inheritance of __hash__ in 3.x class GrampsType(GrampsTypeC):
gramps/gen/lib/person.py:61:
DeprecationWarning: Overriding __eq__ blocks inheritance of __hash__ in 3.x AddressBase, UrlBase, LdsOrdBase, TagBase, PrimaryObject):
gramps/gen/lib/styledtext.py:40:
DeprecationWarning: Overriding __eq__ blocks inheritance of __hash__ in 3.x class StyledText(object):
gramps/gen/recentfiles.py:55:
DeprecationWarning: Overriding __eq__ blocks inheritance of __hash__ in 3.x class RecentItem(object):
gramps/gen/display/name.py:479:
DeprecationWarning: Overriding __eq__ blocks inheritance of __hash__ in 3.x class K(object):
Archives
module | warnings (deprecation, runtime, Gtk) | . | Comments |
---|---|---|---|
AutoComp.py:161: | the cmp argument is not supported in 3.x | keys.sort(self.by_value) | ** |
BasicUtils/_NameDisplay.py:224: | the cmp argument is not supported in 3.x | keys.sort(self._sort_name_format) | * |
BasicUtils/_NameDisplay.py:348: | the cmp argument is not supported in 3.x | d_keys.sort(_make_cmp) # reverse sort by ikeyword | * |
BasicUtils/_NameDisplay.py:364: | the cmp argument is not supported in 3.x | d_keys.sort(_make_cmp) # reverse sort by keyword | * |
DateHandler/_DateParser.py:290: | the cmp argument is not supported in 3.x | keys.sort(lambda x, y: cmp(len(y), len(x))) | ** |
DisplayModels/_BaseModel.py:220: | the cmp argument is not supported in 3.x | reverse=self.reverse) | |
DisplayModels/_PeopleModel.py:96: | the cmp argument is not supported in 3.x | mylist.sort(locale.strcoll) | |
DisplayModels/_PeopleModel.py:196: | the cmp argument is not supported in 3.x | slist.sort(lambda x, y: locale.strcoll(x[0], y[0])) | |
DisplayModels/_PeopleModel.py:358: | classic int division | interval=len(handle_list)/10) | |
DisplayState.py:269: | the cmp argument is not supported in 3.x | rfiles.sort(by_time) | ** |
Editors/_EditPrimary.py:139: | comparing unequal types not supported in 3.x | self.empty_object().serialize()[1:]) == 0 | * |
FilterEditor/_EditRule.py:544: | the cmp argument is not supported in 3.x | keys.sort(by_rule_name) | |
gen/db/base.py:1405: | the cmp argument is not supported in 3.x | handle_list.sort(self.__sortbysource) | |
gen/db/base.py:1419: | the cmp argument is not supported in 3.x | handle_list.sort(self.__sortbymedia) | |
gen/db/dbdir.py:1977: | comparing unequal types not supported in 3.x | old_version = map(int, db.__version__.split(".",2)[:2]) < (4, 7) | |
gen/display/name.py:315: | the cmp argument is not supported in 3.x | keys = sorted(self.name_formats, self._sort_name_format) | ** |
gen/display/name.py:529: | the cmp argument is not supported in 3.x | d_keys.sort(_make_cmp) # reverse sort on length and by keyword | ** |
gen/display/name.py:545: | the cmp argument is not supported in 3.x | d_keys.sort(_make_cmp) # reverse sort on length and by keyword | ** |
gen/db/__init__.py:74: | the cPickle module has been removed in Python 3.0 | from cursor import * | ** |
gen/lib/calendar.py:435: | classic int division | - _GRG_SDN_OFFSET ) | ** |
gen/lib/calendar.py:442: | classic int division | century = temp / _GRG_DAYS_PER_400_YEARS | ** |
gen/lib/calendar.py:445: | classic int division | temp = ((temp % _GRG_DAYS_PER_400_YEARS) / 4) * 4 + 3 | ** |
gen/lib/calendar.py:446: | classic int division | year = (century * 100) + (temp / _GRG_DAYS_PER_4_YEARS) | ** |
gen/lib/calendar.py:447: | classic int division | day_of_year = (temp % _GRG_DAYS_PER_4_YEARS) / 4 + 1 | ** |
gen/lib/calendar.py:451: | classic int division | month = temp / _GRG_DAYS_PER_5_MONTHS | ** |
gen/lib/calendar.py:452: | classic int division | day = (temp % _GRG_DAYS_PER_5_MONTHS) / 5 + 1 | ** |
gen/lib/date.py:76: | Overriding __eq__ blocks inheritance of __hash__ in 3.x | class Span(object): | ** |
gen/lib/date.py:588: | Overriding __cmp__ blocks inheritance of __hash__ in 3.x | class GrampsType(object): | ** |
gen/lib/date.py:1248: | classic int division | dv[Date._POS_YR] -= int((-dv[Date._POS_MON]) / 12) + 1 | |
gen/lib/grampstype.py:73: | Overriding __cmp__ blocks inheritance of __hash__ in 3.x | class GrampsType(object): | ** |
gen/lib/person.py:57: | Overriding __eq__ blocks inheritance of __hash__ in 3.x | AddressBase, UrlBase, LdsOrdBase, TagBase, PrimaryObject): | ** |
gen/lib/styledtext.py:37: | Overriding __eq__ blocks inheritance of __hash__ in 3.x | class StyledText(object): | ** |
gen/plug/_gramplet.py:24: | in 3.x, bsddb has been removed, please use the pybsddb project instead | import bsddb | ** |
gen/plug/_pluginreg.py:1059: | execfile() not supported in 3.x; use exec() | {}) | ** |
gen/updatecallback.py:56: | callable() not supported in 3.x; use isinstance(x, collections.Callable) if callable(callback): # callback is really callable - execfile() not supported in 3.x; use exec() | {}) | ** |
gen/updatecallback.py:81: | classic int division | newval = int(100*count/self.total) | |
GrampsCfg.py:1076: | classic int division | color.green/256, | |
GrampsCfg.py:1077: | classic int division | color.blue/256) | |
GrampsLogger/_ErrorReportAssistant.py:5: | in 3.x, bsddb has been removed, please use the pybsddb project instead | import sys, os, bsddb | * |
gui/viewmanager.py:350: | urllib.urlopen() has been removed in Python 3.0 in favor of urllib2.urlopen() | fp = urllib.urlopen(URL) | ** |
gui/viewManager.py:1413: | the cmp argument is not supported in 3.x | lst.sort(by_menu_name) | * |
gui/viewmanager.py:1686: | the cmp argument is not supported in 3.x | pdatas.sort(by_menu_name) | ** |
gui/widgets/grampletpane.py:552: | classic int division | r += t/2 | ** |
ListModel.py:215: | comparing unequal types not supported in 3.x | if col < 0: | * |
ManagedWindow.py:428: | GtkWarning: gtk_button_box_set_child_secondary: assertion `child->parent == GTK_WIDGET (widget)' failed builder.add_from_file(glade_file) | will be fixed (libglade to gtkbuilder) ? | |
plugins/BookReport.py:707: | RuntimeWarning: missing handler 'on_booklist_ok_clicked', missing handler 'on_booklist_cancel_clicked', missing handler 'on_booklist_delete_clicked' | "destroy_passed_object" : self.close | will be fixed (libglade to gtkbuilder) ? |
plugins/Records.py:298: | the cmp argument is not supported in 3.x | lowest.sort(lambda a,b: cmp(a[0], b[0])) | |
plugins/docgen/GtkPrint.py:361: | classic int division | xtranslate += (width - paper_w) / 2 | |
plugins/drawreport/AncestorTree.py:86: | classic int division | delta = int((self.size/(2**(x)))) | |
plugins/drawreport/AncestorTree.py:87: | classic int division | new_y = int((delta/2) + (y)*delta) | |
plugins/drawreport/AncestorTree.py:98: | classic int division | delta = int(self.size/(2**x)) | |
plugins/drawreport/AncestorTree.py:99: | classic int division | y = int(delta/2 + ty*delta) | |
plugins/drawreport/DescendTree.py:205: | classic int division | if col_x/2 >= self.max_generations: | |
plugins/drawreport/StatisticsChart.py:739: | classic int division | half = (len(_Extract.extractors))/2 | |
plugins/drawreport/StatisticsChart.py:547: | the cmp argument is not supported in 3.x | index.sort(self.lookup_compare) | |
plugins/drawreport/TimeLine.py:265: | classic int division | low = int((low/10))*10 | |
plugins/drawreport/TimeLine.py:266: | classic int division | high = int(((high+9)/10))*10 | |
plugins/drawreport/TimeLine.py:135: | the cmp argument is not supported in 3.x | self.plist.sort(self.sort_func) | |
plugins/drawreport/TimeLine.py:225: | classic int division | incr = (year_high - year_low)/5 | |
plugins/gramplet/FanChartGramplet.py:301: | classic int division | self.draw_text(cr, name, radius - self.pixels_per_generation/2, | |
plugins/gramplet/FanChartGramplet.py:343: | classic int division | cr.move_to(- (width / pango.SCALE) / 2.0, - radius) | |
plugins/gramplet/FanChartGramplet.py:482: | classic int division | cx = w/2 | |
plugins/gramplet/FanChartGramplet.py:483: | classic int division | cy = h/2 | |
plugins/gramplet/GivenNameGramplet.py:86: | the cmp argument is not supported in 3.x | givensubname_sort.sort(lambda a,b: -cmp(a,b)) | |
plugins/gramplet/GivenNameGramplet.py:94: | the cmp argument is not supported in 3.x | cloud_names.sort(lambda a,b: cmp(a[1], b[1])) | |
plugins/gramplet/PluginManagerGramplet.py:59: | urllib.urlopen() has been removed in Python 3.0 in favor of urllib2.urlopen() | ||
plugins/gramplet/SurnameCloudGramplet.py:99: | the cmp argument is not supported in 3.x | surname_sort.sort(lambda a,b: -cmp(a,b)) | |
plugins/gramplet/SurnameCloudGramplet.py:107: | the cmp argument is not supported in 3.x | cloud_names.sort(lambda a,b: cmp(a[1], b[1])) | |
plugins/gramplet/TopSurnamesGramplet.py:83: | the cmp argument is not supported in 3.x | surname_sort.sort(lambda a,b: -cmp(a,b)) | |
plugins/quickview/all_events.py:54: | the cmp argument is not supported in 3.x | event_list.sort(by_date) | |
plugins/quickview/all_events.py:95: | the cmp argument is not supported in 3.x | event_list.sort(fam_sort) | |
plugins/quickview/all_events.py:96: | the cmp argument is not supported in 3.x | event_list_children.sort(fam_sort) | |
plugins/lib/libcairodoc.py:1085: | classic int division | align_x = - layout_width / 2 | |
plugins/lib/libcairodoc.py:1092: | classic int division | align_y = - layout_height / 2 | |
plugins/textreport/PlaceReport.py:82: | the cmp argument is not supported in 3.x | self.place_handles.sort(self.sort.by_place_title) | |
plugins/textreport/PlaceReport.py:142: | the cmp argument is not supported in 3.x | event_handles.sort(self.sort.by_date) | |
plugins/textreport/PlaceReport.py:205: | the cmp argument is not supported in 3.x | person_list.sort(self.sort.by_last_name) | |
plugins/tool/ChangeTypes.py:100: | the cmp argument is not supported in 3.x | event_names.sort(locale.strcoll) | |
plugins/tool/ChangeTypes.py:116: | RuntimeWarning: missing handler 'on_delete_event' | "on_apply_clicked" : self.on_apply_clicked, | will be fixed (libglade to gtkbuilder) ? |
plugins/tool/Desbrowser.py:85: | RuntimeWarning: missing handler 'on_delete_event' | "on_help_clicked" : self.on_help_clicked, | will be fixed (libglade to gtkbuilder) ? |
plugins/tool/EventCmp.py:137: | RuntimeWarning: missing handler 'on_view_delete_event' | "destroy_passed_object" : self.close | will be fixed (libglade to gtkbuilder) ? |
plugins/tool/EventCmp.py:137: | RuntimeWarning: missing handler 'on_write_table' | "destroy_passed_object" : self.close | will be fixed (libglade to gtkbuilder) ? |
plugins/tool/EventCmp.py:240: | RuntimeWarning: missing handler 'on_filters_delete_event' | "on_help_clicked" : self.on_help_clicked, | will be fixed (libglade to gtkbuilder) ? |
plugins/tool/EventCmp.py:240: | RuntimeWarning: missing handler 'on_apply_clicked' | "on_help_clicked" : self.on_help_clicked, | will be fixed (libglade to gtkbuilder) ? |
plugins/tool/EventCmp.py:240: | RuntimeWarning: missing handler 'on_editor_clicked' | "on_help_clicked" : self.on_help_clicked, | will be fixed (libglade to gtkbuilder) ? |
plugins/tool/EventCmp.py:240: | RuntimeWarning: missing handler 'on_view_delete_event' | "on_help_clicked" : self.on_help_clicked, | will be fixed (libglade to gtkbuilder) ? |
plugins/tool/EventCmp.py:250: | the cmp argument is not supported in 3.x | self.my_list.sort(self.sort.by_last_name) | |
plugins/tool/EventCmp.py:373: | the cmp argument is not supported in 3.x | unsort_list.sort(by_value) | |
plugins/tool/FindDupes.py:146: | RuntimeWarning: missing handlers 'on_delete_show_event', 'on_help_show_clicked', 'on_do_merge_clicked' | "on_delete_merge_event" : self.close, | will be fixed (libglade to gtkbuilder) ? |
plugins/tool/FindDupes.py:571: | RuntimeWarning: missing handlers 'on_delete_merge_event', 'on_help_clicked', 'on_merge_ok_clicked' | "on_delete_show_event" : self.close, | will be fixed (libglade to gtkbuilder) ? |
plugins/tool/NotRelated.py:91: | Warning: g_value_type_compatible: assertion `G_TYPE_IS_VALUE (src_type)' failed topDialog.add_from_file(glade_file) | GtkWarning: /build/buildd/gtk+2.0-2.16.1/gtk/gtkliststore.c:608: Unable to convert from (null) to gchararray topDialog.add_from_file(glade_file) | will be fixed (libglade to gtkbuilder) ? |
plugins/tool/NotRelated.py:91: | Warning: g_value_unset: assertion `G_IS_VALUE (value)' failed topDialog.add_from_file(glade_file) | will be fixed (libglade to gtkbuilder) ? | |
plugins/tool/NotRelated.py:95: | RuntimeWarning: missing handler 'on_delete_event' | "on_help_clicked" : self.on_help_clicked, | will be fixed (libglade to gtkbuilder) ? |
plugins/tool/OwnerEditor.py:121: | RuntimeWarning: missing handlers 'on_delete_event', 'on_menu_activate' | "on_eventbox_button_press_event": self.on_button_press_event, | will be fixed (libglade to gtkbuilder) ? |
plugins/tool/OwnerEditor.py:128: | RuntimeWarning: missing handlers 'on_delete_event','on_cancel_button_clicked', 'on_help_button_clicked', 'on_eventbox_button_press_event', 'on_ok_button_clicked' | popup_menu.connect_signals({"on_menu_activate": self.on_menu_activate}) | will be fixed (libglade to gtkbuilder) ? |
plugins/tool/RemoveUnused.py:221: | RuntimeWarning: missing handler 'on_result_delete_event' | "on_find_button_clicked" : self.find, | will be fixed (libglade to gtkbuilder) ? |
plugins/tool/SortEvents.py:121: | the cmp argument is not supported in 3.x | event_ref_list.sort(lambda x, y: self.sort_func(x.ref, y.ref)) | |
plugins/tool/SortEvents.py:142: | the cmp argument is not supported in 3.x | event_ref_list.sort(lambda x, y: self.sort_func(x.ref, y.ref)) | |
plugins/tool/SoundGen.py:84: | RuntimeWarning: missing handler 'on_delete_event' | "on_help_clicked" : self.on_help_clicked, | will be fixed (libglade to gtkbuilder) ? |
plugins/tool/Verify.py:427: | RuntimeWarning: missing handlers 'on_verify_ok_clicked', 'on_help_clicked' | "destroy_passed_object" : self.close, | will be fixed (libglade to gtkbuilder) ? |
plugins/tool/Verify.py:908: | classic int division | return (age_at_death/365 > self.old_age) | |
plugins/tool/Verify.py:965: | classic int division | return (age_at_death/365>self.old_unm and n_spouses==0) | |
plugins/tool/Verify.py:1078: | classic int division | abs(father_birth_date-mother_birth_date)/365 > self.hw_diff | |
plugins/tool/Verify.py:1170: | classic int division | ((marr_date - father_birth_date)/365 < self.yng_mar)) | |
plugins/tool/Verify.py:1203: | classic int division | ((marr_date - father_birth_date)/365 > self.old_mar)) | |
plugins/tool/Verify.py:1258: | classic int division | ((child_birth_date - father_birth_date)/365 > self.old_dad)) | |
plugins/tool/Verify.py:1303: | classic int division | ((child_birth_date - father_birth_date)/365 < self.yng_dad)) | |
plugins/tool/Verify.py:1427: | classic int division | child_birh_dates[0])/365 | |
plugins/tool/Verify.py:1173: | classic int division | ((marr_date - mother_birth_date)/365 < self.yng_mar)) | |
plugins/tool/Verify.py:1205: | classic int division | ((marr_date - mother_birth_date)/365 > self.old_mar)) | |
plugins/tool/Verify.py:1450: | classic int division | max(child_birh_dates_diff)/365 > self.c_space) | |
plugins/tool/Verify.py:1264: | classic int division | ((child_birth_date - mother_birth_date)/365 > self.old_mom)) | |
plugins/tool/Verify.py:1309: | classic int division | ((child_birth_date - mother_birth_date)/365 < self.yng_mom)) | |
plugins/view/GrampletView.py:1184: | the cmp argument is not supported in 3.x | gramplets.sort(lambda a, b: cmp(a.row, b.row)) | |
plugins/view/GrampletView.py:1330: | classic int division | if x < (sx/len(self.columns) * (i + 1)): | |
plugins/view/pedigreeview.py:1053: | classic int division | _delta = (2**size) / (2**level) | ** |
plugins/view/pedigreeview.py:1058: | classic int division | y_pos = _delta / 2 + offset * _delta - 1 | ** |
plugins/view/pedigreeview.py:1076: | classic int division | lst[((i+1)/2)-1]) or self.tree_style == 1): | ** |
plugins/view/pedigreeview.py:1087: | classic int division | if i > 0 and lst[((i+1)/2)-1]: | ** |
plugins/view/pedigreeview.py:1089: | classic int division | fam = lst[((i+1)/2)-1][2] | ** |
plugins/view/pedigreeview.py:1095: | classic int division | lst[((i+1)/2)-1][0].get_handle(), fam_h) | ** |
plugins/view/pedigreeview.py:1104: | classic int division | (i < ((2**size-1)/2) or self.tree_style == 2): | ** |
plugins/view/pedigreeview.py:1173: | classic int division | elif self.tree_style in [0, 2] and lst[((i+1)/2)-1]: | ** |
plugins/view/pedigreeview.py:1176: | classic int division | y_pos = offset * _delta - (_delta / 2) - 1 | ** |
plugins/view/pedigreeview.py:1191: | classic int division | line = LineWidget(lst[((i+1)/2)-1][4], | ** |
plugins/view/pedigreeview.py:1230: | classic int division | y_pos = _delta / 2 + offset * _delta -1 + _height / 2 | ** |
plugins/view/pedigreeview.py:1272: | classic int division | ymid = int(math.floor(ymax/2)) | ** |
plugins/view/pedigreeview.py:1285: | classic int division | ymid = int(math.floor(ymax/4)) | ** |
plugins/view/pedigreeview.py:1298: | classic int division | ymid = int(math.floor(ymax/4*3)) | ** |
plugins/webreport/NarrativeWeb.py:318: | the cmp argument is not supported in 3.x | sorted_first_letter.sort(locale.strcoll) | |
plugins/webreport/NarrativeWeb.py:341: | classic int division | nrows = (num_ltrs / 26) + 1 | |
plugins/webreport/NarrativeWeb.py:3630: | the cmp argument is not supported in 3.x | temp_list.sort(locale.strcoll) | |
plugins/webreport/NarrativeWeb.py:3633: | the cmp argument is not supported in 3.x | slist.sort(lambda x, y: locale.strcoll(x[0], y[0])) | |
plugins/webreport/NarrativeWeb.py:2053: | classic int division | center = int(max_size/2) | |
plugins/webreport/NarrativeWeb.py:2068: | classic int division | gen_offset = int(max_size / pow(2, gen_nr+1)) | |
plugins/webreport/NarrativeWeb.py:1981: | classic int division | top = center - _HEIGHT/2 | |
plugins/webreport/NarrativeWeb.py:2017: | classic int division | (y0, x0, _HGAP/2)) | |
plugins/webreport/NarrativeWeb.py:2019: | classic int division | (y0+_SHADOW, x0, _HGAP/2+_SHADOW)) | |
plugins/webreport/NarrativeWeb.py:2027: | classic int division | x0 = _XOFFSET + col * _WIDTH + (col-1)*_HGAP + _HGAP/2 | |
plugins/webreport/NarrativeWeb.py:2029: | classic int division | (y1, x0, _HGAP/2)) | |
plugins/webreport/NarrativeWeb.py:2031: | classic int division | (y1+_SHADOW, x0+_SHADOW, _HGAP/2+_SHADOW)) | |
plugins/webreport/NarrativeWeb.py:1574: | the cmp argument is not supported in 3.x | temp_keys.sort(locale.strcoll) | |
plugins/webreport/NarrativeWeb.py:1127: | the cmp argument is not supported in 3.x | handle_list.sort(sort.by_place_title) | |
plugins/webreport/NarrativeWeb.py:738: | the cmp argument is not supported in 3.x | cmp = locale.strcoll) | |
plugins/webreport/NarrativeWeb.py:1699: | the cmp argument is not supported in 3.x | keys.sort(locale.strcoll) | |
plugins/webreport/NarrativeWeb.py:1809: | the cmp argument is not supported in 3.x | mlist.sort(sort.by_media_title) | |
plugins/webreport/NarrativeWeb.py:3142: | the cmp argument is not supported in 3.x | photo_keys.sort(sort.by_media_title) | |
plugins/webreport/WebCal.py:1846: | comparing unequal types not supported in 3.x | day_list.sort() | |
QuickReports.py:94: | the cmp argument is not supported in 3.x | showlst.sort(by_menu_name) | |
RecentFiles.py:55: | Overriding __cmp__ blocks inheritance of __hash__ in 3.x | class RecentItem(object): | ** |
ReportBase/_ReportUtils.py:1820: | classic int division | amount = int(num / vals[i]) | |
ScratchPad.py:1232: | RuntimeWarning: missing handler 'on_scratch_pad_delete_event' | "on_help_clicked": self.on_help_clicked, | * |
ScratchPad.py:1232: | RuntimeWarning: missing handler 'on_clear_all_clicked' | "on_help_clicked": self.on_help_clicked, | * |
Utils.py:1198: | the cmp argument is not supported in 3.x | keys.sort(lambda a,b: -cmp(len(a), len(b))) | |
widgets/monitoredwidgets.py:534: | the cmp argument is not supported in 3.x | keys.sort(self.__by_value) | * |
_*2009-07-01
_**2010-11-26