XZise has uploaded a new change for review.
https://gerrit.wikimedia.org/r/190427
Change subject: [IMPROV] Family: Style of the load method
......................................................................
[IMPROV] Family: Style of the load method
Instead of having spaghetti code there, it conly has one return. It also
raises errors with a more specific error message.
Change-Id: Ia4c5cddedfefffc25f955e50bcfc82d2f50677ff
---
M pywikibot/family.py
1 file changed, 20 insertions(+), 18 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core
refs/changes/27/190427/1
diff --git a/pywikibot/family.py b/pywikibot/family.py
index c855aa0..6968379 100644
--- a/pywikibot/family.py
+++ b/pywikibot/family.py
@@ -865,31 +865,33 @@
family_file = config.family_files[fam]
if isinstance(family_file, dict):
- myfamily = AutoFamily(**family_file)
- Family._families[fam] = myfamily
- return Family._families[fam]
-
- if family_file.startswith('http://') or
family_file.startswith('https://'):
- myfamily = AutoFamily(fam, family_file)
- Family._families[fam] = myfamily
- return Family._families[fam]
+ family_instance = AutoFamily(**family_file)
+ if (family_file.startswith('http://') or
+ family_file.startswith('https://')):
+ family_instance = AutoFamily(fam, family_file)
+ else:
+ try:
+ # Ignore warnings due to dots in family names.
+ # TODO: use more specific filter, so that family classes
can use
+ # RuntimeWarning's while loading.
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore", RuntimeWarning)
+ family_module = imp.load_source(fam, family_file)
+ except ImportError:
+ raise UnknownFamily('Family {0} could not be '
+ 'imported.'.format(fam))
+ else:
+ family_instance = family_module.Family()
elif fam == 'lockwiki':
raise UnknownFamily(
"Family 'lockwiki' has been removed as it not a public wiki.\n"
"You may install your own family file for this wiki, and a "
"old family file may be found at:\n"
"http://git.wikimedia.org/commitdiff/pywikibot%2Fcore.git/dfdc0c9150fa8e09829bb9d236")
+ else:
+ raise UnknownFamily('Family {0} not defined in
config.'.format(fam))
- try:
- # Ignore warnings due to dots in family names.
- # TODO: use more specific filter, so that family classes can use
- # RuntimeWarning's while loading.
- with warnings.catch_warnings():
- warnings.simplefilter("ignore", RuntimeWarning)
- myfamily = imp.load_source(fam, config.family_files[fam])
- except (ImportError, KeyError):
- raise UnknownFamily("Family %s does not exist" % fam)
- Family._families[fam] = myfamily.Family()
+ Family._families[fam] = family_instance
return Family._families[fam]
@property
--
To view, visit https://gerrit.wikimedia.org/r/190427
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia4c5cddedfefffc25f955e50bcfc82d2f50677ff
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: XZise <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits