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`)
4: I102 copyright year is outdated, expected 2014 but got 2013
30:1: F401 'beautify_range_list' imported but unused
30:1: F401 'create_range_list' imported but unused
38:1: F999 redefinition of unused 'get_all_indexes' from line 38
51:1: F401 'CFG_LOGDIR' imported but unused
67:1: F401 'get_table_update_time' imported but unused
68:1: F401 'gis' imported but unused
71: D401 First line should be imperative: 'Run', not 'Runs'
71: D205 Blank line missing between one-line summary and description
71: D208 Docstring is over-indented
85: D401 First line should be imperative: 'Run', not 'Runs'
85: D205 Blank line missing between one-line summary and description
85: D208 Docstring is over-indented
100: D401 First line should be imperative: 'Prepare', not 'Prepares'
100: D205 Blank line missing between one-line summary and description
100: D208 Docstring is over-indented
130:59: E251 unexpected spaces around keyword / parameter equals
130:61: E251 unexpected spaces around keyword / parameter equals
130:74: E251 unexpected spaces around keyword / parameter equals
130:76: E251 unexpected spaces around keyword / parameter equals
130: D400 First line should end with '.', not 'a'
130: D205 Blank line missing between one-line summary and description
130: D208 Docstring is over-indented
187:56: E251 unexpected spaces around keyword / parameter equals
187:58: E251 unexpected spaces around keyword / parameter equals
187: D401 First line should be imperative: 'Remove', not 'Removes'
187: D205 Blank line missing between one-line summary and description
187: D208 Docstring is over-indented
201: D401 First line should be imperative: 'check', not 'checks'
201: D400 First line should end with '.', not 'r'
209: D103 Docstring missing
223: D103 Docstring missing
230: D203 Expected 1 blank line *before* class docstring, found 0
230: D400 First line should end with '.', not 'e'
230: D205 Blank line missing between one-line summary and description
230: D208 Docstring is over-indented
240: D400 First line should end with '.', not 'e'
245:49: E231 missing whitespace after ':'
245:27: E251 unexpected spaces around keyword / parameter equals
245:29: E251 unexpected spaces around keyword / parameter equals
246:45: E231 missing whitespace after ':'
250: D400 First line should end with '.', not 'p'
257:49: E231 missing whitespace after ':'
257:27: E251 unexpected spaces around keyword / parameter equals
257:29: E251 unexpected spaces around keyword / parameter equals
258:45: E231 missing whitespace after ':'
261: D401 First line should be imperative: 'Test', not 'Tests'
261: D202 No blank lines allowed *after* method docstring, found 1
261: D400 First line should end with '.', not 'e'
268: D401 First line should be imperative: 'Test', not 'Tests'
268: D202 No blank lines allowed *after* method docstring, found 1
268: D400 First line should end with '.', not 'e'
275: D401 First line should be imperative: 'Check', not 'Checks'
275: D202 No blank lines allowed *after* method docstring, found 1
275: D400 First line should end with '.', not "'"
278:24: E261 at least two spaces before inline comment
278:25: E262 inline comment should start with '# '
291: D401 First line should be imperative: 'Check', not 'Checks'
291: D202 No blank lines allowed *after* method docstring, found 1
291: D400 First line should end with '.', not "'"
308: D203 Expected 1 blank line *before* class docstring, found 0
308: D400 First line should end with '.', not 'e'
308: D205 Blank line missing between one-line summary and description
308: D208 Docstring is over-indented
318: D400 First line should end with '.', not 'e'
323:52: E231 missing whitespace after ':'
323:27: E251 unexpected spaces around keyword / parameter equals
323:29: E251 unexpected spaces around keyword / parameter equals
324:45: E231 missing whitespace after ':'
328: D400 First line should end with '.', not 'p'
335:52: E231 missing whitespace after ':'
335:27: E251 unexpected spaces around keyword / parameter equals
335:29: E251 unexpected spaces around keyword / parameter equals
336:45: E231 missing whitespace after ':'
340:5: E303 too many blank lines (2)
340: D401 First line should be imperative: 'Test', not 'Tests'
340: D202 No blank lines allowed *after* method docstring, found 1
340: D400 First line should end with '.', not 's'
351: D401 First line should be imperative: 'Test', not 'Tests'
351: D202 No blank lines allowed *after* method docstring, found 1
351: D400 First line should end with '.', not 's'
363: D401 First line should be imperative: 'Check', not 'Checks'
363: D202 No blank lines allowed *after* method docstring, found 1
363: D400 First line should end with '.', not "'"
382: D401 First line should be imperative: 'Test', not 'Tests'
382: D202 No blank lines allowed *after* method docstring, found 1
382: D400 First line should end with '.', not '0'
395: D203 Expected 1 blank line *before* class docstring, found 0
395: D400 First line should end with '.', not 'e'
395: D205 Blank line missing between one-line summary and description
395: D208 Docstring is over-indented
405: D400 First line should end with '.', not 'e'
410:51: E231 missing whitespace after ':'
410:27: E251 unexpected spaces around keyword / parameter equals
410:29: E251 unexpected spaces around keyword / parameter equals
411:45: E231 missing whitespace after ':'
415: D400 First line should end with '.', not 'p'
422:51: E231 missing whitespace after ':'
422:27: E251 unexpected spaces around keyword / parameter equals
422:29: E251 unexpected spaces around keyword / parameter equals
423:45: E231 missing whitespace after ':'
427:5: E303 too many blank lines (2)
427: D401 First line should be imperative: 'Test', not 'Tests'
427: D202 No blank lines allowed *after* method docstring, found 1
427: D400 First line should end with '.', not 'l'
440:5: E303 too many blank lines (2)
440: D401 First line should be imperative: 'Test', not 'Tests'
440: D202 No blank lines allowed *after* method docstring, found 1
440: D400 First line should end with '.', not "'"
459: D203 Expected 1 blank line *before* class docstring, found 0
459: D400 First line should end with '.', not 'e'
459: D205 Blank line missing between one-line summary and description
459: D208 Docstring is over-indented
469: D400 First line should end with '.', not 'e'
474:45: E231 missing whitespace after ':'
474:27: E251 unexpected spaces around keyword / parameter equals
474:29: E251 unexpected spaces around keyword / parameter equals
478:5: E303 too many blank lines (2)
479: D400 First line should end with '.', not 'p'
486:45: E231 missing whitespace after ':'
486:27: E251 unexpected spaces around keyword / parameter equals
486:29: E251 unexpected spaces around keyword / parameter equals
490:5: E303 too many blank lines (2)
490: D401 First line should be imperative: 'check', not 'checks'
490: D400 First line should end with '.', not '3'
502:5: E303 too many blank lines (2)
502: D401 First line should be imperative: 'check', not 'checks'
502: D400 First line should end with '.', not '1'
514:5: E303 too many blank lines (2)
514: D401 First line should be imperative: 'check', not 'checks'
514: D400 First line should end with '.', not 'x'
529: D203 Expected 1 blank line *before* class docstring, found 0
529: D208 Docstring is over-indented
529: D200 One-line docstring should not occupy 3 lines
538: D400 First line should end with '.', not 'e'
545: D400 First line should end with '.', not 'p'
551: D401 First line should be imperative: 'check', not 'checks'
551: D400 First line should end with '.', not 's'
568: D401 First line should be imperative: 'check', not 'checks'
568: D400 First line should end with '.', not 'o'
583: D203 Expected 1 blank line *before* class docstring, found 0
583: D208 Docstring is over-indented
583: D200 One-line docstring should not occupy 3 lines
592: D400 First line should end with '.', not 'e'
599: D400 First line should end with '.', not 'p'
605: D401 First line should be imperative: 'check', not 'checks'
605: D400 First line should end with '.', not '1'
619: D401 First line should be imperative: 'check', not 'checks'
619: D400 First line should end with '.', not '2'
634: D203 Expected 1 blank line *before* class docstring, found 0
634: D208 Docstring is over-indented
634: D200 One-line docstring should not occupy 3 lines
639: D401 First line should be imperative: 'check', not 'checks'
639: D400 First line should end with '.', not 's'
657: D401 First line should be imperative: 'check', not 'checks'
657: D400 First line should end with '.', not 'o'
671: D401 First line should be imperative: 'check', not 'checks'
671: D400 First line should end with '.', not '1'
685: D401 First line should be imperative: 'check', not 'checks'
685: D400 First line should end with '.', not '2'
700: D203 Expected 1 blank line *before* class docstring, found 0
700: D208 Docstring is over-indented
700: D200 One-line docstring should not occupy 3 lines
709: D400 First line should end with '.', not 'e'
716: D400 First line should end with '.', not 'p'
722: D401 First line should be imperative: 'check', not 'checks'
722: D400 First line should end with '.', not 'o'
737: D203 Expected 1 blank line *before* class docstring, found 0
737: D208 Docstring is over-indented
737: D200 One-line docstring should not occupy 3 lines
742: D401 First line should be imperative: 'check', not 'checks'
742: D400 First line should end with '.', not 's'
760: D401 First line should be imperative: 'check', not 'checks'
760: D400 First line should end with '.', not '1'
774: D401 First line should be imperative: 'check', not 'checks'
774: D400 First line should end with '.', not '2'
788: D401 First line should be imperative: 'check', not 'checks'
788: D400 First line should end with '.', not 'o'
802: D401 First line should be imperative: 'check', not 'checks'
802: D400 First line should end with '.', not 'J'
816: D401 First line should be imperative: 'check', not 'checks'
816: D400 First line should end with '.', not 'C'
831: D203 Expected 1 blank line *before* class docstring, found 0
831: D400 First line should end with '.', not 'e'
831: D205 Blank line missing between one-line summary and description
831: D208 Docstring is over-indented
841: D400 First line should end with '.', not 'e'
846:45: E231 missing whitespace after ':'
846:27: E251 unexpected spaces around keyword / parameter equals
846:29: E251 unexpected spaces around keyword / parameter equals
850: D400 First line should end with '.', not 'p'
857:45: E231 missing whitespace after ':'
857:27: E251 unexpected spaces around keyword / parameter equals
857:29: E251 unexpected spaces around keyword / parameter equals
861:5: E303 too many blank lines (2)
861: D401 First line should be imperative: 'check', not 'checks'
861: D400 First line should end with '.', not 's'
873:5: E303 too many blank lines (2)
873: D401 First line should be imperative: 'check', not 'checks'
873: D400 First line should end with '.', not 'x'
888: D203 Expected 1 blank line *before* class docstring, found 0
888: D400 First line should end with '.', not 's'
888: D205 Blank line missing between one-line summary and description
888: D208 Docstring is over-indented
894: D401 First line should be imperative: 'check', not 'checks'
894: D400 First line should end with '.', not 'k'
905: D401 First line should be imperative: 'check', not 'checks'
905: D400 First line should end with '.', not '1'
908:18: E127 continuation line over-indented for visual indent
910:60: E231 missing whitespace after ','
912: D401 First line should be imperative: 'check', not 'checks'
912: D400 First line should end with '.', not '0'
915:18: E127 continuation line over-indented for visual indent
917:60: E231 missing whitespace after ','
919: D401 First line should be imperative: 'check', not 'checks'
919: D400 First line should end with '.', not '2'
922:18: E127 continuation line over-indented for visual indent
924:60: E231 missing whitespace after ','
927: D203 Expected 1 blank line *before* class docstring, found 0
927: D400 First line should end with '.', not 'e'
927: D205 Blank line missing between one-line summary and description
927: D208 Docstring is over-indented
933: D401 First line should be imperative: 'test', not 'tests'
933: D400 First line should end with '.', not 'n'
944: D401 First line should be imperative: 'test', not 'tests'
944: D400 First line should end with '.', not '7'
958: D203 Expected 1 blank line *before* class docstring, found 0
958: D208 Docstring is over-indented
958: D200 One-line docstring should not occupy 3 lines
963: D400 First line should end with '.', not 'x'
970: D400 First line should end with '.', not 'd'
977: D400 First line should end with '.', not 'd'
984: D400 First line should end with '.', not 'e'
991: D400 First line should end with '.', not 'd'
996:55: E231 missing whitespace after ','
999: D203 Expected 1 blank line *before* class docstring, found 0
999: D204 Expected 1 blank line *after* class docstring, found 0
999: D400 First line should end with '.', not 'e'
999: D205 Blank line missing between one-line summary and description
999: D208 Docstring is over-indented
1008: D400 First line should end with '.', not 'e'
1013:45: E231 missing whitespace after ':'
1013:27: E251 unexpected spaces around keyword / parameter equals
1013:29: E251 unexpected spaces around keyword / parameter equals
1017: D400 First line should end with '.', not 'p'
1024:45: E231 missing whitespace after ':'
1024:27: E251 unexpected spaces around keyword / parameter equals
1024:29: E251 unexpected spaces around keyword / parameter equals
1028:5: E303 too many blank lines (2)
1028: D401 First line should be imperative: 'check', not 'checks'
1028: D400 First line should end with '.', not "'"
1040:5: E303 too many blank lines (2)
1040: D401 First line should be imperative: 'check', not 'checks'
1040: D400 First line should end with '.', not 'x'
1055: D203 Expected 1 blank line *before* class docstring, found 0
1055: D204 Expected 1 blank line *after* class docstring, found 0
1055: D208 Docstring is over-indented
1055: D200 One-line docstring should not occupy 3 lines
1063: D400 First line should end with '.', not 'e'
1068:42: E231 missing whitespace after ':'
1068:27: E251 unexpected spaces around keyword / parameter equals
1068:29: E251 unexpected spaces around keyword / parameter equals
1069:45: E231 missing whitespace after ':'
1073: D400 First line should end with '.', not 'p'
1080:42: E231 missing whitespace after ':'
1080:27: E251 unexpected spaces around keyword / parameter equals
1080:29: E251 unexpected spaces around keyword / parameter equals
1081:45: E231 missing whitespace after ':'
1085:5: E303 too many blank lines (2)
1085: D400 First line should end with '.', not 'e'
1095: D400 First line should end with '.', not 'e'
1105: D209 Put multi-line docstring closing quotes on separate line
1105: D203 Expected 1 blank line *before* class docstring, found 0
1105: D400 First line should end with '.', not 'a'
1105: D205 Blank line missing between one-line summary and description
1110: D202 No blank lines allowed *after* method docstring, found 1
1110: D400 First line should end with '.', not 'd'
1123:28: E261 at least two spaces before inline comment
1132: D209 Put multi-line docstring closing quotes on separate line
1132: D400 First line should end with '.', not 'd'
1132: D205 Blank line missing between one-line summary and description
1149: D400 First line should end with '.', not 'd'
1161: D400 First line should end with '.', not 'd'
1163:20: E261 at least two spaces before inline comment
1168: D400 First line should end with '.', not 'D'
1182: D401 First line should be imperative: 'Insert', not 'Inserts'
1182: D202 No blank lines allowed *after* function docstring, found 1
1182: D400 First line should end with '.', not 'd'
1196:81: E231 missing whitespace after ','
1197:94: E231 missing whitespace after ','
1212:41: E251 unexpected spaces around keyword / parameter equals
1212:43: E251 unexpected spaces around keyword / parameter equals
1225: D401 First line should be imperative: 'Insert', not 'Inserts'
1225: D202 No blank lines allowed *after* function docstring, found 1
1225: D400 First line should end with '.', not 'd'
1239:81: E231 missing whitespace after ','
1240:94: E231 missing whitespace after ','
1254:41: E251 unexpected spaces around keyword / parameter equals
1254:43: E251 unexpected spaces around keyword / parameter equals
1267: D103 Docstring missing
1300: D103 Docstring missing
1307: D401 First line should be imperative: 'create', not 'creates'
1307: D400 First line should end with '.', not 's'
1319: D401 First line should be imperative: 'remove', not 'removes'
1319: D400 First line should end with '.', not 'x'
1328: D203 Expected 1 blank line *before* class docstring, found 0
1328: D400 First line should end with '.', not "'"
1328: D205 Blank line missing between one-line summary and description
1338: D102 Docstring missing
1349: D102 Docstring missing
1356: D400 First line should end with '.', not 'y'
1359:66: E231 missing whitespace after ','
1363: D400 First line should end with '.', not 'x'
1366:66: E231 missing whitespace after ','
1367:67: E231 missing whitespace after ','
1369: D400 First line should end with '.', not 'x'
1372:66: E231 missing whitespace after ','
1373:58: E231 missing whitespace after ','
1375: D400 First line should end with '.', not 'x'
1378:66: E231 missing whitespace after ','
1379:61: E231 missing whitespace after ','
1381: D400 First line should end with '.', not 'x'
1384:66: E231 missing whitespace after ','
1387: D400 First line should end with '.', not 't'
1392: D400 First line should end with '.', not 's'
1398: D400 First line should end with '.', not '0'
1401:43: E203 whitespace before ':'
1401:44: E231 missing whitespace after ':'
1406:1: E303 too many blank lines (4)
1406: D101 Docstring missing
1413: D102 Docstring missing
1422:49: E251 unexpected spaces around keyword / parameter equals
1422:51: E251 unexpected spaces around keyword / parameter equals
1431: D102 Docstring missing
1438:49: E251 unexpected spaces around keyword / parameter equals
1438:51: E251 unexpected spaces around keyword / parameter equals
1446:5: E303 too many blank lines (2)
1458:5: E303 too many blank lines (2)
1470:5: E303 too many blank lines (2)
1487: D203 Expected 1 blank line *before* class docstring, found 0
1487: D400 First line should end with '.', not "'"
1490: D400 First line should end with '.', not 'x'
1494: D400 First line should end with '.', not 'x'
1498: D400 First line should end with '.', not ')'
1502: D400 First line should end with '.', not "'"
1511: D400 First line should end with '.', not 's'
1519: D400 First line should end with '.', not "'"
1523: D400 First line should end with '.', not '%'
1528: D400 First line should end with '.', not 'y'
1532: D400 First line should end with '.', not "'"
1534:96: E231 missing whitespace after ','
1536: D400 First line should end with '.', not "'"
1541: D400 First line should end with '.', not "'"
1544:25: E128 continuation line under-indented for visual indent
1546: D400 First line should end with '.', not "'"
1548:51: E202 whitespace before ')'
1549:25: E128 continuation line under-indented for visual indent
1551: D400 First line should end with '.', not 'g'
1557: D203 Expected 1 blank line *before* class docstring, found 0
1557: D204 Expected 1 blank line *after* class docstring, found 2
1557: D400 First line should end with '.', not "'"
1561:5: E303 too many blank lines (2)
1561: D400 First line should end with '.', not 'x'
1565: D400 First line should end with '.', not 'x'
1567:65: E231 missing whitespace after ','
1569: D400 First line should end with '.', not 'x'
1576: D400 First line should end with '.', not 'r'
1581: D400 First line should end with '.', not 'x'
1584:30: E203 whitespace before ','
1586: D400 First line should end with '.', not 'x'
1591: D400 First line should end with '.', not 'x'
1596: D400 First line should end with '.', not 'x'
1601: D400 First line should end with '.', not 'x'
1607: D400 First line should end with '.', not 'x'
1614: D203 Expected 1 blank line *before* class docstring, found 0
1614: D400 First line should end with '.', not 'd'
1617: D400 First line should end with '.', not 'e'
1632: D400 First line should end with '.', not 'e'
1647: D400 First line should end with '.', not 'e'
1662: D400 First line should end with '.', not 'e'
1672: D400 First line should end with '.', not 'e'
1682: D400 First line should end with '.', not 'e'
1693: D203 Expected 1 blank line *before* class docstring, found 0
1693: D400 First line should end with '.', not 'x'
1702: D401 First line should be imperative: 'create', not 'creates'
1702: D400 First line should end with '.', not 'x'
1718: D401 First line should be imperative: 'reindexe', not 'reindexes'
1718: D400 First line should end with '.', not 'r'
1727:34: E712 comparison to True should be 'if cond is True:' or 'if cond:'
1738:5: E303 too many blank lines (2)
1739: D102 Docstring missing
1747: D102 Docstring missing
1753: D400 First line should end with '.', not 'x'
1758: D400 First line should end with '.', not '1'
1764: D400 First line should end with '.', not '3'
1771: D400 First line should end with '.', not 'l'
1781: D101 Docstring missing
1792: D102 Docstring missing
1796:13: F841 local variable 'wtabs' is assigned to but never used
1809:5: E303 too many blank lines (2)
1810: D102 Docstring missing
1814: D400 First line should end with '.', not 's'
1820: D400 First line should end with '.', not 's'
1826: D400 First line should end with '.', not 'x'
1832: D400 First line should end with '.', not 'm'
1838: D400 First line should end with '.', not 'm'
1844: D400 First line should end with '.', not '6'
1852: D400 First line should end with '.', not '0'
1860: D400 First line should end with '.', not 's'
1870: D400 First line should end with '.', not '8'
1877:46: E231 missing whitespace after ','
1881: D209 Put multi-line docstring closing quotes on separate line
1881: D203 Expected 1 blank line *before* class docstring, found 0
1881: D400 First line should end with '.', not 'n'
1881: D205 Blank line missing between one-line summary and description
1885: D400 First line should end with '.', not 's'
1895: D400 First line should end with '.', not 's'
1908: D400 First line should end with '.', not 's'
1927: D203 Expected 1 blank line *before* class docstring, found 0
1927: D204 Expected 1 blank line *after* class docstring, found 0
1927: D400 First line should end with '.', not 'n'
1927: D205 Blank line missing between one-line summary and description
1927: D208 Docstring is over-indented
1937: D102 Docstring missing
1940:13: F841 local variable 'index_id' is assigned to but never used
1961: D102 Docstring missing
1963:13: F841 local variable 'index_id' is assigned to but never used
1984: D400 First line should end with '.', not 't'
1995: D400 First line should end with '.', not 'y'
2006: D400 First line should end with '.', not 'x'
2014: D400 First line should end with '.', not 'e'
2021: D400 First line should end with '.', not '3'
2032: D400 First line should end with '.', not '9'
2039: D400 First line should end with '.', not 'e'
2045: D400 First line should end with '.', not 'x'
2057: D209 Put multi-line docstring closing quotes on separate line
2057: D203 Expected 1 blank line *before* class docstring, found 0
2057: D204 Expected 1 blank line *after* class docstring, found 2
2057: D400 First line should end with '.', not 'd'
2057: D205 Blank line missing between one-line summary and description
2057: D208 Docstring is over-indented
2062:5: E303 too many blank lines (2)
2063: D401 First line should be imperative: 'indexe', not 'indexes'
2063: D400 First line should end with '.', not 'e'
2065:9: F841 local variable 'index_id' is assigned to but never used
2072: D401 First line should be imperative: 'trigger', not 'triggers'
2072: D400 First line should end with '.', not 'x'
2077: D400 First line should end with '.', not 's'
2079:49: E231 missing whitespace after ','
2085: D400 First line should end with '.', not 's'
2087:53: E231 missing whitespace after ','
2087:56: E231 missing whitespace after ','
2087:60: E231 missing whitespace after ','
2095: D400 First line should end with '.', not 's'
2097:51: E231 missing whitespace after ','
2104: D400 First line should end with '.', not 'e'
2111: D400 First line should end with '.', not 'd'
2115:52: E231 missing whitespace after ','
2116:52: E231 missing whitespace after ','
2117:52: E231 missing whitespace after ','
2129: D101 Docstring missing
2131: D400 First line should end with '.', not 'e'
2140: D400 First line should end with '.', not 't'
2147:29: E127 continuation line over-indented for visual indent
2150: D101 Docstring missing
2153:5: E303 too many blank lines (2)
2153: D400 First line should end with '.', not 'e'
2163: D400 First line should end with '.', not 'd'
2171: D400 First line should end with '.', not 'd'
2179: D400 First line should end with '.', not 'e'