ó ÆtÚ_c@sddlZddlmZddlmZddlmZddlmZm Z m Z ddl m Z ddl m Z ddlmZejeƒZd „Zd efd „ƒYZd efd „ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZd„ZdS(iÿÿÿÿN(tjson(tset_value_from_jmespath(t PageIterator(t MultiTabletStylertColorizedStyler(ttext(tcompat(t json_encodercCs t|tƒS(N(t isinstanceR(tresponse((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pytis_response_paginatedst FormattercBs,eZd„Zd„Zd„Zd„ZRS(cCs ||_dS(N(t_args(tselftargs((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyt__init__"scCsZd|krVd|krVd|dkrI|dd}tjd|ƒn|d=qVndS(NtErrorstResponseMetadatat RequestIds RequestId: %s(tLOGtdebug(Rt response_datat request_id((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyt_remove_request_id%s   cCs tjƒS(N(Rtget_stdout_text_writer(R((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyt_get_default_stream1scCs&y|jƒWntk r!nXdS(N(tflushtIOError(Rtstream((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyt _flush_stream4s (t__name__t __module__RRRR(((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyR !s  tFullyBufferedFormattercBseZdd„ZRS(cCs¹|dkr|jƒ}nt|ƒr6|jƒ}n|}|j|ƒ|jjdk rs|jjj|ƒ}nz1y|j|||ƒWnt k r¢}nXWd|j |ƒXdS(N( tNoneRR tbuild_full_resultRR tquerytsearcht_format_responseRR(Rt command_nameR RRte((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyt__call__<s   N(RR R"R)(((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyR!;st JSONFormattercBseZd„ZRS(c CsB|ikr>tj||dddtdtƒ|jdƒndS(Ntindentitdefaultt ensure_asciis (RtdumpRtFalsetwrite(RR'R R((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyR&Ys (RR R&(((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyR*WstTableFormattercBs\eZdZd d„Zd„Zdd„Zd„Zd„Zd„Z d„Z d „Z RS( sÞPretty print a table from a given response. The table formatter is able to take any generic response and generate a pretty printed table. It does this without using the output definition from the model. cCsÉtt|ƒj|ƒ|jdkr@tdtddƒ|_n…|jdkrytƒ}tdtddd|ƒ|_nL|jdkr²tƒ}tdtddd|ƒ|_nt d|jƒ‚dS( Ntautotinitial_sectiontcolumn_separatort|tofftstylertonsUnknown color option: %s( tsuperR1RtcolorRR/ttableRRt ValueError(RRR;R7((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyRls     cCsA|j||ƒr=y|jj|ƒWq=tk r9q=XndS(N(t _build_tableR;trenderR(RR'R R((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyR&|s  ics |s tS|dk r/ˆjj|d|ƒnt|tƒråt|dtƒrgˆj|||ƒqåx{|D]p}ˆj|ƒr™ˆjj |gƒqnt ‡fd†|DƒƒrȈjj |ƒqnˆj ddd|ƒqnWnt|tƒrˆj ||ƒnt S(Nt indent_levelic3s|]}ˆj|ƒVqdS(N(t _scalar_type(t.0tel(R(s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pys ’sttitletcurrent(R/R"R;t new_sectionR tlisttdictt_build_sub_table_from_listR@tadd_rowtallR=t_build_sub_table_from_dicttTrue(RRCRDR?titem((Rs;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyR=†s   cCs¿|j|ƒ\}}t|ƒdkrL|jj|d||dgƒn@|rŒ|jj|ƒ|jjg|D]}||^qrƒnx,|D]$}|j|||d|dƒq“WdS(NiiR?(t_group_scalar_keystlenR;RItadd_row_headerR=(RRDR?theaderstmoretkt remaining((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyRKs%* c Csé|j|ƒ\}}|jj|ƒt}x·|D]¯}| rn|rn|jj|d|ƒ|jj|ƒnt}|jjg|D]}|j|dƒ^q„ƒx;|D]3} | |krª|j| || d|dƒqªqªWq2WdS(NR?ti( t_group_scalar_keys_from_listR;RPRLRER/RItgetR=( RRDR?RCRQRRtfirsttelementtheaderRT((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyRH¬s  /  cCst|ttfƒ S(N(R RFRG(RRY((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyR@ÁscCs€tƒ}tƒ}x=|D]5}|j|ƒ\}}|j|ƒ|j|ƒqWtt|ƒƒ}tt|ƒƒ}||fS(N(tsetRNtupdateRFtsorted(Rt list_of_dictsRQRRRMtcurrent_headerst current_more((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyRVÄs    cCskg}g}x>|D]6}|j||ƒr<|j|ƒq|j|ƒqW|jƒ|jƒ||fS(N(R@tappendtsort(RRDRRRQRY((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyRNÒs   N( RR t__doc__R"RR&R=RKRHR@RVRN(((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyR1ds      t TextFormattercBseZdd„Zd„ZRS(c Cs|dkr|jƒ}nzät|ƒrá|j}x{t|ƒD]m\}}|dkrai}n |j}x0|D](}|j|ƒ} t||j| ƒqqW|j ||ƒq@W|j rþ|j ii|j d6d6|ƒqþn|j |ƒ|j ||ƒWd|j |ƒXdS(Nit NextToken( R"RR t result_keyst enumeratetnon_aggregate_partR%Rt expressionR&t resume_tokenRR( RR'R RRftitpageRDt result_keytdata((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyR)äs.           cCsD|jjdk r0|jj}|j|ƒ}ntj||ƒdS(N(R R$R"R%Rt format_text(RR RRi((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyR&s N(RR R"R)R&(((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyRdâs "cCsV|dkrt|ƒS|dkr,t|ƒS|dkrBt|ƒStd|ƒ‚dS(NRRR;sUnknown output type: %s(R*RdR1R<(t format_typeR((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyt get_formatter s      (tloggingtbotocore.compatRtbotocore.utilsRtbotocore.paginateRt awscli.tableRRRtawscliRRt awscli.utilsRt getLoggerRRR tobjectR R!R*R1RdRq(((s;/opt/awscli/lib/python2.7/site-packages/awscli/formatter.pyt s   ~+