
                             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r	Sr
S	rS
rSrSrSSSSSS.rS rS r " S S\R$                  5      rg)z%Custom printer for Cloud Run presets.    )absolute_import)division)unicode_literalsN)custom_printer_basepresets   &         P   Unspecified
QuickstartzAdd-onOptimization)KIND_UNSPECIFIEDCATEGORY_UNSPECIFIEDCATEGORY_QUICKSTARTCATEGORY_ADDONCATEGORY_OPTIMIZATIONc                 x    U (       d  gU [         ;   a	  [         U    $ U R                  SS5      R                  5       $ )z+Formats a generic enum string into a title. _ )PRESETS_ENUM_MAPreplacetitle)enum_strings    >lib/googlecloudsdk/command_lib/run/printers/presets_printer.py_format_enumr   )   s8    	$$K((			S#	&	,	,	..    c                 B    U (       d  gSR                  S U  5       5      $ )z0Formats a list of kind enum strings for display.Nonez, c              3   8   #    U  H  n[        U5      v   M     g 7f)N)r   ).0kinds     r   	<genexpr>$_format_kind_list.<locals>.<genexpr>6   s     <)$<%%)s   )join)	kind_lists    r   _format_kind_listr)   2   s    		<)<	<<r   c                   B    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
rg)PresetsPrinter9   z<Prints a Cloud Run preset in a custom human-readable format.c                    [         R                  " [         R                  " S/5      U R                  U5      [         R                  " S/5      U R                  U5      [         R                  " S/5      U R	                  U5      [         R                  " S/5      U R                  U5      [         R                  " S/5      /	5      $ )z-Transforms a preset into a structured output.r   )cpLines_get_preset_info_get_preset_inputs_get_key_preset_config
_get_usage)selfpresets     r   	TransformPresetsPrinter.Transform<   s    88
#f%
#'
###F+
#
#
 
 
r   c                    S[        UR                  SS5      5      4S[        UR                  SS5      5      4S[        UR                  S/ 5      5      4S[        UR                  S	S5      5      4S
[        UR                  SS5      5      4/n/ nU H  u  pEU(       d  M  [        R
                  " U[        [        -
  S9nU(       a  US   OSnUR                  UR                  [        5      U-   5        USS  H  nUR                  S[        -  U-   5        M      M     [        R                  " [        R                  " U5      /5      $ )z Formats the preset info section.zName:namer   z	Category:categoryzApplies to:supported_resourceszDescription:descriptionzPreset Version:versionwidthr      Nr   )strgetr   r)   textwrapwrap
_MAX_WIDTH_INFO_INDENT_WIDTHappendljustr.   Sectionr/   )	r4   r5   fieldslineslabelvaluewrapped_lines
first_linelines	            r   r0   PresetsPrinter._get_preset_infoJ   s*    
#fjj,-.	l6::j"#=>?fjj)>CD	
 
VZZr:;<	C

9b 9:;	F Emm
z$66m (5=#"jll5;;12Z?@#$S--45 $  ::rxx'((r   c                     SUR                  [        5      -   S-   UR                  [        5      -   S-   UR                  [        5      -   $ )z4Helper to format a single row with specific padding.z  r   )rH   _NAME_COL_WIDTH_DESC_COL_WIDTH_REQ_COL_WIDTH)r4   r9   descrequireds       r   _format_rowPresetsPrinter._format_rowe   sU     	
**_
%	&
	 **_
%	& 		
 ..
(	)r   c           	      |    SSU R                  SSS5      U R                  S[        -  S[        -  S[        -  5      /$ )z1Returns the header for the preset inputs section.zInputs:r   NameDescriptionRequired-)rX   rS   rT   rU   )r4   s    r   _get_preset_inputs_header(PresetsPrinter._get_preset_inputs_headerp   sJ     	
;/!3#8#:N	
	 r   c           	      (   UR                  S/ 5      nU(       d  gU R                  5       nU H  nUR                  SS5      nUR                  SS5      nUR                  SS5      (       a  SOS	n[        R                  " U[        S
9nU(       a  US   OSn	UR                  U R                  XYU5      5        USS  H%  n
UR                  U R                  SU
S5      5        M'     M     [        R                  " [        R                  " U5      /5      $ )z"Formats the preset inputs section.
parametersNr9   r   r<   rW   FYesNor>   r   r@   )
rB   r_   rC   rD   rT   rG   rX   r.   rI   r/   )r4   r5   rb   inputsparamr9   rV   rW   wrapped_descfirst_desc_linerP   s              r   r1   !PresetsPrinter._get_preset_inputs{   s    L"-J++-FYYvr"dYY}b)d))J66Dh]]4?l+7QRommD$$THEFqr"$d&&r445 #  ::rxx'())r   c           
         UR                  S0 5      nU(       d  g[        R                  " UR                  5       5      n[        R                  " [        R                  " S[        R
                  " SUS/5      4/5      /5      $ )z-Formats the key preset configuration section.config_valuesNzKey Preset Configurationr   )rB   r.   LabeleditemsrI   r/   )r4   r5   rk   labeled_datas       r   r2   %PresetsPrinter._get_key_preset_config   sl    JJ3M::m1134L::


("((Cs3K*LMN	
  r   c                 4   UR                  S/ 5      nU(       d  g[        U[        5      (       a  U/nS/nUR                  U5        UR	                  S5        [
        R                  " [
        R                  " S[
        R                  " U5      4/5      /5      $ )z(Formats the preset gcloud usage section.example_gcloud_usageNr   Usage)	rB   
isinstancerA   extendrG   r.   rI   rl   r/   )r4   r5   usage_linesfull_usage_strings       r   r3   PresetsPrinter._get_usage   s    **3R8K+s## Mk[)S!::	grxx(9:;<	=> r    N)__name__
__module____qualname____firstlineno____doc__r6   r0   rX   r_   r1   r2   r3   __static_attributes__rx   r   r   r+   r+   9   s(    D)6		*(
r   r+   )r}   
__future__r   r   r   rC   googlecloudsdk.core.resourcer   r.   PRESETS_PRINTER_FORMATrS   rT   rU   rF   rE   r   r   r)   CustomPrinterBaser+   rx   r   r   <module>r      sp    , &  '  B"  
 &)'+ /=pR)) pr   