B 1'j٥@sddlZddlZejdedddZGdddZGdddZGd d d ZGd d d eZGd ddeZ dddZ e dkre dS)Nz"the formatter module is deprecated) stacklevelc@seZdZd'ddZddZddZdd Zd(d d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd d!Zd)d#d$Zd*d%d&ZdS)+ NullFormatterNcCs|dkrt}||_dS)N) NullWriterwriter)selfrr,/opt/alt/python37/lib/python3.7/formatter.py__init__)szNullFormatter.__init__cCsdS)Nr)r blanklinerrr end_paragraph-zNullFormatter.end_paragraphcCsdS)Nr)rrrr add_line_break.r zNullFormatter.add_line_breakcOsdS)Nr)rargskwrrr add_hor_rule/r zNullFormatter.add_hor_rulecCsdS)Nr)rformatcounterr rrr add_label_data0r zNullFormatter.add_label_datacCsdS)Nr)rdatarrr add_flowing_data1r zNullFormatter.add_flowing_datacCsdS)Nr)rrrrr add_literal_data2r zNullFormatter.add_literal_datacCsdS)Nr)rrrr flush_softspace3r zNullFormatter.flush_softspacecCsdS)Nr)ralignrrr push_alignment4r zNullFormatter.push_alignmentcCsdS)Nr)rrrr pop_alignment5r zNullFormatter.pop_alignmentcCsdS)Nr)rxrrr push_font6r zNullFormatter.push_fontcCsdS)Nr)rrrr pop_font7r zNullFormatter.pop_fontcCsdS)Nr)rmarginrrr push_margin8r zNullFormatter.push_margincCsdS)Nr)rrrr pop_margin9r zNullFormatter.pop_margincCsdS)Nr)rspacingrrr set_spacing:r zNullFormatter.set_spacingcGsdS)Nr)rstylesrrr push_style;r zNullFormatter.push_stylecCsdS)Nr)rnrrr pop_style<r zNullFormatter.pop_stylecCsdS)Nr)rflagrrr assert_line_data=r zNullFormatter.assert_line_data)N)N)r&)r&)__name__ __module__ __qualname__r r rrrrrrrrrrr r!r#r%r(r*rrrr rs$   rc@seZdZddZddZddZddZd-d d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd.d)d*Zd/d+d,Zd S)0AbstractFormattercCsR||_d|_g|_g|_g|_d|_g|_d|_d|_d|_ d|_ d|_ d|_ dS)Nr&r) rr align_stack font_stack margin_stackr" style_stacknospace softspacepara_endparskip hard_break have_label)rrrrr r NszAbstractFormatter.__init__cCs`|js|jd|_|j|krD|jsD|j||j||_d|_d|_|_|_d|_dS)Nrr&) r7rsend_line_breakr8r6send_paragraphr3r5r4)rr rrr r ]s zAbstractFormatter.end_paragraphcCs8|js"|js"|jd|_|_d|_|_d|_dS)Nrr&)r7r5rr9r8r6r3r4)rrrr rhs     z AbstractFormatter.add_line_breakcOsF|js|j|jj||d|_|_d|_|_|_|_dS)Nr&r) r7rr9 send_hor_ruler3r8r5r4r6)rrrrrr ros   zAbstractFormatter.add_hor_ruleNcCs|js |js|j|js0|j|r*dp,dt|trP|j| ||n |j|d|_ |_|_|_d|_ |_ dS)Nr&r) r8r7rr9r5r: isinstancestrsend_label_dataformat_counterr3r4r6)rrrr rrr rvs    z AbstractFormatter.add_label_datacCsxd}xn|D]f}|dkr$|d|}q |dkrF|dkrp||||}q |dkrh|dkrp||||}q ||}q W|S)N1z%dZaArZiI) format_letter format_roman)rrrlabelcrrr r?s  z AbstractFormatter.format_countercCs@d}x6|dkr:t|dd\}}tt||}||}qW|S)Nr@rr&)divmodchrord)rcaserrDrsrrr rBs   zAbstractFormatter.format_letterc Csddddg}dddg}d\}}x|d krt|d \}}|d krX||||d |}nT|d krv|||||}n6|dkr||}|d}nd}||||}||}|d }q W|dkr|S|S)NirrEmvld)r@rr r&r@I)rGupper) rrJrZonesZfivesrDindexrrKrrr rCs&     zAbstractFormatter.format_romancCs|sdS|dd}|dd}d|}|jrD|sDdS|sN|jrv|sh|jsdd|_d|_dS|jsvd|}d|_|_|_|_|_||_|j |dS)Nr& r) isspacejoinsplitr3r4r6r7r5r8rsend_flowing_data)rrZprespaceZ postspacerrr rs$  z"AbstractFormatter.add_flowing_datacCsZ|sdS|jr|jd|dddk|_d|_|_|_|_|_|j|dS)NrYrX r) r4rr]r7r3r5r6r8send_literal_data)rrrrr rs z"AbstractFormatter.add_literal_datacCs:|jr6d|_|_|_|_|_d|_|jddS)Nrr&rY)r4r7r5r6r8r3rr])rrrr rsz!AbstractFormatter.flush_softspacecCs@|r.||jkr.|j|||_|j|n|j|jdS)N)rr new_alignmentr/append)rrrrr rs  z AbstractFormatter.push_alignmentcCsH|jr|jd=|jr2|jd|_}|j|nd|_|jddS)NrX)r/rrr`)rrrrr rszAbstractFormatter.pop_alignmentc Cs|\}}}}|jr6d|_|_|_d|_|jd|jr~|jd\}}}} |tkrZ|}|tkrf|}|tkrr|}|tkr~| }||||f}|j||j |dS)Nrr&rYrX) r4r7r5r3rr]r0AS_ISranew_font) rfontsizerLbttZcsizeZcicbZcttrrr rs$    zAbstractFormatter.push_fontcCs4|jr|jd=|jr |jd}nd}|j|dS)NrX)r0rrc)rrdrrr rs  zAbstractFormatter.pop_fontcCsB|j|dd|jD}|s,|r,|d}|j|t|dS)NcSsg|] }|r|qSrr).0rMrrr sz1AbstractFormatter.push_margin..rX)r1rar new_marginlen)rrfstackrrr r s  zAbstractFormatter.push_margincCsF|jr|jd=dd|jD}|r,|d}nd}|j|t|dS)NrXcSsg|] }|r|qSrr)rirMrrr rj sz0AbstractFormatter.pop_margin..)r1rrkrl)rrmrrrr r! s zAbstractFormatter.pop_margincCs||_|j|dS)N)r"r new_spacing)rr"rrr r#szAbstractFormatter.set_spacingcGsZ|jr*d|_|_|_d|_|jdx|D]}|j|q0W|jt |jdS)Nrr&rY) r4r7r5r3rr]r2ra new_stylestuple)rr$Zstylerrr r%s  zAbstractFormatter.push_styler&cCs$|j| d=|jt|jdS)N)r2rrorp)rr'rrr r(!szAbstractFormatter.pop_stylecCs$| |_|_d|_|_|_dS)Nr)r3r7r5r6r8)rr)rrr r*%sz"AbstractFormatter.assert_line_data)N)r&)r&)r+r,r-r r rrrr?rBrCrrrrrrrr r!r#r%r(r*rrrr r.@s*        r.c@steZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZdS)rcCsdS)Nr)rrrr r 2r zNullWriter.__init__cCsdS)Nr)rrrr flush3r zNullWriter.flushcCsdS)Nr)rrrrr r`4r zNullWriter.new_alignmentcCsdS)Nr)rrdrrr rc5r zNullWriter.new_fontcCsdS)Nr)rrlevelrrr rk6r zNullWriter.new_margincCsdS)Nr)rr"rrr rn7r zNullWriter.new_spacingcCsdS)Nr)rr$rrr ro8r zNullWriter.new_stylescCsdS)Nr)rr rrr r:9r zNullWriter.send_paragraphcCsdS)Nr)rrrr r9:r zNullWriter.send_line_breakcOsdS)Nr)rrrrrr r;;r zNullWriter.send_hor_rulecCsdS)Nr)rrrrr r><r zNullWriter.send_label_datacCsdS)Nr)rrrrr r]=r zNullWriter.send_flowing_datacCsdS)Nr)rrrrr r_>r zNullWriter.send_literal_dataN)r+r,r-r rqr`rcrkrnror:r9r;r>r]r_rrrr r*src@sdeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ dS)AbstractWritercCstd|fdS)Nznew_alignment(%r))print)rrrrr r`IszAbstractWriter.new_alignmentcCstd|fdS)Nz new_font(%r))rt)rrdrrr rcLszAbstractWriter.new_fontcCstd||fdS)Nznew_margin(%r, %d))rt)rrrrrrr rkOszAbstractWriter.new_margincCstd|fdS)Nznew_spacing(%r))rt)rr"rrr rnRszAbstractWriter.new_spacingcCstd|fdS)Nznew_styles(%r))rt)rr$rrr roUszAbstractWriter.new_stylescCstd|fdS)Nzsend_paragraph(%r))rt)rr rrr r:XszAbstractWriter.send_paragraphcCs tddS)Nzsend_line_break())rt)rrrr r9[szAbstractWriter.send_line_breakcOs tddS)Nzsend_hor_rule())rt)rrrrrr r;^szAbstractWriter.send_hor_rulecCstd|fdS)Nzsend_label_data(%r))rt)rrrrr r>aszAbstractWriter.send_label_datacCstd|fdS)Nzsend_flowing_data(%r))rt)rrrrr r]dsz AbstractWriter.send_flowing_datacCstd|fdS)Nzsend_literal_data(%r))rt)rrrrr r_gsz AbstractWriter.send_literal_dataN)r+r,r-r`rcrkrnror:r9r;r>r]r_rrrr rsAsrsc@sFeZdZdddZddZddZd d Zd d Zd dZddZ dS) DumbWriterNHcCs(|ptj|_||_t||dS)N)sysstdoutfilemaxcolrr reset)rryrzrrr r ts  zDumbWriter.__init__cCsd|_d|_dS)Nr)colatbreak)rrrr r{zszDumbWriter.resetcCs |jd|d|_d|_dS)Nr^r)rywriter|r})rr rrr r:~szDumbWriter.send_paragraphcCs|jdd|_d|_dS)Nr^r)ryr~r|r})rrrr r9s zDumbWriter.send_line_breakcOs:|jd|jd|j|jdd|_d|_dS)Nr^-r)ryr~rzr|r})rrrrrr r;s   zDumbWriter.send_hor_rulecCsV|j||d}|dkr4d|_||dd}|}|jt||_d|_dS)Nr^rr&)ryr~rfindr| expandtabsrlr})rrrLrrr r_s  zDumbWriter.send_literal_datacCs|sdS|jp|d}|j}|j}|jj}xZ|D]N}|rn|t||kr^|dd}n|d|d}|||t|}d}q8W||_|d|_dS)Nrr^rYr&rX)r}rZr|rzryr~r\rl)rrr}r|rzr~Zwordrrr r]s$ zDumbWriter.send_flowing_data)Nrv) r+r,r-r r{r:r9r;r_r]rrrr ruks  rucCst}t|}|dk r t|}n$tjddr>ttjd}ntj}z0x*|D]"}|dkrd|dqL||qLWWd|tjk r|X|ddS)Nr&r^r) rur.openrwargvstdinr rclose)rywffplinerrr tests     r__main__)N) rwwarningswarnDeprecationWarningrbrr.rrsrurr+rrrr s"k*C