403Webshell
Server IP : 182.53.201.61  /  Your IP : 216.73.217.175
Web Server : Apache/2.2.15 (Fedora)
System : Linux km10.dyndns.org 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686
User : apache ( 48)
PHP Version : 5.3.3
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/yum-cli/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/yum-cli/output.pyo
7Jc.@sjdZddkZddkZddkZddkZddkZddkZddkZddkZddk	l
Z	ddklZddkZ
ddklZddklZddklZlZlZddkZddklZdd	kTdd
klZlZddklZddklZddk Zdd
kl!Z!l"Z"l#Z#dZ$defdYZ%dfdYZ&dfdYZ'dfdYZ(dfdYZ)e*dZ+defdYZ,e*dZ-e.djone/ei0djoei0ddjod GHd!GHd GHx4e1d"d#D]#Z2e-e2d$d%ei3d&qAWd GHd'GHd GHx<e1d"d#D]+Z2e-e2d$d(d)d*ei3d&qWd GHd+GHd GHx1e1d"d#D] Z2e-e2d$ei3d&qWne/ei0djoei0ddd,fjoe,Z4e5e4_6d%e4i7d-<d.e4i7d/<d GHd0GHd GHx@e1d"d#D]/Z2e4i8d1d-e2d$e2d$ei3d&qxWd GHd2GHd GHxLe1d"d#D];Z2e4i8d3d4d5d6d/e2d$e2d$ei3d&qWne/ei0djoei0ddd7d,d8fjoei9i:ne/ei0djoei0ddd7fjod GHd9GHd GHx:e1d"d#D])Z2e-e2d$ed:ei3d&qWd GHd GHd;GHd GHxBe1d"d#D]1Z2e-e2d$ed:d*d6ei3d&qWd GHne/ei0djoei0ddd7d,d8fjoe,Z4e5e4_6ed:e4i7d-<e4i7d-d*d6e4i7d/<d GHd<GHd GHx@e1d"d#D]/Z2e4i8d1d-e2d$e2d$ei3d&qWd GHd=GHd GHxLe1d"d#D];Z2e4i8d3d4d5d6d/e2d$e2d$ei3d&qWd GHnndS(>s'This handles actual output from the cliiN(tproxy(t	TextMeter(tURLGrabError(tprco_tuple_to_string(tto_strtto_utf8t
to_unicode(tcheckSignals(t*(t
logginglevelst_(tRPMBaseCallback(tpackagesNewestByNameArch(t
utf8_widthtutf8_width_filltutf8_text_fillcCsOttidpdStii}|djodS|djodS|S(s= Simple terminal width, limit to 20 chars. and make 0 == 80. tterminal_width_cachediPii(thasattrt
urlgrabbertprogressR(tret((s/usr/share/yum-cli/output.pyt_term_width0s

tYumTextMetercBseZdZddZRS(s#
    Text progress bar output.
    cCstti|||dS(N(RRtupdate(tselftamount_readtnow((s/usr/share/yum-cli/output.pyRBsN(t__name__t
__module__t__doc__tNoneR(((s/usr/share/yum-cli/output.pyR<stYumTermcBseZdZeZeeidoedZ	nhdd6dd6dd6Z
hd	d
6dd6d
d6dd6dd6dd6dd6dd6Zhd	d
6dd6d
d6dd6dd6dd6dd6dd6Zhdd6dd6dd6dd6d d6d!d6Z
hd"d
6d#d6d$d6d%d6d&d6d'd6d(d6d)d6Zhd*d
6d+d6d,d6d-d6d.d6d/d6d0d6d1d6Zd2Zd=d3d4Zd=d3d5Zd6Zd=ed7Zd8Zd9Zd:Zd;Zd<ZRS(>s*some terminal "UI" helpers based on cursesRcCstS((R(R((s/usr/share/yum-cli/output.pyt<lambda>Sstsmult	underlinetrevtreversetsgr0tnormalitblackitblueitgreenitcyanitreditmagentaityellowitwhitestboldstblinkttdimsss(BsssssssssssssssscCs(|i|_|i|_|i|_dS(N(t_YumTerm__ansi_forced_MODEtMODEt_YumTerm__ansi_forced_FG_COLORtFG_COLORt_YumTerm__ansi_forced_BG_COLORtBG_COLOR(R((s/usr/share/yum-cli/output.pyt
__forced_initstautocCst|_ttidp
d|_nd|_|djo|idShdd6dd6dd6dd	6dd
6dd6|_hdd6dd
6dd6dd6dd6dd6dd6dd6|_	hdd6dd
6dd6dd6dd6dd6dd6dd6|_
|djot|_dSyddk}Wnt|_dSX|p
t
i}n|ipt|_dSy|id|iWnt|_dSX|i|_ttidp|id|_n|id|_xU|iD]J}|}||ijo|i|}n|i|pd|i|<qW|id}|oDxA|iiD],\}}|i||pd|i	|<qdWn|id}|oDxA|iiD],\}}|i||pd|i	|<qWn|id}	|	oDxA|iiD],\}}|i|	|pd|i
|<qWn|id}
|
oDxA|iiD],\}}|i|
|pd|i
|<qrWndS(NRiPitalwaysR1R/R0R2R$R"R&R'R(R)R*R+R,R-R.tneveritfdtcolstlinestsetftsetaftsetbtsetab(tTruet_YumTerm__enabledRRRtcolumnsR?t_YumTerm__forced_initR4R6R8tFalsetcursestsyststdouttisattyt	setuptermtfilenottigetstrt
_ctigetstrttigetnumt_YumTerm__cap_namest	_tigetstrt_YumTerm__colorstitemsttparmt_YumTerm__ansi_colors(Rtterm_streamtcolorRItcap_nametmodetset_fgtvaltset_fg_ansitset_bgtset_bg_ansi((s/usr/share/yum-cli/output.pytreinits	
	





		

		
!(((cCs|i||dS(N(Ra(RRXRY((s/usr/share/yum-cli/output.pyt__init__scCs)|i|pd}tidd|S(NR1s\$<\d+>[/*]?(RPtretsub(RRZtcap((s/usr/share/yum-cli/output.pyRSsc
s|ip|S|p
ti}nfd}xO|D]G}||}	|oti|	ti}	nti|	||}q<W|S(Ncs|iS((tgroup(tmatch(tendtbeg(s/usr/share/yum-cli/output.pyR s(RERctescapettemplatetIRd(
RthaystackRiRhtneedlesRjtignore_casetrendertneedletpat((RhRis/usr/share/yum-cli/output.pyRds

cKs |i|||id||S(NR&(RdR4(RRmRiRntkwds((s/usr/share/yum-cli/output.pytsub_norm
scKs|i||i|||S(N(RtR4(RRmR[RnRs((s/usr/share/yum-cli/output.pytsub_modescKs|i|d||S(NR/(Ru(RRmRnRs((s/usr/share/yum-cli/output.pytsub_boldscKs|i||i|||S(N(RtR6(RRmRYRnRs((s/usr/share/yum-cli/output.pytsub_fgscKs|i||i|||S(N(RtR8(RRmRYRnRs((s/usr/share/yum-cli/output.pytsub_bgsN(RRRRDRERRRtpropertyRFRRRTRWR3R5R7RGRRaRbRSRHRdRtRuRvRwRx(((s/usr/share/yum-cli/output.pyRFsz	





	d					t	YumOutputcBs6eZdZdZdZdZd7dZdZdZ	e
dZd7dd7d	d
Ze
dZ
dZd
d
dZed	ed7dZed	ed7dZdZddZdZedZd7dZhd7hdZdZdZdZddZdd7dZdZdZdd d!Z e
dd"Z!d7d7d7d#Z"d7d$Z#d%Z$d&Z%d'Z&d(Z'd)Z(d*Z)d+Z*d,Z+d-Z,d7d.Z-d/Z.d0Z/d1Z0d2Z1d3Z2gd4Z3gd5Z4d6Z5RS(8s5
    Main output class for the yum command line.
    cCsxtid|_tid|_ttdotidid|_n
dg|_t	|_
d|_dS(Nsyum.clisyum.verbose.clitexpandMacros
%_i18ndomainst:sredhat-dist(
tloggingt	getLoggertloggertverbose_loggerRtrpmR{tsplitti18ndomainsRttermRt_last_interrupt(R((s/usr/share/yum-cli/output.pyRb$sc
Cstdtdtdtdtdtdtdtdtd	td
tdtdg}titi}|ttid
|dtid|}|S(NtJantFebtMartAprtMaytJuntJultAugtSeptOcttNovtDecs%mis %d %T (R
ttimet	localtimetinttstrftime(RtmonthsRR((s/usr/share/yum-cli/output.pyt	printtime0s6<cCs?|iid|i|i|iitd|idS(s,failure output for failovers from urlgrabbers%s: %ssTrying other mirror.N(Rterrorturlt	exceptionR
(Rterrobj((s/usr/share/yum-cli/output.pyt
failureReport8scCst|||dS(N(tprogressbar(Rtcurrentttotaltname((s/usr/share/yum-cli/output.pytsimpleProgressBar@scCsd}d}|pnet|tp
|djo|iid}n3|djon"x|iddiD]}toqs|djo
d}qs||iijo||ii|7}qs||iijo||ii|7}qs|ido3|d|iijo||ii|d7}qs|ido3|d|ii	jo||ii	|d7}qsqsW|o|iid}n||fS(	NR1R/R&t,t sfg:isbg:(
t
isinstancet
basestringRR4treplaceRRHR6t
startswithR8(Rt	highlightthibegthiendthigh((s/usr/share/yum-cli/output.pyt
_highlightCs6


 cKs1|i|\}}|ii|||||S(N(RRRd(RRmRRnRsRR((s/usr/share/yum-cli/output.pyt_sub_highlightascCsCd}x6|D].}||d|joPn||d7}q
W|S(s; Spaces left on the current field will help how many pkgs? ii((Rt	data_tupstleftRttup((s/usr/share/yum-cli/output.pyt_calc_columns_spaces_helpsesiR1cCs|djo|ii}nt|}|}dg|}x1td|D] }t||i||<qLW|djodg|}n|t||dt|8}x&|djod}	d}
xbt	d|D]Q}|i
|||||}|pqn||	joqn|}	|}
qW|	o@||
idd||
}||
c|7<||8}qn|d8}||}
x't	d|D]}||c|
7<qW||c|||
7<d}qW|S(s Dynamically calculate the width of the fields in the data, data is
            of the format [column-number][field_length] = rows. iiN(RRRFtlentrangetsortedRUtsumR
txrangeRtpop(RtdataRFtremainder_columnttotal_widthtindentR>tpdatatdthelpsR]tthelpstdifftnorm((s/usr/share/yum-cli/output.pytcalcColumnsosL


"
	




cCs#|djod|fSd|fS(Niu-u((twidth((s/usr/share/yum-cli/output.pyt_fmt_column_align_widths
cCsxt|djo|\}}d}}nt|djo(|\}}}|i|\}}n||||fS(NiR1i(RR(Rtcol_dataR]RRRR((s/usr/share/yum-cli/output.pyt	_col_datasucCst|}g}x|d D]}|i|\}}}	}
|p|d7}|i|qn|i|\}}t||joB|d7}t||d|djd|	d|
}|i|n1|dd	||d
7}|i|	||
g||7}|d
7}qW|i|d\}}}	}
|i|\}}t||d|djd|	d|
}|d|7}|i||t|S(s9 Return a string for columns of data, which can overflow.iu%su%s Ru-tprefixtsuffixu%s%s%s
Riu%%s%s(RRtappendRR
Rtextendttuple(RRFtmsgRhRRRR]RRRtalign((s/usr/share/yum-cli/output.pyt
fmtColumnss4




c
Cs|d	jo
d
}n|i}d||i|if}|ddg}|i}	|idjo$d|ijod|ii}	nt|||	f||}|i|GHd	S(s2 Simple to use function to print a pkg as a line. iiis%s%s.%sR&t	installedt	from_repot@N(iii(	RtprintVerRtarchtrepoidt
yumdb_infoRtzipR(
Rtpkgtui_overflowRRRFtvertnathi_colstrid((s/usr/share/yum-cli/output.pyt
simpleLists

	 c	Cs|djo
d	}nd|t|f}|ddg}|i}|idjo$d|ijod|ii}nt||f||}|i|GHdS(
s Simple to use function to print a pkg as a line, with the pkg
            itself in envra format so it can be pased to list/install/etc. iis%s%sR&RRRN(ii(RtstrRRRRR(	RRRRRRFtenvraRR((s/usr/share/yum-cli/output.pytsimpleEnvraLists

	 cCst|}t|}|ii}d|dd}t|d|d|d|}|iddjo3||d	jo"t|d|d|dd
}n|S(sA Return a key value pair in the common two column output format. Ris: Rtinitial_indenttsubsequent_indents
iis
     ...: (RR
RRFRtcount(RtkeyR]tkeylenR>tnxtR((s/usr/share/yum-cli/output.pyt
fmtKeyValFills'
t=cCst|}|iid}t|}||djo|d}}n+|||d}|||t|}d|||fS(Niis%s %s %s(RRRFR
R(RRtfillR>tname_lenRiRh((s/usr/share/yum-cli/output.pyt
fmtSectionscCskt|}t|djoBx?|iD]0}ti||}||jo|}Pq)q)Wnt|S(s_Get the translated version from specspo and ensure that
        it's actually encoded in UTF-8.i(RRRtgettexttdgettextR(RtsRtt((s/usr/share/yum-cli/output.pyt_encs


cCsF|i|\}}td|t|i|fGHtdt|iGH|idjotdt|iGHntdt|iGHtdt|iGHtd|it	|i
GHtdt|iGH|id	jo/d
|ijotdt|ii
GHn|iitiotdt|iGHtd
ti|iGHtdti|iGHt|dotdti|iGHqn|itd|i|iGH|iotdt|iGHntdt|iGH|itd|i|iGHdGHdS(NsName       : %s%s%ssArch       : %st0sEpoch      : %ssVersion    : %ssRelease    : %ssSize       : %ssRepo       : %sRRsFrom repo  : %ssCommitter  : %ssCommittime : %ssBuildtime  : %stinstalltimesInstalltime: %ss
Summary    : sURL        : %ssLicense    : %ss
Description: R1(RR
RRRtepochtversiontreleaset
format_numbertfloattsizeRRRRtisEnabledForR	tDEBUG_3t	committerRtctimet
committimet	buildtimeRRRRtsummaryRtlicensetdescription(RRRRR((s/usr/share/yum-cli/output.pyt
infoOutputs.!! ##
#c
Cs|\}}|dj	o|ii}|iidjo|io|ii}n|i|d|d||i|d|dd
d|iidS|i	}d|i
|if}|i}	d	||	||fGHdS(stakes an updates or obsoletes tuple of pkgobjects and
           returns a simple printed string of the output and a string
           explaining the relationship between the tuple membersRRFRRRiNs%s.%ss%-35.35s [%.12s] %.10s %-20.20ss    (
Rtconftcolor_update_remotetrepotidtverifyLocalPkgtcolor_update_localRtcolor_update_installedtcompactPrintRRR(
Rtuotupt
changetypeRFt	changePkgtinstPkgtchit	c_compactt	i_compacttc_repo((s/usr/share/yum-cli/output.pytupdatesObsoletesList1s
 
	c	Csz|djoid}t|djo*d}d|GHxt|D]}|i|if}	t}
ton|	|jo|idd}
ng|i||	o|idd}
n=|i||	o|id	d
}
n|idd}
|djo#|i|dt	d
|
d|qB|djo|i
|d
|
qBqBWn|djoddgfSdgfSdS(soutputs based on whatever outputType is. Current options:
           'list' - simple pkg list
           'info' - similar to rpm -qi output
           ...also highlight_na can be passed, and we'll highlight
           pkgs with (names, arch) in that set.tlisttinfoiis%ssnot inR&Rt>R/t<RRRFsNo Packages to listN(slistsinfo(RRRRRHtgettverEQtverLTRRDR(RtlstRt
outputTypethighlight_naRFthighlight_modestthingslistedRRR((s/usr/share/yum-cli/output.pytlistPkgsGs6
	




cCs{ttdttdf}ttdttdf}|d|d|d|df}xtoyttd}Wn7tj
o
n#tj
o
nd}nXt|}|i}t|djp
||joPnd	|jod	|jo|d}Pnd
|jod
|joPqmqmWt|djp
||jotStSdS(s.gets a yes or no from the user, defaults to NotytyestntnoiisIs this ok [y/N]: R1uyunN(	RR
RDt	raw_inputtUnicodeEncodeErrortUnicodeDecodeErrortlowerRRH(Rtyuitnuitauitchoice((s/usr/share/yum-cli/output.pytuserconfirmos2$$"
 

 cCs
|iS(N(R-(Rtkeydict((s/usr/share/yum-cli/output.pyt_cli_confirm_gpg_key_importsc
CsI|ii|}|ii|}t|}h}x*|D]"}d|f||i|if<q=Wx|D]}|i|if}||jo |df||i|if<qj|i||do(|||df||i|if<qjqjWh}xI|iD];\}}	|p|	}|i	|igi
||	fqW|S(s Convert pkg_names to installed pkgs or available pkgs, return
            value is a dict on pkg.name returning (apkg, ipkg). iN(trpmdbtsearchNamestpkgSackRRRRtverGTt
itervaluest
setdefaultR(
Rt	pkg_namestipkgstapkgstpkgsRRRtapkgtipkg((s/usr/share/yum-cli/output.pyt_group_names2aipkgss( 
 ,

&s   c
Csx|D]}||joqnx||D]\}}|p|}tt|t|}	|idjo*d|ijot|iid}
nt|i}
xNd|	fd|
ffD]4\}}||i|d|||cd7<qWq,WqWdS(NRRiRRi(R
RRRRRR5(
RRR6tpkg_names2pkgsRtitemR:R;RRRRtv((s/usr/share/yum-cli/output.pyt_calcDataPkgColumnss

 c
Cs|p*xt|D]}d||fGHqWnxt|D]}||jod||fGHq>nxt||ddD]s\}}|o|o|ii}	n|o|ii}	nt}	|i|p|dtd|d|	d|qWq>WdS(Ns%s%sRcSs|dp|dS(ii((tx((s/usr/share/yum-cli/output.pyR sRRRRF(RRtcolor_list_installed_oldertcolor_list_available_installRHRRD(
RR6tverboseR=RRFR>R:R;R((s/usr/share/yum-cli/output.pyt_displayPkgsFromNamess(



c		Cstd|iGH|iiti}|otdt|iGHnd}|o|i	|i
}n|iotdt|iGHntd|iftd|i
ftd|iftd|iff}d}|o{hhd6hd	6}x'|D]\}}|i|||q	W|d|d	g}|i|}|d
|df}nxI|D]A\}}t|d
jo"|GH|i|||d|qpqpWdS(
Ns

Group: %ss
 Group-Id: %ss Description: %ss Mandatory Packages:s Default Packages:s Optional Packages:s Conditional Packages:RRiiRF(R
tui_nameRRR	RRtgroupidRR<tpackagestui_descriptiontmandatory_packagestdefault_packagestoptional_packagestconditional_packagesR@RRRE(	RRftverbR=tsectionsRFRtsection_nameR6((s/usr/share/yum-cli/output.pytdisplayPkgsInGroupss8
cCsx|D]}td|iGHt||djotdGHqnxn||D]b}|||}tdt|GH|ptdGHqVnx|D]}d|iGHqWqVWqWdS(s=take a list of findDeps results and 'pretty print' the outputspackage: %sis"  No dependencies for this packages  dependency: %ss   Unsatisfied dependencys   provider: %sN(R
R
RR(RtresultsRtreqtreqlisttpo((s/usr/share/yum-cli/output.pyt
depListOutputs Rc
	Csddddddddd	g	}|o
d
}nd}d}d
}t|d}x3||jo%||jo|d}||}qWWt|tdjpt|tdjo
d}	n|djo
d}	nd}	|	t|pd
|||fS(s4Turn numbers into human-readable metric-like numbersR1tktMtGtTtPtEtZtYg@@g@iiils%i%s%sgfffff#@s%.1f%s%ss%.0f%s%s(RttypeR(
RtnumbertSItspacetsymbolststeptthreshtdeptht	max_depthtformat((s/usr/share/yum-cli/output.pyRs2	

2


cCstii||S(N(RRtformat_time(tsecondst	use_hours((s/usr/share/yum-cli/output.pyRi(sc
Cs{|iiod|}nd|i|if}|i||i|i}|o<|djo|ii}n|i	|||dt
}n|GH|djo|iit
i}n|pdStd|iGHtdGHxtii|D]u}t|}t|i|jpt|i|joqnt
}tont|i|jotd}	|i|}nt|i|jotd}	t}nnt|i|jotd	}	t}nB|id
o%td}	|i|}t}n
td}	|o|i	|||dt
}n|o|i|	t|GHq|	|GHqWd
GHdS(s/ Output search/provides type callback matches. po is the pkg object,
            values are the things in the po that we've matched.
            If matchfor is passed, all the strings in that list will be
            highlighted within the output.
            verbose overrides logginglevel, if passed. s%s : s%s.%s : RoNsRepo        : %ss
Matched from:sDescription : sURL         : %ssLicense     : %st/sFilename    : %ssOther       : s

(RtshowdupesfromreposRRRRRRtcolor_search_matchRRDRRR	RR
RtyumtmisctuniqueRRHRRRRR(
RRUtvaluestmatchforRDRRR>tcan_overflowR((s/usr/share/yum-cli/output.pyt
matchcallback,sX


,




cCs|i|||dtS(NRD(RuRD(RRURrRs((s/usr/share/yum-cli/output.pytmatchcallback_verbosegsc	Csd}d}t}x{|D]s}yFt|i}||7}y|io||7}nWnnXWqt}|iitdPqXqW|pt|o,|ii	t
itd|i|n||jo0|ii	t
itd|i||qndS(s4Report the total download size for a set of packagesis2There was an error calculating total download sizesTotal size: %ssTotal download size: %sN(
RHRRRRDRRR
RtlogR	tINFO_1R(RRHttotsizetlocsizeRRR((s/usr/share/yum-cli/output.pytreportDownloadSizejs0

	
c#s	iittg}hhd6hd6hd6}d}gfd}xtdiiftdiiftdiiftd	iiftd
iiftdii	ftdii
ftd
iifgD]T\}}g}x,|D]$}|||||i|i
}qW|i||fqWxetdifgD]K\}}g}x#|D]}	|||||	}qW|i||fqlW|dpdS|dh|d|dhg}d|dddg}
i|ddd|
dd}
|
\}}}}
}ddiiitd|ftd|ftd|ftd|
ftd|ffddiifg}x'|D]\}}|od|}nx|D]\}}}}}}}|||f||f||f||
f||ff}
i|
dd }iii\}}xI|D]A}td!}|||i||i|if;}||}qwW||}qW|o|i|qqWtd"diif}|i|tiiii	}tiiii
}td#||f}|p|o|i|ntiiii} tii}!tii}"td$| |!|"f}| p|!p|"o|i|nd%i|S(&s@returns a string rep of the  transaction in an easy-to-read way.R#R?tricsc|i\}}}}}	|i}
|i}t|i}i|}
|djo
d}n|iidjoi	i
}n*|ioi	i}n
i	i
}|i|||
||
||fxidt|fdt|
fdt|ffD]4\}}||i|d|||cd7<qW|t|jot|}n|S(NtnoarchRR#R?R|ii(tpkgtupRRRRRRRRRR	RRRRRR5(R?Rta_widRUt	obsoletesR#tateR?R|tevrRtpkgsizeRthiR(R(s/usr/share/yum-cli/output.pyt	_add_lines(	


"4t
InstallingtUpdatingtRemovingtReinstallingtDowngradingsInstalling for dependenciessUpdating for dependenciessRemoving for dependenciessSkipped (dependency problems)uiiRs  RFRiu

%s
%s
%s
RtPackagetArchtVersiont
RepositorytSizeu u%s:
u
s     replacing  %s%s%s.%s %s

s
Transaction Summary
%s
s6Install   %5.5s Package(s)
Upgrade   %5.5s Package(s)
sQRemove    %5.5s Package(s)
Reinstall %5.5s Package(s)
Downgrade %5.5s Package(s)
R1(ttsInfot	makelistsRDR
Rtupdatedtremovedtreinstalledt
downgradedtdepinstalledt
depupdatedt
depremovedRURRtskipped_packagesRRRFRRRR	RRRRtjoin(#Rt
pkglist_linesRRRtactiontpkglistR?ttxmbrRURFtn_widtv_widtr_widts_widtoutttotalmsgR#RRRRRRRRRtobspotappendedRtnum_intnum_uptnum_rmtnum_retnum_dg((Rs/usr/share/yum-cli/output.pytlistTransactions"
!	& #
csd}iifd}xtdiiftdiiftdiiftdiiftdiiftdiiftd	i	ftd
ii
ftdiifg	D],\}}g}t|djo|d
|7}xL|D]D}|i
\}}}	}
}d|||	|
|f}|i|qWx)dD]!}
|||
}|oPqlqlW|piidg}nx\|oP|t| }|d7}|it||dd7}|t|}qWqqW|S(NR1cs t||jogSii|dd}|djogSdg|}d}x|D]{}t|||joDt|||}||jogS||8}t|||<n|d7}|t|;}q\Wx>tt|D]*}||c||7<||cd9<qW|S(sb Work out how many columns we can use to display stuff, in
                the post trans output. iiii(RRRFR(tmsgstnumRtcol_lenstcolRR(R(s/usr/share/yum-cli/output.pyt
_fits_in_colss,




tRemovedsDependency Removedt	InstalledsDependency InstalledtUpdatedsDependency UpdatedsSkipped (dependency problems)tReplacedtFailedis
%s:
s%s.%s %s:%s-%siiiiiiis  Rhu
(iiiiiii(RRR
RRRRRRRt	obsoletedtfailedRR~RRRFRR(RRRRRRRR#RRR?R|RRR>tcurrent_msgs((Rs/usr/share/yum-cli/output.pytpostTransactionOutputsF
	
"cCs|iidjptiio |iidd|i_n,|iit	dtit
|i_|idhf}|ii||ii
|itt|}||_dS(sWsets up the progress callbacks and various 
           output bars based on debug levelitfoN((Rt
debuglevelRJRKRLtrepostsetProgressBarRtcallbackRtCacheProgressCallbackRtsetFailureCallbacktsetInterruptCallbacktinterrupt_callbacktDepSolveProgressCallBacktweakreft
dsCallback(Rtfreporttdscb((s/usr/share/yum-cli/output.pytsetupProgressCallbacksAs$cCs|idS(N(R(R((s/usr/share/yum-cli/output.pytsetupProgessCallbacksZscCs"|i|i_|i|i_dS(N(R/Rtconfirm_funct
getKeyForRepotgpg_import_func(R((s/usr/share/yum-cli/output.pytsetupKeyImportCallbacks^scCsd}td}ti}|ipY|iid}|iid}td|||||f}|iiti|n||i|jo
t	n||_t
dtddS(	sHandle CTRL-C's during downloads

        If a CTRL-C occurs a URLGrabError will be raised to push the download
        onto the next mirror.  
        
        If two CTRL-C's occur in quick succession then yum will exit.

        @param cbobj: urlgrabber callback obj
        g@ttwoR/R&sZ
 Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds
to exit.
isuser interruptN(R
RRRR4RRwR	tINFO_2tKeyboardInterruptR(Rtcbobjtdelta_exit_chktdelta_exit_strRRRR((s/usr/share/yum-cli/output.pyRbs


	cCsAt|djodSttidpdStiid}|iitid|i	t
i
|}|djo
d}n|id|i|}|id|i
|}|id}|id|i||}	dttd
|i	|i	|	|||f}
|iiti|
dS(NitTerminalLineit-ig{Gz?s | %5sBs %9sRis %5sB/ss
%s%s%s%s%stTotals     (RRRRRRRwR	RtrestRtaddRRiRR
(Rtremote_pkgstremote_sizetdownload_start_timestampttltdl_timetui_sizetui_timetui_endtui_bsR((s/usr/share/yum-cli/output.pytdownload_callback_total_cbs  

 $c	Cst}d}x|D]|}|i}|djo
d}n|djo
d}n|djo
d}n|djo|i||d7}qqWt|djo9|dig}t|D]}||dq~fS|d
it|fS(NisTrue-InstalltInstallsDep-Installt	Obsoletedt
ObsoletingtUpdatetEraset	Reinstallt	Downgradeis, R1(RRRRRR(tsettstateRRRRR(RthpkgstactionsRthpkgtstt_[1]RA((s/usr/share/yum-cli/output.pyt_history_uiactionss$		







9cCs2|djp
|djoOtd}tdd|}|dj	ot||jo
|}n|Syti|}|iiddd}d||if}|dj	oXt||joEd	|id|if}t||jod
|i}qn|SWntj
ot	|SXdS(NIs<unset>tSystemRt;iis%s <%s>s%s ... <%s>s<%s>(
RR
Rtpwdtgetpwuidtpw_gecosRtpw_nametKeyErrorR(RtuidtlimittloginidRtusertfullname((s/usr/share/yum-cli/output.pyt_pwd_ui_usernames" 
 cCst}g}|d}t}|o,t}|ddjo|idqRnxL|D]D}yt||i|WqYtj
o|i|qYXqYW|o|i|i	i
|n|o"|o|iit
ddS||fS(Niitalls)Bad transaction IDs, or package(s), given(NN(RRHRDRRRt
ValueErrorRRthistorytsearchRtcriticalR
R(Rtextcmdsttidstpatstusertidstprintallttid((s/usr/share/yum-cli/output.pyt_history_list_transactionss*	

cCsI|i|\}}|djoddgfSd}|dGHd	d
GHd}d}d
}|o
d}nxn|ii|d|D]T}|o||joPn|d7}|i|id}tidti|i	}	|i
|i\}
}|io-|i
o#||i||	||
fGdGHq|idjo#||i||	||
fGdGHq|io#||i||	||
fGdGHq|i
o#||i||	||
fGdGHq||i||	||
fGHqW|ii}|dj	oM|iidtd}
|i|
jo td}|ii|qEndS(s2 Shows the user a list of data about the history. isFailed history infos#%-6s | %-22s | %-16s | %-14s | %-7stIDs
Login users
Date and times	Action(s)tAlteredRiOs$%6u | %-22.22s | %-16s | %-14s | %4uiiRis%Y-%m-%d %H:%Ms><s**s <s> t	main_onlys?Warning: RPMDB has been altered since the last yum transaction.N(R
s
Login users
Date and times	Action(s)R(RRRtoldRtloginuidRRRt
beg_timestampRt
trans_datataltered_lt_rpmdbtaltered_gt_rpmdbRtreturn_codetlastR0t
simpleVersionRDtend_rpmdbversionR
Rtwarning(RRRR
tfmttdoneRRRttmRtuiactstlastdbvtrpmdbvt	errstring((s/usr/share/yum-cli/output.pythistoryListCmdsF
		

	##
#
#
cCst|djo|iitddSg}y#t|d|i|dWn*tj
o|iitddSX|ii	|}|p|iitddS|S(NisNo transaction ID givenisBad transaction ID givensNot found given transaction ID(
RRRR
RRRRRR(RRRR((s/usr/share/yum-cli/output.pyt_history_get_transactionsscCsV|i|}|djodSt|djo|iitdn|dS(Nis#Found more than one transaction ID!i(R#RRRRR
(RRR((s/usr/share/yum-cli/output.pyt_history_get_transactions
c
Cst}g}xP|dD]D}yt||i|Wqtj
o|i|qXqW|o|i|ii|n|oGt|djo4|ii	}|dj	o|i|iqn|p$|ii
tdddgfS|ii	}|dj	o|i}|i}nt}x|ii|D]}|dj	oG|i|jo7|iidtd}	||	jo
t|_qnd}|o
ddGHnt}|i||qKWdS(	Niis$No transaction ID, or package, givensFailed history infoRiRiO(RRRRRRRRRRRRRRR
RRHRR0RRDRt_historyInfoCmd(
RRRRRRRtlasttidRR ((s/usr/share/yum-cli/output.pythistoryInfoCmd!sD	


	


c
Cs|i|i}tdG|iGHti|i}tdG|GH|idj	o:|i	otdG|iGdGHqtdG|iGHn|i
dj	oti|i
}|i}|i|do|i}d}xdt
t|D]P}	|	t|joPn||	||	joPn|t||	d7}qWd|||}ntd|i
|i}
td	G|G|
GHn|idj	o:|iotd
G|iGdGHqtd
G|iGHntdG|GH|idjo!tdGdGtd
GdGHn@|io tdGtdG|iGHntdGtdGHtdGHx|iD]}d}td}
|ii|ig}|i|ptd}
nm|id|DjonO|d|jotd}
n.|d|jotd}
n
td}
d||
|fGHqoWtdGH|i|||io@tdGHd}x,|iD]}|d7}d|G|GHqWn|io@tdGHd}x,|iD]}|d7}d|G|GHqWndS(NsTransaction ID :sBegin time     :sBegin rpmdb    :s**iiRs(%s seconds)sEnd time       :sEnd rpmdb      :sUser           :sReturn-Code    :tAbortedsFailure:tSuccesssTransaction performed with:iRtErasedcssx|]}|iVqWdS(N(R~(t.0R;((s/usr/share/yum-cli/output.pys	<genexpr>xs	iRt
DowngradedtWeirds
%s%-12s %ssPackages Altered:sScriptlet output:s%4dsErrors:s    (RRR
RRRRtbeg_rpmdbversionRRt
end_timestampRRRRRRRt
trans_withR0R1RtsortR~thistoryInfoCmdPkgsAlteredtoutputterrors(RRRRtbegtmtendtmtendtmstbegtmstsofartiRRRRR7Rtline((s/usr/share/yum-cli/output.pyR%Js

!
 







c
Csx|iD]}d}|ip
d}nd}|o=tii|g|\}}}|p|o
d}qtn|i|\}	}
|idjot|}n)d|i|i|i	|i
|if}toq
|i
djoDt|id	}d|||}d
||	|i
|
|fGHq
|i
djoDt|id	}d|||}d
||	|i
|
|fGHq
|i
djod
||	d
|
|fGHq
d
||	|i
|
|fGHq
WdS(NRis ** R&R/Rs%s-%s:%s-%s.%sRis%s%s%-12s%s %sR,sTrue-InstallRs    (RRRoRHt
parsePackagesRRRRRRRRHRR(
RRRRRRRAtmtuRRtcntln((s/usr/share/yum-cli/output.pyR2s8


!cCs|i|\}}|djoddgfSd}|d"GHdd	GHd
}hhd6hd6hd
6hd6hd6hd6hd6}x|ii|D]	}|i|id}d}ti}	ton|i|	d$jo
d}n|i|	d'jo
d}ny|i|	d*jo
d
}n[|i|	d.jo
d}n=|i|	d2jo
d}n|i|	d5jo
d}n||i	|gi
|qWhtdd6tdd6tdd
6tdd6tdd6tdd6tdd6}
d }xd6D]}||pqnxt||D]}|o|d!joPn|d7}g}x&|||D]}|i
|iq{W|i|\}
}|
|}|||||
fGHq<WqWdS(7NisFailed history infos%-26s | %-19s | %-16s | %-8ss
Login usertTimes	Action(s)RRiOs!%-26.26s | %-19.19s | %-16s | %8utdaytweekt	fortnighttquarterthalftyearRiii<iii
imsLast days	Last weeksLast 2 weekss
Last 3 monthss
Last 6 monthss	Last yearsOver a year agoii(s
Login userRAs	Action(s)sAlterediiQiiQi:	iiQiuiiQi:	iwiiQi:	iiiQi3(RBRCRDRERFRGsall(RRRRRRRRHRR5RR
RRRR(RRRR
RRRRtperiodRt_period2userRRRRtuperiod((s/usr/share/yum-cli/output.pythistorySummaryCmdsn
		





!






N(6RRRRbRRRRRRtstaticmethodRRRRRRHRRRRRRRR R-R/R<R@RERQRVRRiRuRvR{RRRRRRRRRRR"R#R$R'R%R2RK(((s/usr/share/yum-cli/output.pyRzsn					
3	
 			'					%:		y	@				#				+			)F#RcBseZdZddZdZdZdZdZdZ	dZ
dZd	Zd
Z
dZdZd
ZRS(sFprovides text output callback functions for Dependency Solver callbackcCs(tid|_d|_||_dS(s8requires yum-cli log and errorlog functions as argumentssyum.verbose.cliiN(R}R~Rtloopstayum(RRN((s/usr/share/yum-cli/output.pyRbs	c
	Cshtdd6tdd6tdd6tdd6}|\}}}}}||}	|iititd	||||||	dS(
NRR:RR>RtoterasedRs(---> Package %s.%s %s:%s-%s set to be %s(R
RRwR	R(
RR~R[tmodedictR#RRR?R|tmodeterm((s/usr/share/yum-cli/output.pytpkgAddeds


cCs|id7_dS(Ni(RM(R((s/usr/share/yum-cli/output.pytstartscCs |iititddS(Ns--> Running transaction check(RRwR	RR
(R((s/usr/share/yum-cli/output.pyttscheckscCsE|id7_|iititd|iid|idS(Nis6--> Restarting Dependency Resolution with new changes.s---> Loop Number: %d(RMRRwR	RR
tdebug(R((s/usr/share/yum-cli/output.pytrestartLoops
cCs |iititddS(Ns"--> Finished Dependency Resolution(RRwR	RR
(R((s/usr/share/yum-cli/output.pyRh
scCs&|iititd||dS(Ns---> Processing Dependency: %s for package: %s(RRwR	RR
(RRt
formatted_req((s/usr/share/yum-cli/output.pytprocReqscCs&|iititd||dS(Ns---> Processing Dependency: %s for package: %s(RRwR	RR
(RRURX((s/usr/share/yum-cli/output.pyt	procReqPoscCs#|iititd|dS(Ns--> Unresolved Dependency: %s(RRwR	RR
(RR((s/usr/share/yum-cli/output.pyt
unresolvedscCs&|iititd||dS(Ns(--> Processing Conflict: %s conflicts %s(RRwR	RR
(RRtconfname((s/usr/share/yum-cli/output.pytprocConflicts	cCs&|iititd||dS(Ns(--> Processing Conflict: %s conflicts %s(RRwR	RR
(RRUR\((s/usr/share/yum-cli/output.pytprocConflictPo#s	cCs |iititddS(NsC--> Populating transaction set with selected packages. Please wait.(RRwR	RR
(R((s/usr/share/yum-cli/output.pyttransactionPopulation(scCs#|iititd|dS(Ns<---> Downloading header for %s to pack into transaction set.(RRwR	RR
(RR((s/usr/share/yum-cli/output.pytdownloadHeader,sN(RRRRRbRSRTRURWRhRYRZR[R]R^R_R`(((s/usr/share/yum-cli/output.pyRs											RcBs>eZdZdZdZdZdZddZRS(sP
    The class handles text output callbacks during metadata cache updates.
    cCs:tid|_tid|_tid|_dS(Nsyum.clisyum.verbose.clisyum.filelogging.cli(R}R~RRtfile_logger(R((s/usr/share/yum-cli/output.pyRb7scCs|ii||dS(N(RRw(Rtleveltmessage((s/usr/share/yum-cli/output.pyRw<scCs|ii||dS(N(RRw(RRbRc((s/usr/share/yum-cli/output.pyterrorlog?scCs|ii||dS(N(RaRw(RRbRc((s/usr/share/yum-cli/output.pytfilelogBscCst|||dS(N(R(RRRR((s/usr/share/yum-cli/output.pyREsN(	RRRRbRwRdReRR(((s/usr/share/yum-cli/output.pyR1s				c	
sy|d
jo|S|d
jo
d}ngfd}xA|iid|D]*}|i|joqTn||iqTWp|Sid}pt|St}t}xED]=}|i|p
t	}n|i
|i
jo
t	}qqW|oO|id	jod
|i|i
|ifSd|i|i|i
|ifSn|od|i|i
fS|S(s Get more information on a simple pkgname, if we can. We need to search
        packages that we are dealing with atm. and installed packages (if the
        transaction isn't complete). RRR:R|R>csHo0di|ijodi|odSi|dS(Ni(RRR(RU(tmatches(s/usr/share/yum-cli/output.pyt	_cond_addUs2RiRs%s-%s-%ss%s:%s-%s-%ss%s.%sN(RRR:R|R>(RRt
matchNaevrtts_stateRURRRDRRHRRRRR(	RNtpkgnamet	ts_statesRgRtfmatchtshow_vert	show_archRg((Rfs/usr/share/yum-cli/output.pyt_pkgname_uiHs@



tYumCliRPMCallBackcBsVeZdZedZddZd	dZdZdZ	e
ddZRS(
s9
    Yum specific callback class for RPM operations.
    cCstS((R(RA((s/usr/share/yum-cli/output.pyR scCsbti|td|_d|_tidit	i
|_d|_d|_
||_dS(NR1syum.verbose.clit#i(RRbRtlastmsgRtlastpackageR}R~RR	RR3tmarktmarksRN(RRN((s/usr/share/yum-cli/output.pyRbs
			RcCst|i||S(s6 Get more information on a simple pkgname, if we can. (RoRN(RRjRk((s/usr/share/yum-cli/output.pyt
pkgname_uiscCsA|i|}t|tijot|}n|i|}||_|djo
d}	n|d|}	|ioti	i
p
||jo|i|	||d|\}
}}|
t|||t|||f}
|
|i
jo0ti	it|
ti	i|
|_
n||jo	dGHq=ndS(NildRjR(RR_ttypestStringTypesRRvRsR3RJRKRLt_makefmtRRrtwriteRtflush(RtpackageRt
te_currenttte_totalt
ts_currenttts_totaltprocessRjtpercentRtwid1twid2R((s/usr/share/yum-cli/output.pytevents&
	

'


cCs2|o'tiit|tiindS(N(RJRKRzRR{(RR|R((s/usr/share/yum-cli/output.pyt	scriptoutscCstt|}d||f}d|d|d}|||f}	|djo
d}
n
t|}
d|d}|d7}|d7}|d7}|d7}|i}||jo
|}n||8}|
|djo|d}
n|i||
}
d|
|
f}d	|d
}|
|
d}|o!|djod|	}|}n|o>||it|
|d
f}d|d|	}|
}nN|djod|	}|}n-||i|
f}d|d|	}|
}|d|fS(Ns%s.%st%ss/%Riiiis[%-ss]ids
  %s: %s   gY@s

  %s: %s Rs  %s: %s   s	  %s: %s i(RRRR
RRtR(RRRRRRjtlRtfmt_doneRtpnltoverheadRRutfmt_bartfull_pnlRRtbar((s/usr/share/yum-cli/output.pyRysH





	




"



N(RN(RRRRyRRRbRvRRRDRy(((s/usr/share/yum-cli/output.pyRpys
		c
Cs(d}tiipdS|djo
d}n(|djot||}nd}t}|djo||jo
d}nd||f}|t|d8}|djo
d}n|djoL|d8}|djo
d}n|t||}d|||f}n||jo d	t||||f}n|d
8}|djo
d}n|d}	|	t	|jot	|}	n||	8}|t||}dt||	|	|||f}||jotii
|n||jotii
dntiidS(
ssimple progress bar 50 # marksRqNiRs %d/%diis	
[%-*s]%ss
%s%sis

%s: [%-*s]%ss
(RJRKRLRRRRRRR
RzR{(
RRRRtRRRhthashbarR3tnwid((s/usr/share/yum-cli/output.pyRsL


	







 







t__main__iRR1s Doing progress, small nameiieidtabcdg?s Doing progress, big names_%s_s
123456789 is Doing progress, no namesrpm-progresstfoos_12345678_.endRs! Doing CB, small proc / small pkgtspkgs Doing CB, big proc / big pkgtlpkgs-=is.ends
i18n-progresssi18n-rpm-progresss! Doing progress, i18n: small names正在安装s Doing progress, i18n: big names' Doing CB, i18n: small proc / small pkgs# Doing CB, i18n: big proc / big pkg(;RRJRR}RwRRRRcRRturlgrabber.progressRRturlgrabber.grabberRtyum.miscRtyum.i18nRRRRotrpmUtils.miscutilsRt
yum.constantsR	R
tyum.rpmtransRtyum.packageSackRtyum.packagesR
RRRRRRzRRRRoRpRRRtargvRR:tsleeptcbRDR3RRRptsetup_locale(((s/usr/share/yum-cli/output.pyt<module>s
	
G1j5
*
0		

(&
0	&
		(

Youez - 2016 - github.com/yon3zu
LinuXploit