general: fixes and improvements for several personalization features

2: I102 copyright year is outdated, expected 2014 but got 2013
40:6: E126 continuation line over-indented for hanging indent
43:31: E126 continuation line over-indented for hanging indent
47:38: E126 continuation line over-indented for hanging indent
53:6: E126 continuation line over-indented for hanging indent
77:1: E302 expected 2 blank lines, found 1
77: D209 Put multi-line docstring closing quotes on separate line
77: D202 No blank lines allowed *after* function docstring, found 1
77: D205 Blank line missing between one-line summary and description
110:13: E113 unexpected indentation
128:75: E128 continuation line under-indented for visual indent
129:75: E128 continuation line under-indented for visual indent
130:75: E128 continuation line under-indented for visual indent
131:75: E128 continuation line under-indented for visual indent
132:75: E128 continuation line under-indented for visual indent
133:75: E128 continuation line under-indented for visual indent
134:75: E128 continuation line under-indented for visual indent
153:55: E231 missing whitespace after ','
158:59: E128 continuation line under-indented for visual indent
159:59: E128 continuation line under-indented for visual indent
160:59: E128 continuation line under-indented for visual indent
161:59: E128 continuation line under-indented for visual indent
162:59: E128 continuation line under-indented for visual indent
163:59: E128 continuation line under-indented for visual indent
164:59: E128 continuation line under-indented for visual indent
165:59: E128 continuation line under-indented for visual indent
186:1: E302 expected 2 blank lines, found 1
186: D209 Put multi-line docstring closing quotes on separate line
186: D202 No blank lines allowed *after* function docstring, found 1
186: D205 Blank line missing between one-line summary and description
264:1: E302 expected 2 blank lines, found 1
264: D209 Put multi-line docstring closing quotes on separate line
264: D202 No blank lines allowed *after* function docstring, found 1
264: D205 Blank line missing between one-line summary and description
339:1: E302 expected 2 blank lines, found 1
339: D209 Put multi-line docstring closing quotes on separate line
339: D201 No blank lines allowed *before* function docstring, found 1
339: D202 No blank lines allowed *after* function docstring, found 1
339: D205 Blank line missing between one-line summary and description
395:1: E302 expected 2 blank lines, found 1
395: D400 First line should end with '.', not 'm'
395: D205 Blank line missing between one-line summary and description
451:1: E302 expected 2 blank lines, found 1
451: D290 White spaces around docstring should be trimmed.
451: D205 Blank line missing between one-line summary and description
484:44: E261 at least two spaces before inline comment
523:1: E302 expected 2 blank lines, found 1
523: D209 Put multi-line docstring closing quotes on separate line
523: D202 No blank lines allowed *after* function docstring, found 1
523: D205 Blank line missing between one-line summary and description
556:5: E303 too many blank lines (2)
641:96: E502 the backslash is redundant between brackets
824:1: E302 expected 2 blank lines, found 1
824: D209 Put multi-line docstring closing quotes on separate line
824: D202 No blank lines allowed *after* function docstring, found 1
824: D205 Blank line missing between one-line summary and description
871:49: E261 at least two spaces before inline comment
883:30: E225 missing whitespace around operator
942:20: E222 multiple spaces after operator
945:1: E302 expected 2 blank lines, found 1
945: D209 Put multi-line docstring closing quotes on separate line
945: D202 No blank lines allowed *after* function docstring, found 1
945: D205 Blank line missing between one-line summary and description
1033:48: E128 continuation line under-indented for visual indent
1034:48: E128 continuation line under-indented for visual indent
1035:48: E128 continuation line under-indented for visual indent
1039:48: E126 continuation line over-indented for hanging indent
1049:1: E302 expected 2 blank lines, found 1
1049: D209 Put multi-line docstring closing quotes on separate line
1049: D202 No blank lines allowed *after* function docstring, found 1
1049: D205 Blank line missing between one-line summary and description
1065:5: F841 local variable '_' is assigned to but never used
1174:22: E221 multiple spaces before operator
1176:22: E221 multiple spaces before operator
1177:27: E221 multiple spaces before operator
1185:22: E221 multiple spaces before operator
1187:22: E221 multiple spaces before operator
1188:22: E221 multiple spaces before operator
1189:22: E221 multiple spaces before operator
1190:27: E221 multiple spaces before operator
1197:47: W601 .has_key() is deprecated, use 'in'
1207:26: E221 multiple spaces before operator
1209:26: E221 multiple spaces before operator
1210:31: E221 multiple spaces before operator
1212:47: W601 .has_key() is deprecated, use 'in'
1216:62: E201 whitespace after '('
1216:143: E202 whitespace before ')'
1248:22: E221 multiple spaces before operator
1250:22: E221 multiple spaces before operator
1251:27: E221 multiple spaces before operator
1253:27: E221 multiple spaces before operator
1258:43: E221 multiple spaces before operator
1264:22: E221 multiple spaces before operator
1266:22: E221 multiple spaces before operator
1267:27: E221 multiple spaces before operator
1269:22: E221 multiple spaces before operator
1270:22: E221 multiple spaces before operator
1271:27: E221 multiple spaces before operator
1278:44: W601 .has_key() is deprecated, use 'in'
1283:47: E221 multiple spaces before operator
1291:26: E221 multiple spaces before operator
1293:26: E221 multiple spaces before operator
1294:31: E221 multiple spaces before operator
1296:31: E221 multiple spaces before operator
1298:44: W601 .has_key() is deprecated, use 'in'
1302:59: E201 whitespace after '('
1302:134: E202 whitespace before ')'
1305:47: E221 multiple spaces before operator
1337:22: E221 multiple spaces before operator
1340:27: E221 multiple spaces before operator
1345:43: E221 multiple spaces before operator
1351:22: E221 multiple spaces before operator
1354:22: E221 multiple spaces before operator
1355:22: E221 multiple spaces before operator
1356:27: E221 multiple spaces before operator
1363:45: W601 .has_key() is deprecated, use 'in'
1368:47: E221 multiple spaces before operator
1376:26: E221 multiple spaces before operator
1379:31: E221 multiple spaces before operator
1381:45: W601 .has_key() is deprecated, use 'in'
1385:60: E201 whitespace after '('
1385:137: E202 whitespace before ')'
1388:47: E221 multiple spaces before operator
1420:22: E221 multiple spaces before operator
1423:27: E221 multiple spaces before operator
1428:43: E221 multiple spaces before operator
1434:22: E221 multiple spaces before operator
1437:22: E221 multiple spaces before operator
1438:22: E221 multiple spaces before operator
1439:27: E221 multiple spaces before operator
1446:49: W601 .has_key() is deprecated, use 'in'
1451:47: E221 multiple spaces before operator
1459:26: E221 multiple spaces before operator
1462:31: E221 multiple spaces before operator
1464:49: W601 .has_key() is deprecated, use 'in'
1468:64: E201 whitespace after '('
1468:149: E202 whitespace before ')'
1471:47: E221 multiple spaces before operator
1524:1: E302 expected 2 blank lines, found 1
1524: D400 First line should end with '.', not 'm'
1524: D205 Blank line missing between one-line summary and description
1585:1: E302 expected 2 blank lines, found 1
1585: D290 White spaces around docstring should be trimmed.
1585: D205 Blank line missing between one-line summary and description
1623:62: E502 the backslash is redundant between brackets
1624:13: E129 visually indented line with same indent as next logical line
1663:1: E302 expected 2 blank lines, found 1
1663: D202 No blank lines allowed *after* function docstring, found 1
1713:1: E302 expected 2 blank lines, found 1
1713: D209 Put multi-line docstring closing quotes on separate line
1713: D202 No blank lines allowed *after* function docstring, found 1
1713: D400 First line should end with '.', not 's'
1713: D205 Blank line missing between one-line summary and description
1921:17: E201 whitespace after '('
1921:53: E202 whitespace before ')'
1921:60: E201 whitespace after '('
1921:78: E201 whitespace after '('
1921:120: E202 whitespace before ')'
1921:122: E202 whitespace before ')'
1940:28: E126 continuation line over-indented for hanging indent
1940:59: E502 the backslash is redundant between brackets
2026:1: E302 expected 2 blank lines, found 1
2026: D209 Put multi-line docstring closing quotes on separate line
2026: D202 No blank lines allowed *after* function docstring, found 1
2026: D205 Blank line missing between one-line summary and description
2063:1: E302 expected 2 blank lines, found 1
2063: D205 Blank line missing between one-line summary and description
2074:1: E302 expected 2 blank lines, found 1
2074: D205 Blank line missing between one-line summary and description
2086:1: E302 expected 2 blank lines, found 1
2086: D400 First line should end with '.', not 's'
2086: D205 Blank line missing between one-line summary and description
2087:35: E251 unexpected spaces around keyword / parameter equals
2087:37: E251 unexpected spaces around keyword / parameter equals
2171:1: E302 expected 2 blank lines, found 1
2171: D205 Blank line missing between one-line summary and description
2202:1: E302 expected 2 blank lines, found 1
2202: D400 First line should end with '.', not 'h'
2202: D205 Blank line missing between one-line summary and description
2221:1: E302 expected 2 blank lines, found 1
2221: D400 First line should end with '.', not ','
2221: D205 Blank line missing between one-line summary and description
2230:39: E251 unexpected spaces around keyword / parameter equals
2230:41: E251 unexpected spaces around keyword / parameter equals
2232:42: E251 unexpected spaces around keyword / parameter equals
2232:44: E251 unexpected spaces around keyword / parameter equals
2259:41: E261 at least two spaces before inline comment
2297:1: E302 expected 2 blank lines, found 1
2297: D401 First line should be imperative: 'Subscribe', not 'Subscribes'
2297: D209 Put multi-line docstring closing quotes on separate line
2297: D205 Blank line missing between one-line summary and description
2327:1: E302 expected 2 blank lines, found 1
2327: D401 First line should be imperative: 'Unsubscribe', not 'Unsubscribes'
2327: D209 Put multi-line docstring closing quotes on separate line
2327: D205 Blank line missing between one-line summary and description
2357:1: E302 expected 2 blank lines, found 1
2357: D290 White spaces around docstring should be trimmed.
2357: D400 First line should end with '.', not 't'
2366:1: E302 expected 2 blank lines, found 1
2366: D290 White spaces around docstring should be trimmed.
2366: D400 First line should end with '.', not 's'
2375:1: E302 expected 2 blank lines, found 1
2379:15: E126 continuation line over-indented for hanging indent
2384:1: E302 expected 2 blank lines, found 1
2384: D290 White spaces around docstring should be trimmed.
2384: D202 No blank lines allowed *after* function docstring, found 1
2394:1: E302 expected 2 blank lines, found 1
2394: D400 First line should end with '.', not 'm'
2398:1: E302 expected 2 blank lines, found 1
2398: D209 Put multi-line docstring closing quotes on separate line
2398: D205 Blank line missing between one-line summary and description
2422:68: E502 the backslash is redundant between brackets
2423:37: E127 continuation line over-indented for visual indent
2432:77: E502 the backslash is redundant between brackets
2433:46: E127 continuation line over-indented for visual indent
2450:68: E502 the backslash is redundant between brackets
2451:37: E127 continuation line over-indented for visual indent
2460:77: E502 the backslash is redundant between brackets
2461:46: E127 continuation line over-indented for visual indent
2476:75: E502 the backslash is redundant between brackets
2477:42: E127 continuation line over-indented for visual indent
2483:1: E302 expected 2 blank lines, found 1
2483: D209 Put multi-line docstring closing quotes on separate line
2483: D202 No blank lines allowed *after* function docstring, found 1
2483: D205 Blank line missing between one-line summary and description
2577:1: E302 expected 2 blank lines, found 1
2577: D202 No blank lines allowed *after* function docstring, found 1
2577: D400 First line should end with '.', not 'e'
2577: D200 One-line docstring should not occupy 3 lines
2588:1: E302 expected 2 blank lines, found 1
2588: D202 No blank lines allowed *after* function docstring, found 1
2598:10: E261 at least two spaces before inline comment
2602:1: E302 expected 2 blank lines, found 1
2602: D400 First line should end with '.', not 'r'
2607:1: E302 expected 2 blank lines, found 1
2615:1: E302 expected 2 blank lines, found 1
2615: D209 Put multi-line docstring closing quotes on separate line
2615: D202 No blank lines allowed *after* function docstring, found 1
2615: D400 First line should end with '.', not 's'
2615: D205 Blank line missing between one-line summary and description
2664:1: E302 expected 2 blank lines, found 1
2664: D209 Put multi-line docstring closing quotes on separate line
2664: D202 No blank lines allowed *after* function docstring, found 1
2664: D400 First line should end with '.', not 'm'
2664: D205 Blank line missing between one-line summary and description
2688:9: E113 unexpected indentation
2721:1: E302 expected 2 blank lines, found 1
2721: D401 First line should be imperative: 'Return', not 'Returns'
2721: D202 No blank lines allowed *after* function docstring, found 1
2728:20: E222 multiple spaces after operator
2753:1: E302 expected 2 blank lines, found 1
2753: D301 Use r""" if any backslashes in a docstring
2753: D209 Put multi-line docstring closing quotes on separate line
2753: D202 No blank lines allowed *after* function docstring, found 1
2753: D400 First line should end with '.', not '('
2753: D205 Blank line missing between one-line summary and description
2758:1: E302 expected 2 blank lines, found 1
2782:1: E302 expected 2 blank lines, found 1
2797:1: E302 expected 2 blank lines, found 1
2813:1: E302 expected 2 blank lines, found 1
2826:1: E302 expected 2 blank lines, found 1
2839:1: E302 expected 2 blank lines, found 1
2839: D209 Put multi-line docstring closing quotes on separate line
2839: D400 First line should end with '.', not 'd'
2839: D205 Blank line missing between one-line summary and description
2868:1: E302 expected 2 blank lines, found 1
2868: D400 First line should end with '.', not 't'
2890:1: E302 expected 2 blank lines, found 1
2890: D209 Put multi-line docstring closing quotes on separate line
2890: D202 No blank lines allowed *after* function docstring, found 1
2890: D205 Blank line missing between one-line summary and description