jenkins-bot submitted this change.

View Change

Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
[IMPR] make debug layer optional

Remove layer strings out of the framework
(Make logging interface more consistent)

Bug: T85620
Change-Id: If685e8610b6fa09f7dbd17d819ccb20cdc6dd317
---
M pywikibot/__init__.py
M pywikibot/bot.py
M pywikibot/comms/eventstreams.py
M pywikibot/comms/http.py
M pywikibot/data/api.py
M pywikibot/logentries.py
M pywikibot/logging.py
M pywikibot/login.py
M pywikibot/page/_wikibase.py
M pywikibot/pagegenerators.py
M pywikibot/proofreadpage.py
M pywikibot/site/_apisite.py
M pywikibot/site/_datasite.py
M pywikibot/site/_generators.py
M pywikibot/site/_siteinfo.py
M pywikibot/site/_tokenwallet.py
M pywikibot/site/_upload.py
M pywikibot/textlib.py
M pywikibot/throttle.py
M pywikibot/tools/__init__.py
M pywikibot/version.py
M scripts/patrol.py
M tests/ui_tests.py
23 files changed, 78 insertions(+), 164 deletions(-)

diff --git a/pywikibot/__init__.py b/pywikibot/__init__.py
index d9ed711..54780d2 100644
--- a/pywikibot/__init__.py
+++ b/pywikibot/__init__.py
@@ -1152,8 +1152,6 @@
:raises ValueError: Missing Site code
:raises ValueError: Missing Site family
"""
- _logger = 'wiki'
-
if url:
# Either code and fam or url with optional fam for AutoFamily name
if code:
@@ -1207,7 +1205,7 @@
if key not in _sites or not isinstance(_sites[key], interface):
_sites[key] = interface(code=code, fam=fam, user=user)
debug("Instantiated {} object '{}'"
- .format(interface.__name__, _sites[key]), _logger)
+ .format(interface.__name__, _sites[key]))

if _sites[key].code != code:
warn('Site {} instantiated using different code "{}"'
@@ -1282,9 +1280,7 @@
Wait for the page-putter to flush its queue. Also drop this process from
the throttle log. Called automatically at Python exit.
"""
- _logger = 'wiki'
-
- debug('_flush() called', _logger)
+ debug('_flush() called')

def remaining() -> Tuple[int, datetime.timedelta]:
remainingPages = page_put_queue.qsize()
diff --git a/pywikibot/bot.py b/pywikibot/bot.py
index 7401883..67915d5 100644
--- a/pywikibot/bot.py
+++ b/pywikibot/bot.py
@@ -190,9 +190,6 @@
]
PageLinkType = Union['pywikibot.page.Link', 'pywikibot.page.Page']

-# Note: all output goes through python std library "logging" module
-_logger = 'bot'
-
ui = None # type: Optional[pywikibot.userinterfaces._interface_base.ABUIC]


@@ -977,7 +974,7 @@
show_help(show_global=do_help_val == 'global')
sys.exit(0)

- debug('handle_args() completed.', _logger)
+ debug('handle_args() completed.')
return non_global_args


diff --git a/pywikibot/comms/eventstreams.py b/pywikibot/comms/eventstreams.py
index a984370..1c82bc9 100644
--- a/pywikibot/comms/eventstreams.py
+++ b/pywikibot/comms/eventstreams.py
@@ -38,9 +38,6 @@
"install it with 'pip install \"requests>=2.20.1\"'\n")


-_logger = 'pywikibot.eventstreams'
-
-
class EventStreams:

"""Basic EventStreams iterator class for Server-Sent Events (SSE) protocol.
@@ -171,7 +168,7 @@
if value is not None:
self._total = int(value)
debug('{}: Set limit (maximum_items) to {}.'
- .format(self.__class__.__name__, self._total), _logger)
+ .format(self.__class__.__name__, self._total))

def register_filter(self, *args, **kwargs):
"""Register a filter.
@@ -322,7 +319,7 @@
warning('Unknown event {} occurred.'.format(event.event))

debug('{}: Stopped iterating due to exceeding item limit.'
- .format(self.__class__.__name__), _logger)
+ .format(self.__class__.__name__))
del self.source


diff --git a/pywikibot/comms/http.py b/pywikibot/comms/http.py
index 84eb68f..fb4b8fa 100644
--- a/pywikibot/comms/http.py
+++ b/pywikibot/comms/http.py
@@ -61,17 +61,15 @@
# 'certificate verify failed' is a commonly detectable string
SSL_CERT_VERIFY_FAILED_MSG = 'certificate verify failed'

-_logger = 'comms.http'
-
cookie_file_path = config.datafilepath('pywikibot.lwp')
file_mode_checker(cookie_file_path, create=True)
cookie_jar = cookiejar.LWPCookieJar(cookie_file_path)
try:
cookie_jar.load(ignore_discard=True)
except cookiejar.LoadError:
- debug('Loading cookies failed.', _logger)
+ debug('Loading cookies failed.')
else:
- debug('Loaded cookies from file.', _logger)
+ debug('Loaded cookies from file.')

session = requests.Session()
session.cookies = cookie_jar
diff --git a/pywikibot/data/api.py b/pywikibot/data/api.py
index cc1183b..2a75e93 100644
--- a/pywikibot/data/api.py
+++ b/pywikibot/data/api.py
@@ -44,8 +44,6 @@
from pywikibot.tools import PYTHON_VERSION, itergroup


-_logger = 'data.api'
-
lagpattern = re.compile(
r'Waiting for [\w.: ]+: (?P<lag>\d+(?:\.\d+)?) seconds? lagged')

@@ -311,13 +309,13 @@
# number of modules that may be processed in a single batch.
for module_batch in module_generator():
if self.modules_only_mode and 'pageset' in module_batch:
- pywikibot.debug('paraminfo fetch: removed pageset', _logger)
+ pywikibot.debug('paraminfo fetch: removed pageset')
module_batch.remove('pageset')
# If this occurred during initialisation,
# also record it in the preloaded_modules.
# (at least so tests know an extra load was intentional)
if 'query' not in self._paraminfo:
- pywikibot.debug('paraminfo batch: added query', _logger)
+ pywikibot.debug('paraminfo batch: added query')
module_batch.append('query')
self.preloaded_modules |= {'query'}

@@ -1052,7 +1050,7 @@

# Make sure user is logged in
if self.write:
- pywikibot.debug('Adding user assertion', _logger)
+ pywikibot.debug('Adding user assertion')
self['assert'] = 'user'

@classmethod
@@ -1477,8 +1475,7 @@

pywikibot.debug('API request to {} (uses get: {}):\n'
'Headers: {!r}\nURI: {!r}\nBody: {!r}'
- .format(self.site, use_get, headers, uri, body),
- _logger)
+ .format(self.site, use_get, headers, uri, body))
return use_get, uri, body, headers

def _http_request(self, use_get: bool, uri: str, data, headers,
@@ -1545,7 +1542,7 @@
# Do not retry for AutoFamily but raise a SiteDefinitionError
# Note: family.AutoFamily is a function to create that class
if self.site.family.__class__.__name__ == 'AutoFamily':
- pywikibot.debug(msg, _logger)
+ pywikibot.debug(msg)
raise SiteDefinitionError('Invalid AutoFamily({!r})'
.format(self.site.family.domain))

@@ -2050,7 +2047,7 @@
return False
pywikibot.debug('{}: cache hit ({}) for API request: {}'
.format(self.__class__.__name__, filename,
- uniquedescr), _logger)
+ uniquedescr))
return True
except OSError:
# file not found
@@ -2154,8 +2151,7 @@
self.query_increment = int(value)
self.request[self.limit_name] = self.query_increment
pywikibot.debug('{}: Set query_increment to {}.'
- .format(self.__class__.__name__,
- self.query_increment), _logger)
+ .format(type(self).__name__, self.query_increment))

def set_maximum_items(self, value: Union[int, str, None]) -> None:
"""
@@ -2172,11 +2168,9 @@
if self.query_increment and self.limit < self.query_increment:
self.request[self.limit_name] = self.limit
pywikibot.debug('{}: Set request item limit to {}'
- .format(self.__class__.__name__, self.limit),
- _logger)
+ .format(type(self).__name__, self.limit))
pywikibot.debug('{}: Set limit (maximum_items) to {}.'
- .format(self.__class__.__name__, self.limit),
- _logger)
+ .format(type(self).__name__, self.limit))

def __iter__(self):
"""
@@ -2189,28 +2183,25 @@
while True:
self.request[self.continue_name] = offset
pywikibot.debug('{}: Request: {}'
- .format(self.__class__.__name__, self.request),
- _logger)
+ .format(type(self).__name__, self.request))
data = self.request.submit()

n_items = len(data[self.data_name])
pywikibot.debug('{}: Retrieved {} items'
- .format(self.__class__.__name__, n_items),
- _logger)
+ .format(type(self).__name__, n_items))
if n_items > 0:
for item in data[self.data_name]:
yield item
n += 1
if self.limit is not None and n >= self.limit:
- pywikibot.debug('%s: Stopped iterating due to '
- 'exceeding item limit.' %
- self.__class__.__name__, _logger)
+ pywikibot.debug('{}: Stopped iterating due to '
+ 'exceeding item limit.'
+ .format(type(self).__name__))
return
offset += n_items
else:
pywikibot.debug('{}: Stopped iterating due to empty list in '
- 'response.'.format(self.__class__.__name__),
- _logger)
+ 'response.'.format(type(self).__name__))
break


@@ -2409,8 +2400,7 @@
else:
self.query_limit = min(self.api_limit, limit)
pywikibot.debug('{}: Set query_limit to {}.'
- .format(self.__class__.__name__,
- self.query_limit), _logger)
+ .format(type(self).__name__, self.query_limit))

def set_maximum_items(self, value: Union[int, str, None]) -> None:
"""Set the maximum number of items to be retrieved from the wiki.
@@ -2439,10 +2429,8 @@
limit = int(param['max'])
if self.api_limit is None or limit < self.api_limit:
self.api_limit = limit
- pywikibot.debug(
- '{}: Set query_limit to {}.'.format(self.__class__.__name__,
- self.api_limit),
- _logger)
+ pywikibot.debug('{}: Set query_limit to {}.'
+ .format(type(self).__name__, self.api_limit))

def support_namespace(self) -> bool:
"""Check if namespace is a supported parameter on this query.
@@ -2578,8 +2566,7 @@
new=new_limit,
count=self._count,
prefix=self.prefix,
- value=self.request[self.prefix + 'limit']),
- _logger)
+ value=self.request[self.prefix + 'limit']))
return prev_limit, new_limit

def _get_resultdata(self):
@@ -2598,9 +2585,8 @@
resultdata = [resultdata[k]
for k in sorted(resultdata.keys())]
pywikibot.debug('{name} received {keys}; limit={limit}'
- .format(name=self.__class__.__name__,
- keys=keys, limit=self.limit),
- _logger)
+ .format(name=type(self).__name__, keys=keys,
+ limit=self.limit))
return resultdata

def _extract_results(self, resultdata):
@@ -2645,9 +2631,9 @@
if not self.data or not isinstance(self.data, dict):
pywikibot.debug(
'{}: stopped iteration because no dict retrieved from api.'
- .format(self.__class__.__name__),
- _logger)
+ .format(type(self).__name__))
return
+
if 'query' in self.data and self.resultkey in self.data['query']:
resultdata = self._get_resultdata()
if 'normalized' in self.data['query']:
diff --git a/pywikibot/logentries.py b/pywikibot/logentries.py
index e91168b..75463a7 100644
--- a/pywikibot/logentries.py
+++ b/pywikibot/logentries.py
@@ -14,9 +14,6 @@
from pywikibot.exceptions import Error, HiddenKeyError


-_logger = 'wiki'
-
-
class LogEntry(UserDict):

"""Generic log entry.
@@ -52,8 +49,7 @@

It also logs debugging information when a key is missing.
"""
- pywikibot.debug('API log entry received:\n{!r}'.format(self),
- _logger)
+ pywikibot.debug('API log entry received:\n{!r}'.format(self))
hidden = {
'actionhidden': [
'action', 'logpage', 'ns', 'pageid', 'params', 'title',
@@ -84,9 +80,9 @@
"""Compare if self is equal to other."""
if not isinstance(other, LogEntry):
pywikibot.debug("'{}' cannot be compared with '{}'"
- .format(type(self).__name__, type(other).__name__),
- _logger)
+ .format(type(self).__name__, type(other).__name__))
return False
+
return self.logid() == other.logid() and self.site == other.site

def __getattr__(self, item: str) -> Any:
@@ -412,8 +408,7 @@
try:
logtype = logdata['type']
except KeyError:
- pywikibot.debug('API log entry received:\n{}'.format(logdata),
- _logger)
+ pywikibot.debug('API log entry received:\n{}'.format(logdata))
raise Error("Log entry has no 'type' key")

return LogEntryFactory.get_entry_class(logtype)(logdata, self._site)
diff --git a/pywikibot/logging.py b/pywikibot/logging.py
index 30cdc0b..39b6ac1 100644
--- a/pywikibot/logging.py
+++ b/pywikibot/logging.py
@@ -203,18 +203,21 @@
logoutput(text, decoder, newline, CRITICAL, **kwargs)


-def debug(text: object, layer: str, decoder: Optional[str] = None,
+def debug(text: object, layer: str = '', decoder: Optional[str] = None,
newline: bool = True, **kwargs: Any) -> None:
"""Output a debug record to the log file.

+ .. versionchanged:: 7.2
+ `layer` parameter is optional.
+
:param text: the message of the debug record to be logged to the log file.
- :param layer: logger to record this message upon
+ :param layer: dot-separated logger suffix to record this message
+ upon. If not given only 'pywiki' is used as logger name.
:param decoder: If None, text should be a unicode string else it should
be encoded in the given encoding.
:param newline: If True, a line feed will be added after printing the text.
:param kwargs: The keyword arguments can be found in the python doc:
https://docs.python.org/3/howto/logging-cookbook.html
- :param layer: The name of the logger that text will be sent to.
"""
logoutput(text, decoder, newline, DEBUG, layer, **kwargs)

diff --git a/pywikibot/login.py b/pywikibot/login.py
index aa436d5..a58fa1d 100644
--- a/pywikibot/login.py
+++ b/pywikibot/login.py
@@ -30,9 +30,6 @@
"""The format of password file is incorrect."""


-_logger = 'wiki.login'
-
-
# On some wikis you are only allowed to run a bot if there is a link to
# the bot's user page in a specific list.
# If bots are listed in a template, the templates name must be given as
diff --git a/pywikibot/page/_wikibase.py b/pywikibot/page/_wikibase.py
index 26ea6ae..3042b44 100644
--- a/pywikibot/page/_wikibase.py
+++ b/pywikibot/page/_wikibase.py
@@ -427,9 +427,7 @@
if title and ('ns' not in kwargs and 'entity_type' not in kwargs):
pywikibot.debug('{}.__init__: {} title {!r} specified without '
'ns or entity_type'
- .format(self.__class__.__name__, site,
- title),
- layer='wikibase')
+ .format(type(self).__name__, site, title))

self._namespace = None

diff --git a/pywikibot/pagegenerators.py b/pywikibot/pagegenerators.py
index 0926580..d0bb14a 100644
--- a/pywikibot/pagegenerators.py
+++ b/pywikibot/pagegenerators.py
@@ -66,8 +66,6 @@
)


-_logger = 'pagegenerators'
-
# ported from version 1 for backwards-compatibility
# most of these functions just wrap a Site or Page method that returns
# a generator
diff --git a/pywikibot/proofreadpage.py b/pywikibot/proofreadpage.py
index 9df73bf..6b9914c 100644
--- a/pywikibot/proofreadpage.py
+++ b/pywikibot/proofreadpage.py
@@ -70,9 +70,6 @@
_bs4_soup = partial(BeautifulSoup, features='lxml')


-_logger = 'proofreadpage'
-
-
PagesFromLabelType = Dict[str, Set['pywikibot.page.Page']]
_IndexType = Tuple[Optional['IndexPage'], List['IndexPage']]

@@ -627,8 +624,7 @@

# wrong link fail with Exceptions
for retry in range(5, 30, 5):
- pywikibot.debug('{}: get URI {!r}'.format(ocr_tool, cmd_uri),
- _logger)
+ pywikibot.debug('{}: get URI {!r}'.format(ocr_tool, cmd_uri))
try:
response = http.fetch(cmd_uri)
except ReadTimeout as e:
@@ -637,8 +633,7 @@
pywikibot.error('"{}": {}'.format(cmd_uri, e))
return True, e
else:
- pywikibot.debug('{}: {}'.format(ocr_tool, response.text),
- _logger)
+ pywikibot.debug('{}: {}'.format(ocr_tool, response.text))
break

pywikibot.warning('retrying in {} seconds ...'.format(retry))
diff --git a/pywikibot/site/_apisite.py b/pywikibot/site/_apisite.py
index 2210ec9..a8b5120 100644
--- a/pywikibot/site/_apisite.py
+++ b/pywikibot/site/_apisite.py
@@ -77,7 +77,6 @@


__all__ = ('APISite', )
-_logger = 'wiki.apisite'
_mw_msg_cache = defaultdict(dict) # type: DefaultDict[str, Dict[str, str]]


@@ -1617,8 +1616,7 @@
self._dl_errors[err.code].format_map(errdata)
) from None
pywikibot.debug("revdelete: Unexpected error code '{}' received."
- .format(err.code),
- _logger)
+ .format(err.code))
raise
else:
if target:
@@ -1776,14 +1774,11 @@
while True:
try:
result = req.submit()
- pywikibot.debug('editpage response: {}'.format(result),
- _logger)
+ pywikibot.debug('editpage response: {}'.format(result))
except APIError as err:
if err.code.endswith('anon') and self.logged_in():
- pywikibot.debug(
- "editpage: received '{}' even though bot is "
- 'logged in'.format(err.code),
- _logger)
+ pywikibot.debug("editpage: received '{}' even though "
+ 'bot is logged in'.format(err.code))
if err.code == 'abusefilter-warning':
pywikibot.warning('{info}\nRetrying.'
.format(info=err.info))
@@ -1808,8 +1803,7 @@
raise exception(page) from None
pywikibot.debug(
"editpage: Unexpected error code '{}' received."
- .format(err.code),
- _logger)
+ .format(err.code))
raise
assert 'edit' in result and 'result' in result['edit'], result

@@ -1966,8 +1960,7 @@
try:
result = req.submit()
pywikibot.debug('mergehistory response: {result}'
- .format(result=result),
- _logger)
+ .format(result=result))
except APIError as err:
if err.code in self._mh_errors:
on_error = self._mh_errors[err.code]
@@ -1975,9 +1968,7 @@

pywikibot.debug(
"mergehistory: Unexpected error code '{code}' received"
- .format(code=err.code),
- _logger
- )
+ .format(code=err.code))
raise
finally:
self.unlock_page(source)
@@ -2071,14 +2062,13 @@
req['from'] = oldtitle # "from" is a python keyword
try:
result = req.submit()
- pywikibot.debug('movepage response: {}'.format(result),
- _logger)
+ pywikibot.debug('movepage response: {}'.format(result))
except APIError as err:
if err.code.endswith('anon') and self.logged_in():
pywikibot.debug(
"movepage: received '{}' even though bot is logged in"
- .format(err.code),
- _logger)
+ .format(err.code))
+
if err.code in self._mv_errors:
on_error = self._mv_errors[err.code]
if not isinstance(on_error, str):
@@ -2111,8 +2101,7 @@
raise Error(on_error.format_map(errdata)) from None

pywikibot.debug("movepage: Unexpected error code '{}' received."
- .format(err.code),
- _logger)
+ .format(err.code))
raise
finally:
self.unlock_page(page)
@@ -2190,8 +2179,7 @@
self._rb_errors[err.code].format_map(errdata)
) from None
pywikibot.debug("rollback: Unexpected error code '{}' received."
- .format(err.code),
- _logger)
+ .format(err.code))
raise
finally:
self.unlock_page(page)
@@ -2288,8 +2276,7 @@
self._dl_errors[err.code].format_map(errdata)
) from None
pywikibot.debug('delete: Unexpected error code {!r} received.'
- .format(err.code),
- _logger)
+ .format(err.code))
raise
else:
if isinstance(page, pywikibot.page.BasePage):
@@ -2348,8 +2335,7 @@
self._dl_errors[err.code].format_map(errdata)
) from None
pywikibot.debug('undelete: Unexpected error code {!r} received.'
- .format(err.code),
- _logger)
+ .format(err.code))
raise
finally:
self.unlock_page(page)
@@ -2432,8 +2418,7 @@
self._protect_errors[err.code].format_map(errdata)
) from None
pywikibot.debug("protect: Unexpected error code '{}' received."
- .format(err.code),
- _logger)
+ .format(err.code))
raise
else:
protection = {}
diff --git a/pywikibot/site/_datasite.py b/pywikibot/site/_datasite.py
index b729f25..440134e 100644
--- a/pywikibot/site/_datasite.py
+++ b/pywikibot/site/_datasite.py
@@ -26,7 +26,6 @@


__all__ = ('DataSite', )
-_logger = 'wiki.datasite'


class DataSite(APISite):
diff --git a/pywikibot/site/_generators.py b/pywikibot/site/_generators.py
index d6ecd73..7bc537c 100644
--- a/pywikibot/site/_generators.py
+++ b/pywikibot/site/_generators.py
@@ -33,9 +33,6 @@
)


-_logger = 'wiki.apisite'
-
-
class GeneratorsMixin:

"""API generators mixin to MediaWiki site."""
@@ -152,7 +149,7 @@
.format(len(cache), self))

for pagedata in rvgen:
- pywikibot.debug('Preloading {}'.format(pagedata), _logger)
+ pywikibot.debug('Preloading {}'.format(pagedata))
try:
if pagedata['title'] not in cache:
# API always returns a "normalized" title which is
@@ -172,11 +169,9 @@
"title '{}'".format(pagedata['title']))
continue
except KeyError:
- pywikibot.debug("No 'title' in {}"
- .format(pagedata), _logger)
- pywikibot.debug('pageids={}'.format(pageids), _logger)
- pywikibot.debug('titles={}'
- .format(list(cache.keys())), _logger)
+ pywikibot.debug("No 'title' in {}".format(pagedata))
+ pywikibot.debug('pageids={}'.format(pageids))
+ pywikibot.debug('titles={}'.format(list(cache.keys())))
continue
priority, page = cache[pagedata['title']]
api.update_page(page, pagedata, rvgen.props)
@@ -1838,8 +1833,7 @@
raise Error(self._patrol_errors[err.code]
.format_map(errdata))
pywikibot.debug("protect: Unexpected error code '{}' received."
- .format(err.code),
- _logger)
+ .format(err.code))
raise

yield result['patrol']
diff --git a/pywikibot/site/_siteinfo.py b/pywikibot/site/_siteinfo.py
index a92311b..bc0aa76 100644
--- a/pywikibot/site/_siteinfo.py
+++ b/pywikibot/site/_siteinfo.py
@@ -16,9 +16,6 @@
from pywikibot.tools import EMPTY_DEFAULT


-_logger = 'wiki.siteinfo'
-
-
class Siteinfo(Container):

"""
@@ -228,7 +225,7 @@
:rtype: various (the value), bool (if the default value is used)
"""
if 'general' not in self._cache:
- pywikibot.debug('general siteinfo not loaded yet.', _logger)
+ pywikibot.debug('general siteinfo not loaded yet.')
force = True
props = ['namespaces', 'namespacealiases']
else:
@@ -239,7 +236,7 @@
if props:
pywikibot.debug(
"Load siteinfo properties '{}' along with 'general'"
- .format("', '".join(props)), _logger)
+ .format("', '".join(props)))
props += ['general']
default_info = self._get_siteinfo(props, expiry)
for prop in props:
diff --git a/pywikibot/site/_tokenwallet.py b/pywikibot/site/_tokenwallet.py
index 12bd1a3..9e32f87 100644
--- a/pywikibot/site/_tokenwallet.py
+++ b/pywikibot/site/_tokenwallet.py
@@ -8,9 +8,6 @@
from pywikibot.exceptions import Error


-_logger = 'site.tokenwallet'
-
-
class TokenWallet:

"""Container for tokens."""
@@ -62,8 +59,7 @@
if self.site.mw_version >= '1.24wmf19' \
and key in {'edit', 'delete', 'protect', 'move', 'block', 'unblock',
'email', 'import', 'options'}:
- debug(
- 'Token {!r} was replaced by {!r}'.format(key, 'csrf'), _logger)
+ debug('Token {!r} was replaced by {!r}'.format(key, 'csrf'))
key = 'csrf'

try:
diff --git a/pywikibot/site/_upload.py b/pywikibot/site/_upload.py
index c85a397..1db38c4 100644
--- a/pywikibot/site/_upload.py
+++ b/pywikibot/site/_upload.py
@@ -20,7 +20,6 @@


__all__ = ('Uploader', )
-_logger = 'wiki.apisite'


class Uploader:
@@ -457,7 +456,7 @@
self.site._uploaddisabled = True
raise error
result = result['upload']
- pywikibot.debug(result, _logger)
+ pywikibot.debug(result)

if 'result' not in result:
raise Error('Upload: unrecognized response: {}'.format(result))
diff --git a/pywikibot/textlib.py b/pywikibot/textlib.py
index 8b16d4e..4b6270b 100644
--- a/pywikibot/textlib.py
+++ b/pywikibot/textlib.py
@@ -49,8 +49,6 @@

ETPType = List[Tuple[str, OrderedDictType[str, str]]]

-_logger = 'textlib'
-
# cache for replaceExcept to avoid recompile or regexes each call
_regex_cache = {}

@@ -1696,7 +1694,7 @@
text = removeDisabledParts(text)

parser_name = wikitextparser.__name__
- pywikibot.debug('Using {!r} wikitext parser'.format(parser_name), _logger)
+ pywikibot.debug('Using {!r} wikitext parser'.format(parser_name))

result = []
parsed = wikitextparser.parse(text)
diff --git a/pywikibot/throttle.py b/pywikibot/throttle.py
index 7079d1a..c293493 100644
--- a/pywikibot/throttle.py
+++ b/pywikibot/throttle.py
@@ -24,8 +24,6 @@
from hashlib import blake2b


-_logger = 'wiki.throttle'
-
FORMAT_LINE = '{module_id} {pid} {time} {site}\n'
ProcEntry = namedtuple('ProcEntry', ['module_id', 'pid', 'time', 'site'])

@@ -158,8 +156,7 @@
"""
global pid
mysite = self.mysite
- pywikibot.debug('Checking multiplicity: pid = {pid}'.format(pid=pid),
- _logger)
+ pywikibot.debug('Checking multiplicity: pid = {pid}'.format(pid=pid))
with self.lock:
processes = []
used_pids = set()
diff --git a/pywikibot/tools/__init__.py b/pywikibot/tools/__init__.py
index df207fb..3b68d81 100644
--- a/pywikibot/tools/__init__.py
+++ b/pywikibot/tools/__init__.py
@@ -65,8 +65,6 @@

PYTHON_VERSION = sys.version_info[:3]

-_logger = 'tools'
-

def is_ip_address(value: str) -> bool:
"""Check if a value is a valid IPv4 or IPv6 address.
@@ -507,8 +505,7 @@
version_match.group(2))
if version_match.group(2):
debug('Additional unused version part '
- '"{}"'.format(version_match.group(2)),
- _logger)
+ '"{}"'.format(version_match.group(2)))
self._dev_version = (4, )

self.suffix = version_match.group(2) or ''
@@ -773,8 +770,6 @@

"""

- _logger = 'threadlist'
-
def __init__(self, limit: int = 128, wait_time: float = 2, *args) -> None:
"""Initializer.

@@ -810,17 +805,16 @@

super().append(thd)
thd.start()
- debug("thread {} ('{}') started".format(len(self), type(thd)),
- self._logger)
+ debug("thread {} ('{}') started".format(len(self), type(thd)))

def stop_all(self) -> None:
"""Stop all threads the pool."""
if self:
- debug('EARLY QUIT: Threads: {}'.format(len(self)), self._logger)
+ debug('EARLY QUIT: Threads: {}'.format(len(self)))
for thd in self:
thd.stop()
debug('EARLY QUIT: Queue size left in {}: {}'
- .format(thd, thd.queue.qsize()), self._logger)
+ .format(thd, thd.queue.qsize()))


def intersect_generators(*iterables, allow_duplicates: bool = False):
@@ -890,7 +884,7 @@
for source in iterables:
if not source:
debug('At least one iterable ({!r}) is empty and execution was '
- 'skipped immediately.'.format(source), 'intersect')
+ 'skipped immediately.'.format(source))
return

# Item is cached to check that it is found n_gen times
diff --git a/pywikibot/version.py b/pywikibot/version.py
index 1145497..661eb36 100644
--- a/pywikibot/version.py
+++ b/pywikibot/version.py
@@ -27,9 +27,6 @@
from pywikibot.exceptions import VersionParseError


-_logger = 'version'
-
-
def _get_program_dir():
_program_dir = os.path.normpath(
os.path.split(os.path.dirname(__file__))[0])
@@ -113,7 +110,7 @@
# Git and SVN can silently fail, as it may be a nightly.
if exceptions:
pywikibot.debug('version algorithm exceptions:\n{!r}'
- .format(exceptions), _logger)
+ .format(exceptions))

if isinstance(date, str):
datestring = date
diff --git a/scripts/patrol.py b/scripts/patrol.py
index f2d33ec..48bc66f 100755
--- a/scripts/patrol.py
+++ b/scripts/patrol.py
@@ -61,8 +61,6 @@
except ImportError as e:
mwparserfromhell = e

-_logger = 'patrol'
-

def verbose_output(string) -> None:
"""Verbose output."""
@@ -210,8 +208,8 @@
continue
if isinstance(node, mwparserfromhell.nodes.wikilink.Wikilink):
if current_user is False:
- pywikibot.debug('Link to "{}" ignored as outside '
- 'list'.format(node.title), _logger)
+ pywikibot.debug('Link to "{}" ignored as outside list'
+ .format(node.title))
continue

obj = pywikibot.Link(node.title, self.site)
diff --git a/tests/ui_tests.py b/tests/ui_tests.py
index 9f443fd..cab4146 100755
--- a/tests/ui_tests.py
+++ b/tests/ui_tests.py
@@ -149,7 +149,7 @@
self.assertEqual(self.strerr.getvalue(), 'CRITICAL: critical\n')

def test_debug(self):
- pywikibot.debug('debug', 'test')
+ pywikibot.debug('debug', layer='test')
self.assertEqual(self.strout.getvalue(), '')
self.assertEqual(self.strerr.getvalue(), '')


To view, visit change 783860. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: If685e8610b6fa09f7dbd17d819ccb20cdc6dd317
Gerrit-Change-Number: 783860
Gerrit-PatchSet: 4
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: D3r1ck01 <xsavitar.wiki@aol.com>
Gerrit-Reviewer: Xqt <info@gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-CC: DannyS712 <dannys712.wiki@gmail.com>
Gerrit-MessageType: merged