
    ,                     r    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	\5      rS
 rS rg)z Factory class for Batch message.    )absolute_import)division)unicode_literals)environment_config_factory)runtime_config_factory)labels_utilc                   4    \ rS rSrSrSrSr  S	S jrS rSr	g)
BatchMessageFactory   zFactory class for Batch message.

Factory class for configuring argument parser and creating a Batch message
from the parsed arguments.
zInvalid batch job type: {}.zMissing batch job.Nc           
      P   Xl         U R                   R                  R                  SU R                   R                  R                  SU R                   R                  R                  SU R                   R                  R
                  SU R                   R                  R                  S0U l        X l        U R                  (       d%  [        R                  " U R                   SSS9U l        X0l        U R                  (       d&  [        R                  " U R                   5      U l        gg)	a  Builder class for Batch message.

Batch message factory. Only the flags added in AddArguments are handled.
User need to provide batch job 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.

sparkBatchsparkRBatchsparkSqlBatchpysparkBatchrayBatchTinclude_autotuninginclude_cohortN)dataprocmessages
SparkBatchSparkRBatchSparkSqlBatchPySparkBatchRayBatch
_batch2keyr   rcfRuntimeConfigFactoryr   ecfEnvironmentConfigFactory)selfr   runtime_config_factory_override#environment_config_factory_overrides       Hlib/googlecloudsdk/command_lib/dataproc/batches/batch_message_factory.py__init__BatchMessageFactory.__init__)   s    & M 	))<**M,,o++^''DO #B&&$'$<$<
--D%d! 'J#**(+(D(D
--)d% +    c                    U(       d  [        [        R                  5      e[        U[	        U R
                  R                  5       5      5      (       d1  [        [        R                  R                  [        U5      5      5      e0 nX#U R
                  [        U5         '   UR                  (       aA  [        R                  " XR                  R                  R                  R                   5      US'   U R"                  R%                  U5      nU(       a  XCS'   U R&                  R%                  U5      nU(       a  XSS'   U(       d  gU R                  R                  R                  " S0 UD6$ )a  Creates a Batch message from given args.

Create a Batch message from given arguments. Only the arguments added in
AddAddArguments are handled. User need to provide bath job type specific
message during message creation.

Args:
  args: Parsed argument.
  batch_job: Batch type job instance.

Returns:
  A Batch message instance.

Raises:
  AttributeError: When batch_job is invalid.
labelsruntimeConfigenvironmentConfigN )AttributeErrorr
   MISSING_BATCH_ERR_MSG
isinstancetupler   keysINVALID_BATCH_TYPE_ERR_MSGformattyper)   r   ParseCreateArgsr   r   BatchLabelsValuer   
GetMessager   )r!   args	batch_jobkwargsruntime_configenvironment_configs         r$   r8   BatchMessageFactory.GetMessageS   s   " .DDEEit';';'=!>??

8
8
?
?Y
P  F/84??4	?+,{{$44
&&,,88fX 00;;DAN ._88CCDI$6 !==!!''1&11r'   )r   r   r   r   )NN)
__name__
__module____qualname____firstlineno____doc__r2   r.   r%   r8   __static_attributes__r,   r'   r$   r
   r
      s(      =.
 '+*.	(T-2r'   r
   c                 F    [         R                  " U 5        [        U 5        g)zAdds arguments related to Batch message.

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

Args:
  parser: A argument parser.
N)r   AddCreateLabelsFlags_AddDependencyparsers    r$   AddArgumentsrJ      s     ""6*r'   c                 \    [         R                  " U SSS9  [        R                  " U 5        g )NTr   )r   rJ   r   rH   s    r$   rG   rG      s"    6d4H6r'   N)rC   
__future__r   r   r   3googlecloudsdk.command_lib.dataproc.shared_messagesr   r   r   r   $googlecloudsdk.command_lib.util.argsr   objectr
   rJ   rG   r,   r'   r$   <module>rP      s;     ' &  ' =a2& a2Hr'   