
                         z    S 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.    N)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>3   s     <)$<%%)s   )join)	kind_lists    r   _format_kind_listr&   /   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)PresetsPrinter6   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.Transform9   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,   )	r1   r2   fieldslineslabelvaluewrapped_lines
first_linelines	            r   r-   PresetsPrinter._get_preset_infoG   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   )rE   _NAME_COL_WIDTH_DESC_COL_WIDTH_REQ_COL_WIDTH)r1   r6   descrequireds       r   _format_rowPresetsPrinter._format_rowb   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-)rU   rP   rQ   rR   )r1   s    r   _get_preset_inputs_header(PresetsPrinter._get_preset_inputs_headerm   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.
parametersNr6   r   r9   rT   FYesNor;   r   r=   )
r?   r\   r@   rA   rQ   rD   rU   r+   rF   r,   )r1   r2   r_   inputsparamr6   rS   rT   wrapped_descfirst_desc_linerM   s              r   r.   !PresetsPrinter._get_preset_inputsx   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   )r?   r+   LabeleditemsrF   r,   )r1   r2   rh   labeled_datas       r   r/   %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)	r?   
isinstancer>   extendrD   r+   rF   ri   r,   )r1   r2   usage_linesfull_usage_strings       r   r0   PresetsPrinter._get_usage   s    **3R8K+s## Mk[)S!::	grxx(9:;<	=> r    N)__name__
__module____qualname____firstlineno____doc__r3   r-   rU   r\   r.   r/   r0   __static_attributes__ru   r   r   r(   r(   6   s(    D)6		*(
r   r(   )rz   r@   googlecloudsdk.core.resourcer   r+   PRESETS_PRINTER_FORMATrP   rQ   rR   rC   rB   r   r   r&   CustomPrinterBaser(   ru   r   r   <module>r      si    ,  B"  
 &)'+ /=pR)) pr   