jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/605600 )
Change subject: [IMPR] Shorten known_families constructor ......................................................................
[IMPR] Shorten known_families constructor
Most known_families items have a value lik its key. Use dict comprehension to shorten constructor and update this dict for the few others.
Change-Id: I85b65a6ab9efc55aee42eb15efd7b73431ed535f --- M pywikibot/family.py 1 file changed, 99 insertions(+), 415 deletions(-)
Approvals: Zhuyifei1999: Looks good to me, approved jenkins-bot: Verified
diff --git a/pywikibot/family.py b/pywikibot/family.py index 093800a..1a460e3 100644 --- a/pywikibot/family.py +++ b/pywikibot/family.py @@ -350,422 +350,106 @@ # get_known_families() instead.
# TODO: replace this with API interwikimap call - known_families = { - 'acronym': 'acronym', - 'advisory': 'advisory', - 'advogato': 'advogato', - 'aew': 'aew', - 'appropedia': 'appropedia', - 'aquariumwiki': 'aquariumwiki', - 'arborwiki': 'arborwiki', - 'arxiv': 'arxiv', - 'atmwiki': 'atmwiki', - 'b': 'wikibooks', - 'baden': 'baden', - 'battlestarwiki': 'battlestarwiki', - 'bcnbio': 'bcnbio', - 'beacha': 'beacha', - 'betawiki': 'translatewiki', - 'betawikiversity': 'betawikiversity', - 'bibcode': 'bibcode', - 'bibliowiki': 'bibliowiki', - 'bluwiki': 'bluwiki', - 'blw': 'blw', - 'botwiki': 'botwiki', - 'boxrec': 'boxrec', - 'brickwiki': 'brickwiki', - 'bugzilla': 'bugzilla', - 'bulba': 'bulba', - 'c': 'commons', - 'c2': 'c2', - 'c2find': 'c2find', - 'Ĉej': 'Ĉej', - 'cellwiki': 'cellwiki', - 'centralwikia': 'centralwikia', - 'chapter': 'wikimedia', - 'chej': 'chej', - 'choralwiki': 'choralwiki', - 'citizendium': 'citizendium', - 'ckwiss': 'ckwiss', - 'comixpedia': 'comixpedia', - 'commons': 'commons', - 'communityscheme': 'communityscheme', - 'comune': 'comune', - 'creativecommonswiki': 'creativecommonswiki', - 'cxej': 'cxej', - 'dcc': 'dcc', - 'dcdatabase': 'dcdatabase', - 'dcma': 'dcma', - 'debian': 'debian', - 'devmo': 'devmo', - 'dict': 'dictionary', - 'dictionary': 'dictionary', - 'disinfopedia': 'disinfopedia', - 'distributedproofreaders': 'distributedproofreaders', - 'distributedproofreadersca': 'distributedproofreadersca', - 'dk': 'dk', - 'dmoz': 'dmoz', - 'dmozs': 'dmozs', - 'doom_wiki': 'doom_wiki', - 'download': 'download', - 'dbdump': 'dbdump', - 'dpd': 'dpd', - 'drae': 'drae', - 'dreamhost': 'dreamhost', - 'drumcorpswiki': 'drumcorpswiki', - 'dwjwiki': 'dwjwiki', - 'eĉei': 'eĉei', - 'ecoreality': 'ecoreality', - 'ecxei': 'ecxei', - 'elibre': 'elibre', - 'emacswiki': 'emacswiki', - 'encyc': 'encyc', - 'energiewiki': 'energiewiki', - 'englyphwiki': 'englyphwiki', - 'enkol': 'enkol', - 'eokulturcentro': 'eokulturcentro', - 'esolang': 'esolang', - 'etherpad': 'etherpad', - 'evowiki': 'evowiki', - 'exotica': 'exotica', - 'fanimutationwiki': 'fanimutationwiki', - 'finalfantasy': 'finalfantasy', - 'finnix': 'finnix', - 'floralwiki': 'floralwiki', - 'foldoc': 'foldoc', - 'foundation': 'wikimedia', - 'foundationsite': 'foundationsite', - 'foxwiki': 'foxwiki', - 'freebio': 'freebio', - 'freebsdman': 'freebsdman', - 'freeculturewiki': 'freeculturewiki', - 'freedomdefined': 'freedomdefined', - 'freefeel': 'freefeel', - 'freekiwiki': 'freekiwiki', - 'ganfyd': 'ganfyd', - 'gardenology': 'gardenology', - 'gausswiki': 'gausswiki', - 'gentoo': 'gentoo', - 'genwiki': 'genwiki', - 'gerrit': 'gerrit', - 'git': 'git', - 'google': 'google', - 'googledefine': 'googledefine', - 'googlegroups': 'googlegroups', - 'guildwiki': 'guildwiki', - 'guc': 'guc', - 'gucprefix': 'guc', - 'gutenberg': 'gutenberg', - 'gutenbergwiki': 'gutenbergwiki', - 'hackerspaces': 'hackerspaces', - 'h2wiki': 'h2wiki', - 'hammondwiki': 'hammondwiki', - 'hdl': 'hdl', - 'heraldik': 'heraldik', - 'heroeswiki': 'heroeswiki', - 'horizonlabs': 'horizonlabs', - 'hrwiki': 'hrwiki', - 'hrfwiki': 'hrfwiki', - 'hupwiki': 'hupwiki', - 'iarchive': 'iarchive', - 'imdbname': 'imdbname', - 'imdbtitle': 'imdbtitle', - 'imdbcompany': 'imdbcompany', - 'imdbcharacter': 'imdbcharacter', - 'incubator': 'incubator', - 'infosecpedia': 'infosecpedia', - 'infosphere': 'infosphere', - 'irc': 'irc', - 'ircs': 'ircs', - 'rcirc': 'rcirc', - 'iso639-3': 'iso639-3', - 'issn': 'issn', - 'iuridictum': 'iuridictum', - 'jaglyphwiki': 'jaglyphwiki', - 'javanet': 'javanet', - 'javapedia': 'javapedia', - 'jefo': 'jefo', - 'jerseydatabase': 'jerseydatabase', - 'jira': 'jira', - 'jspwiki': 'jspwiki', - 'jstor': 'jstor', - 'kamelo': 'kamelo', - 'karlsruhe': 'karlsruhe', - 'kinowiki': 'kinowiki', - 'komicawiki': 'komicawiki', - 'kontuwiki': 'kontuwiki', - 'wikitech': 'wikitech', - 'libreplanet': 'libreplanet', - 'linguistlist': 'linguistlist', - 'linuxwiki': 'linuxwiki', - 'linuxwikide': 'linuxwikide', - 'liswiki': 'liswiki', - 'literateprograms': 'literateprograms', - 'livepedia': 'livepedia', - 'localwiki': 'localwiki', - 'lojban': 'lojban', - 'lostpedia': 'lostpedia', - 'lqwiki': 'lqwiki', - 'lugkr': 'lugkr', - 'luxo': 'luxo', - 'm': 'meta', - 'm-w': 'm-w', - 'mail': 'mail', - 'mailarchive': 'mailarchive', - 'mariowiki': 'mariowiki', - 'marveldatabase': 'marveldatabase', - 'meatball': 'meatball', - 'mw': 'mediawiki', - 'mediazilla': 'mediazilla', - 'memoryalpha': 'memoryalpha', - 'meta': 'metawiki', - 'metawiki': 'metawiki', - 'metawikimedia': 'metawiki', - 'metawikipedia': 'metawiki', - 'metawikisearch': 'metawikisearch', - 'mineralienatlas': 'mineralienatlas', - 'moinmoin': 'moinmoin', - 'monstropedia': 'monstropedia', - 'mosapedia': 'mosapedia', - 'mozcom': 'mozcom', - 'mozillawiki': 'mozillawiki', - 'mozillazinekb': 'mozillazinekb', - 'musicbrainz': 'musicbrainz', - 'mwod': 'mwod', - 'mwot': 'mwot', - 'n': 'wikinews', - 'nkcells': 'nkcells', - 'nara': 'nara', - 'nosmoke': 'nosmoke', - 'nost': 'nost', - 'nostalgia': 'nostalgia', - 'oeis': 'oeis', - 'oldwikisource': 'oldwikisource', - 'olpc': 'olpc', - 'omegawiki': 'omegawiki', - 'onelook': 'onelook', - 'openlibrary': 'openlibrary', - 'openstreetmap': 'openstreetmap', - 'openwetware': 'openwetware', - 'opera7wiki': 'opera7wiki', - 'organicdesign': 'organicdesign', - 'orthodoxwiki': 'orthodoxwiki', - 'otrs': 'otrs', - 'otrswiki': 'otrswiki', - 'ourmedia': 'ourmedia', - 'outreach': 'outreach', - 'outreachwiki': 'outreach', - 'owasp': 'owasp', - 'panawiki': 'panawiki', - 'patwiki': 'patwiki', - 'personaltelco': 'personaltelco', - 'petscan': 'petscan', - 'phab': 'phabricator', - 'phabricator': 'phabricator', - 'phwiki': 'phwiki', - 'phpwiki': 'phpwiki', - 'planetmath': 'planetmath', - 'pmeg': 'pmeg', - 'pmid': 'pmid', - 'pokewiki': 'pokewiki', - 'pokéwiki': 'pokewiki', - 'policy': 'policy', - 'purlnet': 'purlnet', - 'pyrev': 'pyrev', - 'pythonwiki': 'pythonwiki', - 'pywiki': 'pywiki', - 'psycle': 'psycle', - 'q': 'wikiquote', - 'quality': 'quality', - 'quarry': 'quarry', - 'rev': 'rev', - 'revo': 'revo', - 'rheinneckar': 'rheinneckar', - 'robowiki': 'robowiki', - 'rodovid': 'rodovid', - 'reuterswiki': 'reuterswiki', - 'rowiki': 'rowiki', - 'rt': 'rt', - 'rtfm': 'rtfm', - 's': 'wikisource', - 's23wiki': 's23wiki', - 'schoolswp': 'schoolswp', - 'scores': 'scores', - 'scoutwiki': 'scoutwiki', - 'scramble': 'scramble', - 'seapig': 'seapig', - 'seattlewiki': 'seattlewiki', - 'slwiki': 'slwiki', - 'senseislibrary': 'senseislibrary', - 'silcode': 'silcode', - 'slashdot': 'slashdot', - 'sourceforge': 'sourceforge', - 'spcom': 'spcom', - 'species': 'species', - 'squeak': 'squeak', - 'stats': 'stats', - 'stewardry': 'stewardry', - 'strategy': 'strategy', - 'strategywiki': 'strategywiki', - 'sulutil': 'sulutil', - 'swtrain': 'swtrain', - 'svn': 'svn', - 'tabwiki': 'tabwiki', - 'tclerswiki': 'tclerswiki', - 'technorati': 'technorati', - 'tenwiki': 'tenwiki', - 'testwiki': 'testwiki', - 'testwikidata': 'testwikidata', - 'test2wiki': 'test2wiki', - 'tfwiki': 'tfwiki', - 'thelemapedia': 'thelemapedia', - 'theopedia': 'theopedia', - 'thinkwiki': 'thinkwiki', - 'ticket': 'ticket', - 'tmbw': 'tmbw', - 'tmnet': 'tmnet', - 'tmwiki': 'tmwiki', - 'toolforge': 'toollabs', - 'toollabs': 'toollabs', - 'translatewiki': 'translatewiki', - 'tviv': 'tviv', - 'tvtropes': 'tvtropes', - 'twiki': 'twiki', - 'tyvawiki': 'tyvawiki', - 'umap': 'umap', - 'uncyclopedia': 'uncyclopedia', - 'unihan': 'unihan', - 'unreal': 'unreal', - 'urbandict': 'urbandict', - 'usej': 'usej', - 'usemod': 'usemod', - 'usability': 'usability', - 'utrs': 'utrs', - 'v': 'wikiversity', - 'vikidia': 'vikidia', - 'vlos': 'vlos', - 'vkol': 'vkol', - 'voipinfo': 'voipinfo', - 'votewiki': 'votewiki', - 'voy': 'wikivoyage', - 'w': 'wikipedia', - 'werelate': 'werelate', - 'wg': 'wg', - 'wikia': 'wikia', - 'wikiasite': 'wikia', - 'wikibooks': 'wikibooks', - 'wikichristian': 'wikichristian', - 'wikicities': 'wikicities', - 'wikicity': 'wikicity', - 'wikiconference': 'wikiconference', - 'wikidata': 'wikidata', - 'wikif1': 'wikif1', - 'wikifur': 'wikifur', - 'wikihow': 'wikihow', - 'wikiindex': 'wikiindex', - 'wikilemon': 'wikilemon', - 'wikilivres': 'wikilivres', - 'wikimac-de': 'wikimac-de', - 'wikimedia': 'wikimedia', - 'wikinews': 'wikinews', - 'wikinfo': 'wikinfo', - 'wikinvest': 'wikinvest', - 'wikipapers': 'wikipapers', - 'wikipedia': 'wikipedia', + known_families = {family: family for family in ( + 'acronym', 'advisory', 'advogato', 'aew', 'appropedia', 'aquariumwiki', + 'arborwiki', 'arxiv', 'atmwiki', 'baden', 'battlestarwiki', 'bcnbio', + 'beacha', 'betawikiversity', 'bibcode', 'bibliowiki', 'bluwiki', 'blw', + 'botwiki', 'boxrec', 'brickwiki', 'bugzilla', 'bulba', 'c2', 'c2find', + 'Ĉej', 'cellwiki', 'centralwikia', 'chej', 'choralwiki', 'citizendium', + 'ckwiss', 'comixpedia', 'commons', 'communityscheme', 'comune', + 'creativecommonswiki', 'cxej', 'dcc', 'dcdatabase', 'dcma', 'debian', + 'devmo', 'dictionary', 'disinfopedia', 'distributedproofreaders', + 'distributedproofreadersca', 'dk', 'dmoz', 'dmozs', 'doom_wiki', + 'download', 'dbdump', 'dpd', 'drae', 'dreamhost', 'drumcorpswiki', + 'dwjwiki', 'eĉei', 'ecoreality', 'ecxei', 'elibre', 'emacswiki', + 'encyc', 'energiewiki', 'englyphwiki', 'enkol', 'eokulturcentro', + 'esolang', 'etherpad', 'evowiki', 'exotica', 'fanimutationwiki', + 'finalfantasy', 'finnix', 'floralwiki', 'foldoc', 'foundationsite', + 'foxwiki', 'freebio', 'freebsdman', 'freeculturewiki', + 'freedomdefined', 'freefeel', 'freekiwiki', 'ganfyd', 'gardenology', + 'gausswiki', 'gentoo', 'genwiki', 'gerrit', 'git', 'google', + 'googledefine', 'googlegroups', 'guildwiki', 'guc', 'gutenberg', + 'gutenbergwiki', 'hackerspaces', 'h2wiki', 'hammondwiki', 'hdl', + 'heraldik', 'heroeswiki', 'horizonlabs', 'hrwiki', 'hrfwiki', + 'hupwiki', 'iarchive', 'imdbname', 'imdbtitle', 'imdbcompany', + 'imdbcharacter', 'incubator', 'infosecpedia', 'infosphere', 'irc', + 'ircs', 'rcirc', 'iso639-3', 'issn', 'iuridictum', 'jaglyphwiki', + 'javanet', 'javapedia', 'jefo', 'jerseydatabase', 'jira', 'jspwiki', + 'jstor', 'kamelo', 'karlsruhe', 'kinowiki', 'komicawiki', 'kontuwiki', + 'wikitech', 'libreplanet', 'linguistlist', 'linuxwiki', 'linuxwikide', + 'liswiki', 'literateprograms', 'livepedia', 'localwiki', 'lojban', + 'lostpedia', 'lqwiki', 'lugkr', 'luxo', 'm-w', 'mail', 'mailarchive', + 'mariowiki', 'marveldatabase', 'meatball', 'mediazilla', 'memoryalpha', + 'metawiki', 'metawikisearch', 'mineralienatlas', 'moinmoin', + 'monstropedia', 'mosapedia', 'mozcom', 'mozillawiki', 'mozillazinekb', + 'musicbrainz', 'mwod', 'mwot', 'nkcells', 'nara', 'nosmoke', 'nost', + 'nostalgia', 'oeis', 'oldwikisource', 'olpc', 'omegawiki', 'onelook', + 'openlibrary', 'openstreetmap', 'openwetware', 'opera7wiki', + 'organicdesign', 'orthodoxwiki', 'otrs', 'otrswiki', 'ourmedia', + 'outreach', 'owasp', 'panawiki', 'patwiki', 'personaltelco', 'petscan', + 'phabricator', 'phwiki', 'phpwiki', 'planetmath', 'pmeg', 'pmid', + 'pokewiki', 'policy', 'purlnet', 'pyrev', 'pythonwiki', 'pywiki', + 'psycle', 'quality', 'quarry', 'rev', 'revo', 'rheinneckar', + 'robowiki', 'rodovid', 'reuterswiki', 'rowiki', 'rt', 'rtfm', + 's23wiki', 'schoolswp', 'scores', 'scoutwiki', 'scramble', 'seapig', + 'seattlewiki', 'slwiki', 'senseislibrary', 'silcode', 'slashdot', + 'sourceforge', 'spcom', 'species', 'squeak', 'stats', 'stewardry', + 'strategy', 'strategywiki', 'sulutil', 'swtrain', 'svn', 'tabwiki', + 'tclerswiki', 'technorati', 'tenwiki', 'testwiki', 'testwikidata', + 'test2wiki', 'tfwiki', 'thelemapedia', 'theopedia', 'thinkwiki', + 'ticket', 'tmbw', 'tmnet', 'tmwiki', 'toollabs', 'translatewiki', + 'tviv', 'tvtropes', 'twiki', 'tyvawiki', 'umap', 'uncyclopedia', + 'unihan', 'unreal', 'urbandict', 'usej', 'usemod', 'usability', + 'utrs', 'vikidia', 'vlos', 'vkol', 'voipinfo', 'votewiki', 'werelate', + 'wg', 'wikia', 'wikibooks', 'wikichristian', 'wikicities', 'wikicity', + 'wikiconference', 'wikidata', 'wikif1', 'wikifur', 'wikihow', + 'wikiindex', 'wikilemon', 'wikilivres', 'wikimac-de', 'wikimedia', + 'wikinews', 'wikinfo', 'wikinvest', 'wikipapers', 'wikipedia', + 'wikiquote', 'wikisource', 'wikispecies', 'wikispot', 'labsconsole', + 'wikiti', 'wikiversity', 'wikivoyage', 'wikiwikiweb', 'wiktionary', + 'wipipedia', 'wlug', 'wmam', 'wmar', 'wmat', 'wmau', 'wmbd', 'wmbe', + 'wmbr', 'wmca', 'wmch', 'wmcl', 'wmcn', 'wmco', 'wmcz', 'wmdc', + 'securewikidc', 'wmdk', 'wmee', 'wmec', 'wmes', 'wmet', 'wmfdashboard', + 'wmfi', 'wmfr', 'wmhi', 'wmhk', 'wmid', 'wmil', 'wmin', 'wmit', 'wmke', + 'wmmk', 'wmmx', 'wmnl', 'wmnyc', 'wmno', 'wmpa-us', 'wmph', 'wmpl', + 'wmpt', 'wmpunjabi', 'wmromd', 'wmrs', 'wmru', 'wmse', 'wmsk', 'wmtr', + 'wmtw', 'wmua', 'wmuk', 'wmve', 'wmza', 'wm2005', 'wm2006', 'wm2007', + 'wm2008', 'wm2009', 'wm2010', 'wm2011', 'wm2012', 'wm2013', 'wm2014', + 'wm2015', 'wm2016', 'wm2017', 'wm2018', 'wikimania', 'wmteam', 'wmf', + 'wookieepedia', 'wowwiki', 'wqy', 'wurmpedia', 'viaf', 'zrhwiki', + 'zum', 'zwiki', + )} + + known_families.update({ + 'b': 'wikibooks', + 'betawiki': 'translatewiki', + 'c': 'commons', + 'chapter': 'wikimedia', + 'dict': 'dictionary', + 'foundation': 'wikimedia', + 'gucprefix': 'guc', + 'm': 'meta', + 'mw': 'mediawiki', + 'meta': 'metawiki', + 'metawikimedia': 'metawiki', + 'metawikipedia': 'metawiki', + 'n': 'wikinews', + 'outreachwiki': 'outreach', + 'phab': 'phabricator', + 'pokéwiki': 'pokewiki', + 'q': 'wikiquote', + 's': 'wikisource', + 'toolforge': 'toollabs', + 'v': 'wikiversity', + 'voy': 'wikivoyage', + 'w': 'wikipedia', + 'wikiasite': 'wikia', 'wikipediawikipedia': 'wikipedia', - 'wikiquote': 'wikiquote', - 'wikisophia': 'wikisophoa', - 'wikisource': 'wikisource', - 'wikispecies': 'wikispecies', - 'wikispot': 'wikispot', - 'wikiskripta': 'wikiscripta', - 'labsconsole': 'labsconsole', - 'wikiti': 'wikiti', - 'wikiversity': 'wikiversity', - 'wikivoyage': 'wikivoyage', - 'wikiwikiweb': 'wikiwikiweb', - 'wikt': 'wiktionary', - 'wiktionary': 'wiktionary', - 'wipipedia': 'wipipedia', - 'wlug': 'wlug', - 'wmam': 'wmam', - 'wmar': 'wmar', - 'wmat': 'wmat', - 'wmau': 'wmau', - 'wmbd': 'wmbd', - 'wmbe': 'wmbe', - 'wmbr': 'wmbr', - 'wmca': 'wmca', - 'wmch': 'wmch', - 'wmcl': 'wmcl', - 'wmcn': 'wmcn', - 'wmco': 'wmco', - 'wmcz': 'wmcz', - 'wmdc': 'wmdc', - 'securewikidc': 'securewikidc', - 'wmdk': 'wmdk', - 'wmee': 'wmee', - 'wmec': 'wmec', - 'wmes': 'wmes', - 'wmet': 'wmet', - 'wmfdashboard': 'wmfdashboard', - 'wmfi': 'wmfi', - 'wmfr': 'wmfr', - 'wmhi': 'wmhi', - 'wmhk': 'wmhk', - 'wmid': 'wmid', - 'wmil': 'wmil', - 'wmin': 'wmin', - 'wmit': 'wmit', - 'wmke': 'wmke', - 'wmmk': 'wmmk', - 'wmmx': 'wmmx', - 'wmnl': 'wmnl', - 'wmnyc': 'wmnyc', - 'wmno': 'wmno', - 'wmpa-us': 'wmpa-us', - 'wmph': 'wmph', - 'wmpl': 'wmpl', - 'wmpt': 'wmpt', - 'wmpunjabi': 'wmpunjabi', - 'wmromd': 'wmromd', - 'wmrs': 'wmrs', - 'wmru': 'wmru', - 'wmse': 'wmse', - 'wmsk': 'wmsk', - 'wmtr': 'wmtr', - 'wmtw': 'wmtw', - 'wmua': 'wmua', - 'wmuk': 'wmuk', - 'wmve': 'wmve', - 'wmza': 'wmza', - 'wm2005': 'wm2005', - 'wm2006': 'wm2006', - 'wm2007': 'wm2007', - 'wm2008': 'wm2008', - 'wm2009': 'wm2009', - 'wm2010': 'wm2010', - 'wm2011': 'wm2011', - 'wm2012': 'wm2012', - 'wm2013': 'wm2013', - 'wm2014': 'wm2014', - 'wm2015': 'wm2015', - 'wm2016': 'wm2016', - 'wm2017': 'wm2017', - 'wm2018': 'wm2018', - 'wmania': 'wikimania', - 'wikimania': 'wikimania', - 'wmteam': 'wmteam', - 'wmf': 'wmf', - 'wookieepedia': 'wookieepedia', - 'wowwiki': 'wowwiki', - 'wqy': 'wqy', - 'wurmpedia': 'wurmpedia', - 'viaf': 'viaf', - 'zrhwiki': 'zrhwiki', - 'zum': 'zum', - 'zwiki': 'zwiki', - } + 'wikisophia': 'wikisophoa', + 'wikiskripta': 'wikiscripta', + 'wikt': 'wiktionary', + 'wmania': 'wikimania', + })
# A list of category redirect template names in different languages category_redirect_templates = {