o
    l>jJ                     @   sP   U d Z ddlmZmZ ddlmZ ddlmZ dZe	e
d< G dd deeZd	S )
z$Cookie jar with persistence support.    )CookieLWPCookieJar)Optional)RequestsCookieJarzX-APPLE-WEBAUTH-FMIP_FMIP_AUTH_COOKIE_NAMEc                	       s   e Zd ZdZddee ddfddZdee dee fddZdd	d
Z			ddee de	de	ddf fddZ
			ddee de	de	ddfddZ  ZS )PyiCloudCookieJarzEMix the Requests CookieJar with the LWPCookieJar to allow persistenceNfilenamereturnc                 C   s   t |  tj| |d dS )zNInitialise both bases; do not pass filename positionally to RequestsCookieJar.r   N)r   __init__r   )selfr    r   H/home/thesage/.local/lib/python3.10/site-packages/pyicloud/cookie_jar.pyr      s   
zPyiCloudCookieJar.__init__c                 C   s   |pt | dd }|sd S |S )Nr   )getattr)r   r   resolvedr   r   r   _resolve_filename   s   z#PyiCloudCookieJar._resolve_filenamec                 C   s(   t | jd}||   ||  |S )z!Create a copy of this cookie jar.r
   )r   r   
set_policy
get_policyupdate)r   new_jarr   r   r   copy   s   
zPyiCloudCookieJar.copyTFignore_discardignore_expiresc              	      s   |  |}|s	dS t j|||d z'dd |  D }|D ]}z| j|j|j|jd W q ty6   Y qw W dS  t	yC   Y dS w )zLoad cookies from file.Nr   r   r   c                 S   s   g | ]	}|j tkr|qS r   )namer   ).0cookier   r   r   
<listcomp>2   s
    
z*PyiCloudCookieJar.load.<locals>.<listcomp>)domainpathr   )
r   superloadr   clearr   r   r   KeyErrorRuntimeError)r   r   r   r   r   cookies_to_clearr   	__class__r   r   r!       s,   
zPyiCloudCookieJar.loadc                 C   sH   |  |}|s	dS z|  }tj||||d W dS  ty#   Y dS w )zSave cookies to file.Nr   )r   r   r   saver$   )r   r   r   r   r   temp_jarr   r   r   r(   @   s   
zPyiCloudCookieJar.save)N)r	   r   )NTF)__name__
__module____qualname____doc__r   strr   r   r   boolr!   r(   __classcell__r   r   r&   r   r      s:    
	"r   N)r-   http.cookiejarr   r   typingr   requests.cookiesr   r   r.   __annotations__r   r   r   r   r   <module>   s    