
    '                         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	rS
rS rS rS r " S S\R$                  5      rg)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                 z    [         R                  " 5       nU R                  UR                  U R                  5      4$ )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                     [         R                  " [         R                  " S U  5       5      /5      n[         R                  " [         R                  " SU4/5      /SS9$ )zCTransforms a List[InstanceSplitPair] into a marker class structure.c              3   8   #    U  H  n[        U5      v   M     g 7f)N)r   ).0ps     r   	<genexpr>/_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                     U R                   SL n[        R                  " U R                  U R                  U(       a  [
        OU R                   R                  5      n[        U5      $ )ac  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                   6   ^  \ rS rSrSrSU 4S jjrS rSrU =r$ )InstanceSplitPrinterM   zHPrints a worker pool's instance split in a custom human-readable format.c                 0   > [         [        U ]  USU5        g)z3Overrides ResourcePrinter.Print to set single=True.TN)superr0   Print)self	resourcessingleintermediate	__class__s       r   r4   InstanceSplitPrinter.PrintP   s     

+It\Jr   c                     [        U5      $ )z@Transforms a List[InstanceSplitPair] into a marker class format.)r$   )r5   records     r   	TransformInstanceSplitPrinter.Transform[   s    '//r    )FF)	__name__
__module____qualname____firstlineno____doc__r4   r=   __static_attributes____classcell__)r9   s   @r   r0   r0   M   s    P	K0 0r   r0   N)rD   
__future__r   r   r   r   googlecloudsdk.api_lib.runr   googlecloudsdk.core.consoler   googlecloudsdk.core.resourcer	   r   INSTANCE_SPLIT_PRINTER_FORMATr*   r   r$   r.   CustomPrinterBaser0   r?   r   r   <module>rM      sO    [ &  % ' : 4 B !0  # <402// 0r   