diff oembed/core.py @ 908:2181da65c98b

Code cleanup.
author Brian Neal <bgneal@gmail.com>
date Mon, 16 Mar 2015 20:58:40 -0500
parents 344f7914d421
children
line wrap: on
line diff
--- a/oembed/core.py	Sun Mar 15 21:48:33 2015 -0500
+++ b/oembed/core.py	Mon Mar 16 20:58:40 2015 -0500
@@ -2,6 +2,7 @@
 This module contains core functionality for the oembed application.
 
 """
+from contextlib import closing
 import json
 import urllib
 import urllib2
@@ -16,18 +17,18 @@
 USER_AGENT = 'gremmies python oembed'
 
 
-def get_oembed(api_endpoint, url, format='json', **opts):
+def get_oembed(api_endpoint, url, fmt='json', **opts):
     """
     Perform the GET request to retrieve the embedded media data from the given
     API endpoint for the given URL. Return the result as a Python dictionary.
 
-    format specifies the response format, and should be 'json' or 'xml'.
+    fmt specifies the response format, and should be 'json' or 'xml'.
     opts are any additional GET options that should be present in the GET
     request.
 
     """
     opts['url'] = url
-    opts['format'] = format
+    opts['format'] = fmt
     api_url = "%s?%s" % (api_endpoint, urllib.urlencode(opts))
 
     headers = {
@@ -35,17 +36,13 @@
         'Accept-Encoding': 'gzip',
     }
     request = urllib2.Request(api_url, headers=headers)
-
-    opener = urllib2.build_opener()
-    f = opener.open(request)
-    headers = f.info()
-    result = f.read()
-    f.close()
+    with closing(urllib2.urlopen(request)) as response:
+        headers = response.info()
+        result = response.read()
 
     if headers.get('content-encoding') == 'gzip':
-        f = gzip.GzipFile(fileobj=StringIO(result))
-        result = f.read()
-        f.close()
+        with closing(gzip.GzipFile(fileobj=StringIO(result))) as f:
+            result = f.read()
 
     return json.loads(result)