Difference between revisions of "User:Alvonruff/Python3 Files"

From ISFDB
Jump to navigation Jump to search
 
(149 intermediate revisions by the same user not shown)
Line 9: Line 9:
 
* While most SQL code is in SQLparsing.py, it is also peppered across many other files. This code will not work any longer, as Python3 requires moving to a new connector. I've created an ISFDB connector class which is portable across Python2 and Python3. Some usage patterns are:
 
* While most SQL code is in SQLparsing.py, it is also peppered across many other files. This code will not work any longer, as Python3 requires moving to a new connector. I've created an ISFDB connector class which is portable across Python2 and Python3. Some usage patterns are:
  
 +
FETCHMANY:
 
     def _StandardQuery(query):
 
     def _StandardQuery(query):
 
         CNX = MYSQL_CONNECTOR()
 
         CNX = MYSQL_CONNECTOR()
Line 19: Line 20:
 
         return results
 
         return results
  
 +
NUMROWS:
 
     def _BinaryQuery(query):
 
     def _BinaryQuery(query):
 
         CNX = MYSQL_CONNECTOR()
 
         CNX = MYSQL_CONNECTOR()
Line 27: Line 29:
 
                 return 0
 
                 return 0
  
 +
FETCHONE:
 
     def _OneRow(query):
 
     def _OneRow(query):
 
         CNX = MYSQL_CONNECTOR()
 
         CNX = MYSQL_CONNECTOR()
Line 36: Line 39:
 
                 return None
 
                 return None
  
 +
DB_ESCAPE_STRING:
 
     def SQLgetAuthorData(author):
 
     def SQLgetAuthorData(author):
 
         CNX = MYSQL_CONNECTOR()
 
         CNX = MYSQL_CONNECTOR()
Line 45: Line 49:
 
         else:
 
         else:
 
                 return 0
 
                 return 0
 +
 +
DB_INSERT_ID:
 +
        CNX = MYSQL_CONNECTOR()
 +
        query = "insert into titles(title_title) values('%s');" % (CNX.DB_ESCAPE_STRING(title))
 +
        CNX.DB_QUERY(query)
 +
        record = CNX.DB_INSERT_ID()
  
 
* We also need to remove all of the stray '''import MySQLdb''' statements. MySQLdb is imported by SQLparsing under Python2, and causes an error on Python3.
 
* We also need to remove all of the stray '''import MySQLdb''' statements. MySQLdb is imported by SQLparsing under Python2, and causes an error on Python3.
  
 
==Common==
 
==Common==
{| border="1" cellpadding="2" style="border-collapse:collapse; text-align:center; width:30%;"
+
{| border="1" cellpadding="2" style="border-collapse:collapse; text-align:left; width:30%;"
 
! File
 
! File
 
! Tabs
 
! Tabs
Line 55: Line 65:
 
! String
 
! String
 
! DB Connector
 
! DB Connector
 +
! encode
 +
! FieldStorage
 
|-
 
|-
 
| authorClass.py
 
| authorClass.py
Line 60: Line 72:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
| -
 
| Y
 
| Y
 
|-
 
|-
Line 66: Line 80:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
| -
 
| Y
 
| Y
 
|-
 
|-
Line 72: Line 88:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
| -
 
| Y
 
| Y
 
|-
 
|-
Line 78: Line 96:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
| -
 
| Y
 
| Y
 
|-
 
|-
Line 84: Line 104:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
| -
 
| -
 
|-
 
|-
Line 91: Line 113:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| isfdblib.py
 
| isfdblib.py
 +
| -
 +
| -
 
| -
 
| -
 
| -
 
| -
Line 103: Line 129:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
| -
 
|-
 
|-
 
| library.py
 
| library.py
Line 109: Line 137:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
| -
 
|-
 
|-
 
| localdefs.py
 
| localdefs.py
 +
| -
 +
| -
 
| -
 
| -
 
| -
 
| -
Line 121: Line 153:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| navbar.py
 
| navbar.py
Line 127: Line 161:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| pubClass.py
 
| pubClass.py
Line 132: Line 168:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
| -
 
| Y
 
| Y
 
|-
 
|-
Line 138: Line 176:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
| -
 
| Y
 
| Y
 
|-
 
|-
Line 144: Line 184:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
| -
 
| Y
 
| Y
 
|-
 
|-
Line 150: Line 192:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
| -
 
| Y
 
| Y
 
|-
 
|-
Line 157: Line 201:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| SQLparsing.py
 
| SQLparsing.py
Line 163: Line 209:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
| -
 
|-
 
|-
 
| templateClass.py
 
| templateClass.py
Line 168: Line 216:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
| -
 
| Y
 
| Y
 
|-
 
|-
Line 174: Line 224:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
| -
 
| Y
 
| Y
 
|-
 
|-
Line 180: Line 232:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
| -
 
| Y
 
| Y
 
|-
 
|-
Line 187: Line 241:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
| -
 
|-
 
|-
 
|}
 
|}
  
 
==Biblio==
 
==Biblio==
{| border="1" cellpadding="2" style="border-collapse:collapse; text-align:center; width:30%;"
+
{| border="1" cellpadding="2" style="border-collapse:collapse; text-align:left; width:30%;"
 
! File
 
! File
 
! Tabs
 
! Tabs
Line 197: Line 253:
 
! String
 
! String
 
! DB Connector
 
! DB Connector
 +
! encode
 +
! FieldStorage
 
|-
 
|-
 
| adv_identifier_search.py
 
| adv_identifier_search.py
Line 203: Line 261:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| adv_notes_search.py
 
| adv_notes_search.py
Line 209: Line 269:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| advSearchClass.py
 
| advSearchClass.py
Line 215: Line 277:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| adv_search_menu.py
 
| adv_search_menu.py
Line 221: Line 285:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| adv_search_results.py
 
| adv_search_results.py
Line 226: Line 292:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
| -
 
| Y
 
| Y
 
|-
 
|-
Line 233: Line 301:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| adv_user_search.py
 
| adv_user_search.py
Line 239: Line 309:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| adv_web_page_search.py
 
| adv_web_page_search.py
Line 245: Line 317:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| ae.py
 
| ae.py
Line 251: Line 325:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| author_history.py
 
| author_history.py
Line 257: Line 333:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| authors_by_debut_year.py
 
| authors_by_debut_year.py
Line 263: Line 341:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| authors_by_debut_year_table.py
 
| authors_by_debut_year_table.py
Line 269: Line 349:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| authortags.py
 
| authortags.py
Line 275: Line 357:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| award_category_history.py
 
| award_category_history.py
Line 281: Line 365:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| award_category.py
 
| award_category.py
Line 287: Line 373:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| award_category_year.py
 
| award_category_year.py
Line 293: Line 381:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| award_details.py
 
| award_details.py
Line 299: Line 389:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| award_directory.py
 
| award_directory.py
Line 305: Line 397:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| award_history.py
 
| award_history.py
Line 311: Line 405:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| awardtype_history.py
 
| awardtype_history.py
Line 317: Line 413:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| awardtype.py
 
| awardtype.py
Line 323: Line 421:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| ay.py
 
| ay.py
Line 329: Line 429:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| biblio.py
 
| biblio.py
Line 335: Line 437:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| calendarClass.py
 
| calendarClass.py
Line 341: Line 445:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| calendar_day.py
 
| calendar_day.py
Line 347: Line 453:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| calendar_menu.py
 
| calendar_menu.py
Line 353: Line 461:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| cancelsubmission.py
 
| cancelsubmission.py
Line 359: Line 469:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| changed_verified_pubs.py
 
| changed_verified_pubs.py
Line 365: Line 477:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| ch.py
 
| ch.py
Line 371: Line 485:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| common.py
 
| common.py
Line 377: Line 493:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| diffselect.py
 
| diffselect.py
Line 383: Line 501:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| directory.py
 
| directory.py
Line 389: Line 509:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| dologin.py
 
| dologin.py
Line 395: Line 517:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| dologout.py
 
| dologout.py
Line 401: Line 525:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| dumpxml.py
 
| dumpxml.py
Line 407: Line 533:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| ea.py
 
| ea.py
Line 413: Line 541:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| eaw.py
 
| eaw.py
Line 419: Line 549:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| external_id_search_results.py
 
| external_id_search_results.py
Line 424: Line 556:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
| -
 
| Y
 
| Y
 
|-
 
|-
Line 431: Line 565:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| google_search_redirect.py
 
| google_search_redirect.py
Line 437: Line 573:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| index.py
 
| index.py
Line 443: Line 581:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| languages.py
 
| languages.py
Line 449: Line 589:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| most_popular.py
 
| most_popular.py
Line 455: Line 597:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| most_popular_table.py
 
| most_popular_table.py
Line 461: Line 605:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| most_reviewed.py
 
| most_reviewed.py
Line 467: Line 613:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| most_reviewed_table.py
 
| most_reviewed_table.py
Line 473: Line 621:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| mylanguages.py
 
| mylanguages.py
Line 479: Line 629:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| mypreferences.py
 
| mypreferences.py
Line 485: Line 637:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| myrecent.py
 
| myrecent.py
Line 491: Line 645:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| my_removed_secondary_verifications.py
 
| my_removed_secondary_verifications.py
Line 497: Line 653:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| my_secondary_verifications.py
 
| my_secondary_verifications.py
Line 503: Line 661:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| my_unstable_ISBN_verifications.py
 
| my_unstable_ISBN_verifications.py
Line 509: Line 669:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| my_unstable_verifications.py
 
| my_unstable_verifications.py
Line 515: Line 677:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| myverificationsClass.py
 
| myverificationsClass.py
Line 521: Line 685:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| my_verifications_menu.py
 
| my_verifications_menu.py
Line 527: Line 693:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| myvotes.py
 
| myvotes.py
Line 533: Line 701:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| mywebsites.py
 
| mywebsites.py
Line 539: Line 709:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
| -
 
|-
 
|-
 
| note.py
 
| note.py
Line 545: Line 717:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| note_search_results.py
 
| note_search_results.py
Line 551: Line 725:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| pe.py
 
| pe.py
Line 557: Line 733:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| pl.py
 
| pl.py
Line 563: Line 741:
 
| Y
 
| Y
 
| Y
 
| Y
 +
|
 +
|
 
|-
 
|-
 
| popular_authors.py
 
| popular_authors.py
Line 569: Line 749:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| popular_authors_table.py
 
| popular_authors_table.py
Line 575: Line 757:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| pub_history.py
 
| pub_history.py
Line 581: Line 765:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| publisher_authors.py
 
| publisher_authors.py
Line 587: Line 773:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| publisher_history.py
 
| publisher_history.py
Line 593: Line 781:
 
| Y
 
| Y
 
| Y
 
| Y
 +
|
 +
|
 
|-
 
|-
 
| publisher_one_author.py
 
| publisher_one_author.py
Line 599: Line 789:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| publisher.py
 
| publisher.py
Line 605: Line 797:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| publisheryear.py
 
| publisheryear.py
Line 611: Line 805:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| pubseries_history.py
 
| pubseries_history.py
Line 617: Line 813:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| pubseries.py
 
| pubseries.py
Line 623: Line 821:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| pubs_not_in_series.py
 
| pubs_not_in_series.py
Line 629: Line 829:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| recent_activity_menu.py
 
| recent_activity_menu.py
Line 635: Line 837:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| recent_primary_ver.py
 
| recent_primary_ver.py
Line 641: Line 845:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| recent.py
 
| recent.py
Line 647: Line 853:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| recentver.py
 
| recentver.py
Line 653: Line 861:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| removed_secondary_verifications.py
 
| removed_secondary_verifications.py
Line 659: Line 869:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| se.py
 
| se.py
Line 665: Line 877:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| seriesgrid.py
 
| seriesgrid.py
Line 671: Line 885:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| series_history.py
 
| series_history.py
Line 677: Line 893:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| seriestags.py
 
| seriestags.py
Line 683: Line 901:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| stats-and-tops.py
 
| stats-and-tops.py
Line 689: Line 909:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| stats.py
 
| stats.py
Line 695: Line 917:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| submitdiff.py
 
| submitdiff.py
Line 701: Line 925:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| submitlogin.py
 
| submitlogin.py
Line 707: Line 933:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| Y
 +
|
 
|-
 
|-
 
| submitmylanguages.py
 
| submitmylanguages.py
Line 713: Line 941:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| submitmywebsites.py
 
| submitmywebsites.py
Line 719: Line 949:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| submitpreferences.py
 
| submitpreferences.py
Line 725: Line 957:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| tag_author.py
 
| tag_author.py
Line 731: Line 965:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| tag.py
 
| tag.py
Line 737: Line 973:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| titlecovers.py
 
| titlecovers.py
Line 743: Line 981:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| title_history.py
 
| title_history.py
Line 749: Line 989:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| title.py
 
| title.py
Line 755: Line 997:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| topcontrib.py
 
| topcontrib.py
Line 761: Line 1,005:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| user_search_results.py
 
| user_search_results.py
Line 767: Line 1,013:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| usertag.py
 
| usertag.py
Line 773: Line 1,021:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| usertitles.py
 
| usertitles.py
Line 779: Line 1,029:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| userver.py
 
| userver.py
Line 785: Line 1,037:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| utils.py
 
| utils.py
Line 791: Line 1,045:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| verification_sources.py
 
| verification_sources.py
Line 797: Line 1,053:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| view_submission.py
 
| view_submission.py
Line 803: Line 1,061:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
| webpages_search_results.py
 
| webpages_search_results.py
Line 809: Line 1,069:
 
| Y
 
| Y
 
| Y
 
| Y
 +
| -
 +
|
 
|-
 
|-
 
|}
 
|}
  
 
==Edit==
 
==Edit==
{| border="1" cellpadding="2" style="border-collapse:collapse; text-align:center; width:30%;"
+
{| border="1" cellpadding="2" style="border-collapse:collapse; text-align:left; width:30%;"
 
! File
 
! File
 
! Tabs
 
! Tabs
Line 851: Line 1,113:
 
|-
 
|-
 
| addvariant.py
 
| addvariant.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| add_verification_source.py
 
| add_verification_source.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| as_merge.py
 
| as_merge.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| av_merge.py
 
| av_merge.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| cleanup_lib.py
 
| cleanup_lib.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| cleanup.py
 
| cleanup.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| cleanup_report.py
 
| cleanup_report.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| clonecontent.py
 
| clonecontent.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| clone_intermediate.py
 
| clone_intermediate.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| clonepub.py
 
| clonepub.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| deleteawardcat.py
 
| deleteawardcat.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| deleteaward.py
 
| deleteaward.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| deleteawardtype.py
 
| deleteawardtype.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| deletepub.py
 
| deletepub.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| deleteseries.py
 
| deleteseries.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| deletetitle.py
 
| deletetitle.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| editauth.py
 
| editauth.py
Line 953: Line 1,215:
 
|-
 
|-
 
| editawardcat.py
 
| editawardcat.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
|-
+
|-
| editaward.py
+
| editaward.py
 
| Y
 
| Y
 
| Y
 
| Y
Line 965: Line 1,227:
 
|-
 
|-
 
| editawardtype.py
 
| editawardtype.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| editpublisher.py
 
| editpublisher.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| editpub.py
 
| editpub.py
Line 983: Line 1,245:
 
|-
 
|-
 
| editpubseries.py
 
| editpubseries.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| editseries.py
 
| editseries.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
 
| edittags.py
 
| edittags.py
|
 
|
 
|
 
|
 
|-
 
| edit_template.py
 
|
 
|
 
|
 
|
 
|-
 
| edittitle.py
 
 
| Y
 
| Y
 
| Y
 
| Y
Line 1,012: Line 1,262:
 
| Y
 
| Y
 
|-
 
|-
| edit_verification_source.py
+
| edit_template.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| empty_containers.py
+
| edittitle.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| exportcontent.py
+
| edit_verification_source.py
|
 
|
 
|
 
|
 
|-
 
| find_dups.py
 
|
 
|
 
|
 
|
 
|-
 
| find_pub_dups.py
 
|
 
|
 
|
 
|
 
|-
 
| find_title_dups.py
 
|
 
|
 
|
 
|
 
|-
 
| importcontent.py
 
|
 
|
 
|
 
|
 
|-
 
| incomplete_contents.py
 
|
 
|
 
|
 
|
 
|-
 
| isfdblib.py
 
 
| Y
 
| Y
 
| Y
 
| Y
Line 1,066: Line 1,280:
 
| Y
 
| Y
 
|-
 
|-
| isfdblib_help.py
+
| empty_containers.py
|
 
|
 
|
 
|
 
|-
 
| isfdblib_print.py
 
 
| Y
 
| Y
 
| Y
 
| Y
Line 1,078: Line 1,286:
 
| Y
 
| Y
 
|-
 
|-
| keygen.py
+
| exportcontent.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| linkaward.py
+
| find_dups.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| linkreview.py
+
| find_pub_dups.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| login.py
+
| find_title_dups.py
 
| Y
 
| Y
 
| Y
 
| Y
Line 1,102: Line 1,310:
 
| Y
 
| Y
 
|-
 
|-
| mkpseudo.py
+
| importcontent.py
 
| Y
 
| Y
 
| Y
 
| Y
Line 1,108: Line 1,316:
 
| Y
 
| Y
 
|-
 
|-
| mkvariant.py
+
| incomplete_contents.py
|
+
| Y
|
+
| Y
|
+
| Y
|
+
| Y
|-
 
| newawardtype.py
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
| new_language.py
+
| isfdblib.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| newpub.py
+
| isfdblib_help.py
|
 
|
 
|
 
|
 
|-
 
| numeric_external_id_ranges.py
 
|
 
|
 
|
 
|
 
|-
 
| ps_merge.py
 
|
 
|
 
|
 
|
 
|-
 
| publisher_exceptions.py
 
|
 
|
 
|
 
|
 
|-
 
| pv_merge.py
 
|
 
|
 
|
 
|
 
|-
 
| rmtitles.py
 
|
 
|
 
|
 
|
 
|-
 
| select_award_type.py
 
|
 
|
 
|
 
|
 
|-
 
| sfe3_authors.py
 
|
 
|
 
|
 
|
 
|-
 
| submitaddpub.py
 
 
| Y
 
| Y
 
| Y
 
| Y
Line 1,180: Line 1,334:
 
| Y
 
| Y
 
|-
 
|-
| submit_add_template.py
+
| isfdblib_print.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| submit_add_verification_source.py
+
| keygen.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| submitauth.py
+
| linkaward.py
 
| Y
 
| Y
 
| Y
 
| Y
Line 1,198: Line 1,352:
 
| Y
 
| Y
 
|-
 
|-
| submitawardcat.py
+
| linkreview.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| submitaward.py
+
| login.py
 
| Y
 
| Y
 
| Y
 
| Y
Line 1,210: Line 1,364:
 
| Y
 
| Y
 
|-
 
|-
| submitawardtype.py
+
| mkpseudo.py
|
+
| Y
|
+
| Y
|
+
| Y
|
+
| Y
|-
 
| submitclone.py
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
| submitdelaward.py
+
| mkvariant.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| submitdeleteawardcat.py
+
| newawardtype.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| submitdeleteawardtype.py
+
| new_language.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| submitdelpub.py
+
| newpub.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| submitdelseries.py
+
| numeric_external_id_ranges.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| submitdeltitle.py
+
| ps_merge.py
|
 
|
 
|
 
|
 
|-
 
| submit_edit_template.py
 
|
 
|
 
|
 
|
 
|-
 
| submit_edit_verification_source.py
 
|
 
|
 
|
 
|
 
|-
 
| submitlinkaward.py
 
|
 
|
 
|
 
|
 
|-
 
| submitlinkreview.py
 
|
 
|
 
|
 
|
 
|-
 
| submitmkpseudo.py
 
|
 
|
 
|
 
|
 
|-
 
| submitmkvar1.py
 
|
 
|
 
|
 
|
 
|-
 
| submitmkvar2.py
 
|
 
|
 
|
 
|
 
|-
 
| submitnewawardcat.py
 
|
 
|
 
|
 
|
 
|-
 
| submitnewaward.py
 
 
| Y
 
| Y
 
| Y
 
| Y
Line 1,312: Line 1,406:
 
| Y
 
| Y
 
|-
 
|-
| submitnewawardtype.py
+
| publisher_exceptions.py
|
 
|
 
|
 
|
 
|-
 
| submit_new_language.py
 
|
 
|
 
|
 
|
 
|-
 
| submitnewpub.py
 
|
 
|
 
|
 
|
 
|-
 
| submit_primary_verification.py
 
|
 
|
 
|
 
|
 
|-
 
| submitpublisher.py
 
|
 
|
 
|
 
|
 
|-
 
| submitpub.py
 
 
| Y
 
| Y
 
| Y
 
| Y
Line 1,348: Line 1,412:
 
| Y
 
| Y
 
|-
 
|-
| submitpubseries.py
+
| pv_merge.py
|
 
|
 
|
 
|
 
|-
 
| submitrempseudo.py
 
|
 
|
 
|
 
|
 
|-
 
| submitrm.py
 
|
 
|
 
|
 
|
 
|-
 
| submit_select_award_type.py
 
|
 
|
 
|
 
|
 
|-
 
| submitseries.py
 
|
 
|
 
|
 
|
 
|-
 
| submittags.py
 
|
 
|
 
|
 
|
 
|-
 
| submittitle.py
 
 
| Y
 
| Y
 
| Y
 
| Y
Line 1,390: Line 1,418:
 
| Y
 
| Y
 
|-
 
|-
| submitvariant.py
+
| rmtitles.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| submitver.py
+
| select_award_type.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| submitvote.py
+
| sfe3_authors.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| ts_merge.py
+
| submitaddpub.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| ts_unmerge.py
+
| submit_add_template.py
|
+
| Y
|
+
| Y
|
+
| Y
|
+
| Y
|-
 
| tv_merge.py
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
| tv_unmerge.py
+
| submit_add_verification_source.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| verify.py
+
| submitauth.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
| vote.py
+
| submitawardcat.py
|  
+
| Y
|  
+
| Y
|  
+
| Y
|  
+
| Y
 
|-
 
|-
|}
+
| submitaward.py
 
+
| Y
==Mod==
+
| Y
{| border="1" cellpadding="2" style="border-collapse:collapse; text-align:left; width:50%;"
+
| Y
! File
+
| Y
! Tabs
+
|-
! Print
+
| submitawardtype.py
! String
+
| Y
 +
| Y
 +
| Y
 +
| Y
 
|-
 
|-
 
+
| submitclone.py
|}
+
| Y
 
+
| Y
==Rest==
+
| Y
{| border="1" cellpadding="2" style="border-collapse:collapse; text-align:left; width:50%;"
+
| Y
! File
 
! Tabs
 
! Print
 
! String
 
 
|-
 
|-
 +
| submitdelaward.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitdeleteawardcat.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitdeleteawardtype.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitdelpub.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitdelseries.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitdeltitle.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submit_edit_template.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submit_edit_verification_source.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitlinkaward.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitlinkreview.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitmkpseudo.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitmkvar1.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitmkvar2.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitnewawardcat.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitnewaward.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitnewawardtype.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submit_new_language.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitnewpub.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submit_primary_verification.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitpublisher.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitpub.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitpubseries.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitrempseudo.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitrm.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submit_select_award_type.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitseries.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submittags.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submittitle.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitvariant.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitver.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitvote.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| ts_merge.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| ts_unmerge.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| tv_merge.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| tv_unmerge.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| verify.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| vote.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
|}
  
 +
==Mod==
 +
{| border="1" cellpadding="2" style="border-collapse:collapse; text-align:left; width:30%;"
 +
! File
 +
! Tabs
 +
! Print
 +
! String
 +
! DB Connector
 +
|-
 +
| aa_merge.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| aa_update.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| award_cat_delete_file.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| award_cat_new_file.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| award_cat_update_file.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| award_link_file.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| award_type_delete_file.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| award_type_new_file.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| award_type_update_file.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| bad_images.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| bureaucrat.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| ca_new.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| change_tag_status.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| common.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| cpanel.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-                   
 +
| hardreject.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| hold.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| isfdblib.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| ka_new.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| list.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| list_templates.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| list_verification_sources.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| marque.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| new_language_file.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| pa_delete.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| pa_new.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| pa_update.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| private_tags.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| ra_link.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| recent.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| reject.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| remove_secondary_verification.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| remove_tag.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| resolve_bad_url.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| resolve_cleanup.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| resolve_empty_containers.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| resolve_sfe3_url.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| sa_delete.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| sa_update.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| select_secondary_verification.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| self_approver_file.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| self_approvers.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submission_review.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submission_search.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submission_search_results.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitcpanel.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| submitref.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| ta_delete.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| tag_breakdown.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| tag_status_changes.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| ta_merge.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| ta_remove.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| ta_unmerge.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| ta_update.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| template_add_file.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| template_update_file.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| ua_merge.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| unhold.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| unreject.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| va_new.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| verification_source_add_file.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| verification_source_file.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| wa_delete.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| wa_new.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| wa_update.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| xa_update.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| ya_new.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| ya_remove.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
| za_update.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|-
 +
|}
 +
 +
==Rest==
 +
{| border="1" cellpadding="2" style="border-collapse:collapse; text-align:left; width:30%;"
 +
! File
 +
! Tabs
 +
! Print
 +
! String
 +
! DB Connector
 +
! encode
 +
! FieldStorage
 +
|-
 +
| getpub_by_ID.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|
 +
|
 +
|-
 +
| getpub_by_internal_ID.py
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| getpub.py
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| pub_output.py
 +
| Y
 +
| Y
 +
| Y
 +
| Y
 +
|
 +
|
 +
|-
 +
| submission.py
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|-
 
|}
 
|}

Latest revision as of 08:10, 10 June 2023

This page tracks changes that can be made and still run under Python2.

This page tracks changes that can be made for Python3 that also run fine under Python2. The changes are:

  • Replacing tabs with 8 spaces. Almost every file attempted so far has some mix of spaces and tabs. In vi/vim this can be changed with:
   :s/<tab>/<8 spaces>/g
  • Change all print statements to use function call syntax. This can be done by 2to3 (a variant of futurize). 2to3 without arguments will make many python3 changes, but it also takes a -f argument, which allows you to attack one specific problem. To use, create a target directory (like FUTURIZE), and issuing the following command:
   2to3 awardClass.py -f print -n -w -o FUTURIZE
  • Change all instance of string.method to str.method.
  • While most SQL code is in SQLparsing.py, it is also peppered across many other files. This code will not work any longer, as Python3 requires moving to a new connector. I've created an ISFDB connector class which is portable across Python2 and Python3. Some usage patterns are:

FETCHMANY:

   def _StandardQuery(query):
       CNX = MYSQL_CONNECTOR()
       CNX.DB_QUERY(query)
       results = []
       record = CNX.DB_FETCHMANY()
       while record:
               results.append(record[0])
               record = CNX.DB_FETCHMANY()
       return results

NUMROWS:

   def _BinaryQuery(query):
       CNX = MYSQL_CONNECTOR()
       CNX.DB_QUERY(query)
       if CNX.DB_NUMROWS():
               return 1
       else:
               return 0

FETCHONE:

   def _OneRow(query):
       CNX = MYSQL_CONNECTOR()
       CNX.DB_QUERY(query)
       record = CNX.DB_FETCHONE()
       if record:
               return record[0]
       else:
               return None

DB_ESCAPE_STRING:

   def SQLgetAuthorData(author):
       CNX = MYSQL_CONNECTOR()
       query = "select %s from authors where author_canonical='%s'" % (CNX_AUTHORS_STAR, CNX.DB_ESCAPE_STRING(author))
       CNX.DB_QUERY(query)
       record = CNX.DB_FETCHONE()
       if record:
               return record[0]
       else:
               return 0

DB_INSERT_ID:

       CNX = MYSQL_CONNECTOR()
       query = "insert into titles(title_title) values('%s');" % (CNX.DB_ESCAPE_STRING(title))
       CNX.DB_QUERY(query)
       record = CNX.DB_INSERT_ID()
  • We also need to remove all of the stray import MySQLdb statements. MySQLdb is imported by SQLparsing under Python2, and causes an error on Python3.

Common

File Tabs Print String DB Connector encode FieldStorage
authorClass.py Y Y Y Y - Y
awardcatClass.py Y Y Y Y - Y
awardClass.py Y Y Y Y - Y
awardtypeClass.py Y Y Y Y - Y
install.py Y Y Y - - -
isbn.py Y Y Y Y - -
isfdblib.py - - - - - -
isfdb.py Y Y Y Y Y -
library.py Y Y Y Y Y -
localdefs.py - - - - - -
login.py Y Y Y Y - -
navbar.py Y Y Y Y - -
pubClass.py Y Y Y Y - Y
publisherClass.py Y Y Y Y - Y
pubseriesClass.py Y Y Y Y - Y
seriesClass.py Y Y Y Y - Y
sfe3.py Y Y Y Y - -
SQLparsing.py Y Y Y Y Y -
templateClass.py Y Y Y Y - Y
titleClass.py Y Y Y Y - Y
verificationsourceClass.py Y Y Y Y - Y
viewers.py Y Y Y Y Y -

Biblio

File Tabs Print String DB Connector encode FieldStorage
adv_identifier_search.py Y Y Y Y - -
adv_notes_search.py Y Y Y Y - -
advSearchClass.py Y Y Y Y - -
adv_search_menu.py Y Y Y Y - -
adv_search_results.py Y Y Y Y - Y
adv_search_selection.py Y Y Y Y - -
adv_user_search.py Y Y Y Y - -
adv_web_page_search.py Y Y Y Y - -
ae.py Y Y Y Y - -
author_history.py Y Y Y Y - -
authors_by_debut_year.py Y Y Y Y - -
authors_by_debut_year_table.py Y Y Y Y - -
authortags.py Y Y Y Y - -
award_category_history.py Y Y Y Y - -
award_category.py Y Y Y Y - -
award_category_year.py Y Y Y Y - -
award_details.py Y Y Y Y - -
award_directory.py Y Y Y Y - -
award_history.py Y Y Y Y - -
awardtype_history.py Y Y Y Y - -
awardtype.py Y Y Y Y - -
ay.py Y Y Y Y - -
biblio.py Y Y Y Y - -
calendarClass.py Y Y Y Y - -
calendar_day.py Y Y Y Y - -
calendar_menu.py Y Y Y Y - -
cancelsubmission.py Y Y Y Y - -
changed_verified_pubs.py Y Y Y Y - -
ch.py Y Y Y Y - -
common.py Y Y Y Y - -
diffselect.py Y Y Y Y - -
directory.py Y Y Y Y - -
dologin.py Y Y Y Y - -
dologout.py Y Y Y Y - -
dumpxml.py Y Y Y Y - -
ea.py Y Y Y Y - -
eaw.py Y Y Y Y - -
external_id_search_results.py Y Y Y Y - Y
fc.py Y Y Y Y - -
google_search_redirect.py Y Y Y Y -
index.py Y Y Y Y - -
languages.py Y Y Y Y - -
most_popular.py Y Y Y Y - -
most_popular_table.py Y Y Y Y - -
most_reviewed.py Y Y Y Y - -
most_reviewed_table.py Y Y Y Y - -
mylanguages.py Y Y Y Y - -
mypreferences.py Y Y Y Y - -
myrecent.py Y Y Y Y - -
my_removed_secondary_verifications.py Y Y Y Y - -
my_secondary_verifications.py Y Y Y Y - -
my_unstable_ISBN_verifications.py Y Y Y Y - -
my_unstable_verifications.py Y Y Y Y - -
myverificationsClass.py Y Y Y Y - -
my_verifications_menu.py Y Y Y Y - -
myvotes.py Y Y Y Y - -
mywebsites.py Y Y Y Y - -
note.py Y Y Y Y -
note_search_results.py Y Y Y Y -
pe.py Y Y Y Y -
pl.py Y Y Y Y
popular_authors.py Y Y Y Y -
popular_authors_table.py Y Y Y Y -
pub_history.py Y Y Y Y -
publisher_authors.py Y Y Y Y -
publisher_history.py Y Y Y Y
publisher_one_author.py Y Y Y Y -
publisher.py Y Y Y Y -
publisheryear.py Y Y Y Y -
pubseries_history.py Y Y Y Y -
pubseries.py Y Y Y Y -
pubs_not_in_series.py Y Y Y Y -
recent_activity_menu.py Y Y Y Y -
recent_primary_ver.py Y Y Y Y -
recent.py Y Y Y Y -
recentver.py Y Y Y Y -
removed_secondary_verifications.py Y Y Y Y -
se.py Y Y Y Y -
seriesgrid.py Y Y Y Y -
series_history.py Y Y Y Y -
seriestags.py Y Y Y Y -
stats-and-tops.py Y Y Y Y -
stats.py Y Y Y Y -
submitdiff.py Y Y Y Y -
submitlogin.py Y Y Y Y Y
submitmylanguages.py Y Y Y Y -
submitmywebsites.py Y Y Y Y -
submitpreferences.py Y Y Y Y -
tag_author.py Y Y Y Y -
tag.py Y Y Y Y -
titlecovers.py Y Y Y Y -
title_history.py Y Y Y Y -
title.py Y Y Y Y -
topcontrib.py Y Y Y Y -
user_search_results.py Y Y Y Y -
usertag.py Y Y Y Y -
usertitles.py Y Y Y Y -
userver.py Y Y Y Y -
utils.py Y Y Y Y -
verification_sources.py Y Y Y Y -
view_submission.py Y Y Y Y -
webpages_search_results.py Y Y Y Y -

Edit

File Tabs Print String DB Connector
addawardcat.py Y Y Y Y
addaward.py Y Y Y Y
addpub.py Y Y Y Y
addquicktag.py Y Y Y Y
add_template.py Y Y Y Y
addvariant.py Y Y Y Y
add_verification_source.py Y Y Y Y
as_merge.py Y Y Y Y
av_merge.py Y Y Y Y
cleanup_lib.py Y Y Y Y
cleanup.py Y Y Y Y
cleanup_report.py Y Y Y Y
clonecontent.py Y Y Y Y
clone_intermediate.py Y Y Y Y
clonepub.py Y Y Y Y
deleteawardcat.py Y Y Y Y
deleteaward.py Y Y Y Y
deleteawardtype.py Y Y Y Y
deletepub.py Y Y Y Y
deleteseries.py Y Y Y Y
deletetitle.py Y Y Y Y
editauth.py Y Y Y Y
editawardcat.py Y Y Y Y
editaward.py Y Y Y Y
editawardtype.py Y Y Y Y
editpublisher.py Y Y Y Y
editpub.py Y Y Y Y
editpubseries.py Y Y Y Y
editseries.py Y Y Y Y
edittags.py Y Y Y Y
edit_template.py Y Y Y Y
edittitle.py Y Y Y Y
edit_verification_source.py Y Y Y Y
empty_containers.py Y Y Y Y
exportcontent.py Y Y Y Y
find_dups.py Y Y Y Y
find_pub_dups.py Y Y Y Y
find_title_dups.py Y Y Y Y
importcontent.py Y Y Y Y
incomplete_contents.py Y Y Y Y
isfdblib.py Y Y Y Y
isfdblib_help.py Y Y Y Y
isfdblib_print.py Y Y Y Y
keygen.py Y Y Y Y
linkaward.py Y Y Y Y
linkreview.py Y Y Y Y
login.py Y Y Y Y
mkpseudo.py Y Y Y Y
mkvariant.py Y Y Y Y
newawardtype.py Y Y Y Y
new_language.py Y Y Y Y
newpub.py Y Y Y Y
numeric_external_id_ranges.py Y Y Y Y
ps_merge.py Y Y Y Y
publisher_exceptions.py Y Y Y Y
pv_merge.py Y Y Y Y
rmtitles.py Y Y Y Y
select_award_type.py Y Y Y Y
sfe3_authors.py Y Y Y Y
submitaddpub.py Y Y Y Y
submit_add_template.py Y Y Y Y
submit_add_verification_source.py Y Y Y Y
submitauth.py Y Y Y Y
submitawardcat.py Y Y Y Y
submitaward.py Y Y Y Y
submitawardtype.py Y Y Y Y
submitclone.py Y Y Y Y
submitdelaward.py Y Y Y Y
submitdeleteawardcat.py Y Y Y Y
submitdeleteawardtype.py Y Y Y Y
submitdelpub.py Y Y Y Y
submitdelseries.py Y Y Y Y
submitdeltitle.py Y Y Y Y
submit_edit_template.py Y Y Y Y
submit_edit_verification_source.py Y Y Y Y
submitlinkaward.py Y Y Y Y
submitlinkreview.py Y Y Y Y
submitmkpseudo.py Y Y Y Y
submitmkvar1.py Y Y Y Y
submitmkvar2.py Y Y Y Y
submitnewawardcat.py Y Y Y Y
submitnewaward.py Y Y Y Y
submitnewawardtype.py Y Y Y Y
submit_new_language.py Y Y Y Y
submitnewpub.py Y Y Y Y
submit_primary_verification.py Y Y Y Y
submitpublisher.py Y Y Y Y
submitpub.py Y Y Y Y
submitpubseries.py Y Y Y Y
submitrempseudo.py Y Y Y Y
submitrm.py Y Y Y Y
submit_select_award_type.py Y Y Y Y
submitseries.py Y Y Y Y
submittags.py Y Y Y Y
submittitle.py Y Y Y Y
submitvariant.py Y Y Y Y
submitver.py Y Y Y Y
submitvote.py Y Y Y Y
ts_merge.py Y Y Y Y
ts_unmerge.py Y Y Y Y
tv_merge.py Y Y Y Y
tv_unmerge.py Y Y Y Y
verify.py Y Y Y Y
vote.py Y Y Y Y

Mod

File Tabs Print String DB Connector
aa_merge.py Y Y Y Y
aa_update.py Y Y Y Y
award_cat_delete_file.py Y Y Y Y
award_cat_new_file.py Y Y Y Y
award_cat_update_file.py Y Y Y Y
award_link_file.py Y Y Y Y
award_type_delete_file.py Y Y Y Y
award_type_new_file.py Y Y Y Y
award_type_update_file.py Y Y Y Y
bad_images.py Y Y Y Y
bureaucrat.py Y Y Y Y
ca_new.py Y Y Y Y
change_tag_status.py Y Y Y Y
common.py Y Y Y Y
cpanel.py Y Y Y Y
hardreject.py Y Y Y Y
hold.py Y Y Y Y
isfdblib.py Y Y Y Y
ka_new.py Y Y Y Y
list.py Y Y Y Y
list_templates.py Y Y Y Y
list_verification_sources.py Y Y Y Y
marque.py Y Y Y Y
new_language_file.py Y Y Y Y
pa_delete.py Y Y Y Y
pa_new.py Y Y Y Y
pa_update.py Y Y Y Y
private_tags.py Y Y Y Y
ra_link.py Y Y Y Y
recent.py Y Y Y Y
reject.py Y Y Y Y
remove_secondary_verification.py Y Y Y Y
remove_tag.py Y Y Y Y
resolve_bad_url.py Y Y Y Y
resolve_cleanup.py Y Y Y Y
resolve_empty_containers.py Y Y Y Y
resolve_sfe3_url.py Y Y Y Y
sa_delete.py Y Y Y Y
sa_update.py Y Y Y Y
select_secondary_verification.py Y Y Y Y
self_approver_file.py Y Y Y Y
self_approvers.py Y Y Y Y
submission_review.py Y Y Y Y
submission_search.py Y Y Y Y
submission_search_results.py Y Y Y Y
submitcpanel.py Y Y Y Y
submitref.py Y Y Y Y
ta_delete.py Y Y Y Y
tag_breakdown.py Y Y Y Y
tag_status_changes.py Y Y Y Y
ta_merge.py Y Y Y Y
ta_remove.py Y Y Y Y
ta_unmerge.py Y Y Y Y
ta_update.py Y Y Y Y
template_add_file.py Y Y Y Y
template_update_file.py Y Y Y Y
ua_merge.py Y Y Y Y
unhold.py Y Y Y Y
unreject.py Y Y Y Y
va_new.py Y Y Y Y
verification_source_add_file.py Y Y Y Y
verification_source_file.py Y Y Y Y
wa_delete.py Y Y Y Y
wa_new.py Y Y Y Y
wa_update.py Y Y Y Y
xa_update.py Y Y Y Y
ya_new.py Y Y Y Y
ya_remove.py Y Y Y Y
za_update.py Y Y Y Y

Rest

File Tabs Print String DB Connector encode FieldStorage
getpub_by_ID.py Y Y Y Y
getpub_by_internal_ID.py
getpub.py
pub_output.py Y Y Y Y
submission.py