merge patched into master
authorBenjamin Mako Hill <mako@atdot.cc>
Sat, 12 Feb 2011 19:07:18 +0000 (14:07 -0500)
committerBenjamin Mako Hill <mako@atdot.cc>
Sat, 12 Feb 2011 19:07:18 +0000 (14:07 -0500)
debian/.git-dpm
debian/patches/0001-Fix-not-being-able-to-import-the-module.patch [new file with mode: 0644]
debian/patches/0002-Import-iso8601-in-a-way-that-makes-pylint-happy.patch [new file with mode: 0644]
debian/patches/0003-Refactor-normalize_api_url.patch [new file with mode: 0644]
debian/patches/0004-There-s-no-good-way-to-import-iso8601-apparently.patch [new file with mode: 0644]
debian/patches/0005-Add-docstring-to-_fetch_http.patch [new file with mode: 0644]
debian/patches/0006-Forget-about-version-checking-for-right-now.patch [new file with mode: 0644]
debian/patches/series [new file with mode: 0644]
simplemediawiki.py

index 42f746c480ac7b7d2916f2c326e51ef6030b7f23..2095053ffdb8d99af2ddf5f6855934853a0e3e34 100644 (file)
@@ -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 (file)
index 0000000..8154aef
--- /dev/null
@@ -0,0 +1,40 @@
+From a54cc1e6cdfacf678711f6c88021c8eca5c6580c Mon Sep 17 00:00:00 2001
+From: Ian Weller <ian@ianweller.org>
+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 <ian@ianweller.org>'
++__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 <ian@ianweller.org>'
+-__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 (file)
index 0000000..5c55bcb
--- /dev/null
@@ -0,0 +1,25 @@
+From 9ce74c8ebc5ac8ee818ec122c89531b1d1b4c9ac Mon Sep 17 00:00:00 2001
+From: Ian Weller <ian@ianweller.org>
+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 (file)
index 0000000..8a2566b
--- /dev/null
@@ -0,0 +1,78 @@
+From de97f3ccde6527ac63bde701ae759291d93d1aa4 Mon Sep 17 00:00:00 2001
+From: Ian Weller <ian@ianweller.org>
+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 (file)
index 0000000..0d6c506
--- /dev/null
@@ -0,0 +1,25 @@
+From efa6e86fcf1586602e39253bca8a7abf5de34efe Mon Sep 17 00:00:00 2001
+From: Ian Weller <ian@ianweller.org>
+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 (file)
index 0000000..008fb9e
--- /dev/null
@@ -0,0 +1,27 @@
+From bed00dea090ba51e33981e0b6784f23253d4f74a Mon Sep 17 00:00:00 2001
+From: Ian Weller <ian@ianweller.org>
+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 (file)
index 0000000..09d3a5a
--- /dev/null
@@ -0,0 +1,43 @@
+From 49b148ee4c10fdf671288331217bd4dd0304b8b4 Mon Sep 17 00:00:00 2001
+From: Ian Weller <ian@ianweller.org>
+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 (file)
index 0000000..4cfcd08
--- /dev/null
@@ -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
index ab0f3f7d69b82b8e31cb6a279d54cf87ca24daae..ec12a11754d8efdb157e68435a5335ac9c86e030 100644 (file)
@@ -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 <ian@ianweller.org>'
+__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 <ian@ianweller.org>'
-__version__ = '1.0.2'
-DEFAULT_UA = 'python-simplemediawiki/%s ' + \
-        '+https://github.com/ianweller/python-simplemediawiki' \
-        % __version__

Benjamin Mako Hill || Want to submit a patch?