mirror of
https://github.com/kennethreitz/requests.git
synced 2026-06-05 22:50:18 +00:00
added param to cookiejar_from_dict instead of creating new method.
This commit is contained in:
+8
-18
@@ -392,31 +392,21 @@ def morsel_to_cookie(morsel):
|
||||
return c
|
||||
|
||||
|
||||
def cookiejar_from_dict(cookie_dict, cookiejar=None):
|
||||
def cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True):
|
||||
"""Returns a CookieJar from a key/value dictionary.
|
||||
|
||||
:param cookie_dict: Dict of key/values to insert into CookieJar.
|
||||
:param cookiejar: (optional) A cookiejar to add the cookies to.
|
||||
:param overwrite: (optional) If False, will not replace cookies
|
||||
already in the jar with new ones.
|
||||
"""
|
||||
if cookiejar is None:
|
||||
cookiejar = RequestsCookieJar()
|
||||
|
||||
if cookie_dict is not None:
|
||||
names_from_jar = [cookie.name for cookie in cookiejar]
|
||||
for name in cookie_dict:
|
||||
cookiejar.set_cookie(create_cookie(name, cookie_dict[name]))
|
||||
if overwrite or (name not in names_from_jar):
|
||||
cookiejar.set_cookie(create_cookie(name, cookie_dict[name]))
|
||||
|
||||
return cookiejar
|
||||
|
||||
|
||||
def merge_session_cookies(cookiejar, cookie_dict):
|
||||
"""Merges cookie_dict with session CookieJar.
|
||||
|
||||
:param cookiejar: Should be session cookie.
|
||||
:param cookie_dict: Dict of key/values to be merged.
|
||||
"""
|
||||
if cookiejar is None:
|
||||
cookiejar = RequestsCookieJar()
|
||||
|
||||
if cookie_dict is not None:
|
||||
for k in cookie_dict:
|
||||
# Session should not be modified by request cookie.
|
||||
if k not in [cookie.name for cookie in cookiejar]:
|
||||
cookiejar.set_cookie(create_cookie(k, cookie_dict[k]))
|
||||
|
||||
@@ -13,7 +13,7 @@ from collections import Mapping
|
||||
from datetime import datetime
|
||||
|
||||
from .compat import cookielib, OrderedDict, urljoin, urlparse
|
||||
from .cookies import cookiejar_from_dict, extract_cookies_to_jar, RequestsCookieJar, merge_session_cookies
|
||||
from .cookies import cookiejar_from_dict, extract_cookies_to_jar, RequestsCookieJar
|
||||
from .models import Request, PreparedRequest
|
||||
from .hooks import default_hooks, dispatch_hook
|
||||
from .utils import to_key_val_list, default_headers
|
||||
@@ -323,7 +323,7 @@ class Session(SessionRedirectMixin):
|
||||
prep = self.prepare_request(req)
|
||||
|
||||
# Add param cookies to session cookies
|
||||
merge_session_cookies(self.cookies, cookies)
|
||||
self.cookies = cookiejar_from_dict(cookies, cookiejar=self.cookies, overwrite=False)
|
||||
|
||||
proxies = proxies or {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user