From 21f60fe8dfe2ebbde2318f763f585d7de18d3d6f Mon Sep 17 00:00:00 2001 From: Donald Stufft Date: Sun, 8 Jul 2012 00:47:24 -0400 Subject: [PATCH] Move the user agent generation into it's own utility function --- requests/defaults.py | 34 ++-------------------------------- requests/utils.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 32 deletions(-) diff --git a/requests/defaults.py b/requests/defaults.py index 75fdfbd..87e088b 100644 --- a/requests/defaults.py +++ b/requests/defaults.py @@ -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': '*/*' } diff --git a/requests/utils.py b/requests/utils.py index 926b6f2..730b2f3 100644 --- a/requests/utils.py +++ b/requests/utils.py @@ -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()), + ]) -- 2.34.1