
                         ~    S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r
  SSKJr  SSKJr   " S	 S
\5      rS rS rg)z"Factory class for Session message.    )absolute_import)division)unicode_literals)jupyter_config_factory)environment_config_factory)runtime_config_factory)labels_utilc                   2    \ rS rSrSrSr   SS jrS rSrg)	SessionMessageFactory   zFactory class for Session message.

Factory class for configuring argument parser and creating a Session message
from the parsed arguments.
zInvalid session type: {}.Nc                 p   Xl         U R                   R                  R                  S0U l        U=(       d    [        R
                  " U R                   SS9U l        U=(       d     [        R                  " U R                   5      U l	        U=(       d     [        R                  " U R                   5      U l        g)a  Builder class for Session message.

Session message factory. Only the flags added in AddArguments are handled.
User need to provide session type specific message during message
creation.

Args:
  dataproc: A api_lib.dataproc.Dataproc instance.
  runtime_config_factory_override: Override the default
  RuntimeConfigFactory instance.
  environment_config_factory_override: Override the default
  EnvironmentConfigFactory instance.
  jupyter_config_factory_override: Override the default
  JupyterConfigFactory instance.
jupyterSessionTuse_config_propertyN)dataprocmessagesJupyterConfig_session2keyrcfRuntimeConfigFactoryr   ecfEnvironmentConfigFactoryr   jcfJupyterConfigFactoryr   )selfr   runtime_config_factory_override#environment_config_factory_overridejupyter_config_factory_overrides        Klib/googlecloudsdk/command_lib/dataproc/sessions/session_message_factory.py__init__SessionMessageFactory.__init__(   s    $ M //==?OPD 	( 	J  DI 	
 	, 	4$$T]]3 	#
 	( 	0  / 	    c                    0 nU R                   R                  U5      nX2U R                  [        U5         '   UR                  (       aA  [
        R                  " XR                  R                  R                  R                  5      US'   U R                  R                  U5      nU(       a  XBS'   U R                  R                  U5      nU(       a  XRS'   UR                  R                  R                  5       R!                  5       US'   UR"                  (       a  UR"                  US'   U(       d  gU R                  R                  R                  " S0 UD6$ )aZ  Creates a Session message from given args.

Create a Session message from given arguments. Only the arguments added in
AddArguments are handled. Users need to provide session type specific
message during message creation.

Args:
  args: Parsed argument.

Returns:
  A Session message instance.

Raises:
  AttributeError: When session is invalid.
labelsruntimeConfigenvironmentConfignamesessionTemplateN )r   
GetMessager   typer$   r	   ParseCreateArgsr   r   SessionLabelsValuer   r   CONCEPTSsessionParseRelativeNamesession_template)r   argskwargssession_configruntime_configenvironment_configs         r   r*    SessionMessageFactory.GetMessageK   s     F00;;DAN6D4T.123{{$44
&&..::<fX 00;;DAN ._88CCDI$6 !]]**002??AF6N"&"7"7f==!!))3F33r"   )r   r   r   r   r   )NNN)	__name__
__module____qualname____firstlineno____doc__INVALID_SESSION_TYPE_ERR_MSGr    r*   __static_attributes__r)   r"   r   r   r      s#     "=?C37/3!1F(4r"   r   c                 f    U R                  SSS9  [        R                  " U 5        [        U 5        g)zAdds arguments related to Session message.

Add Session arguments to the given parser. Session specific arguments are not
handled, and need to be set during factory instantiation.

Args:
  parser: A argument parser.
z--session_templatez5The session template to use for creating the session.)helpN)add_argumentr	   AddCreateLabelsFlags_AddDependencyparsers    r   AddArgumentsrH   v   s5     	F  
 ""6*r"   c                     [         R                  " U SS9  [        R                  " U 5        [        R                  " U 5        g )NTr   )r   rH   r   r   rF   s    r   rE   rE      s.    6t466r"   N)r>   
__future__r   r   r   ,googlecloudsdk.command_lib.dataproc.sessionsr   r   3googlecloudsdk.command_lib.dataproc.shared_messagesr   r   r   r   $googlecloudsdk.command_lib.util.argsr	   objectr   rH   rE   r)   r"   r   <module>rO      s>     ) &  '#'# <T4F T4n$r"   