&=d ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z  ddl Z n #e $rdZ YnwxYwddlmZmZddlmZmZmZmZmZddlmZddlZejZdZ ejd\Z Z!e"e pde"e!pd cZ#Z$n#e%$rd \Z#Z$YnwxYwd Z&e&Z'e&Z(d Z)d,dZ*e -e j+d e j,dn #e%$rYnwxYwdZ-Gdde.Z/d-dZ0d.dZ1d/dZ2dZ3e3Z4 d0dZ5dZ6d1dZ7dZ8d2dZ9d-dZ: d3d Z; d4d"Z< d5d#Z=d$Z>d%Z?d&Z@d/d'ZAd6d)ZBd*ZCd+ZDdS)7N)suppress)debbugs hiermatch)NoReport NoPackageNoBugs QuertBTSError InvalidRegex)launch_browserzus-asciiz stty sizeO)r r ctsdS|r||z}tj|tjdSN)ISATTYsysstderrwriteflush)messageargss 6/usr/lib/python3/dist-packages/reportbug/ui/text_ui.pyewriter8sP  !D.JWJc tj}n$#t$rtjdYnwxYwtj|S)N/)osgetcwdOSErrorchdirsystem)cmdline_s rr r GsP IKK    9W  s 77c|s tdz }|rd|z}nd}d|}|s|dzStj||||}|dr|S|dzS)z.Wrapper for textwrap.fill to the existing API. r# )widthinitial_indentsubsequent_indent)columnsjoinsplittextwrapfillendswith)text starttextindentlinelensioutputs rindent_wrap_textr7Os A+  6\  88DJJLL ! !D  4 ]4wy-/111F t D=rz tab: completer&c 0 t|}||vr(d|cxkrt|krnn ||dz }tj|t j|||||||dS#t$rtd|YdSwxYw)Nr%Invalid report number: %s ) intlen reportbugutilslaunch_mbox_readerrget_report_url ValueErrorr) mbox_reader_cmdbtsbugsnumbermirrorsarchivedmbox http_proxytimeouts r_launch_mbox_readerrJns V   !v":":":":T":":":":":&1*%F**?+2+A#vwX`bf+g+g+5w @ @ @ @ @ ,      sA3A77BBceZdZddZdZdS) our_completerNcjd|_|r)ttt||_dSdSr) completionstuplemapstr)selfrNs r__init__zour_completer.__init__}s<  <$Sk%:%:;;D    < g|]}||S startswith).0xr1s r z*our_completer.complete..s*FFF!1<<3E3EFAFFFr)rNr;)rRr1imatchings ` rcompletezour_completer.completesO 4FFFFt/FFF s8}}  A; 4rr)__name__ __module__ __qualname__rSr^rVrrrLrL|s7<<<< rrLctj}|stj|tjt r.|r|st|j}|rt j | |rt|}nt}n$#t$rtdtwxYwt rt j d|S)Nz User interrupt (^D). )rstdoutisattyrrrreadlinerLr^ set_completerinputEOFErrorr SystemExitstrip)promptrN completeristtyrets r our_raw_inputros J    E !    J.  zlong_message..s2VVChmCw777VVVVVVr)r+r, splitlinesrzr)r1rmtextr4s @r long_messagersw t kG IIVVVV5CSCSCUCUVVV V VE LLNNT !E 5MMMMMrc:|rPt|dtzdz kr2|s0|r|d|d}t|||p|}nZt|||}nH|rtt ||rtd|z||p|}ntd||}|S)Nrsz]: z[%s]> z> )r;r+rorr7)rkoptionstitleempty_ok force_promptrrlresponses r get_stringrs ?3v;;Wq00,0  A$*FFGGG4F$VWi@@KGHH$VWi@@HH  - #F++ , , ,  ?$X%7)LLWPWHH$T7I>>H Orctdtt|dzg} tdd}|sn||.ms%%%qt%%%rrr%z %*d %-*.*s )r3r2z(one at a time) z[%s] rz- selected: %s rvzInvalid entry. )r|rr7r+r{dictcopyritemsr}minmaxrPr;r:mathceillog10ror@r~keysrr,)rrrkrrany_okrrrrselectedolistkeyrallowed maxlen_namedigitsr\namerr1apromptrnums rrrFs]H f uv~ C 1 1 1D 8999'4  ,,..  E % %'>>LL#ws|!4555 7==??++G LLNNN! % % V$$$$GG7==??++G LLNNN|$$$6(%%W%%%GGc$s3001122GqLAAK 4:c'llQ&67788 9 9F A dkF.BQ.F+9VQ U`bf)rDr rErHrIscreen queryonlyrrFrAsysinfoinfobuginfomessagescurrent_message skip_pagerr1fdrrZs r show_reportrsof%G C 76?$$$!&'67,-*xYYY  +V444 GX O7>=>>>  OJ0!  Q+/7/H/JJDD Q4;???HQKKPD )/** ) )%&6joV^___)ceNN4((())))))))))))))) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )  a 3x== 0 0GMMOO+G  $GmG 8'!=!R!@!D!:!I!G!:<<*.eAs8}}q7H.I.I)J)J L L L 88N #XXN #XX 7133 4 4 4JJ #XX O . ./6/EffV]_gim/n/n/97 D D DJJ #XX  #XX q OO #XX q Oa0!b FsGA AA,"ED0$ E0D4 4E7D4 8EE E c tj|d}|s(tdtj|ddSd}| rd}t |t r)t dtj|d||nEt dtj|ddd|D|g} tj||||| | || \}}}nM#t$r@}d tj|dd t|d }t|d}~wwxYw |s|ttg}| r.g}|D]'}|d D]}||j(|S| rD|D]-}|d D]"}d|j|jfz}t#|#.t%jd|D]}|d}i|d D]$}d}|jdkrd}|j||j<%t+|}||fd|Df|||}|s|tt|d krtd|ntd|t |t0rd|Dd}d} t3|||||||||||| | S#t$rt dtwxYw)Nbtsrootz7%s bug tracking system has no web URL; bypassing query rr#z (source)z'Querying %s BTS for reports on %s%s... r&c,g|]}t|SrV)rQrs rr[z$handle_bts_query..s777!s1vv777r)rEversionrrHrFzUnable to connect to z BTS (error: "z"); r%z#%d %srrz [RESOLVED])reversecNg|]!}dd||"S)z {:>8} {}ru)format)rYkbugs_news rr[z$handle_bts_query..HsJ.E.E.E23/:.@.@Q(ST+.V.V.E.E.Erz%d bug report found: z%d bug reports found: cLg|]!}|d|dd"S)zsrc:rwNrW)rYrs rr[z$handle_bts_query..[s1FFFf1E1EFquFFFrTz No record of this package found.)rrrrr{rQrr, get_reportsrreprr rrrbug_numrprintrrpendingsortedrextendr| browse_bugs)rrBrIrErHrrrrFrrrGbuglistrA latest_firstrootsrcstrrCcount hierarchyrerrmsg hierarchy_new mboxbuglistrbugr entry_newr bugs_numbersr s @rhandle_bts_queryr!s' ?3  # #I . .D Is#F+ - - - F '3B?_S)&17F D D D D ?_S)&1XX77w77788& B B B D$$+$7 Wc7Gj8%E%E%E!yy $$$$BI/RUBVW]B^B^B^`def`g`g`g`ghF###$D     K" 4 4 844C&&s{33334   "   8C#s{CK&@@C#JJJJ HQKKK & &EaIHQx E E;&(()D36++tt(D%%!(--//<HHHL  ).E.E.E.E7C.E.E.E"F G G G KK % % % %"  7  aZZ -u 5 5 5 5 . 6 6 6 gt $ $ FFgFFFqIGF9eT3 "J"FO== = 7888s, C>> E;EE AK,EK,,!L c  tj} n?#tj$r-}t|t jdYd}~nd}~wwxYwdx}}dx}}|d}g}t tt |}dt|zdz}|r|dz }|dd\}}|dr|dd}|dt |r|dtdz }|tdz d}t |}d}|dkrd }|r| d |||fzn| |d z|D]9}|dz}|dz}| |||dt|z d z fz:||dks.|tt ||dzdz dz krd }||krd }d}|rd}d|||fz}|dz} |r|dz} |ttd|dzz}!dddddddddd }"|r|"ddddz|"d< |D]!}#tj|#"t!| ||"|!}$|$dkrg}nb|$d kr(| rt#d!| znt#d"| zp|$d#krw|$d$krt$|$dkrdS|$d%kr|rdSt |dkrd&}%nt'd'|!}%|%r$|%dd(kr|%dd}%|%r |%dd(k|%rx t)|%}%|%|vr(d|%cxkrt |krnn ||%dz }%t+j|%|dS#t.$rt1d)|%YnJwxYwt$|$d*kr5t3|||||||| | | }&t5|&tr|&d+vr|&S|$d,kr(t'd-|!}%t7| |||%|d.d/|| n|$d0ks|$d1kr't |dkrd&}%nt'd2|!}%n|$}%|%r$|%dd(kr|%dd}%|%r |%dd(k|%ry t)|%}%|%|vr(d|%cxkrt |krnn ||%dz }%t9|%||||||| | 3 }'|'r|'Sn #t.$rt1d)|%YnwxYw|dz}d}t |||dkrdS|dz}||}|r| d |dz}|dSdS)4Nr%r %d) %s r:rrsr#z %s: %d remain%s r'r (s to skip rest) yNbmrqsfeNbmrqfe (%d-%d/%d) !Is the bug you found listed aboveWhat would you like to do next;Problem already reported; optionally add extra information..Problem not listed above; possibly check more.-Open the complete bugs list in a web browser.`Get more information about a bug (you can also enter a number without selecting "m" first).Redisplay the last bugs shown.r7Skip remaining problems; file a new report immediately.'Open the report using an e-mail client.z Filter bug list using a pattern.) rrrmrrr&rfr (skip to Next page).rrzhttps://bugs.debian.org/src:%shttps://bugs.debian.org/%srrr1[Enter the number of the bug report you want to give more info on, or press ENTER to exit: #rur9r5 FilterEndTopr92RB; = =Q$,SM#2#$69P$PHSMU/ (// ((....&tWh5<>>>ACxx#%c!S*+Kg+UVVVV*+G'+QRRR c c&cc$#"Ft99>>%(FF%2!<=D&F&FF%0c)9)9%+ABBZF%0c)9)9! +/),V#)#5#5!v:R:R:R:RT:R:R:R:R:R-1&1*-=F'.'9&''J'J1'M M#-/// &'D'-!/!/!/!/!//#+Nc!,YYQ[]dflns-4o"G"G%fc22*vAU7U7U$#)Mc!./mov!w!w+OS$,3T4,3555588qCxx"4yyA~~),)68XY`*b*b&'F$0c)9)9%+ABBZF%0c)9)9"//),V#)#5#5!v:R:R:R:RT:R:R:R:R:R-1&1*-=F&1&#w2.s",,,Qs1Q4yy,,,r)rrz\ *\#(\d+)[ :]r%)sumrecompilematchrr:group)rlenlistrrCexprrr\s rproc_hierarchyr`s-,),,,GG t D *& ' 'Cb118 1 1CIIcNNE 1 C A//000 1 $;rc z tj} n?#tj$r-} t| t jdYd} ~ nd} ~ wwxYwt d} | sdS tj|| } n #t$rt dYdSwxYwt| \}}|st ddSdx}}dx}}| d}g}ttt|}dt|zd z}|r|dz}|dd \}}| d r|dd }| d t|}t|r|dtd z }|td z d}t|}d x}}|dkrd}|dkrd}|r|d|||||fzn|d|||fz|D]9}|dz}|dz}||||dt |z dz fz:|| d ks.|tt| |dzdz dz krd} ||krd} d}!|rd}!d|||fz}"|"dz}#|r|"dz}#|t#t%d|dzz}$ddddddddd d!d"d# }%| r|%d$dd d%z|%d$< |D]!}&tj|&"t+|#|!|%|$&}'|'d$krg}nG|'d'krt-d(|zn+|'d)krc|'d*krt.|'d krdS|'d+kr|rdSt|dkrd,}(nt d-|$}(|(r$|(dd.kr|(dd}(|(r |(dd.k|(rx t1|(}(|(|vr(d|(cxkrt|krnn ||(dz }(t3j|(|dS#t6$rt9d/|(YnCwxYwt.|'d0kr5t;| ||||||||| })t=|)tr|)d1vr|)S|'d2krdS|'d3krd4S|'d5kr(t d6|$}(t?| |||(|d7d8|| n|'d9ks|'d:krt d;|$}(n|'}(|(r$|(dd.kr|(dd}(|(r |(dd.k|(rx t1|(}(|(|vr(d|(cxkrt|krnn ||(dz }(tA|(|||||||<}*|*r|*Sn #t6$rt9d/|(YnwxYw|dz}d}t||| d krn,|dz }| |}|r|d=|dz }|dS)>z(Search for the bug list using a pattern.r%NzXEnter the search pattern (a Perl-compatible regular expression) or press ENTER to exit: r;z4Invalid regular expression, press ENTER to continue.z(No match found, press ENTER to continue.rr#r$rr%rrr&r#z %s: %d report%s (%d remain%s) z %s: %d report%s rr' yNbmrqsfute Nmbrqfuter*r+r,r-r.r/r0r1rr2z)Filter (search) bug list using a pattern.zUp one level of filter.r3z)Top of the bug list (remove all filters).) rrrr4rrr&r5urtrr6rrr7rrrr8r9rur9r5r:rdrer<rr=rTr4r\r>)rrrr')!r?r@rArrrrormatched_hierarchyr r`r;rQr0rBrr+r|rrrrr rr:rrr@rrCr{rJr)+ hierarchyfullrBrrErHrIrrrrAr"rpatternrrrCrDrErFrGrHrIrrJrKrLtotalrMrNtpluralrOrPrQrrRrSrrTrUrZrDrVrs+ rrCrC&sMB  ' ) ) < c   788G {/ wGG LMMM{{!++KE4 @AAA{HxFZ|HH SYY Fc&kk!I-G _!#AaC=s## #crclGs## #G 'llM ITAXI&EdQhii(G\\F # #Ggzz{{ ; B!(%&' J!KLLLL 4!(% 9!:;;;  U U!#a<8V92RD2BD F FQ$,SM#2#$69P$PHSMTN (// ((....&tWh5<>>>ACxx#%c&'Cg'MNNNNc c&cc$#"Ft99>>%(FF%2!<=D&F&FF%0c)9)9%+ABBZF%0c)9)9! +/),V#)#5#5!v:R:R:R:RT:R:R:R:R:R-1&1*-=F'.'9&''J'J1'M M#-/// &'D'-!/!/!/!/!//#+Nc!,YYQ[]dfl-2G_"N"N%fc22*vAU7U7U$#)Mc*{c$uc!.0OPW"Y"Y+OS$,3T4WVVVV88qCxx%2!A '&)&)FF &'F$0c)9)9%+ABBZF%0c)9)9" N N),V#)#5#5!v:R:R:R:RT:R:R:R:R:R-1&1*-=F&1&#w2 ? ?F M;VVLLL 7>>( # #,h777   f}}y h1 2 2 2aVVXX W6777  g- ..s$ #BBBF((F,/F,cdS)NTrVrVrr initializer4s 4rc>tjSr)rrrdrVrr can_inputr8s 9    r)r#rN)NNN)NF)TF)NNFFr#Nr)NFr#)NNFNNFF)NFr#rN) Nr#Fr#NrFNFNNF)rr)ErrrrZrrxrrr.r? contextlibrre ImportErrorr<rrreportbug.exceptionsrrrr r reportbug.urlutilsr reportbug.utilsrrdrr getoutputr-rcr:rBr+rr log_messagedisplay_failurer r7parse_and_bindset_completer_delimsrJobjectrLrorrr final_messagerrrrrrrrr!rr`rCrqrrrrVrrrsO,   OOOOHHH)(((((((.-----       :  , , 2 2 4 4DAqCFFLb##a&&,BMD''MD''' , HO,,, %%c****         F"2A@A@A@A@H        OT%)&   ####    DDDD //// AF;@h h h h ZJL/3L L L L ^FHFJEI8=ccccLh h h V(EEEP     6/6/6/6/rs15??>AB?? C  C 0DD D