BibIndex: refactoring and author parent tokenizer

* Refactoring of BibIndex:
  implements inveniosoftware#1710

* Adds a generic parent tokenizer, useful for the dataset records:
  implements inveniosoftware#1885

* Adds 4 demo records for testing purpose

* Adds (and fixes) tests

More details:

* Refactoring of `task_run_core` in `bibindex_engine.py`: easier to
  follow, moves the decision of which records need to be reindexed to
  the tokenizers

* Fixes bug: the command `bibindex -w [index name] -m [date range]`
  previously was updating the `last_updated` field of the index

* Moves many of the index specific special cases from
  `bibindex_engine.py` to the tokenizers
  (e.g. `if index_name == "author": # add special tokens`)

* Moves some utility functions from `bibindex_engine.py` to
  `bibindex_engine_utils.py`

* Adds tokenizers `BibIndexAbstractParentTokenizer`,
  `BibIndexCanonicalAuthorTokenizer`,
  `BibIndexExactParentAuthorTokenizer`,
  `BibIndexParentAuthorTokenizer`,
  `BibIndexParentCanonicalAuthorTokenizer`

* Adds indexes `simpleauthor`, `canonicalauthor`, `parentauthor`,
  `parentcanonicalauthor`, `exactsimpleauthor`, `exactparentauthor`

* Adds fields `simpleauthor`, `exactsimpleauthor`

* Adds upgrade script for the database changes
  (uses function upgrade_atlantis)

* Transforms `author` and `exactauthor` indexes from regular to
  virtual index

* Adds file `bibindex_engine_tokenizer_regression_tests.py`

* Adds tests for tokenizers, for bibindex CLI, for bibindex utils

* Closes inveniosoftware#1662
  (BibIndex: --reindex should not zero last_updated)

* Edits the commands run by `--load-demo-records` in order to
  reindex the bibauthorid-dependant indexes after the `bibauthorid`
  task (for example `canonicalauthor` and `parentcanonicalauthor`)
1: D400 First line should end with '.', not 'y'
1: D208 Docstring is over-indented
1: D300 Expected """-quotes, got '''-quotes
4: I102 copyright year is outdated, expected 2014 but got 2013
29:17: E126 continuation line over-indented for hanging indent
39:1: F999 redefinition of unused 'CFG_SITE_URL' from line 28
45:60: E203 whitespace before ','
46:37: E126 continuation line over-indented for hanging indent
48:1: F401 'bibtask' imported but unused
58:1: F999 redefinition of unused 'run_sql' from line 47
60:1: F999 redefinition of unused 'perform_request_search' from line 37
62:1: F999 redefinition of unused 'acc_authorize_action' from line 38
63:1: F999 redefinition of unused 'split_name_parts' from line 41
63:1: F999 redefinition of unused 'create_canonical_name' from line 42
63:1: F999 redefinition of unused 'create_normalized_name' from line 43
64:33: E126 continuation line over-indented for hanging indent
65:1: F999 redefinition of unused 'bibauthor_print' from line 44
65:1: F999 redefinition of unused 'update_status' from line 45
65:1: F999 redefinition of unused 'update_status_final' from line 45
66:33: E126 continuation line over-indented for hanging indent
82: D401 First line should be imperative: 'Add', not 'Adds'
82: D300 Expected """-quotes, got '''-quotes
104:16: E127 continuation line over-indented for visual indent
104:74: E202 whitespace before ')'
107: D401 First line should be imperative: 'Reassign', not 'Reassigns'
107: D300 Expected """-quotes, got '''-quotes
130:49: E202 whitespace before ')'
133: D401 First line should be imperative: 'Modifie', not 'Modifies'
133: D300 Expected """-quotes, got '''-quotes
151:16: E127 continuation line over-indented for visual indent
152:50: E202 whitespace before ')'
155:32: E262 inline comment should start with '# '
155: D401 First line should be imperative: 'Delete', not 'Deletes'
155: D300 Expected """-quotes, got '''-quotes
166:28: E262 inline comment should start with '# '
166: D401 First line should be imperative: 'Delete', not 'Deletes'
166: D300 Expected """-quotes, got '''-quotes
177:20: E127 continuation line over-indented for visual indent
177:33: E202 whitespace before ')'
180: D300 Expected """-quotes, got '''-quotes
196:20: E127 continuation line over-indented for visual indent
196:57: E202 whitespace before ')'
199:62: E262 inline comment should start with '# '
199: D401 First line should be imperative: 'Confirm', not 'Confirms'
199: D400 First line should end with '.', not 's'
199: D205 Blank line missing between one-line summary and description
199: D300 Expected """-quotes, got '''-quotes
226:29: E127 continuation line over-indented for visual indent
226:35: E202 whitespace before ')'
265:30: E201 whitespace after '{'
265:69: E202 whitespace before '}'
265:40: E231 missing whitespace after ':'
265:59: E231 missing whitespace after ':'
267:26: E201 whitespace after '{'
267:64: E202 whitespace before '}'
267:36: E231 missing whitespace after ':'
267:54: E231 missing whitespace after ':'
295:20: E127 continuation line over-indented for visual indent
295:59: E202 whitespace before ')'
301:63: E262 inline comment should start with '# '
301: D401 First line should be imperative: 'Confirm', not 'Confirms'
301: D400 First line should end with '.', not 'e'
301: D205 Blank line missing between one-line summary and description
301: D300 Expected """-quotes, got '''-quotes
330:30: E201 whitespace after '{'
330:68: E202 whitespace before '}'
330:40: E231 missing whitespace after ':'
330:59: E231 missing whitespace after ':'
332:26: E201 whitespace after '{'
332:63: E202 whitespace before '}'
332:36: E231 missing whitespace after ':'
332:54: E231 missing whitespace after ':'
348:46: E262 inline comment should start with '# '
348: D401 First line should be imperative: 'Redefine', not 'Redefines'
348: D400 First line should end with '.', not 's'
348: D205 Blank line missing between one-line summary and description
348: D300 Expected """-quotes, got '''-quotes
390:30: E201 whitespace after '{'
390:67: E202 whitespace before '}'
390:40: E231 missing whitespace after ':'
390:59: E231 missing whitespace after ':'
392:26: E201 whitespace after '{'
392:62: E202 whitespace before '}'
392:36: E231 missing whitespace after ':'
392:54: E231 missing whitespace after ':'
398:20: E127 continuation line over-indented for visual indent
398:25: E202 whitespace before ')'
404:64: E262 inline comment should start with '# '
404: D400 First line should end with '.', not 'S'
404: D205 Blank line missing between one-line summary and description
404: D300 Expected """-quotes, got '''-quotes
425:35: E127 continuation line over-indented for visual indent
425:40: E202 whitespace before ')'
447:56: E127 continuation line over-indented for visual indent
447:69: E202 whitespace before ')'
456:36: E127 continuation line over-indented for visual indent
456:49: E202 whitespace before ')'
466: D400 First line should end with '.', not 'n'
466: D205 Blank line missing between one-line summary and description
466: D300 Expected """-quotes, got '''-quotes
487:33: E127 continuation line over-indented for visual indent
487:38: E202 whitespace before ')'
515:36: E127 continuation line over-indented for visual indent
515:53: E202 whitespace before ')'
525:49: E262 inline comment should start with '# '
525: D400 First line should end with '.', not 'a'
525: D205 Blank line missing between one-line summary and description
525: D300 Expected """-quotes, got '''-quotes
557:32: E127 continuation line over-indented for visual indent
557:77: E202 whitespace before ')'
564:57: E262 inline comment should start with '# '
564: D400 First line should end with '.', not 'S'
564: D205 Blank line missing between one-line summary and description
564: D300 Expected """-quotes, got '''-quotes
587:39: E127 continuation line over-indented for visual indent
587:44: E202 whitespace before ')'
599:39: E127 continuation line over-indented for visual indent
599:44: E202 whitespace before ')'
640: D401 First line should be imperative: 'Delete', not 'Deletes'
640: D205 Blank line missing between one-line summary and description
640: D300 Expected """-quotes, got '''-quotes
694:31: E202 whitespace before ')'
698:1: E302 expected 2 blank lines, found 1
698:25: E262 inline comment should start with '# '
698: D401 First line should be imperative: 'Get', not 'Gets'
698: D300 Expected """-quotes, got '''-quotes
708: D401 First line should be imperative: 'Get', not 'Gets'
708: D400 First line should end with '.', not 'd'
708: D205 Blank line missing between one-line summary and description
708: D300 Expected """-quotes, got '''-quotes
722:78: E262 inline comment should start with '# '
722: D401 First line should be imperative: 'Get', not 'Gets'
722: D400 First line should end with '.', not 'd'
722: D205 Blank line missing between one-line summary and description
722: D300 Expected """-quotes, got '''-quotes
747:37: E202 whitespace before ')'
750:46: E262 inline comment should start with '# '
750: D401 First line should be imperative: 'Get', not 'Gets'
750: D300 Expected """-quotes, got '''-quotes
767:25: E127 continuation line over-indented for visual indent
767:38: E202 whitespace before ')'
772:44: E262 inline comment should start with '# '
772: D401 First line should be imperative: 'Get', not 'Gets'
772: D300 Expected """-quotes, got '''-quotes
786:25: E127 continuation line over-indented for visual indent
786:36: E202 whitespace before ')'
792:42: E262 inline comment should start with '# '
792: D401 First line should be imperative: 'Get', not 'Gets'
792: D300 Expected """-quotes, got '''-quotes
806:23: E127 continuation line over-indented for visual indent
806:31: E202 whitespace before ')'
809: D300 Expected """-quotes, got '''-quotes
824:35: E127 continuation line over-indented for visual indent
824:48: E202 whitespace before ')'
828:37: E262 inline comment should start with '# '
828: D401 First line should be imperative: 'Get', not 'Gets'
828: D300 Expected """-quotes, got '''-quotes
841:41: E262 inline comment should start with '# '
841: D401 First line should be imperative: 'Get', not 'Gets'
841: D300 Expected """-quotes, got '''-quotes
865:52: E262 inline comment should start with '# '
865: D401 First line should be imperative: 'Get', not 'Gets'
865: D400 First line should end with '.', not ')'
865: D205 Blank line missing between one-line summary and description
865: D300 Expected """-quotes, got '''-quotes
884:56: E262 inline comment should start with '# '
884: D401 First line should be imperative: 'Get', not 'Gets'
884: D400 First line should end with '.', not 'e'
884: D205 Blank line missing between one-line summary and description
884: D300 Expected """-quotes, got '''-quotes
901:23: E127 continuation line over-indented for visual indent
901:26: E202 whitespace before ')'
904:54: E262 inline comment should start with '# '
904: D401 First line should be imperative: 'Get', not 'Gets'
904: D400 First line should end with '.', not 'o'
904: D205 Blank line missing between one-line summary and description
904: D300 Expected """-quotes, got '''-quotes
921:41: E127 continuation line over-indented for visual indent
921:44: E202 whitespace before ')'
928:48: E262 inline comment should start with '# '
928: D401 First line should be imperative: 'Get', not 'Gets'
928: D400 First line should end with '.', not 'n'
928: D205 Blank line missing between one-line summary and description
928: D300 Expected """-quotes, got '''-quotes
945:30: E127 continuation line over-indented for visual indent
945:33: E202 whitespace before ')'
952:42: E262 inline comment should start with '# '
952: D401 First line should be imperative: 'Get', not 'Gets'
952: D400 First line should end with '.', not 'n'
952: D205 Blank line missing between one-line summary and description
952: D300 Expected """-quotes, got '''-quotes
967:23: E127 continuation line over-indented for visual indent
967:29: E202 whitespace before ')'
974:58: E262 inline comment should start with '# '
974: D401 First line should be imperative: 'Get', not 'Gets'
974: D400 First line should end with '.', not 'g'
974: D205 Blank line missing between one-line summary and description
974: D300 Expected """-quotes, got '''-quotes
995:23: E127 continuation line over-indented for visual indent
995:36: E202 whitespace before ')'
1006:39: E262 inline comment should start with '# '
1006: D401 First line should be imperative: 'Return', not 'Returns'
1006: D400 First line should end with '.', not 'h'
1006: D205 Blank line missing between one-line summary and description
1006: D300 Expected """-quotes, got '''-quotes
1021:31: E127 continuation line over-indented for visual indent
1021:37: E202 whitespace before ')'
1030:84: E262 inline comment should start with '# '
1030: D401 First line should be imperative: 'Get', not 'Gets'
1030: D400 First line should end with '.', not 'e'
1030: D205 Blank line missing between one-line summary and description
1030: D300 Expected """-quotes, got '''-quotes
1056:27: E127 continuation line over-indented for visual indent
1056:38: E202 whitespace before ')'
1071:64: E262 inline comment should start with '# '
1071: D401 First line should be imperative: 'Get', not 'Gets'
1071: D400 First line should end with '.', not 'r'
1071: D205 Blank line missing between one-line summary and description
1071: D300 Expected """-quotes, got '''-quotes
1104:48: E262 inline comment should start with '# '
1104: D401 First line should be imperative: 'Get', not 'Gets'
1104: D300 Expected """-quotes, got '''-quotes
1118:23: E127 continuation line over-indented for visual indent
1118:37: E202 whitespace before ')'
1121:34: E262 inline comment should start with '# '
1121: D401 First line should be imperative: 'Get', not 'Gets'
1121: D300 Expected """-quotes, got '''-quotes
1134:49: E262 inline comment should start with '# '
1134: D401 First line should be imperative: 'Get', not 'Gets'
1134: D400 First line should end with '.', not 'e'
1134: D205 Blank line missing between one-line summary and description
1134: D300 Expected """-quotes, got '''-quotes
1159:63: E262 inline comment should start with '# '
1159: D400 First line should end with '.', not 'h'
1159: D205 Blank line missing between one-line summary and description
1159: D300 Expected """-quotes, got '''-quotes
1192:34: E127 continuation line over-indented for visual indent
1192:73: E202 whitespace before ')'
1192:69: E225 missing whitespace around operator
1197:34: E127 continuation line over-indented for visual indent
1197:47: E202 whitespace before ')'
1207:58: E262 inline comment should start with '# '
1207: D400 First line should end with '.', not 's'
1207: D205 Blank line missing between one-line summary and description
1207: D300 Expected """-quotes, got '''-quotes
1230:44: E202 whitespace before ')'
1239:33: E127 continuation line over-indented for visual indent
1239:46: E202 whitespace before ')'
1251:1: E302 expected 2 blank lines, found 1
1251: D103 Docstring missing
1265:13: E122 continuation line missing indentation or outdented
1266:13: E122 continuation line missing indentation or outdented
1267:13: E122 continuation line missing indentation or outdented
1268:13: E122 continuation line missing indentation or outdented
1272:38: E262 inline comment should start with '# '
1272: D401 First line should be imperative: 'Get', not 'Gets'
1272: D400 First line should end with '.', not 'y'
1272: D205 Blank line missing between one-line summary and description
1272: D300 Expected """-quotes, got '''-quotes
1289: D401 First line should be imperative: 'Get', not 'Gets'
1289: D400 First line should end with '.', not 'o'
1289: D205 Blank line missing between one-line summary and description
1289: D300 Expected """-quotes, got '''-quotes
1308:74: E262 inline comment should start with '# '
1308: D401 First line should be imperative: 'Get', not 'Gets'
1308: D400 First line should end with '.', not 'y'
1308: D205 Blank line missing between one-line summary and description
1308: D300 Expected """-quotes, got '''-quotes
1321:23: E127 continuation line over-indented for visual indent
1321:35: E202 whitespace before ')'
1324: D401 First line should be imperative: 'Return', not 'Returns'
1324: D300 Expected """-quotes, got '''-quotes
1331:85: E502 the backslash is redundant between brackets
1331:19: E201 whitespace after '('
1332:61: E202 whitespace before ')'
1333:85: E502 the backslash is redundant between brackets
1333:19: E201 whitespace after '('
1334:61: E202 whitespace before ')'
1339:104: E502 the backslash is redundant between brackets
1341:104: E502 the backslash is redundant between brackets
1349:53: E262 inline comment should start with '# '
1349: D401 First line should be imperative: 'Get', not 'Gets'
1349: D300 Expected """-quotes, got '''-quotes
1366:23: E127 continuation line over-indented for visual indent
1366:36: E202 whitespace before ')'
1369:53: E262 inline comment should start with '# '
1369: D401 First line should be imperative: 'Examine', not 'Examines'
1369: D400 First line should end with '.', not 's'
1369: D205 Blank line missing between one-line summary and description
1369: D300 Expected """-quotes, got '''-quotes
1398:97: E262 inline comment should start with '# '
1398: D401 First line should be imperative: 'Update', not 'Updates'
1398: D400 First line should end with '.', not 'd'
1398: D205 Blank line missing between one-line summary and description
1398: D300 Expected """-quotes, got '''-quotes
1443: D401 First line should be imperative: 'Select', not 'Selects'
1443: D400 First line should end with '.', not 'e'
1443: D205 Blank line missing between one-line summary and description
1443: D300 Expected """-quotes, got '''-quotes
1506:38: E202 whitespace before ')'
1516:1: E302 expected 2 blank lines, found 1
1516:74: E262 inline comment should start with '# '
1516: D401 First line should be imperative: 'Add', not 'Adds'
1516: D300 Expected """-quotes, got '''-quotes
1536:16: E127 continuation line over-indented for visual indent
1536:51: E202 whitespace before ')'
1539:54: E262 inline comment should start with '# '
1539: D401 First line should be imperative: 'Delete', not 'Deletes'
1539: D400 First line should end with '.', not 'e'
1539: D205 Blank line missing between one-line summary and description
1539: D300 Expected """-quotes, got '''-quotes
1563: D400 First line should end with '.', not ':'
1563: D205 Blank line missing between one-line summary and description
1563: D300 Expected """-quotes, got '''-quotes
1576:20: E127 continuation line over-indented for visual indent
1576:39: E202 whitespace before ')'
1579: D401 First line should be imperative: 'Add', not 'Adds'
1579: D300 Expected """-quotes, got '''-quotes
1590:1: E302 expected 2 blank lines, found 1
1590: D103 Docstring missing
1595:1: E302 expected 2 blank lines, found 1
1595: D401 First line should be imperative: 'Connect', not 'Connects'
1595: D400 First line should end with '.', not 'd'
1595: D205 Blank line missing between one-line summary and description
1602:96: E203 whitespace before ','
1606:129: E231 missing whitespace after ','
1608:1: E302 expected 2 blank lines, found 1
1608: D401 First line should be imperative: 'Add', not 'Adds'
1608: D400 First line should end with '.', not 's'
1608: D205 Blank line missing between one-line summary and description
1608: D300 Expected """-quotes, got '''-quotes
1629:16: E127 continuation line over-indented for visual indent
1629:51: E202 whitespace before ')'
1632: D401 First line should be imperative: 'Delete', not 'Deletes'
1632: D300 Expected """-quotes, got '''-quotes
1642:16: E127 continuation line over-indented for visual indent
1642:37: E202 whitespace before ')'
1645:57: E262 inline comment should start with '# '
1645: D401 First line should be imperative: 'Add', not 'Adds'
1645: D300 Expected """-quotes, got '''-quotes
1659:16: E127 continuation line over-indented for visual indent
1659:51: E202 whitespace before ')'
1662:67: E262 inline comment should start with '# '
1662: D401 First line should be imperative: 'Remove', not 'Removes'
1662: D400 First line should end with '.', not 'n'
1662: D205 Blank line missing between one-line summary and description
1662: D300 Expected """-quotes, got '''-quotes
1680:69: E262 inline comment should start with '# '
1680: D401 First line should be imperative: 'Creates/update', not 'Creates/updates'
1680: D400 First line should end with '.', not 'd'
1680: D205 Blank line missing between one-line summary and description
1680: D300 Expected """-quotes, got '''-quotes
1725:16: E127 continuation line over-indented for visual indent
1725:78: E202 whitespace before ')'
1728:56: E262 inline comment should start with '# '
1728: D401 First line should be imperative: 'Remove', not 'Removes'
1728: D400 First line should end with '.', not 't'
1728: D205 Blank line missing between one-line summary and description
1728: D300 Expected """-quotes, got '''-quotes
1742:20: E127 continuation line over-indented for visual indent
1742:44: E202 whitespace before ')'
1768:16: E127 continuation line over-indented for visual indent
1768:78: E202 whitespace before ')'
1771:62: E262 inline comment should start with '# '
1771: D401 First line should be imperative: 'Update', not 'Updates'
1771: D300 Expected """-quotes, got '''-quotes
1788:20: E127 continuation line over-indented for visual indent
1788:53: E202 whitespace before ')'
1793:20: E127 continuation line over-indented for visual indent
1793:53: E202 whitespace before ')'
1798: D401 First line should be imperative: 'Delete', not 'Deletes'
1798: D400 First line should end with '.', not 'o'
1798: D205 Blank line missing between one-line summary and description
1798: D300 Expected """-quotes, got '''-quotes
1847:31: E202 whitespace before ')'
1852: D400 First line should end with '.', not 'r'
1852: D205 Blank line missing between one-line summary and description
1852: D300 Expected """-quotes, got '''-quotes
1863:34: E262 inline comment should start with '# '
1863: D401 First line should be imperative: 'Get', not 'Gets'
1863: D300 Expected """-quotes, got '''-quotes
1878:42: E262 inline comment should start with '# '
1878: D401 First line should be imperative: 'Get', not 'Gets'
1878: D300 Expected """-quotes, got '''-quotes
1891:31: E262 inline comment should start with '# '
1891: D401 First line should be imperative: 'Get', not 'Gets'
1891: D400 First line should end with '.', not 'e'
1891: D205 Blank line missing between one-line summary and description
1891: D300 Expected """-quotes, got '''-quotes
1910:40: E262 inline comment should start with '# '
1910: D401 First line should be imperative: 'Get', not 'Gets'
1910: D400 First line should end with '.', not 'e'
1910: D205 Blank line missing between one-line summary and description
1910: D300 Expected """-quotes, got '''-quotes
1925:30: E127 continuation line over-indented for visual indent
1925:47: E202 whitespace before ')'
1934:1: E302 expected 2 blank lines, found 1
1934: D401 First line should be imperative: 'Get', not 'Gets'
1934: D200 One-line docstring should not occupy 3 lines
1953:1: E302 expected 2 blank lines, found 1
1953: D401 First line should be imperative: 'Get', not 'Gets'
1953: D400 First line should end with '.', not 's'
1953: D205 Blank line missing between one-line summary and description
1953: D300 Expected """-quotes, got '''-quotes
1968:31: E127 continuation line over-indented for visual indent
1968:52: E202 whitespace before ')'
1977:54: E262 inline comment should start with '# '
1977: D401 First line should be imperative: 'Get', not 'Gets'
1977: D400 First line should end with '.', not 's'
1977: D205 Blank line missing between one-line summary and description
1977: D300 Expected """-quotes, got '''-quotes
1995:38: E127 continuation line over-indented for visual indent
1995:62: E202 whitespace before ')'
2009:59: E262 inline comment should start with '# '
2009: D401 First line should be imperative: 'Get', not 'Gets'
2009: D300 Expected """-quotes, got '''-quotes
2023:23: E127 continuation line over-indented for visual indent
2023:55: E202 whitespace before ')'
2026:44: E262 inline comment should start with '# '
2026: D401 First line should be imperative: 'Get', not 'Gets'
2026: D300 Expected """-quotes, got '''-quotes
2039:31: E262 inline comment should start with '# '
2039: D401 First line should be imperative: 'Get', not 'Gets'
2039: D400 First line should end with '.', not 't'
2039: D205 Blank line missing between one-line summary and description
2039: D300 Expected """-quotes, got '''-quotes
2058:56: E262 inline comment should start with '# '
2058: D401 First line should be imperative: 'Get', not 'Gets'
2058: D400 First line should end with '.', not 's'
2058: D205 Blank line missing between one-line summary and description
2058: D300 Expected """-quotes, got '''-quotes
2080:40: E262 inline comment should start with '# '
2080: D401 First line should be imperative: 'Get', not 'Gets'
2080: D300 Expected """-quotes, got '''-quotes
2090:23: E127 continuation line over-indented for visual indent
2090:43: E202 whitespace before ')'
2093:69: E262 inline comment should start with '# '
2093: D401 First line should be imperative: 'Get', not 'Gets'
2093: D400 First line should end with '.', not 'r'
2093: D205 Blank line missing between one-line summary and description
2093: D300 Expected """-quotes, got '''-quotes
2106:23: E127 continuation line over-indented for visual indent
2106:35: E202 whitespace before ')'
2109:39: E262 inline comment should start with '# '
2109: D401 First line should be imperative: 'Get', not 'Gets'
2109: D300 Expected """-quotes, got '''-quotes
2122:36: E262 inline comment should start with '# '
2122: D401 First line should be imperative: 'Get', not 'Gets'
2122: D300 Expected """-quotes, got '''-quotes
2135:61: E262 inline comment should start with '# '
2135: D401 First line should be imperative: 'Create', not 'Creates'
2135: D400 First line should end with '.', not 'f'
2135: D205 Blank line missing between one-line summary and description
2135: D300 Expected """-quotes, got '''-quotes
2164:49: E262 inline comment should start with '# '
2164: D401 First line should be imperative: 'Examine', not 'Examines'
2164: D300 Expected """-quotes, got '''-quotes
2185: D401 First line should be imperative: 'Select', not 'Selects'
2185: D400 First line should end with '.', not 'e'
2185: D205 Blank line missing between one-line summary and description
2185: D300 Expected """-quotes, got '''-quotes
2243:38: E202 whitespace before ')'
2253:1: E302 expected 2 blank lines, found 1
2253:51: E262 inline comment should start with '# '
2253: D400 First line should end with '.', not 'r'
2253: D205 Blank line missing between one-line summary and description
2253: D300 Expected """-quotes, got '''-quotes
2281:42: E262 inline comment should start with '# '
2281: D401 First line should be imperative: 'Get', not 'Gets'
2281: D400 First line should end with '.', not 'd'
2281: D205 Blank line missing between one-line summary and description
2281: D300 Expected """-quotes, got '''-quotes
2303:20: E127 continuation line over-indented for visual indent
2303:54: E202 whitespace before ')'
2309:118: E262 inline comment should start with '# '
2309: D401 First line should be imperative: 'Update', not 'Updates'
2309: D400 First line should end with '.', not 'e'
2309: D205 Blank line missing between one-line summary and description
2309: D300 Expected """-quotes, got '''-quotes
2360:39: E127 continuation line over-indented for visual indent
2360:79: E202 whitespace before ')'
2372:24: E127 continuation line over-indented for visual indent
2378:1: E302 expected 2 blank lines, found 1
2378:30: E262 inline comment should start with '# '
2378: D401 First line should be imperative: 'Get', not 'Gets'
2378: D300 Expected """-quotes, got '''-quotes
2386:17: E126 continuation line over-indented for hanging indent
2392:29: E262 inline comment should start with '# '
2392: D401 First line should be imperative: 'Get', not 'Gets'
2392: D300 Expected """-quotes, got '''-quotes
2413:53: E262 inline comment should start with '# '
2413: D401 First line should be imperative: 'Get', not 'Gets'
2413: D400 First line should end with '.', not 'r'
2413: D205 Blank line missing between one-line summary and description
2413: D300 Expected """-quotes, got '''-quotes
2440:85: E262 inline comment should start with '# '
2440: D401 First line should be imperative: 'Get', not 'Gets'
2440: D300 Expected """-quotes, got '''-quotes
2470:27: E127 continuation line over-indented for visual indent
2470:33: E202 whitespace before ')'
2495:39: E203 whitespace before ':'
2502:32: E127 continuation line over-indented for visual indent
2502:38: E202 whitespace before ')'
2512:31: E127 continuation line over-indented for visual indent
2512:37: E202 whitespace before ')'
2522:62: E262 inline comment should start with '# '
2522: D400 First line should end with '.', not 'l'
2522: D205 Blank line missing between one-line summary and description
2522: D300 Expected """-quotes, got '''-quotes
2565: D401 First line should be imperative: 'Examine', not 'Examines'
2565: D400 First line should end with '.', not 'f'
2565: D205 Blank line missing between one-line summary and description
2565: D300 Expected """-quotes, got '''-quotes
2588:27: E127 continuation line over-indented for visual indent
2588:44: E202 whitespace before ')'
2599:32: E127 continuation line over-indented for visual indent
2622:44: E262 inline comment should start with '# '
2622: D400 First line should end with '.', not 's'
2622: D205 Blank line missing between one-line summary and description
2622: D300 Expected """-quotes, got '''-quotes
2676:1: E302 expected 2 blank lines, found 1
2676:41: E262 inline comment should start with '# '
2676: D401 First line should be imperative: 'Get', not 'Gets'
2676: D400 First line should end with '.', not 'd'
2676: D205 Blank line missing between one-line summary and description
2676: D300 Expected """-quotes, got '''-quotes
2690:72: E127 continuation line over-indented for visual indent
2690:80: E202 whitespace before ')'
2695:50: E127 continuation line over-indented for visual indent
2695:58: E202 whitespace before ')'
2701:50: E127 continuation line over-indented for visual indent
2701:63: E202 whitespace before ')'
2706:44: E262 inline comment should start with '# '
2706: D401 First line should be imperative: 'Get', not 'Gets'
2706: D205 Blank line missing between one-line summary and description
2706: D300 Expected """-quotes, got '''-quotes
2757:26: E127 continuation line over-indented for visual indent
2757:37: E202 whitespace before ')'
2760:5: E303 too many blank lines (2)
2760: D401 First line should be imperative: 'Get', not 'Gets'
2760: D300 Expected """-quotes, got '''-quotes
2778:36: E202 whitespace before '}'
2786:80: E231 missing whitespace after ','
2789:9: E303 too many blank lines (2)
2804:83: E231 missing whitespace after ','
2807:94: E202 whitespace before ')'
2812:5: E303 too many blank lines (2)
2816:53: E262 inline comment should start with '# '
2816: D401 First line should be imperative: 'Get', not 'Gets'
2816: D400 First line should end with '.', not ')'
2816: D205 Blank line missing between one-line summary and description
2816: D300 Expected """-quotes, got '''-quotes
2833:25: E127 continuation line over-indented for visual indent
2833:31: E202 whitespace before ')'
2847:35: E127 continuation line over-indented for visual indent
2855:35: E127 continuation line over-indented for visual indent
2868:30: E262 inline comment should start with '# '
2868: D400 First line should end with '.', not 'r'
2868: D205 Blank line missing between one-line summary and description
2868: D300 Expected """-quotes, got '''-quotes
2900:31: E111 indentation is not a multiple of four
2900:31: E113 unexpected indentation
2903:31: E111 indentation is not a multiple of four
2903:31: E113 unexpected indentation
2924:1: E302 expected 2 blank lines, found 1
2924: D401 First line should be imperative: 'Save', not 'Saves'
2924: D300 Expected """-quotes, got '''-quotes
2937:20: E127 continuation line over-indented for visual indent
2937:48: E202 whitespace before ')'
2940:41: E262 inline comment should start with '# '
2940: D401 First line should be imperative: 'Delete', not 'Deletes'
2940: D400 First line should end with '.', not 'd'
2940: D205 Blank line missing between one-line summary and description
2940: D300 Expected """-quotes, got '''-quotes
2950:16: E127 continuation line over-indented for visual indent
2953:39: E262 inline comment should start with '# '
2953: D401 First line should be imperative: 'Truncate', not 'Truncates'
2953: D300 Expected """-quotes, got '''-quotes
2953: D200 One-line docstring should not occupy 3 lines
2961:1: E302 expected 2 blank lines, found 1
2961:41: E262 inline comment should start with '# '
2961: D401 First line should be imperative: 'Get', not 'Gets'
2961: D400 First line should end with '.', not 'e'
2961: D205 Blank line missing between one-line summary and description
2961: D300 Expected """-quotes, got '''-quotes
2975:23: E127 continuation line over-indented for visual indent
2975:40: E202 whitespace before ')'
2978:28: E262 inline comment should start with '# '
2978: D401 First line should be imperative: 'Get', not 'Gets'
2978: D300 Expected """-quotes, got '''-quotes
2989:44: E262 inline comment should start with '# '
2989: D400 First line should end with '.', not 'm'
2989: D205 Blank line missing between one-line summary and description
2989: D300 Expected """-quotes, got '''-quotes
3039: D401 First line should be imperative: 'Insert', not 'Inserts'
3039: D300 Expected """-quotes, got '''-quotes
3069:20: E127 continuation line over-indented for visual indent
3069:87: E202 whitespace before ')'
3074:20: E127 continuation line over-indented for visual indent
3074:98: E202 whitespace before ')'
3080:1: E302 expected 2 blank lines, found 1
3080:153: E262 inline comment should start with '# '
3080: D401 First line should be imperative: 'Get', not 'Gets'
3080: D400 First line should end with '.', not 's'
3080: D205 Blank line missing between one-line summary and description
3080: D300 Expected """-quotes, got '''-quotes
3145:38: E202 whitespace before ')'
3156: D401 First line should be imperative: 'Set', not 'Sets'
3156: D300 Expected """-quotes, got '''-quotes
3156: D200 One-line docstring should not occupy 3 lines
3163:16: E127 continuation line over-indented for visual indent
3163:28: E202 whitespace before ')'
3166: D401 First line should be imperative: 'Set', not 'Sets'
3166: D300 Expected """-quotes, got '''-quotes
3166: D200 One-line docstring should not occupy 3 lines
3173:16: E127 continuation line over-indented for visual indent
3173:46: E202 whitespace before ')'
3177:1: E302 expected 2 blank lines, found 1
3177:71: E262 inline comment should start with '# '
3177: D401 First line should be imperative: 'Get', not 'Gets'
3177: D400 First line should end with '.', not 'd'
3177: D205 Blank line missing between one-line summary and description
3177: D300 Expected """-quotes, got '''-quotes
3201:31: E127 continuation line over-indented for visual indent
3201:37: E202 whitespace before ')'
3208:31: E127 continuation line over-indented for visual indent
3208:37: E202 whitespace before ')'
3245:42: E262 inline comment should start with '# '
3245: D401 First line should be imperative: 'Get', not 'Gets'
3245: D300 Expected """-quotes, got '''-quotes
3258:29: E127 continuation line over-indented for visual indent
3258:35: E202 whitespace before ')'
3268:33: E127 continuation line over-indented for visual indent
3268:64: E202 whitespace before ')'
3273:36: E262 inline comment should start with '# '
3273: D401 First line should be imperative: 'Get', not 'Gets'
3273: D300 Expected """-quotes, got '''-quotes
3287:33: E127 continuation line over-indented for visual indent
3287:39: E202 whitespace before ')'
3292:33: E127 continuation line over-indented for visual indent
3292:39: E202 whitespace before ')'
3304:31: E127 continuation line over-indented for visual indent
3304:62: E202 whitespace before ')'
3310:31: E127 continuation line over-indented for visual indent
3310:62: E202 whitespace before ')'
3315:34: E262 inline comment should start with '# '
3315: D401 First line should be imperative: 'Get', not 'Gets'
3315: D400 First line should end with '.', not 's'
3315: D205 Blank line missing between one-line summary and description
3315: D300 Expected """-quotes, got '''-quotes
3329:31: E127 continuation line over-indented for visual indent
3329:37: E202 whitespace before ')'
3337:32: E127 continuation line over-indented for visual indent
3337:65: E202 whitespace before ')'
3342:31: E127 continuation line over-indented for visual indent
3342:37: E202 whitespace before ')'
3350:32: E127 continuation line over-indented for visual indent
3350:65: E202 whitespace before ')'
3355:48: E262 inline comment should start with '# '
3355: D401 First line should be imperative: 'Get', not 'Gets'
3355: D300 Expected """-quotes, got '''-quotes
3368:62: E202 whitespace before ')'
3368:55: E231 missing whitespace after ','
3368:58: E231 missing whitespace after ','
3371:50: E262 inline comment should start with '# '
3371: D401 First line should be imperative: 'Get', not 'Gets'
3371: D202 No blank lines allowed *after* function docstring, found 1
3371: D300 Expected """-quotes, got '''-quotes
3385:55: E231 missing whitespace after ','
3399:1: E303 too many blank lines (3)
3399:41: E262 inline comment should start with '# '
3399: D401 First line should be imperative: 'Get', not 'Gets'
3399: D400 First line should end with '.', not 'd'
3399: D205 Blank line missing between one-line summary and description
3399: D300 Expected """-quotes, got '''-quotes
3412:32: E127 continuation line over-indented for visual indent
3412:40: E202 whitespace before ')'
3418:49: E262 inline comment should start with '# '
3418: D401 First line should be imperative: 'Get', not 'Gets'
3418: D400 First line should end with '.', not 'e'
3418: D205 Blank line missing between one-line summary and description
3418: D300 Expected """-quotes, got '''-quotes
3437:32: E127 continuation line over-indented for visual indent
3437:55: E202 whitespace before ')'
3444:47: E262 inline comment should start with '# '
3444: D401 First line should be imperative: 'Get', not 'Gets'
3444: D300 Expected """-quotes, got '''-quotes
3457:29: E127 continuation line over-indented for visual indent
3457:35: E202 whitespace before ')'
3465:23: E127 continuation line over-indented for visual indent
3465:42: E202 whitespace before ')'
3468:49: E262 inline comment should start with '# '
3468: D400 First line should end with '.', not 'r'
3468: D205 Blank line missing between one-line summary and description
3468: D300 Expected """-quotes, got '''-quotes
3479:32: E202 whitespace before ')'
3488:23: E127 continuation line over-indented for visual indent
3491: D401 First line should be imperative: 'Get', not 'Gets'
3491: D300 Expected """-quotes, got '''-quotes
3501:23: E127 continuation line over-indented for visual indent
3501:34: E202 whitespace before ')'
3504: D401 First line should be imperative: 'Get', not 'Gets'
3504: D300 Expected """-quotes, got '''-quotes
3514:23: E127 continuation line over-indented for visual indent
3514:34: E202 whitespace before ')'
3517: D401 First line should be imperative: 'Get', not 'Gets'
3517: D300 Expected """-quotes, got '''-quotes
3537:69: E262 inline comment should start with '# '
3537: D401 First line should be imperative: 'Get', not 'Gets'
3537: D400 First line should end with '.', not 't'
3537: D205 Blank line missing between one-line summary and description
3537: D300 Expected """-quotes, got '''-quotes
3551:23: E127 continuation line over-indented for visual indent
3551:65: E202 whitespace before ')'
3554: D401 First line should be imperative: 'Get', not 'Gets'
3554: D400 First line should end with '.', not 'e'
3554: D205 Blank line missing between one-line summary and description
3554: D300 Expected """-quotes, got '''-quotes
3576:27: E127 continuation line over-indented for visual indent
3576:54: E202 whitespace before ')'
3591:26: E127 continuation line over-indented for visual indent
3591:62: E202 whitespace before ')'
3603:29: E127 continuation line over-indented for visual indent
3603:66: E202 whitespace before ')'
3609: D401 First line should be imperative: 'Get', not 'Gets'
3609: D300 Expected """-quotes, got '''-quotes
3626:29: E127 continuation line over-indented for visual indent
3626:44: E202 whitespace before ')'
3635:29: E127 continuation line over-indented for visual indent
3635:44: E202 whitespace before ')'
3642:48: E262 inline comment should start with '# '
3642: D401 First line should be imperative: 'Thi', not 'This'
3642: D400 First line should end with '.', not 'S'
3642: D205 Blank line missing between one-line summary and description
3661:25: E127 continuation line over-indented for visual indent
3661:41: E202 whitespace before ')'
3669:44: E262 inline comment should start with '# '
3669: D401 First line should be imperative: 'Get', not 'Gets'
3669: D300 Expected """-quotes, got '''-quotes
3695: D401 First line should be imperative: 'Get', not 'Gets'
3695: D300 Expected """-quotes, got '''-quotes
3710: D401 First line should be imperative: 'Get', not 'Gets'
3710: D300 Expected """-quotes, got '''-quotes
3723:23: E127 continuation line over-indented for visual indent
3723:77: E202 whitespace before ')'
3726: D401 First line should be imperative: 'Populate', not 'Populates'
3726: D300 Expected """-quotes, got '''-quotes
3726: D200 One-line docstring should not occupy 3 lines
3791:37: E262 inline comment should start with '# '
3791: D401 First line should be imperative: 'Examine', not 'Examines'
3791: D300 Expected """-quotes, got '''-quotes
3801:42: E127 continuation line over-indented for visual indent
3801:47: E202 whitespace before ')'
3805:45: E127 continuation line over-indented for visual indent
3805:69: E202 whitespace before ')'
3813: D401 First line should be imperative: 'Truncate', not 'Truncates'
3813: D300 Expected """-quotes, got '''-quotes
3823:57: E262 inline comment should start with '# '
3823: D401 First line should be imperative: 'Flushe', not 'Flushes'
3823: D300 Expected """-quotes, got '''-quotes
3850:1: E302 expected 2 blank lines, found 1
3850:55: E262 inline comment should start with '# '
3850: D401 First line should be imperative: 'Create', not 'Creates'
3850: D300 Expected """-quotes, got '''-quotes
3869:58: E262 inline comment should start with '# '
3869: D400 First line should end with '.', not 'n'
3869: D205 Blank line missing between one-line summary and description
3869: D300 Expected """-quotes, got '''-quotes
3899:59: E262 inline comment should start with '# '
3899: D400 First line should end with '.', not 'n'
3899: D205 Blank line missing between one-line summary and description
3899: D300 Expected """-quotes, got '''-quotes
3937:38: E262 inline comment should start with '# '
3937: D401 First line should be imperative: 'Get', not 'Gets'
3937: D300 Expected """-quotes, got '''-quotes
3955:56: E262 inline comment should start with '# '
3955: D401 First line should be imperative: 'Get', not 'Gets'
3955: D300 Expected """-quotes, got '''-quotes
3974:42: E262 inline comment should start with '# '
3974: D401 First line should be imperative: 'Get', not 'Gets'
3974: D300 Expected """-quotes, got '''-quotes
3992:58: E262 inline comment should start with '# '
3992: D401 First line should be imperative: 'Get', not 'Gets'
3992: D300 Expected """-quotes, got '''-quotes
4011: D401 First line should be imperative: 'Get', not 'Gets'
4011: D207 Docstring is under-indented
4011: D300 Expected """-quotes, got '''-quotes
4026: D401 First line should be imperative: 'Get', not 'Gets'
4026: D300 Expected """-quotes, got '''-quotes
4043:58: E703 statement ends with a semicolon
4048:44: E262 inline comment should start with '# '
4048: D401 First line should be imperative: 'Find', not 'Finds'
4048: D300 Expected """-quotes, got '''-quotes
4077:41: E262 inline comment should start with '# '
4077: D401 First line should be imperative: 'Get', not 'Gets'
4077: D300 Expected """-quotes, got '''-quotes
4092:38: E262 inline comment should start with '# '
4092: D401 First line should be imperative: 'Get', not 'Gets'
4092: D300 Expected """-quotes, got '''-quotes
4110:31: E262 inline comment should start with '# '
4110: D401 First line should be imperative: 'Get', not 'Gets'
4110: D300 Expected """-quotes, got '''-quotes
4124:32: E262 inline comment should start with '# '
4124: D401 First line should be imperative: 'Find', not 'Finds'
4124: D300 Expected """-quotes, got '''-quotes
4143:34: E262 inline comment should start with '# '
4143: D401 First line should be imperative: 'Get', not 'Gets'
4143: D300 Expected """-quotes, got '''-quotes
4159:22: E262 inline comment should start with '# '
4159: D401 First line should be imperative: 'Get', not 'Gets'
4159: D300 Expected """-quotes, got '''-quotes
4169: D401 First line should be imperative: 'Destroy', not 'Destroys'
4169: D300 Expected """-quotes, got '''-quotes
4169: D200 One-line docstring should not occupy 3 lines
4178: D401 First line should be imperative: 'Split', not 'Splits'
4178: D300 Expected """-quotes, got '''-quotes
4195:51: E262 inline comment should start with '# '
4195: D401 First line should be imperative: 'Create', not 'Creates'
4195: D400 First line should end with '.', not 'm'
4195: D205 Blank line missing between one-line summary and description
4212:36: E262 inline comment should start with '# '
4212: D400 First line should end with '.', not 't'
4212: D205 Blank line missing between one-line summary and description
4212: D300 Expected """-quotes, got '''-quotes
4224:20: E201 whitespace after '{'
4226:63: E202 whitespace before '}'
4243: D400 First line should end with '.', not ')'
4243: D205 Blank line missing between one-line summary and description
4243: D300 Expected """-quotes, got '''-quotes
4258:59: E262 inline comment should start with '# '
4258: D401 First line should be imperative: 'Get', not 'Gets'
4258: D400 First line should end with '.', not 'r'
4258: D205 Blank line missing between one-line summary and description
4258: D300 Expected """-quotes, got '''-quotes
4303: D401 First line should be imperative: 'Populate', not 'Populates'
4303: D400 First line should end with '.', not 'e'
4303: D205 Blank line missing between one-line summary and description
4303: D300 Expected """-quotes, got '''-quotes
4334:84: E502 the backslash is redundant between brackets
4334: D401 First line should be imperative: 'Populate', not 'Populates'
4334: D400 First line should end with '.', not 'e'
4334: D205 Blank line missing between one-line summary and description
4334: D300 Expected """-quotes, got '''-quotes
4381:51: E262 inline comment should start with '# '
4381: D401 First line should be imperative: 'Delete', not 'Deletes'
4381: D400 First line should end with '.', not 'd'
4381: D205 Blank line missing between one-line summary and description
4381: D300 Expected """-quotes, got '''-quotes
4391:42: E202 whitespace before ')'
4394:49: E262 inline comment should start with '# '
4394: D401 First line should be imperative: 'Delete', not 'Deletes'
4394: D300 Expected """-quotes, got '''-quotes
4405:20: E127 continuation line over-indented for visual indent
4405:33: E202 whitespace before ')'
4408:40: E262 inline comment should start with '# '
4408: D401 First line should be imperative: 'Get', not 'Gets'
4408: D300 Expected """-quotes, got '''-quotes
4421:27: E127 continuation line over-indented for visual indent
4421:44: E202 whitespace before ')'
4425:43: E262 inline comment should start with '# '
4425: D401 First line should be imperative: 'Get', not 'Gets'
4425: D400 First line should end with '.', not 'o'
4425: D205 Blank line missing between one-line summary and description
4425: D300 Expected """-quotes, got '''-quotes
4442:53: E262 inline comment should start with '# '
4442: D401 First line should be imperative: 'Get', not 'Gets'
4442: D300 Expected """-quotes, got '''-quotes
4455:35: E262 inline comment should start with '# '
4455: D401 First line should be imperative: 'Get', not 'Gets'
4455: D300 Expected """-quotes, got '''-quotes
4468:44: E262 inline comment should start with '# '
4468: D401 First line should be imperative: 'Restore', not 'Restores'
4468: D400 First line should end with '.', not 's'
4468: D205 Blank line missing between one-line summary and description
4468: D300 Expected """-quotes, got '''-quotes
4485: D400 First line should end with '.', not 'r'
4485: D205 Blank line missing between one-line summary and description
4485: D300 Expected """-quotes, got '''-quotes
4507:37: E127 continuation line over-indented for visual indent
4510:33: E126 continuation line over-indented for hanging indent
4514:36: E131 continuation line unaligned for hanging indent
4515:32: E126 continuation line over-indented for hanging indent
4516:23: E128 continuation line under-indented for visual indent
4530:37: E127 continuation line over-indented for visual indent
4533:33: E126 continuation line over-indented for hanging indent
4537:36: E131 continuation line unaligned for hanging indent
4538:32: E126 continuation line over-indented for hanging indent
4539:23: E128 continuation line under-indented for visual indent
4548:21: E127 continuation line over-indented for visual indent
4557:25: E127 continuation line over-indented for visual indent
4558:21: E127 continuation line over-indented for visual indent
4582:24: E127 continuation line over-indented for visual indent
4593:46: E262 inline comment should start with '# '
4593: D401 First line should be imperative: 'Delete', not 'Deletes'
4593: D400 First line should end with '.', not 'e'
4593: D205 Blank line missing between one-line summary and description
4593: D300 Expected """-quotes, got '''-quotes
4607:20: E127 continuation line over-indented for visual indent
4607:38: E202 whitespace before ')'
4610:23: E262 inline comment should start with '# '
4610: D401 First line should be imperative: 'Get', not 'Gets'
4610: D300 Expected """-quotes, got '''-quotes
4621:56: E262 inline comment should start with '# '
4621: D300 Expected """-quotes, got '''-quotes
4638:27: E127 continuation line over-indented for visual indent
4638:34: E202 whitespace before ')'
4646:27: E262 inline comment should start with '# '
4646: D400 First line should end with '.', not '!'
4646: D205 Blank line missing between one-line summary and description
4646: D300 Expected """-quotes, got '''-quotes
4691:5: E303 too many blank lines (2)
4709:35: E262 inline comment should start with '# '
4709: D401 First line should be imperative: 'Export', not 'Exports'
4709: D400 First line should end with '.', not 'r'
4709: D300 Expected """-quotes, got '''-quotes
4721:34: E262 inline comment should start with '# '
4721: D401 First line should be imperative: 'Export', not 'Exports'
4721: D400 First line should end with '.', not 'r'
4721: D300 Expected """-quotes, got '''-quotes
4738:46: E201 whitespace after '['