a
    $ñ»jˆ  ã                   @  s¾   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	G dd	„ d	eƒZ
eG d
d„ dƒƒZddœdd„Zddœdd„Zdd	ddœdd„Zdddœdd„ZedƒeG dd„ dƒƒƒZdS )é    )ÚannotationsN)Ú	dataclassé   )Úevent_classÚT_JSON_DICTc                      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 )Ú	RequestIdzDevice request id.Ústr©Úreturnc                 C  s   | S ©N© ©Úselfr   r   ú9E:\soccer\ml_env\Lib\site-packages\mycdp/device_access.pyÚto_json   s    zRequestId.to_json©Újsonr
   c                 C  s   | |ƒS r   r   ©Úclsr   r   r   r   Ú	from_json   s    zRequestId.from_jsonc                   s   d  tƒ  ¡ ¡S )NzRequestId({})©ÚformatÚsuperÚ__repr__r   ©Ú	__class__r   r   r      s    zRequestId.__repr__©	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úclassmethodr   r   Ú__classcell__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 )ÚDeviceIdzA device id.r   r	   c                 C  s   | S r   r   r   r   r   r   r      s    zDeviceId.to_jsonr   c                 C  s   | |ƒS r   r   r   r   r   r   r   "   s    zDeviceId.from_jsonc                   s   d  tƒ  ¡ ¡S )NzDeviceId({})r   r   r   r   r   r   &   s    zDeviceId.__repr__r   r   r   r   r   r#      s
   r#   c                   @  sD   e Zd ZU dZded< ded< ddœdd	„Zedd d
œdd„ƒZdS )ÚPromptDevicezADevice information displayed in a user prompt to select a device.r#   Úid_r   Únamer   r	   c                 C  s"   t ƒ }| j ¡ |d< | j|d< |S )NÚidr&   )Údictr%   r   r&   )r   r   r   r   r   r   1   s    
zPromptDevice.to_jsonr   c                 C  s   | t  |d ¡t|d ƒd�S )Nr'   r&   )r%   r&   )r#   r   r   r   r   r   r   r   7   s    
þzPromptDevice.from_jsonN)r   r   r   r    Ú__annotations__r   r!   r   r   r   r   r   r$   *   s   
r$   z0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]r	   c                  c  s   ddi} | V }dS )zEnable events in this domain.ÚmethodzDeviceAccess.enableNr   ©Úcmd_dictr   r   r   r   Úenable?   s    ÿr-   c                  c  s   ddi} | V }dS )zDisable events in this domain.r*   zDeviceAccess.disableNr   r+   r   r   r   ÚdisableG   s    ÿr.   )r%   Ú	device_idr
   c                 c  s2   t ƒ }|  ¡ |d< | ¡ |d< d|dœ}|V }dS )zz
    Select a device in response to a DeviceAccess.deviceRequestPrompted event.
    :param id_:
    :param device_id:
    r'   ZdeviceIdzDeviceAccess.selectPrompt©r*   ÚparamsN©r(   r   )r%   r/   r1   r,   r   r   r   r   Úselect_promptO   s    þr3   )r%   r
   c                 c  s&   t ƒ }|  ¡ |d< d|dœ}|V }dS )zd
    Cancel a prompt in response to a DeviceAccess.deviceRequestPrompted event.
    :param id_:
    r'   zDeviceAccess.cancelPromptr0   Nr2   )r%   r1   r,   r   r   r   r   Úcancel_prompta   s    þr4   z"DeviceAccess.deviceRequestPromptedc                   @  s6   e Zd ZU dZded< ded< edd dœdd	„ƒZd
S )ÚDeviceRequestPromptedz~
    A device request opened a user prompt to select a device. Respond with the
    selectPrompt or cancelPrompt command.
    r   r%   ztyping.List[PromptDevice]Údevicesr   r   c                 C  s$   | t  |d ¡dd„ |d D ƒd�S )Nr'   c                 S  s   g | ]}t  |¡‘qS r   )r$   r   )Ú.0Úir   r   r   Ú
<listcomp>   ó    z3DeviceRequestPrompted.from_json.<locals>.<listcomp>r6   )r%   r6   )r   r   r   r   r   r   r   {   s    þzDeviceRequestPrompted.from_jsonN)r   r   r   r    r)   r!   r   r   r   r   r   r5   q   s
   
r5   )Ú
__future__r   ÚtypingÚdataclassesr   Úutilr   r   r   r   r#   r$   r-   r.   r3   r4   r5   r   r   r   r   Ú<module>   s   