
                             S r SSKJr  SSKJr  SSKJr  SSKrSSKJr  SSKJ	r	  SSKJ
r
  SS	KJr  S
 rS rS rS rS rSS jrg)z-Utilities for AI Platform endpoints commands.    )absolute_import)division)unicode_literalsN)errors)	resources)yaml)
console_ioc                     SU ;   a   [         R                  R                  U SS9$ [         R                  R                  U SS9$ ! [         R                   a     N4f = f)zParse operation resource to the operation reference object.

Args:
  operation_name: The operation resource to wait on

Returns:
  The operation reference object
z/endpoints/z2aiplatform.projects.locations.endpoints.operations)
collectionz(aiplatform.projects.locations.operations)r   REGISTRYParseRelativeName WrongResourceCollectionException)operation_names    3lib/googlecloudsdk/command_lib/ai/endpoints_util.pyParseOperationr      su     n$11
I 2   
			-	-!K 
. 
  55 
s   A AAc                    [         R                  " U SS9n[        R                  " U5       n [        R
                  " U5      sSSS5        $ ! [         a    [        R                  " SU S35      ef = f! , (       d  f       g= f)zLoads a YAML file.T)binaryNz6Input is not in JSON format. See `gcloud ai endpoints z --help` for details.)	r	   ReadFromFileOrStdinioBytesIOr   load
ValueErrorr   InvalidInstancesFileError)	file_path
sdk_methoddatafs       r   	_LoadYamlr   3   sv    		'	'	$	?$	zz$1YYq\   ,,B:,
!"  s   A5A%A22A55
Bc                    [        U SS9n[        U[        5      (       d  [        R                  " S5      eSU;  a  [        R                  " S5      e[        US   [
        5      (       d  [        R                  " S5      eU$ )a  Reads the instances from the given file path ('-' for stdin).

Args:
  json_request: str or None, a path to a file ('-' for stdin) containing the
    JSON body of a prediction request.

Returns:
  A list of instances.

Raises:
  InvalidInstancesFileError: If the input file is invalid (invalid format or
      contains too many/zero instances), or an improper combination of input
      files was given.
predictr   z]Input instances are not in JSON format. See `gcloud ai endpoints predict --help` for details.	instancesz3Invalid JSON request: missing "instances" attributez0Invalid JSON request: "instances" must be a list)r   
isinstancedictr   r   listjson_requestrequests     r   ReadInstancesFromArgsr)   @   s     ly9'	GT	"	"

*
*	@ 
 

*
*=  
GK($	/	/

*
*:  
.    c                 R    [        U SS9nSU;  a  [        R                  " S5      eU$ )z7Validates and reads json request for Direct Prediction.zdirect-predictr!   inputsz Input json must contain "inputs"r   r   r   r&   s     r   ReadInputsFromArgsr.   d   s.    l/?@'W

*
*+M
NN	.r*   c                     [        U SS9nSU;  a  [        R                  " S5      eSU;  a  SU;  a  [        R                  " S5      eU$ )z;Validates and reads json request for Direct Raw Prediction.zdirect-raw-predictr!   inputzInput json must contain "input"method_name
methodNamez5Input json must contain "method_name" or "methodName"r-   r&   s     r   ReadInputFromArgsr3   l   sU    l/CD'G

*
*+L
MM'!l'&A

*
*?  
.r*   c                    [        U [        5      (       d  gU (       d  g[        U S   [        5      (       a<  SR                  [	        U S   R                  5       5      5      nSR                  X5      $ SR                  U5      $ )z1Get default output format for prediction results.jsonNr   z, zc
          table(
              {}:format="table(
                  {}
              )"
          )ztable[no-heading]({}))r#   r%   r$   joinsortedkeysformat)predictionskey_namer8   s      r   GetDefaultFormatr<   x   sv    	K	&	&  +a.$''99VKN//123D
 vh%& #))(33r*   )r:   )__doc__
__future__r   r   r   r   googlecloudsdk.command_lib.air   googlecloudsdk.corer   r   googlecloudsdk.core.consoler	   r   r   r)   r.   r3   r<    r*   r   <module>rC      sA    4 &  ' 	 0 ) $ 2,
!H	4r*   