o
    -wi	                     @  s   d dl mZ d dlmZ d dlmZmZmZmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZmZ er@d dlmZ d d	lmZ G d
d ded ZdS )    )annotations)chain)TYPE_CHECKINGAnyIterableMapping)ValidationError)override)Document)	Paginator_Client
AutomationProjectConnectionFieldsc                      sj   e Zd ZU ded< ded< 		dd fddZedddZed ddZed!ddZ	d"ddZ
  ZS )#AutomationszProjectConnectionFields | Nonelast_responser
   _query2   Nclientr   	variablesMapping[str, Any]per_pageintDocument | Nonec                   s8   t  j|||d |d u rtdt| j || _d S )N)r   zQuery required for )super__init__RuntimeErrortype__qualname__r   )selfr   r   r   r   	__class__ Z/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/wandb/apis/public/automations.pyr      s   
zAutomations.__init__returnboolc                 C  s   | j du rdS | j jjS )z&Whether there are more items to fetch.NT)r   	page_infohas_next_pager    r#   r#   r$   more!      

zAutomations.more
str | Nonec                 C  s   | j du rdS | j jjS )z*The start cursor to use for the next page.N)r   r'   
end_cursorr)   r#   r#   r$   cursor(   r+   zAutomations.cursorNonec              
   C  sh   ddl m} | jj| j| jd}z|d d }||| _W dS  tt	t
fy3 } ztd|d}~ww )z1Fetch the raw response data for the current page.r   r   )variable_valuessearchScopeprojectszUnexpected response dataN)wandb.automations._generatedr   r   executer   r   model_validater   LookupErrorAttributeErrorr   
ValueError)r    r   data	page_dataer#   r#   r$   _update_response/   s   
zAutomations._update_responseIterable[Automation]c                   s6   ddl m  | j} fddtdd |jD D S )z+Parse the page data into a list of objects.r   r   c                   s   g | ]}  |qS r#   )r5   ).0objr   r#   r$   
<listcomp>B   s    z/Automations.convert_objects.<locals>.<listcomp>c                 s  s    | ]}|j jV  qd S )N)nodetriggers)r>   edger#   r#   r$   	<genexpr>D   s    z.Automations.convert_objects.<locals>.<genexpr>)wandb.automationsr   r   r   from_iterableedges)r    pager#   r   r$   convert_objects=   s
   
zAutomations.convert_objects)r   N)r   r   r   r   r   r   r   r   )r%   r&   )r%   r,   )r%   r/   )r%   r=   )__name__
__module__r   __annotations__r   propertyr*   r.   r	   r<   rI   __classcell__r#   r#   r!   r$   r      s   
 r   r   N)
__future__r   	itertoolsr   typingr   r   r   r   pydanticr   typing_extensionsr	   wandb_graphql.language.astr
   wandb.apis.paginatorr   r   rE   r   r3   r   r   r#   r#   r#   r$   <module>   s    