jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/953966 )
Change subject: [doc] Update ROADMAP.rst and CHANGELOG.rst
......................................................................
[doc] Update ROADMAP.rst and CHANGELOG.rst
Change-Id: I8acd7d79c44ab25c01fb7cc0222a485ae5ebfabf
---
M ROADMAP.rst
M pywikibot/throttle.py
M scripts/CHANGELOG.rst
3 files changed, 24 insertions(+), 2 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/ROADMAP.rst b/ROADMAP.rst
index fa0e205..74b3d74 100644
--- a/ROADMAP.rst
+++ b/ROADMAP.rst
@@ -1,6 +1,10 @@
Current release
---------------
+* Extract code and family from dbname in :meth:`site.APISite.fromDBName()
+ <pywikibot.site._apisite.APISite.fromDBName>` (:phab:`T345036`)
+* ``dropdelay`` and ``releasepid`` attributes of :class:`throttle.Throttle` where deprecated
+ in favour of `expiry` class attribute
* Add https scheme if missing in url asked by :mod:`pywikibot.scripts.generate_family_file`
* i18n updates
* use inline re.IGNORECASE flag in :func:`textlib.case_escape` function (:phab:`T308265`)
@@ -12,6 +16,9 @@
Deprecations
------------
+* 8.4.0: *dropdelay* and *releasepid* attributes of :class:`throttle.Throttle` will be removed
+ in favour of *expiry* class attribute
+* 8.2.0: :func:`tools.itertools.itergroup` will be removed in favour of :func:`backports.batched`
* 8.2.0: *normalize* parameter of :meth:`WbTime.toTimestr` and :meth:`WbTime.toWikibase` will be removed
* 8.1.0: Dependency of :exc:`exceptions.NoSiteLinkError` from :exc:`exceptions.NoPageError` will be removed
* 8.1.0: ``exceptions.Server414Error`` is deprecated in favour of :exc:`exceptions.Client414Error`
@@ -49,6 +56,10 @@
* 7.0.0: baserevid parameter of editSource(), editQualifier(), removeClaims(), removeSources(), remove_qualifiers() DataSite methods will be removed
* 7.0.0: Values of APISite.allpages() parameter filterredir other than True, False and None are deprecated
* 7.0.0: The i18n identifier 'cosmetic_changes-append' will be removed in favour of 'pywikibot-cosmetic-changes'
+
+Will be removed in Pywikibot 9
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
* 6.5.0: OutputOption.output() method will be removed in favour of OutputOption.out property
* 6.5.0: Infinite rotating file handler with logfilecount of -1 is deprecated
* 6.4.0: 'allow_duplicates' parameter of :func:`tools.itertools.intersect_generators` as positional argument is deprecated, use keyword argument instead
diff --git a/pywikibot/throttle.py b/pywikibot/throttle.py
index adfc696..bb427f0 100644
--- a/pywikibot/throttle.py
+++ b/pywikibot/throttle.py
@@ -95,7 +95,7 @@
"""
@property
- @deprecated('expiry', since='8.4')
+ @deprecated('expiry', since='8.4.0')
def dropdelay(self):
"""Ignore processes that have not made a check in this many seconds.
@@ -105,7 +105,7 @@
return self.expiry
@property
- @deprecated('expiry', since='8.4')
+ @deprecated('expiry', since='8.4.0')
def releasepid(self):
"""Free the process id after this many seconds.
diff --git a/scripts/CHANGELOG.rst b/scripts/CHANGELOG.rst
index 7c38049..6403ea8 100644
--- a/scripts/CHANGELOG.rst
+++ b/scripts/CHANGELOG.rst
@@ -4,6 +4,8 @@
8.4.0
-----
+* L10N for several scripts
+
checkimages
~~~~~~~~~~~
--
To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/953966
To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I8acd7d79c44ab25c01fb7cc0222a485ae5ebfabf
Gerrit-Change-Number: 953966
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: D3r1ck01 <dalangi-ctr(a)wikimedia.org>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged
jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/953197 )
Change subject: [bugfix] Extract code and family from dbname in APISite.fromDBName
......................................................................
[bugfix] Extract code and family from dbname in APISite.fromDBName
API:sitematrix does not return any site.code but site.lang instead.
Creating a Site object will fail for any site where lang is different
from code. Therefore extract site code and family from dbname directly.
(Alternatively it could be extracted from url)
Related tests were added.
Bug: T345036
Change-Id: Ic2e5c4d384fef8519bac6c13511c1a0d9479a103
---
M pywikibot/site/_apisite.py
M tests/site_tests.py
2 files changed, 45 insertions(+), 17 deletions(-)
Approvals:
MisterSynergy: Looks good to me, but someone else must approve
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/site/_apisite.py b/pywikibot/site/_apisite.py
index f8097cc..ea9ba8c 100644
--- a/pywikibot/site/_apisite.py
+++ b/pywikibot/site/_apisite.py
@@ -184,14 +184,15 @@
"""
return self._interwikimap[prefix].local
- @classmethod
+ @staticmethod
def fromDBName( # noqa: N802
- cls,
dbname: str,
site: Optional[BaseSite] = None
) -> BaseSite:
- """
- Create a site from a database name using the sitematrix.
+ """Create a site from a database name using the sitematrix.
+
+ .. versionchanged:: 8.4
+ changed from classmethod to staticmethod.
:param dbname: database name
:param site: Site to load sitematrix from. (Default meta.wikimedia.org)
@@ -200,19 +201,27 @@
# TODO this only works for some WMF sites
if not site:
site = pywikibot.Site('meta')
+ param = {
+ 'action': 'sitematrix',
+ 'smlangprop': 'site',
+ 'smsiteprop': ('code', 'dbname'),
+ 'formatversion': 2,
+ }
req = site._request(expiry=datetime.timedelta(days=10),
- parameters={'action': 'sitematrix'})
+ parameters=param)
data = req.submit()
for key, val in data['sitematrix'].items():
if key == 'count':
continue
- if 'code' in val:
- lang = val['code']
+ if 'site' in val:
for m_site in val['site']:
if m_site['dbname'] == dbname:
- if m_site['code'] == 'wiki':
- m_site['code'] = 'wikipedia'
- return pywikibot.Site(lang, m_site['code'])
+ # extract site from dbname
+ family = m_site['code']
+ code = removesuffix(dbname, family).replace('_', '-')
+ if family == 'wiki':
+ family = 'wikipedia'
+ return pywikibot.Site(code, family)
else: # key == 'specials'
for m_site in val:
if m_site['dbname'] == dbname:
diff --git a/tests/site_tests.py b/tests/site_tests.py
index add933a..5908217 100755
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -89,17 +89,19 @@
def test_constructors(self):
"""Test cases for site constructors."""
test_list = [
+ ['alswiki', 'wikipedia:als'], # see T345036
+ ['commonswiki', 'commons:commons'],
+ ['dewikinews', 'wikinews:de'],
['enwiki', 'wikipedia:en'],
['eswikisource', 'wikisource:es'],
- ['dewikinews', 'wikinews:de'],
- ['ukwikivoyage', 'wikivoyage:uk'],
['metawiki', 'meta:meta'],
- ['commonswiki', 'commons:commons'],
- ['wikidatawiki', 'wikidata:wikidata'],
- ['testwikidatawiki', 'wikidata:test'],
- ['testwiki', 'wikipedia:test'], # see T225729, T228300
- ['test2wiki', 'wikipedia:test2'], # see T225729
+ ['roa_rupwiki', 'wikipedia:roa-rup'], # see T345036
['sourceswiki', 'wikisource:mul'], # see T226960
+ ['test2wiki', 'wikipedia:test2'], # see T225729
+ ['testwiki', 'wikipedia:test'], # see T225729, T228300
+ ['testwikidatawiki', 'wikidata:test'],
+ ['ukwikivoyage', 'wikivoyage:uk'],
+ ['wikidatawiki', 'wikidata:wikidata'],
]
if isinstance(self.site.family, pywikibot.family.WikimediaFamily):
site = self.site
--
To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/953197
To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Ic2e5c4d384fef8519bac6c13511c1a0d9479a103
Gerrit-Change-Number: 953197
Gerrit-PatchSet: 6
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: MisterSynergy <mister.synergy(a)yahoo.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged