Move the user agent generation into it's own utility function
authorDonald Stufft <donald.stufft@gmail.com>
Sun, 8 Jul 2012 04:47:24 +0000 (00:47 -0400)
committerDonald Stufft <donald.stufft@gmail.com>
Sun, 8 Jul 2012 04:47:24 +0000 (00:47 -0400)
requests/defaults.py
requests/utils.py

index 75fdfbdfb350f4d180b4278734d164ee38518931..87e088b7e5dd6d8a53e3a6863690fa6dd31688d5 100644 (file)
@@ -26,42 +26,12 @@ Configurations:
 
 SCHEMAS = ['http', 'https']
 
-import platform
-import sys
-
-from . import __version__
+from .utils import default_user_agent
 
 defaults = dict()
 
-
-_implementation = platform.python_implementation()
-
-if _implementation == 'CPython':
-    _implementation_version = platform.python_version()
-elif _implementation == 'PyPy':
-    _implementation_version = '%s.%s.%s' % (
-                                                sys.pypy_version_info.major,
-                                                sys.pypy_version_info.minor,
-                                                sys.pypy_version_info.micro
-                                            )
-    if sys.pypy_version_info.releaselevel != 'final':
-        _implementation_version = ''.join([_implementation_version, sys.pypy_version_info.releaselevel])
-elif _implementation == 'Jython':
-    # @@@ Is there a better way of getting this?
-    _implementation_version = platform.python_version()
-elif _implementation == 'IronPython':
-    # @@@ Is there a better way of getting this?
-    _implementation_version = platform.python_version()
-else:
-    _implementation_version = 'Unknown'
-
-
 defaults['base_headers'] = {
-    'User-Agent': " ".join([
-            'python-requests/%s' % __version__,
-            '%s/%s' % (_implementation, _implementation_version),
-            '%s/%s' % (platform.system(), platform.release()),
-        ]),
+    'User-Agent': default_user_agent(),
     'Accept-Encoding': ', '.join(('identity', 'deflate', 'compress', 'gzip')),
     'Accept': '*/*'
 }
index 926b6f29b8e227a63d3face595815cff5aa5f94b..730b2f3a4b23e168c2ed4aeb37a64fc312dc91c7 100644 (file)
@@ -12,10 +12,13 @@ that are also useful for external consumption.
 import cgi
 import codecs
 import os
+import platform
 import re
+import sys
 import zlib
 from netrc import netrc, NetrcParseError
 
+from . import __version__
 from .compat import parse_http_list as _parse_list_header
 from .compat import quote, urlparse, basestring, bytes, str
 from .cookies import RequestsCookieJar, cookiejar_from_dict
@@ -457,3 +460,31 @@ def get_environ_proxies():
     get_proxy = lambda k: os.environ.get(k) or os.environ.get(k.upper())
     proxies = [(key, get_proxy(key + '_proxy')) for key in proxy_keys]
     return dict([(key, val) for (key, val) in proxies if val])
+
+
+def default_user_agent():
+    """Return a string representing the default user agent."""
+    _implementation = platform.python_implementation()
+
+    if _implementation == 'CPython':
+        _implementation_version = platform.python_version()
+    elif _implementation == 'PyPy':
+        _implementation_version = '%s.%s.%s' % (
+                                                sys.pypy_version_info.major,
+                                                sys.pypy_version_info.minor,
+                                                sys.pypy_version_info.micro
+                                            )
+        if sys.pypy_version_info.releaselevel != 'final':
+            _implementation_version = ''.join([_implementation_version, sys.pypy_version_info.releaselevel])
+    elif _implementation == 'Jython':
+        _implementation_version = platform.python_version()  # Complete Guess
+    elif _implementation == 'IronPython':
+        _implementation_version = platform.python_version()  # Complete Guess
+    else:
+        _implementation_version = 'Unknown'
+
+    return " ".join([
+            'python-requests/%s' % __version__,
+            '%s/%s' % (_implementation, _implementation_version),
+            '%s/%s' % (platform.system(), platform.release()),
+        ])