jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/659769 )
Change subject: [cleanup] Remove DataSite get_* methods deprecated for 6 years ......................................................................
[cleanup] Remove DataSite get_* methods deprecated for 6 years
Change-Id: I44d9a7efd8f3fcae0807a23079b2db4cd713eeaf --- M pywikibot/site/__init__.py M tests/wikibase_tests.py 2 files changed, 0 insertions(+), 137 deletions(-)
Approvals: Matěj Suchánek: Looks good to me, but someone else must approve Xqt: Looks good to me, approved jenkins-bot: Verified
diff --git a/pywikibot/site/__init__.py b/pywikibot/site/__init__.py index 98b12a7..60d563c 100644 --- a/pywikibot/site/__init__.py +++ b/pywikibot/site/__init__.py @@ -10,7 +10,6 @@ # Distributed under the terms of the MIT license. # import datetime -import functools import heapq import inspect import itertools @@ -5942,92 +5941,6 @@
return baserevid
- def __getattr__(self, attr): - """ - Provide data access methods. - - Methods provided are get_info, get_sitelinks, get_aliases, - get_labels, get_descriptions, and get_urls. - """ - if hasattr(self.__class__, attr): - return getattr(self.__class__, attr) - if attr.startswith('get_'): - props = attr.replace('get_', '') - if props in ['info', 'sitelinks', 'aliases', 'labels', - 'descriptions', 'urls']: - if props == 'info': - instead = ( - '\n' - "{'lastrevid': ItemPage.latest_revision_id,\n" - " 'pageid': ItemPage.pageid,\n" - " 'title': ItemPage.title(),\n" - " 'modified': ItemPage._timestamp,\n" - " 'ns': ItemPage.namespace(),\n" - " 'type': ItemPage.entity_type, # for subclasses\n" - " 'id': ItemPage.id" - '}\n') - elif props == 'sitelinks': - instead = 'ItemPage.sitelinks' - elif props in ('aliases', 'labels', 'descriptions'): - instead = ('ItemPage.{0} after ItemPage.get()' - .format(attr)) - else: # urls - instead = None - issue_deprecation_warning('DataSite.{0}()'.format(attr), - instead, warning_class=FutureWarning, - since='20151022') - if props == 'urls': - props = 'sitelinks/urls' - method = self._get_propertyitem - f = functools.partial(method, props) - if hasattr(method, '__doc__'): - f.__doc__ = method.__doc__ - return f - - return super().__getattr__(attr) - - def _get_propertyitem(self, props, source, **params): - """Generic method to get the data for multiple Wikibase items.""" - wbdata = self._get_item(source, props=props, **params) - if props == 'info': - return wbdata - - if props == 'sitelinks/urls': - props = 'sitelinks' - - assert props in wbdata, \ - 'API wbgetentities response lacks %s key' % props - return wbdata[props] - - # Only separated from get_item to avoid the deprecation message via - # _get_propertyitem - def _get_item(self, source, **params): - assert set(params) <= {'props'}, \ - 'Only "props" is a valid kwarg, not {0}'.format(set(params) - - {'props'}) - try: - source = int(source) - except ValueError: - raise NotImplementedError - ids = 'q' + str(source) - params = merge_unique_dicts(params, action='wbgetentities', - ids=ids) - wbrequest = self._simple_request(**params) - wbdata = wbrequest.submit() - assert 'success' in wbdata, \ - "API wbgetentities response lacks 'success' key" - assert wbdata['success'] == 1, "API 'success' key is not 1" - assert 'entities' in wbdata, \ - "API wbgetentities response lacks 'entities' key" - - if ids.upper() in wbdata['entities']: - ids = ids.upper() - - assert ids in wbdata['entities'], \ - 'API wbgetentities response lacks %s key' % ids - - return wbdata['entities'][ids] - def data_repository(self): """ Override parent method. diff --git a/tests/wikibase_tests.py b/tests/wikibase_tests.py index 7cff163..f77af864 100644 --- a/tests/wikibase_tests.py +++ b/tests/wikibase_tests.py @@ -2428,56 +2428,6 @@ self.assertEqual(diff, expected)
-class TestDeprecatedDataSiteMethods(WikidataTestCase, DeprecationTestCase): - - """Test deprecated DataSite get_* methods.""" - - cached = True - - def test_get_info(self): - """Test get_info.""" - data = self.repo.get_info(60) - self.assertOneDeprecation() - self.assertIsInstance(data, dict) - self.assertIn('title', data) - self.assertEqual(data['title'], 'Q60') - - def test_get_labels(self): - """Test get_labels.""" - data = self.repo.get_labels(60) - self.assertOneDeprecation() - self.assertIsInstance(data, dict) - self.assertIn('en', data) - - def test_get_aliases(self): - """Test get_aliases.""" - data = self.repo.get_aliases(60) - self.assertOneDeprecation() - self.assertIsInstance(data, dict) - self.assertIn('fr', data) # T170073 - - def test_get_descriptions(self): - """Test get_descriptions.""" - data = self.repo.get_descriptions(60) - self.assertOneDeprecation() - self.assertIsInstance(data, dict) - self.assertIn('en', data) - - def test_get_sitelinks(self): - """Test get_sitelinks.""" - data = self.repo.get_sitelinks(60) - self.assertOneDeprecation() - self.assertIsInstance(data, dict) - self.assertIn('enwiki', data) - - def test_get_urls(self): - """Test get_urls.""" - data = self.repo.get_urls(60) - self.assertOneDeprecation() - self.assertIsInstance(data, dict) - self.assertIn('enwiki', data) - - if __name__ == '__main__': # pragma: no cover with suppress(SystemExit): unittest.main()