From: Benjamin Mako Hill Date: Sat, 12 Feb 2011 19:07:18 +0000 (-0500) Subject: merge patched into master X-Git-Url: https://projects.mako.cc/source/python-simplemediawiki.debian/commitdiff_plain/10ccfd5025e85c972884d608f23169c6ad23aa6f?hp=327b1d8a47808454c38a480e385b8e9f8c70c11b merge patched into master --- diff --git a/debian/.git-dpm b/debian/.git-dpm index 42f746c..2095053 100644 --- a/debian/.git-dpm +++ b/debian/.git-dpm @@ -1,6 +1,6 @@ # see git-dpm(1) from git-dpm package -04a25c76a33802f39e2afe4989d822c010a7e863 -04a25c76a33802f39e2afe4989d822c010a7e863 +49b148ee4c10fdf671288331217bd4dd0304b8b4 +49b148ee4c10fdf671288331217bd4dd0304b8b4 04a25c76a33802f39e2afe4989d822c010a7e863 04a25c76a33802f39e2afe4989d822c010a7e863 python-simplemediawiki_1.0.2.orig.tar.gz diff --git a/debian/patches/0001-Fix-not-being-able-to-import-the-module.patch b/debian/patches/0001-Fix-not-being-able-to-import-the-module.patch new file mode 100644 index 0000000..8154aef --- /dev/null +++ b/debian/patches/0001-Fix-not-being-able-to-import-the-module.patch @@ -0,0 +1,40 @@ +From a54cc1e6cdfacf678711f6c88021c8eca5c6580c Mon Sep 17 00:00:00 2001 +From: Ian Weller +Date: Fri, 4 Feb 2011 22:06:35 -0600 +Subject: Fix not being able to import the module + +--- + simplemediawiki.py | 13 ++++++------- + 1 files changed, 6 insertions(+), 7 deletions(-) + +diff --git a/simplemediawiki.py b/simplemediawiki.py +index ab0f3f7..6bdd944 100644 +--- a/simplemediawiki.py ++++ b/simplemediawiki.py +@@ -39,6 +39,12 @@ from StringIO import StringIO + import urllib + import urllib2 + ++__author__ = 'Ian Weller ' ++__version__ = '1.0.2' ++DEFAULT_UA = ('python-simplemediawiki/%s ' ++ '+https://github.com/ianweller/python-simplemediawiki') \ ++ % __version__ ++ + + class MediaWiki(): + """ +@@ -206,10 +212,3 @@ class MediaWiki(): + objects. + """ + return iso8601.parse_date(date) +- +- +-__author__ = 'Ian Weller ' +-__version__ = '1.0.2' +-DEFAULT_UA = 'python-simplemediawiki/%s ' + \ +- '+https://github.com/ianweller/python-simplemediawiki' \ +- % __version__ +-- +1.7.2.3 + diff --git a/debian/patches/0002-Import-iso8601-in-a-way-that-makes-pylint-happy.patch b/debian/patches/0002-Import-iso8601-in-a-way-that-makes-pylint-happy.patch new file mode 100644 index 0000000..5c55bcb --- /dev/null +++ b/debian/patches/0002-Import-iso8601-in-a-way-that-makes-pylint-happy.patch @@ -0,0 +1,25 @@ +From 9ce74c8ebc5ac8ee818ec122c89531b1d1b4c9ac Mon Sep 17 00:00:00 2001 +From: Ian Weller +Date: Fri, 4 Feb 2011 22:10:54 -0600 +Subject: Import iso8601 in a way that makes pylint happy + +--- + simplemediawiki.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/simplemediawiki.py b/simplemediawiki.py +index 6bdd944..ff879ed 100644 +--- a/simplemediawiki.py ++++ b/simplemediawiki.py +@@ -33,7 +33,7 @@ of namespaces are provided for your convenience. + + import cookielib + import gzip +-from iso8601 import iso8601 ++import iso8601.iso8601 as iso8601 + import json + from StringIO import StringIO + import urllib +-- +1.7.2.3 + diff --git a/debian/patches/0003-Refactor-normalize_api_url.patch b/debian/patches/0003-Refactor-normalize_api_url.patch new file mode 100644 index 0000000..8a2566b --- /dev/null +++ b/debian/patches/0003-Refactor-normalize_api_url.patch @@ -0,0 +1,78 @@ +From de97f3ccde6527ac63bde701ae759291d93d1aa4 Mon Sep 17 00:00:00 2001 +From: Ian Weller +Date: Fri, 4 Feb 2011 23:58:26 -0600 +Subject: Refactor normalize_api_url + +--- + simplemediawiki.py | 42 +++++++++++++++++++++++------------------- + 1 files changed, 23 insertions(+), 19 deletions(-) + +diff --git a/simplemediawiki.py b/simplemediawiki.py +index ff879ed..e123a5b 100644 +--- a/simplemediawiki.py ++++ b/simplemediawiki.py +@@ -101,7 +101,28 @@ class MediaWiki(): + returns that URL, while also helpfully setting this object's API URL to + it. If it can't magically conjure an API endpoint, it returns False. + """ +- data, data_json = self._normalize_api_url_tester(self._api_url) ++ def tester(self, api_url): ++ """ ++ Attempts to fetch general information about the MediaWiki instance ++ in order to test whether the given URL will return JSON. ++ """ ++ data = self._fetch_http(api_url, {'action': 'query', ++ 'meta': 'siteinfo', ++ 'siprop': 'general', ++ 'format': 'json'}) ++ try: ++ data_json = json.loads(data) ++ # may as well set the version ++ try: ++ version_string = data_json['query']['general']['generator'] ++ self._mediawiki_version = version_string.split(' ', 1)[1] ++ except KeyError: ++ pass ++ return (data, data_json) ++ except ValueError: ++ return (data, None) ++ ++ data, data_json = tester(self, self._api_url) + if data_json: + return self._api_url + else: +@@ -109,30 +130,13 @@ class MediaWiki(): + if 'index.php' in self._api_url: + test_api_url = self._api_url.split('index.php')[0] + 'api.php' + print test_api_url +- test_data, test_data_json = \ +- self._normalize_api_url_tester(test_api_url) ++ test_data, test_data_json = tester(self, test_api_url) + print (test_data, test_data_json) + if test_data_json: + self._api_url = test_api_url + return self._api_url + return False + +- def _normalize_api_url_tester(self, api_url): +- data = self._fetch_http(api_url, {'action': 'query', +- 'meta': 'siteinfo', +- 'siprop': 'general', +- 'format': 'json'}) +- try: +- data_json = json.loads(data) +- # may as well set the version +- try: +- version_string = data_json['query']['general']['generator'] +- self._mediawiki_version = version_string.split(' ', 1)[1] +- except KeyError: +- pass +- return (data, data_json) +- except ValueError: +- return (data, None) + + def login(self, user, passwd, token=None): + """ +-- +1.7.2.3 + diff --git a/debian/patches/0004-There-s-no-good-way-to-import-iso8601-apparently.patch b/debian/patches/0004-There-s-no-good-way-to-import-iso8601-apparently.patch new file mode 100644 index 0000000..0d6c506 --- /dev/null +++ b/debian/patches/0004-There-s-no-good-way-to-import-iso8601-apparently.patch @@ -0,0 +1,25 @@ +From efa6e86fcf1586602e39253bca8a7abf5de34efe Mon Sep 17 00:00:00 2001 +From: Ian Weller +Date: Sat, 5 Feb 2011 00:00:31 -0600 +Subject: There's no good way to import iso8601, apparently + +--- + simplemediawiki.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/simplemediawiki.py b/simplemediawiki.py +index e123a5b..f039c5a 100644 +--- a/simplemediawiki.py ++++ b/simplemediawiki.py +@@ -33,7 +33,7 @@ of namespaces are provided for your convenience. + + import cookielib + import gzip +-import iso8601.iso8601 as iso8601 ++import iso8601 + import json + from StringIO import StringIO + import urllib +-- +1.7.2.3 + diff --git a/debian/patches/0005-Add-docstring-to-_fetch_http.patch b/debian/patches/0005-Add-docstring-to-_fetch_http.patch new file mode 100644 index 0000000..008fb9e --- /dev/null +++ b/debian/patches/0005-Add-docstring-to-_fetch_http.patch @@ -0,0 +1,27 @@ +From bed00dea090ba51e33981e0b6784f23253d4f74a Mon Sep 17 00:00:00 2001 +From: Ian Weller +Date: Sat, 5 Feb 2011 00:00:46 -0600 +Subject: Add docstring to _fetch_http + +--- + simplemediawiki.py | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/simplemediawiki.py b/simplemediawiki.py +index f039c5a..2934ab9 100644 +--- a/simplemediawiki.py ++++ b/simplemediawiki.py +@@ -74,6 +74,10 @@ class MediaWiki(): + self._opener.addheaders = [('User-agent', user_agent)] + + def _fetch_http(self, url, params): ++ """ ++ Standard HTTP request handler for this class with gzip and cookie ++ support. ++ """ + request = urllib2.Request(url, urllib.urlencode(params)) + request.add_header('Accept-encoding', 'gzip') + response = self._opener.open(request) +-- +1.7.2.3 + diff --git a/debian/patches/0006-Forget-about-version-checking-for-right-now.patch b/debian/patches/0006-Forget-about-version-checking-for-right-now.patch new file mode 100644 index 0000000..09d3a5a --- /dev/null +++ b/debian/patches/0006-Forget-about-version-checking-for-right-now.patch @@ -0,0 +1,43 @@ +From 49b148ee4c10fdf671288331217bd4dd0304b8b4 Mon Sep 17 00:00:00 2001 +From: Ian Weller +Date: Sat, 5 Feb 2011 00:31:07 -0600 +Subject: Forget about version checking for right now + +--- + simplemediawiki.py | 11 +---------- + 1 files changed, 1 insertions(+), 10 deletions(-) + +diff --git a/simplemediawiki.py b/simplemediawiki.py +index 2934ab9..ec12a11 100644 +--- a/simplemediawiki.py ++++ b/simplemediawiki.py +@@ -55,7 +55,6 @@ class MediaWiki(): + _high_limits = None + _namespaces = None + _psuedo_namespaces = None +- _mediawiki_version = None + + def __init__(self, api_url, cookie_file=None, user_agent=DEFAULT_UA): + self._api_url = api_url +@@ -111,17 +110,9 @@ class MediaWiki(): + in order to test whether the given URL will return JSON. + """ + data = self._fetch_http(api_url, {'action': 'query', +- 'meta': 'siteinfo', +- 'siprop': 'general', +- 'format': 'json'}) ++ 'meta': 'siteinfo'}) + try: + data_json = json.loads(data) +- # may as well set the version +- try: +- version_string = data_json['query']['general']['generator'] +- self._mediawiki_version = version_string.split(' ', 1)[1] +- except KeyError: +- pass + return (data, data_json) + except ValueError: + return (data, None) +-- +1.7.2.3 + diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..4cfcd08 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,6 @@ +0001-Fix-not-being-able-to-import-the-module.patch +0002-Import-iso8601-in-a-way-that-makes-pylint-happy.patch +0003-Refactor-normalize_api_url.patch +0004-There-s-no-good-way-to-import-iso8601-apparently.patch +0005-Add-docstring-to-_fetch_http.patch +0006-Forget-about-version-checking-for-right-now.patch diff --git a/simplemediawiki.py b/simplemediawiki.py index ab0f3f7..ec12a11 100644 --- a/simplemediawiki.py +++ b/simplemediawiki.py @@ -33,12 +33,18 @@ of namespaces are provided for your convenience. import cookielib import gzip -from iso8601 import iso8601 +import iso8601 import json from StringIO import StringIO import urllib import urllib2 +__author__ = 'Ian Weller ' +__version__ = '1.0.2' +DEFAULT_UA = ('python-simplemediawiki/%s ' + '+https://github.com/ianweller/python-simplemediawiki') \ + % __version__ + class MediaWiki(): """ @@ -49,7 +55,6 @@ class MediaWiki(): _high_limits = None _namespaces = None _psuedo_namespaces = None - _mediawiki_version = None def __init__(self, api_url, cookie_file=None, user_agent=DEFAULT_UA): self._api_url = api_url @@ -68,6 +73,10 @@ class MediaWiki(): self._opener.addheaders = [('User-agent', user_agent)] def _fetch_http(self, url, params): + """ + Standard HTTP request handler for this class with gzip and cookie + support. + """ request = urllib2.Request(url, urllib.urlencode(params)) request.add_header('Accept-encoding', 'gzip') response = self._opener.open(request) @@ -95,7 +104,20 @@ class MediaWiki(): returns that URL, while also helpfully setting this object's API URL to it. If it can't magically conjure an API endpoint, it returns False. """ - data, data_json = self._normalize_api_url_tester(self._api_url) + def tester(self, api_url): + """ + Attempts to fetch general information about the MediaWiki instance + in order to test whether the given URL will return JSON. + """ + data = self._fetch_http(api_url, {'action': 'query', + 'meta': 'siteinfo'}) + try: + data_json = json.loads(data) + return (data, data_json) + except ValueError: + return (data, None) + + data, data_json = tester(self, self._api_url) if data_json: return self._api_url else: @@ -103,30 +125,13 @@ class MediaWiki(): if 'index.php' in self._api_url: test_api_url = self._api_url.split('index.php')[0] + 'api.php' print test_api_url - test_data, test_data_json = \ - self._normalize_api_url_tester(test_api_url) + test_data, test_data_json = tester(self, test_api_url) print (test_data, test_data_json) if test_data_json: self._api_url = test_api_url return self._api_url return False - def _normalize_api_url_tester(self, api_url): - data = self._fetch_http(api_url, {'action': 'query', - 'meta': 'siteinfo', - 'siprop': 'general', - 'format': 'json'}) - try: - data_json = json.loads(data) - # may as well set the version - try: - version_string = data_json['query']['general']['generator'] - self._mediawiki_version = version_string.split(' ', 1)[1] - except KeyError: - pass - return (data, data_json) - except ValueError: - return (data, None) def login(self, user, passwd, token=None): """ @@ -206,10 +211,3 @@ class MediaWiki(): objects. """ return iso8601.parse_date(date) - - -__author__ = 'Ian Weller ' -__version__ = '1.0.2' -DEFAULT_UA = 'python-simplemediawiki/%s ' + \ - '+https://github.com/ianweller/python-simplemediawiki' \ - % __version__