--- /dev/null
+# -*- coding: utf-8 -*-
+
+"""
+requests.config
+~~~~~~~~~~~~~~~
+
+This module provides the Requests configuration defaults.
+
+settings parameters:
+
+- :base_headers: - Sets default User-Agent to `python-requests.org`
+- :accept_gzip: - Whether or not to accept gzip-compressed data
+- :proxies: - http proxies?
+- :verbose: - display verbose information?
+- :timeout: - timeout time until request terminates
+- :max_redirects: - maximum number of allowed redirects?
+- :decode_unicode: - whether or not to accept unicode?
+
+"""
+
+def get_config(config=None, default_config=None):
+ """Merges two given configurations."""
+
+ # Allow raw calls.
+ if config is None:
+ config=dict()
+
+ # Use the module-level defaults, if none is given.
+ if default_config is None:
+ default_config = defaults.copy()
+
+
+ d = default_config.copy()
+ d.update(config)
+
+ return d
+
+
+# Module-level defaults.
+defaults = dict()
+
+defaults['base_headers'] = {'User-Agent': 'python-requests.org'}
+defaults['accept_gzip'] = True
+defaults['proxies'] = {}
+defaults['verbose'] = None
+defaults['timeout'] = None
+defaults['max_redirects'] = 30
+defaults['decode_unicode'] = True
+defaults['keepalive'] = True
+
+
"""
-import config
+from ._config import get_config
from .models import Request, Response
from .status_codes import codes
from .hooks import dispatch_hook
def request(method, url,
params=None, data=None, headers=None, cookies=None, files=None, auth=None,
timeout=None, allow_redirects=False, proxies=None, hooks=None,
- _connection=None):
+ config=None, _connection=None):
"""Constructs and sends a :class:`Request <Request>`.
Returns :class:`Response <Response>` object.
"""
method = str(method).upper()
+ config = get_config(config)
if cookies is None:
cookies = {}
cookies=cookies,
files=files,
auth=auth,
- timeout=timeout or config.settings.timeout,
+ timeout=timeout or config.get('timeout'),
allow_redirects=allow_redirects,
- proxies=proxies or config.settings.proxies,
+ proxies=proxies or config.get('proxies'),
)
# Arguments manipulation hook.
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-"""
-requests.config
-~~~~~~~~~~~~~~~
-
-This module provides the Requests configuration defaults.
-
-settings parameters:
-
-- :base_headers: - Sets default User-Agent to `python-requests.org`
-- :accept_gzip: - Whether or not to accept gzip-compressed data
-- :proxies: - http proxies?
-- :verbose: - display verbose information?
-- :timeout: - timeout time until request terminates
-- :max_redirects: - maximum number of allowed redirects?
-- :decode_unicode: - whether or not to accept unicode?
-
-"""
-
-def get_config(config=None, default_config=None):
- """Merges two given configurations."""
-
- # Allow raw calls.
- if config is None:
- config=dict()
-
- # Use the module-level defaults, if none is given.
- if default_config is None:
- default_config = defaults.copy()
-
-
- d = default_config.copy()
- d.update(config)
-
- return d
-
-
-# Module-level defaults.
-defaults = dict()
-
-defaults['base_headers'] = {'User-Agent': 'python-requests.org'}
-defaults['accept_gzip'] = True
-defaults['proxies'] = {}
-defaults['verbose'] = None
-defaults['timeout'] = None
-defaults['max_redirects'] = 30
-defaults['decode_unicode'] = True
-defaults['keepalive'] = True
-
-
from .packages import urllib3
# print dir(urllib3)
-from .config import get_config
+from ._config import get_config
from .structures import CaseInsensitiveDict
from .utils import *
from .status_codes import codes
# Header manipulation and defaults.
- if settings.accept_gzip:
- settings.base_headers.update({'Accept-Encoding': 'gzip'})
+ if self.config.get('accept_gzip'):
+ self.headers.update({'Accept-Encoding': 'gzip'})
if headers:
headers = CaseInsensitiveDict(self.headers)
else:
headers = CaseInsensitiveDict()
- for (k, v) in settings.base_headers.items():
+ for (k, v) in self.config.get('base_headers').items():
if k not in headers:
headers[k] = v
import cookielib
from . import api
-from .config import get_config
+from ._config import get_config
from .utils import add_dict_to_cookiejar
-def merge_kwargs(local_kwargs, default_kwargs):
+def merge_kwargs(local_kwarg, default_kwarg):
"""Merges kwarg dictionaries.
+
+ If a key in the dictionary is set to None, i
"""
# Bypass if not a dictionary (e.g. timeout)
- if not hasattr(local_kwargs, 'items'):
- return local_kwargs
+ if not hasattr(local_kwarg, 'items'):
+ return local_kwarg
+
+ kwargs = default_kwarg.copy()
+ kwargs.update(local_kwarg)
+
+ # from clint.textui import colored
+
- kwargs = default_kwargs.copy()
- kwargs.update(local_kwargs)
+ # print colored.red(default_kwarg)
+ # print colored.red(local_kwarg)
# Remove keys that are set to None.
- for (k,v) in local_kwargs.items():
+ for (k,v) in local_kwarg.items():
if v is None:
del kwargs[k]
self._map_api_methods()
- def get(url, **kwargs):
+ def get(self, url, **kwargs):
+
+ _kwargs = {}
+ for attr in self.__attrs__:
+ default_attr = getattr(self, attr)
+ local_attr = kwargs.get(attr)
+
+ new_attr = merge_kwargs(local_attr, default_attr)
+
+ if new_attr is not None:
+ _kwargs[attr] = new_attr
+ return api.get(url, **_kwargs)
def __repr__(self):
return '<requests-client at 0x%x>' % (id(self))