a
    $ñ»j8  ã                   @  s0  d dl mZ d dlZd dlmZ ddlmZmZ G dd„ deƒZ	eG dd	„ d	ƒƒZ
G d
d„ deƒZd	ddœdd„Zddœdd„Zddœdd„Zd	ddœdd„Zd	dddœdd„Zd	ddddœdd„ZedƒeG d d!„ d!ƒƒƒZed"ƒeG d#d$„ d$ƒƒƒZed%ƒeG d&d'„ d'ƒƒƒZed(ƒeG d)d*„ d*ƒƒƒZdS )+é    )ÚannotationsN)Ú	dataclassé   )Úevent_classÚT_JSON_DICTc                      s>   e Zd Zddœdd„Zedd dœdd„ƒZ‡ fdd	„Z‡  ZS )
ÚSerializedStorageKeyÚstr©Úreturnc                 C  s   | S ©N© ©Úselfr   r   ú7E:\soccer\ml_env\Lib\site-packages\mycdp/dom_storage.pyÚto_json   s    zSerializedStorageKey.to_json©Újsonr
   c                 C  s   | |ƒS r   r   ©Úclsr   r   r   r   Ú	from_json   s    zSerializedStorageKey.from_jsonc                   s   d  tƒ  ¡ ¡S )NzSerializedStorageKey({})©ÚformatÚsuperÚ__repr__r   ©Ú	__class__r   r   r      s    zSerializedStorageKey.__repr__)Ú__name__Ú
__module__Ú__qualname__r   Úclassmethodr   r   Ú__classcell__r   r   r   r   r      s   r   c                   @  sT   e Zd ZU dZded< dZded< dZded< d	d
œdd„Zed	d dœdd„ƒZ	dS )Ú	StorageIdzDOM Storage identifier.ÚboolÚis_local_storageNztyping.Optional[str]Úsecurity_originz%typing.Optional[SerializedStorageKey]Ústorage_keyr   r	   c                 C  s@   t ƒ }| j|d< | jd ur$| j|d< | jd ur<| j ¡ |d< |S )NÚisLocalStorageÚsecurityOriginÚ
storageKey)Údictr#   r$   r%   r   )r   r   r   r   r   r   $   s    



zStorageId.to_jsonr   c                 C  sV   | t | d¡ƒ| dd ¡d ur,t| d¡ƒnd | dd ¡d urNt | d¡¡nd d�S )Nr&   r'   r(   )r#   r$   r%   )r"   Úgetr   r   r   r   r   r   r   r   -   s    ÿÿözStorageId.from_json)
r   r   r   Ú__doc__Ú__annotations__r$   r%   r   r   r   r   r   r   r   r!      s   
	r!   c                      sB   e Zd ZdZddœdd„Zedd dœdd„ƒZ‡ fd	d
„Z‡  ZS )ÚItemzDOM Storage item.ztyping.List[str]r	   c                 C  s   | S r   r   r   r   r   r   r   A   s    zItem.to_jsonr   c                 C  s   | |ƒS r   r   r   r   r   r   r   D   s    zItem.from_jsonc                   s   d  tƒ  ¡ ¡S )NzItem({})r   r   r   r   r   r   H   s    zItem.__repr__)	r   r   r   r+   r   r   r   r   r    r   r   r   r   r-   >   s
   r-   z0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])Ú
storage_idr
   c                 c  s&   t ƒ }|  ¡ |d< d|dœ}|V }dS )ú
    :param storage_id:
    Ú	storageIdzDOMStorage.clear©ÚmethodÚparamsN©r)   r   ©r.   r3   Úcmd_dictr   r   r   r   ÚclearL   s    þr7   r	   c                  c  s   ddi} | V }dS )z_
    Disables storage tracking.
    Prevents storage events from being sent to the client.
    r2   zDOMStorage.disableNr   ©r6   r   r   r   r   Údisable[   s    ÿr9   c                  c  s   ddi} | V }dS )z[
    Enables storage tracking.
    Storage events will now be delivered to the client.
    r2   zDOMStorage.enableNr   r8   r   r   r   Úenablef   s    ÿr:   z=typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[Item]]c                 c  s4   t ƒ }|  ¡ |d< d|dœ}|V }dd„ |d D ƒS )r/   r0   zDOMStorage.getDOMStorageItemsr1   c                 S  s   g | ]}t  |¡‘qS r   )r-   r   )Ú.0Úir   r   r   Ú
<listcomp>~   ó    z)get_dom_storage_items.<locals>.<listcomp>Úentriesr4   r5   r   r   r   Úget_dom_storage_itemsq   s    þr@   r   )r.   Úkeyr
   c                 c  s.   t ƒ }|  ¡ |d< ||d< d|dœ}|V }dS )z,
    :param storage_id:
    :param key:
    r0   rA   zDOMStorage.removeDOMStorageItemr1   Nr4   )r.   rA   r3   r6   r   r   r   r   Úremove_dom_storage_item�   s    þrB   )r.   rA   Úvaluer
   c                 c  s6   t ƒ }|  ¡ |d< ||d< ||d< d|dœ}|V }dS )z>
    :param storage_id:
    :param key:
    :param value:
    r0   rA   rC   zDOMStorage.setDOMStorageItemr1   Nr4   )r.   rA   rC   r3   r6   r   r   r   r   Úset_dom_storage_item’   s    þrD   zDOMStorage.domStorageItemAddedc                   @  s:   e Zd ZU ded< ded< ded< edd dœdd	„ƒZd
S )ÚDomStorageItemAddedr!   r.   r   rA   Ú	new_valuer   r   c                 C  s.   | t  | d¡¡t| d¡ƒt| d¡ƒd�S )Nr0   rA   ÚnewValue)r.   rA   rF   ©r!   r   r*   r   r   r   r   r   r   ¬   s
    ýzDomStorageItemAdded.from_jsonN©r   r   r   r,   r   r   r   r   r   r   rE   ¥   s
   
rE   z DOMStorage.domStorageItemRemovedc                   @  s2   e Zd ZU ded< ded< edd dœdd„ƒZd	S )
ÚDomStorageItemRemovedr!   r.   r   rA   r   r   c                 C  s"   | t  | d¡¡t| d¡ƒd�S )Nr0   rA   )r.   rA   rH   r   r   r   r   r   »   s    þzDomStorageItemRemoved.from_jsonNrI   r   r   r   r   rJ   µ   s   
rJ   z DOMStorage.domStorageItemUpdatedc                   @  sB   e Zd ZU ded< ded< ded< ded< edd dœd	d
„ƒZdS )ÚDomStorageItemUpdatedr!   r.   r   rA   Ú	old_valuerF   r   r   c                 C  s:   | t  | d¡¡t| d¡ƒt| d¡ƒt| d¡ƒd�S )Nr0   rA   ZoldValuerG   )r.   rA   rL   rF   rH   r   r   r   r   r   Ë   s    üzDomStorageItemUpdated.from_jsonNrI   r   r   r   r   rK   Ã   s   
rK   z!DOMStorage.domStorageItemsClearedc                   @  s*   e Zd ZU ded< edd dœdd„ƒZdS )ÚDomStorageItemsClearedr!   r.   r   r   c                 C  s   | t  | d¡¡d�S )Nr0   )r.   )r!   r   r*   r   r   r   r   r   Ú   s    z DomStorageItemsCleared.from_jsonNrI   r   r   r   r   rM   Õ   s   
rM   )Ú
__future__r   ÚtypingÚdataclassesr   Úutilr   r   r   r   r!   Úlistr-   r7   r9   r:   r@   rB   rD   rE   rJ   rK   rM   r   r   r   r   Ú<module>   s2   #