jenkins-bot has submitted this change and it was merged.
Change subject: flake8/pep8 should ignore *.egg in root directory
......................................................................
flake8/pep8 should ignore *.egg in root directory
I have a directory httplib2-0.8_pywikibot1-py2.7.egg which is full of
lint errors. So get pep8 and flake8 to ignore any *.egg directory
present in the root directory.
Change-Id: Iecfcef29a0c90c1aac66d39a05044db17b708ea4
---
M tox.ini
1 file changed, 2 insertions(+), 2 deletions(-)
Approvals:
Merlijn van Deen: Looks good to me, approved
jenkins-bot: Verified
diff --git a/tox.ini b/tox.ini
index b6a3d4a..10e41cd 100644
--- a/tox.ini
+++ b/tox.ini
@@ -18,10 +18,10 @@
[flake8]
ignore = E122,E127,E241,E502
-exclude = .tox,.git,ez_setup.py,externals,user-config.py,./scripts/i18n/*,./pywikibot/date.py
+exclude = .tox,.git,./*.egg,ez_setup.py,externals,user-config.py,./scripts/i18n/*,./pywikibot/date.py
max_line_length = 256
[pep8]
ignore = E122,E127,E241,E502
-exclude = .tox,.git,ez_setup.py,externals,user-config.py,./scripts/i18n/*,./pywikibot/date.py
+exclude = .tox,.git,./*.egg,ez_setup.py,externals,user-config.py,./scripts/i18n/*,./pywikibot/date.py
max_line_length = 256
--
To view, visit https://gerrit.wikimedia.org/r/112427
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Iecfcef29a0c90c1aac66d39a05044db17b708ea4
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Hashar <hashar(a)free.fr>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot <>
jenkins-bot has submitted this change and it was merged.
Change subject: (bug 59970) show clear error message if httplib2 is not found
......................................................................
(bug 59970) show clear error message if httplib2 is not found
and suggest to git submodule update --init to get it
Change-Id: I6abae2d811311e340f3756d6084c461faff1b3dc
---
M pwb.py
1 file changed, 8 insertions(+), 0 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pwb.py b/pwb.py
index 86c9b9e..b07b0e9 100644
--- a/pwb.py
+++ b/pwb.py
@@ -103,6 +103,14 @@
os.path.join(rewrite_path, 'externals')
] + sys.path[1:]
+# try importing the known externals, and raise an error if they are not found
+try:
+ import httplib2
+except ImportError as e:
+ print("ImportError: %s" % e)
+ print("Did you clone without --recursive? Try running 'git submodule update --init'.")
+ sys.exit(1)
+
if "PYWIKIBOT2_DIR" not in os.environ:
os.environ["PYWIKIBOT2_DIR"] = os.path.split(__file__)[0]
--
To view, visit https://gerrit.wikimedia.org/r/112336
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I6abae2d811311e340f3756d6084c461faff1b3dc
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot <>
jenkins-bot has submitted this change and it was merged.
Change subject: Enable "-count" option, use site objects from site generator
......................................................................
Enable "-count" option, use site objects from site generator
Since we have the site objects now, we use them directly without
re-creating them with it's language code. Also we sort the sites
by their dbnames.
Change-Id: If5b4f155a04665f2c32cf11931a13102d704d42a
---
M scripts/featured.py
1 file changed, 32 insertions(+), 26 deletions(-)
Approvals:
Xqt: Looks good to me, but someone else must approve
Pyfisch: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/featured.py b/scripts/featured.py
index 5277e53..e958979 100644
--- a/scripts/featured.py
+++ b/scripts/featured.py
@@ -47,7 +47,6 @@
Example: featured.py -fromlang:en,he -count
counts how many featured articles exist in the en and he
wikipedias.
- (sorry, not implemented yet)
-quiet no corresponding pages are displayed.
@@ -55,7 +54,7 @@
#
# (C) Maxim Razin, 2005
# (C) Leonardo Gregianin, 2005-2008
-# (C) xqt, 2009-2013
+# (C) xqt, 2009-2014
# (C) Pywikibot team, 2005-2012
#
# Distributed under the terms of the MIT license.
@@ -240,7 +239,7 @@
if not self.tasks:
self.tasks = ['featured']
- def itercode(self, task):
+ def itersites(self, task):
""" generator for site codes to be processed """
def _generator():
@@ -252,7 +251,7 @@
item_no = former_name['wikidata'][1]
dp = pywikibot.ItemPage(self.site.data_repository(), item_no)
dp.get()
- for key in dp.sitelinks.keys():
+ for key in sorted(dp.sitelinks.keys()):
try:
site = self.site.fromDBName(key)
except pywikibot.NoSuchSite:
@@ -260,7 +259,7 @@
% key)
else:
if site.family == self.site.family:
- yield site.code
+ yield site
generator = _generator()
@@ -274,10 +273,10 @@
start = ""
if not end:
end = "zzzzzzz"
- return (code for code in generator
- if code >= start and code <= end)
+ return (site for site in generator
+ if site.code >= start and site.code <= end)
else:
- return (code for code in generator if code in fromlang)
+ return (site for site in generator if site.code in fromlang)
else:
pywikibot.warning(u'No sites given to verify %s articles.\n'
u'Please use -fromlang: or fromall option\n'
@@ -297,18 +296,21 @@
return True
def readcache(self, task):
- if not self.getOption('nocache') is True:
- self.filename = pywikibot.config.datafilepath("cache", task)
- try:
- f = open(self.filename, "rb")
- self.cache = pickle.load(f)
- f.close()
- pywikibot.output(u'Cache file %s found with %d items.'
- % (self.filename, len(self.cache)))
- except IOError:
- pywikibot.output(u'Cache file %s not found.' % self.filename)
+ if self.getOption('count') or self.getOption('nocache') is True:
+ return
+ self.filename = pywikibot.config.datafilepath("cache", task)
+ try:
+ f = open(self.filename, "rb")
+ self.cache = pickle.load(f)
+ f.close()
+ pywikibot.output(u'Cache file %s found with %d items.'
+ % (self.filename, len(self.cache)))
+ except IOError:
+ pywikibot.output(u'Cache file %s not found.' % self.filename)
def writecache(self):
+ if self.getOption('count'):
+ return
if not self.getOption('nocache') is True:
pywikibot.output(u'Writing %d items to cache file %s.'
% (len(self.cache), self.filename))
@@ -329,18 +331,17 @@
return
self.readcache(task)
- for code in self.itercode(task):
+ for site in self.itersites(task):
try:
- self.treat(code, task)
+ self.treat(site, task)
except KeyboardInterrupt:
pywikibot.output('\nQuitting %s treat...' % task)
break
self.writecache()
- def treat(self, code, process):
- fromsite = pywikibot.Site(code)
+ def treat(self, fromsite, task):
if fromsite != self.site:
- self.featuredWithInterwiki(fromsite, process)
+ self.featuredWithInterwiki(fromsite, task)
def featuredArticles(self, site, task, cache):
code = site.lang
@@ -511,7 +512,6 @@
% (findtemplate.replace(u' ', u'[ _]'),
site.code), re.IGNORECASE)
- interactive = self.getOption('interactive')
tosite = self.site
if not fromsite.lang in self.cache:
self.cache[fromsite.lang] = {}
@@ -521,11 +521,17 @@
if self.getOption('nocache') is True or \
fromsite.code in self.getOption('nocache'):
cc = {}
+
+ gen = self.featuredArticles(fromsite, task, cc)
+ if self.getOption('count'):
+ next(gen, None)
+ return # count only, we are ready here
+ gen = PreloadingGenerator(gen)
+
add_tl, remove_tl = self.getTemplateList(tosite.code, task)
re_Link_add = compile_link(fromsite, add_tl)
re_Link_remove = compile_link(fromsite, remove_tl)
- gen = self.featuredArticles(fromsite, task, cc)
- gen = PreloadingGenerator(gen)
+ interactive = self.getOption('interactive')
for a in gen:
if a.isRedirectPage():
a = a.getRedirectTarget()
--
To view, visit https://gerrit.wikimedia.org/r/112329
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: If5b4f155a04665f2c32cf11931a13102d704d42a
Gerrit-PatchSet: 2
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Pyfisch <pyfisch(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot <>
jenkins-bot has submitted this change and it was merged.
Change subject: (bugfix) follow-up for https://gerrit.wikimedia.org/r/#/c/112195/
......................................................................
(bugfix) follow-up for https://gerrit.wikimedia.org/r/#/c/112195/
Since the last committ we use Site.fromDBName() to get the the site
code instead extracting them directly. Site.fromDBName() creates a
site object and this may fail with NoSuchSite exception if the
dbname returned by wikidata is a obsolete site. Unfortunately
that may occur.
In this case we can no longer test against that exception outside
generator because the site object is already been created but we
must check it inside the generator. This is impossible for
generator expressions. We need a generator method instead.
Change-Id: I990b0d65909fe9f2adfec96a270b88bb62336360
---
M scripts/featured.py
1 file changed, 20 insertions(+), 15 deletions(-)
Approvals:
Pyfisch: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/featured.py b/scripts/featured.py
index 9db0162..5277e53 100644
--- a/scripts/featured.py
+++ b/scripts/featured.py
@@ -242,19 +242,27 @@
def itercode(self, task):
""" generator for site codes to be processed """
- if task == 'good':
- item_no = good_name['wikidata'][1]
- elif task == 'featured':
- item_no = featured_name['wikidata'][1]
- elif task == 'former':
- item_no = former_name['wikidata'][1]
- dp = pywikibot.ItemPage(self.site.data_repository(), item_no)
- dp.get()
- generator = (site.code for site in
- sorted([self.site.fromDBName(key)
- for key in dp.sitelinks.keys()])
- if site.family == self.site.family) # wikipedia sites only
+ def _generator():
+ if task == 'good':
+ item_no = good_name['wikidata'][1]
+ elif task == 'featured':
+ item_no = featured_name['wikidata'][1]
+ elif task == 'former':
+ item_no = former_name['wikidata'][1]
+ dp = pywikibot.ItemPage(self.site.data_repository(), item_no)
+ dp.get()
+ for key in dp.sitelinks.keys():
+ try:
+ site = self.site.fromDBName(key)
+ except pywikibot.NoSuchSite:
+ pywikibot.output('"%s" is not a valid site. Skipping...'
+ % key)
+ else:
+ if site.family == self.site.family:
+ yield site.code
+
+ generator = _generator()
if self.getOption('fromall'):
return generator
@@ -327,9 +335,6 @@
except KeyboardInterrupt:
pywikibot.output('\nQuitting %s treat...' % task)
break
- except pywikibot.NoSuchSite:
- pywikibot.output('"%s" is not a valid site. Skipping...' % code)
- continue
self.writecache()
def treat(self, code, process):
--
To view, visit https://gerrit.wikimedia.org/r/112322
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I990b0d65909fe9f2adfec96a270b88bb62336360
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Pyfisch <pyfisch(a)gmail.com>
Gerrit-Reviewer: jenkins-bot <>
jenkins-bot has submitted this change and it was merged.
Change subject: Support editing as a sysop
......................................................................
Support editing as a sysop
This patch makes all functions which are decorated with
must_be('user') can perform with sysop account if the function
is called with parameter as_group='sysop'
Bug: 58789
Change-Id: Ib8df98667b9457504f54de856aa4c4db0a997635
---
M pywikibot/site.py
1 file changed, 10 insertions(+), 9 deletions(-)
Approvals:
Merlijn van Deen: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/site.py b/pywikibot/site.py
index 20ee4bb..e01efc5 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -701,22 +701,23 @@
will be ignored for now.
@param group: the group the logged in user should belong to
+ this parameter can be overridden by
+ keyword argument 'as_group'
legal values: 'user' and 'sysop'
- @param right: the rights the logged in user hsould have
+ @param right: the rights the logged in user should have
not supported yet and thus ignored.
@returns: a decorator to make sure the requirement is statisfied when
the decorated function is called.
"""
- if group == 'user':
- run = lambda self: self.login(False)
- elif group == 'sysop':
- run = lambda self: self.login(True)
- else:
- raise Exception("Not implemented")
-
def decorator(fn):
def callee(self, *args, **kwargs):
- run(self)
+ grp = kwargs.pop('as_group', group)
+ if grp == 'user':
+ self.login(False)
+ elif grp == 'sysop':
+ self.login(True)
+ else:
+ raise Exception("Not implemented")
return fn(self, *args, **kwargs)
callee.__name__ = fn.__name__
callee.__doc__ = fn.__doc__
--
To view, visit https://gerrit.wikimedia.org/r/111943
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ib8df98667b9457504f54de856aa4c4db0a997635
Gerrit-PatchSet: 5
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Nullzero <nullzero.free(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Legoktm <legoktm.wikipedia(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Mpaa <mpaa.wiki(a)gmail.com>
Gerrit-Reviewer: Nullzero <nullzero.free(a)gmail.com>
Gerrit-Reviewer: Pyfisch <pyfisch(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot <>