
    U                         d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ dd	l
mZ dd
lmZ  G d de      Zy)z/Utilities for AI Platform Tensorboard runs API.    )absolute_import)division)unicode_literals)
list_pager)apis)common_args)	constants)errors)labels_utilc                   ^    e Zd ZdZddej
                  fdZd Zd ZddZ	d Z
d Zd	 Zd
 Zy)TensorboardRunsClientz>High-level client for the AI Platform Tensorboard run surface.Nc                    |xs5 t        j                  t        j                  t        j                  |         | _        |xs | j
                  j                  | _        | j
                  j                  | _	        || _
        y N)r   GetClientInstancer	   AI_PLATFORM_API_NAMEAI_PLATFORM_API_VERSIONclientMESSAGES_MODULEmessages0projects_locations_tensorboards_experiments_runs_service_version)selfr   r   versions       8lib/googlecloudsdk/api_lib/ai/tensorboard_runs/client.py__init__zTensorboardRunsClient.__init__    sd      4D22&&))'24DK ; ; ;DMKKPPDMDM    c                 &    | j                  ||      S r   )
CreateBeta)r   tensorboard_exp_refargss      r   CreatezTensorboardRunsClient.Create+   s    ??.55r   c                 l   t        j                  || j                  j                  j                        }| j                  j                  |j                         | j                  j                  |j                  |j                  |      |j                        }| j                  j                  |      S )zCreate a new Tensorboard run.)displayNamedescriptionlabels)parent*googleCloudAiplatformV1beta1TensorboardRuntensorboardRunId)r   ParseCreateArgsr   *GoogleCloudAiplatformV1beta1TensorboardRunLabelsValueCAiplatformProjectsLocationsTensorboardsExperimentsRunsCreateRequestRelativeNamedisplay_namer%   tensorboard_run_idr   r"   )r   r    r!   r&   requests        r   r   z TensorboardRunsClient.CreateBeta.   s    ((@@LLNF mm__"//137==	3	3))(( 
4 
 00 ` 2G ==((r   c                     | j                   j                  |j                         t        j                  |            }t        j                  | j                  |dd||      S )N)r'   orderBytensorboardRunspageSize)fieldbatch_size_attribute
batch_sizelimit)r   AAiplatformProjectsLocationsTensorboardsExperimentsRunsListRequestr.   r   ParseSortByArgr   YieldFromListr   )r   r    r9   	page_sizesort_byr1   s         r   ListzTensorboardRunsClient.List=   sa    mm]]"//1**73 ^ 5G ##' r   c                     | j                   j                  |j                               }| j                  j	                  |      S N)name)r   @AiplatformProjectsLocationsTensorboardsExperimentsRunsGetRequestr.   r   Getr   tensorboard_run_refr1   s      r   rD   zTensorboardRunsClient.GetI   s=    mm\\ --/ ] 1G==W%%r   c                     | j                   j                  |j                               }| j                  j	                  |      S rA   )r   CAiplatformProjectsLocationsTensorboardsExperimentsRunsDeleteRequestr.   r   DeleterE   s      r   rI   zTensorboardRunsClient.DeleteN   sB    	L	L$113 
M 
5  ==((r   c                 &    | j                  ||      S r   )	PatchBeta)r   rF   r!   s      r   PatchzTensorboardRunsClient.PatchU   s    >>-t44r   c                      j                   j                         }g } fd}t        j                  | j                   j                  j                  |      }|j
                  r"|j                  |_        |j                  d       |j                  "|j                  |_	        |j                  d       |j                  "|j                  |_
        |j                  d       |st        j                  d       j                   j                  j                         |dj                  |            } j                   j#                  |      S )zUpdate a Tensorboard run.c                  :     j                        j                  S r   )rD   r&   )r   rF   s   r   	GetLabelsz2TensorboardRunsClient.PatchBeta.<locals>.GetLabels]   s    XX)*111r   r&   r/   r%   zNo updates requested.,)rB   r(   
updateMask)r   r+   r   ProcessUpdateArgsLazyr,   needs_updater&   appendr/   r$   r%   r
   NoFieldsSpecifiedErrorBAiplatformProjectsLocationsTensorboardsExperimentsRunsPatchRequestr.   joinr   rL   )r   rF   r!   tensorboard_runupdate_maskrO   labels_updater1   s   ``      r   rK   zTensorboardRunsClient.PatchBetaX   s"   mmNNPOK2  55@@LLM !!,33o"$$($5$5o!(#$($4$4o!'))*ABBmm^^ --/3B88K( _ *G ==w''r   )i  2   N)__name__
__module____qualname____doc__r	   BETA_VERSIONr   r"   r   r?   rD   rI   rL   rK    r   r   r   r      s>    F  --	6)
&
)5(r   r   N)r_   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.utilr   r   googlecloudsdk.command_lib.air	   r
   $googlecloudsdk.command_lib.util.argsr   objectr   ra   r   r   <module>rh      s3    6 &  ' ' , 3 3 0 <Z(F Z(r   