
    '                         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	Zd
Zd Zd Zd Z G d dej$                        Zy)zTInstance-split-specific printer and functions for generating instance split formats.    )absolute_import)division)print_function)unicode_literals)instance_split_pair)console_attr)custom_printer_baseinstancesplit-c                 x    t        j                         }| j                  |j                  | j                        fS )zDTransforms a single InstanceSplitPair into a marker class structure.)r   GetConsoleAttrdisplayPercent	EmphasizedisplayRevisionId)pairconsoles     Elib/googlecloudsdk/command_lib/run/printers/instance_split_printer.py_TransformInstanceSplitPairr      s7    '')'
../
     c                     t        j                  t        j                  d | D              g      }t        j                  t        j                  d|fg      gd      S )zCTransforms a List[InstanceSplitPair] into a marker class structure.c              3   2   K   | ]  }t        |        y w)N)r   ).0ps     r   	<genexpr>z/_TransformInstanceSplitPairs.<locals>.<genexpr>+   s     M8L1+A.8Ls   zInstance Split<   )max_column_width)cpSectionTableLabeled)instance_split_pairsinstance_split_sections     r   _TransformInstanceSplitPairsr#   (   sV    ::	xxM8LMMN 
	zz$&<=>?@
 r   c                     | j                   du }t        j                  | j                  | j                  |rt
        n| j                   j                        }t        |      S )as  Transforms a worker's instance split fields into a marker class structure to print.

  Generates the custom printing format for a worker's instance split using the
  marker classes defined in custom_printer_base.

  Args:
    worker_pool_record: A WorkerPool object.

  Returns:
    A custom printer marker object describing the instance split fields
    print format.
  N)statusr   GetInstanceSplitPairs
spec_splitstatus_split_LATEST_READY_REV_UNSPECIFIEDlatestReadyRevisionNamer#   )worker_pool_record	no_statusr!   s      r   TransformInstanceSplitFieldsr-   3   s^     !''4/),BB##%%  (!((@@ 
&&:	;;r   c                   *     e Zd ZdZd fd	Zd Z xZS )InstanceSplitPrinterzHPrints a worker pool's instance split in a custom human-readable format.c                 0    t         t        |   |d|       y)z3Overrides ResourcePrinter.Print to set single=True.TN)superr/   Print)self	resourcessingleintermediate	__class__s       r   r2   zInstanceSplitPrinter.PrintP   s     

+It\Jr   c                     t        |      S )z@Transforms a List[InstanceSplitPair] into a marker class format.)r#   )r3   records     r   	TransformzInstanceSplitPrinter.Transform[   s    '//r   )FF)__name__
__module____qualname____doc__r2   r:   __classcell__)r7   s   @r   r/   r/   M   s    P	K0r   r/   N)r>   
__future__r   r   r   r   googlecloudsdk.api_lib.runr   googlecloudsdk.core.consoler   googlecloudsdk.core.resourcer	   r   INSTANCE_SPLIT_PRINTER_FORMATr)   r   r#   r-   CustomPrinterBaser/    r   r   <module>rG      sO    [ &  % ' : 4 B !0  # <402// 0r   