3 æÈ[þG ã @ sú d Z ddlZddlZddlZddlmZ ddlmZmZm Z m Z mZ yddlZW n e k rl ddlZY nX G dd„ deƒZG dd „ d eƒZd d„ Zdd „ Zddd„ZG dd„ deƒZG dd„ dejeƒZdd„ Zdd„ Zdd„ Zd dd„Zdd„ ZdS )!z requests.cookies ~~~~~~~~~~~~~~~~ Compatibility code to be able to use `cookielib.CookieJar` with requests. requests.utils imports from here, so be careful with imports. é Né )Úto_native_string)Ú cookielibÚurlparseÚ urlunparseÚMorselÚMutableMappingc @ sŽ e Zd ZdZdd„ Zdd„ Zdd„ Zdd „ Zd d„ Zdd „ Z dd„ Z ddd„Zdd„ Zdd„ Z dd„ Zedd„ ƒZedd„ ƒZedd„ ƒZdS ) ÚMockRequestaò Wraps a `requests.Request` to mimic a `urllib2.Request`. The code in `cookielib.CookieJar` expects this interface in order to correctly manage cookie policies, i.e., determine whether a cookie can be set, given the domains of the request and the cookie. The original request object is read-only. The client is responsible for collecting the new headers via `get_new_headers()` and interpreting them appropriately. You probably want `get_cookie_header`, defined below. c C s || _ i | _t| j jƒj| _d S )N)Ú_rÚ_new_headersr ÚurlÚschemeÚtype)ÚselfÚrequest© r ú/usr/lib/python3.6/cookies.pyÚ__init__% s zMockRequest.__init__c C s | j S )N)r )r r r r Úget_type* s zMockRequest.get_typec C s t | jjƒjS )N)r r r Znetloc)r r r r Úget_host- s zMockRequest.get_hostc C s | j ƒ S )N)r )r r r r Úget_origin_req_host0 s zMockRequest.get_origin_req_hostc C sT | j jjdƒs| j jS t| j jd dd�}t| j jƒ}t|j||j|j |j |jgƒS )NZHostzutf-8)Úencoding)r ÚheadersÚgetr r r r r ÚpathZparamsZqueryZfragment)r ÚhostZparsedr r r Úget_full_url3 s zMockRequest.get_full_urlc C s dS )NTr )r r r r Úis_unverifiableA s zMockRequest.is_unverifiablec C s || j jkp|| jkS )N)r r r )r Únamer r r Ú has_headerD s zMockRequest.has_headerNc C s | j jj|| jj||ƒƒS )N)r r r r )r r Údefaultr r r Ú get_headerG s zMockRequest.get_headerc C s t dƒ‚dS )zMcookielib has no legitimate use for this method; add it back if you find one.z=Cookie headers should be added with add_unredirected_header()N)ÚNotImplementedError)r ÚkeyÚvalr r r Ú add_headerJ s zMockRequest.add_headerc C s || j |<