/opt/alt/python37/lib/python3.7/site-packages/__pycache__
NameSizeModeActions
docopt.cpython-37.pyc209280644editdlrm
editor.cpython-37.pyc26220644editdlrm
prettytable.cpython-37.opt-1.pyc443060644editdlrm
prettytable.cpython-37.pyc449400644editdlrm
schema.cpython-37.opt-1.pyc243290644editdlrm
schema.cpython-37.pyc243290644editdlrm
six.cpython-37.opt-1.pyc268710644editdlrm
six.cpython-37.pyc268710644editdlrm
socks.cpython-37.opt-1.pyc214550644editdlrm
socks.cpython-37.pyc214550644editdlrm
socks.cpython-311.pyc357510644editdlrm
sockshandler.cpython-37.opt-1.pyc37130644editdlrm
sockshandler.cpython-37.pyc37130644editdlrm
typing_extensions.cpython-37.opt-1.pyc694490644editdlrm
typing_extensions.cpython-37.pyc697150644editdlrm
zipp.cpython-37.opt-1.pyc100620644editdlrm
zipp.cpython-37.pyc100620644editdlrm
Edit: /opt/alt/python37/lib/python3.7/site-packages/__pycache__/prettytable.cpython-37.pyc (44940B)
B F³`Q¼Óã@s`dZddlZddlZddlZddlZddlZddlZddlZddlZej ddkZ e rxe Z e Z eZeZeZddlmZnejZejZeZddlmZe r´ej ddkr´ddlmZn ddlmZdZdZdZdZdZ d Z!d Z"d Z#e $d ¡Z%d d„Z&Gdd„de'ƒZ(dd„Z)dd„Z*d"dd„Z+dd„Z,Gdd„deƒZ-dd„Z.dd„Z/dd „Z0e1d!kr\e0ƒdS)#z0.7.2éNé)Ú HTMLParseréé)Úescapeé é é éz \[[0-9;]*mcCs,| d¡}t|ƒ}tdd„|Dƒƒ}||fS)NÚ cSsg|] }t|ƒ‘qS©)Ú_str_block_width)Ú.0Úliner r úOsz_get_size..)ÚsplitÚlenÚmax)ÚtextÚlinesZheightÚwidthr r rÚ _get_sizeLs rc@sBeZdZdÍdd„Zdd„Zdd„Zdd „Zd d „Zer@d d „Z ndd „Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„ZeeeƒZd5d6„Zd7d8„Z eee ƒZ!d9d:„Z"d;d<„Z#ee"e#ƒZ$d=d>„Z%d?d@„Z&ee%e&ƒZ'dAdB„Z(dCdD„Z)ee(e)ƒZ*dEdF„Z+dGdH„Z,ee+e,ƒZ-dIdJ„Z.dKdL„Z/ee.e/ƒZ0dMdN„Z1dOdP„Z2ee1e2ƒZ3dQdR„Z4dSdT„Z5ee4e5ƒZ6dUdV„Z7dWdX„Z8ee7e8ƒZ9dYdZ„Z:d[d\„Z;ee:e;ƒZee=e>ƒZ?dadb„Z@dcdd„ZAee@eAƒZBdedf„ZCdgdh„ZDeeCeDƒZEdidj„ZFdkdl„ZGeeFeGƒZHdmdn„ZIdodp„ZJeeIeJƒZKdqdr„ZLdsdt„ZMeeLeMƒZNdudv„ZOdwdx„ZPeeOePƒZQdydz„ZRd{d|„ZSeeReSƒZTd}d~„ZUdd€„ZVeeUeVƒZWdd‚„ZXdƒd„„ZYeeXeYƒZZd…d†„Z[d‡dˆ„Z\ee[e\ƒZ]d‰dŠ„Z^d‹dŒ„Z_ee^e_ƒZ`ddŽ„Zadd„ZbeeaebƒZcd‘d’„Zdd“d”„ZeeedeeƒZfd•d–„Zgd—d˜„ZheegehƒZid™dš„Zjd›dœ„Zkddž„ZldŸd „Zmd¡d¢„Znd£d¤„Zod¥d¦„Zpd§d¨„ZqdÎd«d¬„Zrd­d®„Zsd¯d°„Ztd±d²„Zud³d´„Zvdµd¶„Zwd·d¸„Zxd¹dº„Zyd»d¼„Zzd½d¾„Z{d¿dÀ„Z|dÁd„Z}dÃdÄ„Z~dÅdÆ„ZdÇdÈ„Z€dÉdÊ„ZdËdÌ„Z‚dS)ÏÚ PrettyTableNcKsZ| dd¡|_g|_i|_i|_i|_g|_|r8||_ng|_d  ¡|_ |j   d  ¡¡|j   d  ¡¡x0|j D]&}||krŽ|  |||¡qpd||<qpW|dp¤d|_ |d p²d|_|d pÀd|_|d d krÜ|d |_nd |_|dpìd|_|dd kr |d|_nd |_|dpt|_|dp,t|_|dpóz&PrettyTable.__init__..Ú int_formatÚ float_formatÚ padding_widthrÚleft_padding_widthÚright_padding_widthÚ vertical_charú|Úhorizontal_charú-Ú junction_charú+Ú print_emptyÚformatÚxhtmlÚ attributes)'ÚgetrÚ _field_namesÚ_alignÚ_valignÚ _max_widthÚ_rowsÚ field_namesÚ_widthsrÚ_optionsÚextendÚ_validate_optionÚ_startÚ_endÚ_fieldsÚ_headerÚ _header_styleÚ_borderÚFRAMEÚ_hrulesÚALLÚ_vrulesÚ_sortbyÚ _reversesortÚ _sort_keyÚ _int_formatÚ _float_formatÚ_padding_widthÚ_left_padding_widthÚ_right_padding_widthÚ_unicodeÚ_vertical_charÚ_horizontal_charÚ_junction_charÚ _print_emptyÚ_formatZ_xhtmlÚ _attributes)Úselfr>ÚkwargsÚoptionr r rÚ__init__Ts^        zPrettyTable.__init__cCs.t|tƒst|ƒ}t|tƒs*t||jdƒ}|S)NÚstrict)Ú isinstanceÚ basestringÚstrÚunicoder)r\Úvaluer r rrU±s   zPrettyTable._unicodecCsª|t|ƒ}|dkr ||dS|dkr4|d|S|drŠt|ƒdrh|dd||dddS|ddd||ddSn|dd||ddSdS)NÚlú Úrrr)r )r\rrÚalignZexcessr r rÚ_justify¸s     "zPrettyTable._justifycCsP|dkrt|jƒS|dkrD|jr*t|jƒS|jr>t|jdƒSdSnt|ƒ‚dS)NÚrowcountZcolcountr)rr=r9ÚAttributeError)r\Únamer r rÚ __getattr__Ís  zPrettyTable.__getattr__cCs¤tƒ}|j|_x(|jD]}t|d|t|d|ƒƒqWt|dt|dƒƒt|tƒrtxJ|j|D]}| |¡q`Wn,t|t ƒr| |j|¡nt dt |ƒƒ‚|S)NÚ_r:z0Index %s is invalid, must be an integer or slice) rr>r@ÚsetattrÚgetattrraÚslicer=Úadd_rowÚintÚ Exceptionrc)r\ÚindexÚnewÚattrÚrowr r rÚ __getitem__Ûs   zPrettyTable.__getitem__cCs| ¡S)N)Ú __unicode__)r\r r rÚ__str__ìszPrettyTable.__str__cCs| ¡ |j¡S)N)r{Úencoder)r\r r rr|ïscCs| ¡S)N)Ú get_string)r\r r rr{òszPrettyTable.__unicode__cCs2|dkr| |¡n|dkr.| ||¡n|dkrD| ||¡nê|dkrZ| ||¡nÔ|dkrp| ||¡n¾|dkr†| ||¡n¨|dkrœ| ||¡n’|dkr²| ||¡n||d krÆ| |¡nh|d krÜ|  ||¡nR|d krò|  ||¡n<|d kr |  ||¡n$|d kr"|  ||¡n t d|ƒ‚dS)Nr>)rrÚ max_widthr+r,r-r5r#r%r!r"r)rr r$r6r4rr)r*)r.r0r2r7zUnrecognised option: %s!)Ú_validate_field_namesÚ_validate_nonnegative_intÚ_validate_field_nameÚ_validate_functionÚ_validate_hrulesÚ_validate_vrulesÚ_validate_all_field_namesÚ_validate_true_or_falseÚ_validate_header_styleÚ_validate_int_formatÚ_validate_float_formatÚ_validate_single_charÚ_validate_attributesru)r\r^Úvalr r rrBs6   zPrettyTable._validate_optionc Csæ|jrPyt|ƒt|jƒkst‚Wn.tk rNtdt|ƒt|jƒfƒ‚YnX|jr¨yt|ƒt|jdƒksrt‚Wn2tk r¦tdt|ƒt|jdƒfƒ‚YnXyt|ƒtt|ƒƒksÂt‚Wntk ràtdƒ‚YnXdS)NzJField name list has incorrect number of values, (actual) %d!=%d (expected)rzField names must be unique!)r9rÚAssertionErrorrur=Úset)r\rr r rr€s $z!PrettyTable._validate_field_namescCs2y|dkst‚Wntk r,tdƒ‚YnXdS)N)ÚcapÚtitleÚupperÚlowerNz;Invalid header style, use cap, title, upper, lower or None!)rŽru)r\rr r rrˆ0sz"PrettyTable._validate_header_stylecCs6y|dkst‚Wn tk r0td|ƒ‚YnXdS)N)rfÚcrhz'Alignment %s is invalid, use l, c or r!)rŽru)r\rr r rÚ_validate_align6szPrettyTable._validate_aligncCs6y|dkst‚Wn tk r0td|ƒ‚YnXdS)N)ÚtÚmÚbNz-Alignment %s is invalid, use t, m, b or None!)rŽru)r\rr r rÚ_validate_valign<szPrettyTable._validate_valignc CsDyt|ƒdkst‚Wn*tk r>td|| |¡fƒ‚YnXdS)NrzInvalid value for %s: %s!)rtrŽrurU)r\rmrr r rrBsz%PrettyTable._validate_nonnegative_intcCs6y|dkst‚Wn tk r0td|ƒ‚YnXdS)N)TFz-Invalid value for %s! Must be True or False.)rŽru)r\rmrr r rr‡Hsz#PrettyTable._validate_true_or_falsecCsV|dkr dSy$t|ƒttfks"t‚| ¡s.t‚Wn tk rPtd|ƒ‚YnXdS)NÚz8Invalid value for %s! Must be an integer format string.)ÚtypercrdrŽÚisdigitru)r\rmrr r rr‰Nsz PrettyTable._validate_int_formatcCs¨|dkr dSyvt|ƒttfks"t‚d|ks.t‚| d¡}t|ƒdksHt‚|ddksd|d ¡sdt‚|ddks€|d ¡s€t‚Wn tk r¢td|ƒ‚YnXdS)NršÚ.rrrz5Invalid value for %s! Must be a float format string.)r›rcrdrŽrrrœru)r\rmrÚbitsr r rrŠWs   z"PrettyTable._validate_float_formatcCs8yt|dƒst‚Wn tk r2td|ƒ‚YnXdS)NÚ__call__z*Invalid value for %s! Must be a function.)ÚhasattrrŽru)r\rmrr r rrƒdszPrettyTable._validate_functioncCs>y|ttttfkst‚Wn tk r8td|ƒ‚YnXdS)Nz:Invalid value for %s! Must be ALL, FRAME, HEADER or NONE.)rKrIÚHEADERÚNONErŽru)r\rmrr r rr„jszPrettyTable._validate_hrulescCs<y|tttfkst‚Wn tk r6td|ƒ‚YnXdS)Nz3Invalid value for %s! Must be ALL, FRAME, or NONE.)rKrIr¢rŽru)r\rmrr r rr…pszPrettyTable._validate_vrulescCs@y||jks|dkst‚Wn tk r:td|ƒ‚YnXdS)NzInvalid field name: %s!)r9rŽru)r\rmrr r rr‚vsz PrettyTable._validate_field_namecCs@yx|D]}| ||¡qWWntk r:tdƒ‚YnXdS)Nz)fields must be a sequence of field names!)r‚rŽru)r\rmrr&r r rr†|s  z%PrettyTable._validate_all_field_namescCs:yt|ƒdkst‚Wn tk r4td|ƒ‚YnXdS)Nrz4Invalid value for %s! Must be a string of length 1.)r rŽru)r\rmrr r rr‹ƒsz!PrettyTable._validate_single_charcCs4yt|tƒst‚Wntk r.tdƒ‚YnXdS)Nz4attributes must be a dictionary of name/value pairs!)raÚdictrŽru)r\rmrr r rrŒ‰sz PrettyTable._validate_attributescCs|jS)N)r9)r\r r rÚ_get_field_names“szPrettyTable._get_field_namescs&‡fdd„|Dƒ}ˆ d|¡ˆjr2ˆjdd…}|ˆ_ˆjr|rx&t||ƒD]\}}ˆj|ˆj|<qNWx>|D]}|ˆjkrpˆj |¡qpWnxˆjD]}dˆj|<q˜Wˆjr|rx&t||ƒD]\}}ˆj|ˆj|<qÄWx@|D]}|ˆjkræˆj |¡qæWnxˆjD]}dˆj|<qWdS)Ncsg|]}ˆ |¡‘qSr )rU)rr&)r\r rr›sz0PrettyTable._set_field_names..r>r”r–)rBr9r:ÚzipÚpopr;)r\rZ old_namesZold_nameÚnew_nameÚfieldr )r\rÚ_set_field_namesšs*        zPrettyTable._set_field_namescCs|jS)N)r:)r\r r rÚ _get_align´szPrettyTable._get_aligncCs(| |¡x|jD]}||j|<qWdS)N)r•r9r:)r\rr¨r r rÚ _set_align¶s  zPrettyTable._set_aligncCs|jS)N)r;)r\r r rÚ _get_valign¼szPrettyTable._get_valigncCs(| |¡x|jD]}||j|<qWdS)N)r™r9r;)r\rr¨r r rÚ _set_valign¾s  zPrettyTable._set_valigncCs|jS)N)r<)r\r r rÚ_get_max_widthÄszPrettyTable._get_max_widthcCs*| d|¡x|jD]}||j|<qWdS)Nr)rBr9r<)r\rr¨r r rÚ_set_max_widthÆs  zPrettyTable._set_max_widthcCs|jS)zList or tuple of field names to include in displays Arguments: fields - list or tuple of field names to include in displays)rE)r\r r rÚ _get_fieldsÌszPrettyTable._get_fieldscCs| d|¡||_dS)Nr)rBrE)r\rr r rÚ _set_fieldsÓs zPrettyTable._set_fieldscCs|jS)z{Start index of the range of rows to print Arguments: start - index of first data row to include in output)rC)r\r r rÚ _get_startØszPrettyTable._get_startcCs| d|¡||_dS)Nr)rBrC)r\rr r rÚ _set_startàs zPrettyTable._set_startcCs|jS)z’End index of the range of rows to print Arguments: end - index of last data row to include in output PLUS ONE (list slice style))rD)r\r r rÚ_get_endåszPrettyTable._get_endcCs| d|¡||_dS)Nr)rBrD)r\rr r rÚ_set_endìs zPrettyTable._set_endcCs|jS)z_Name of field by which to sort rows Arguments: sortby - field name to sort by)rM)r\r r rÚ _get_sortbyñszPrettyTable._get_sortbycCs| d|¡||_dS)Nr#)rBrM)r\rr r rÚ _set_sortbyøs zPrettyTable._set_sortbycCs|jS)z®Controls direction of sorting (ascending vs descending) Arguments: reveresort - set to True to sort by descending order, or False to sort by ascending order)rN)r\r r rÚ_get_reversesortýszPrettyTable._get_reversesortcCs| d|¡||_dS)Nr$)rBrN)r\rr r rÚ_set_reversesorts zPrettyTable._set_reversesortcCs|jS)zªSorting key function, applied to data points before sorting Arguments: sort_key - a function which takes one argument and returns something to be sorted)rO)r\r r rÚ _get_sort_key szPrettyTable._get_sort_keycCs| d|¡||_dS)Nr%)rBrO)r\rr r rÚ _set_sort_keys zPrettyTable._set_sort_keycCs|jS)z‹Controls printing of table header with field names Arguments: header - print a header showing field names (True or False))rF)r\r r rÚ _get_headerszPrettyTable._get_headercCs| d|¡||_dS)Nr)rBrF)r\rr r rÚ _set_headers zPrettyTable._set_headercCs|jS)zºControls stylisation applied to field names in header Arguments: header_style - stylisation to apply to field names in header ("cap", "title", "upper", "lower" or None))rG)r\r r rÚ_get_header_style!szPrettyTable._get_header_stylecCs| |¡||_dS)N)rˆrG)r\rr r rÚ_set_header_style(s zPrettyTable._set_header_stylecCs|jS)z~Controls printing of border around table Arguments: border - print a border around the table (True or False))rH)r\r r rÚ _get_border-szPrettyTable._get_bordercCs| d|¡||_dS)Nr )rBrH)r\rr r rÚ _set_border4s zPrettyTable._set_bordercCs|jS)z˜Controls printing of horizontal rules after rows Arguments: hrules - horizontal rules style. Allowed values: FRAME, ALL, HEADER, NONE)rJ)r\r r rÚ _get_hrules9szPrettyTable._get_hrulescCs| d|¡||_dS)Nr!)rBrJ)r\rr r rÚ _set_hrules@s zPrettyTable._set_hrulescCs|jS)z‘Controls printing of vertical rules between columns Arguments: vrules - vertical rules style. Allowed values: FRAME, ALL, NONE)rL)r\r r rÚ _get_vrulesEszPrettyTable._get_vrulescCs| d|¡||_dS)Nr")rBrL)r\rr r rÚ _set_vrulesLs zPrettyTable._set_vrulescCs|jS)zbControls formatting of integer data Arguments: int_format - integer format string)rP)r\r r rÚ_get_int_formatQszPrettyTable._get_int_formatcCsx|jD]}||j|<qWdS)N)r9rP)r\rr¨r r rÚ_set_int_formatWs zPrettyTable._set_int_formatcCs|jS)zrControls formatting of floating point data Arguments: float_format - floating point format string)rQ)r\r r rÚ_get_float_format]szPrettyTable._get_float_formatcCsx|jD]}||j|<qWdS)N)r9rQ)r\rr¨r r rÚ_set_float_formatcs zPrettyTable._set_float_formatcCs|jS)zœThe number of empty spaces between a column's edge and its content Arguments: padding_width - number of spaces, must be a positive integer)rR)r\r r rÚ_get_padding_widthiszPrettyTable._get_padding_widthcCs| d|¡||_dS)Nr+)rBrR)r\rr r rÚ_set_padding_widthps zPrettyTable._set_padding_widthcCs|jS)z The number of empty spaces between a column's left edge and its content Arguments: left_padding - number of spaces, must be a positive integer)rS)r\r r rÚ_get_left_padding_widthusz#PrettyTable._get_left_padding_widthcCs| d|¡||_dS)Nr,)rBrS)r\rr r rÚ_set_left_padding_width|s z#PrettyTable._set_left_padding_widthcCs|jS)z¢The number of empty spaces between a column's right edge and its content Arguments: right_padding - number of spaces, must be a positive integer)rT)r\r r rÚ_get_right_padding_widthsz$PrettyTable._get_right_padding_widthcCs| d|¡||_dS)Nr-)rBrT)r\rr r rÚ_set_right_padding_widthˆs z$PrettyTable._set_right_padding_widthcCs|jS)z¥The charcter used when printing table borders to draw vertical lines Arguments: vertical_char - single character string used to draw vertical lines)rV)r\r r rÚ_get_vertical_charszPrettyTable._get_vertical_charcCs | |¡}| d|¡||_dS)Nr.)rUrBrV)r\rr r rÚ_set_vertical_char”s  zPrettyTable._set_vertical_charcCs|jS)z«The charcter used when printing table borders to draw horizontal lines Arguments: horizontal_char - single character string used to draw horizontal lines)rW)r\r r rÚ_get_horizontal_charšsz PrettyTable._get_horizontal_charcCs | |¡}| d|¡||_dS)Nr0)rUrBrW)r\rr r rÚ_set_horizontal_char¡s  z PrettyTable._set_horizontal_charcCs|jS)z¥The charcter used when printing table borders to draw line junctions Arguments: junction_char - single character string used to draw line junctions)rX)r\r r rÚ_get_junction_char§szPrettyTable._get_junction_charcCs | |¡}| d|¡||_dS)Nr.)rUrBrX)r\rr r rÚ_set_junction_char®s  zPrettyTable._set_junction_charcCs|jS)z~Controls whether or not HTML tables are formatted to match styling options Arguments: format - True or False)rZ)r\r r rÚ _get_format´szPrettyTable._get_formatcCs| d|¡||_dS)Nr5)rBrZ)r\rr r rÚ _set_format»s zPrettyTable._set_formatcCs|jS)zControls whether or not empty tables produce a header and frame or just an empty string Arguments: print_empty - True or False)rY)r\r r rÚ_get_print_emptyÀszPrettyTable._get_print_emptycCs| d|¡||_dS)Nr4)rBrY)r\rr r rÚ_set_print_emptyÇs zPrettyTable._set_print_emptycCs|jS)z§A dictionary of HTML attribute name/value pairs to be included in the tag when printing HTML Arguments: attributes - dictionary of attributes)r[)r\r r rÚ_get_attributesÌszPrettyTable._get_attributescCs| d|¡||_dS)Nr7)rBr[)r\rr r rÚ_set_attributesÓs zPrettyTable._set_attributescCsPi}xF|jD]<}||kr6| |||¡||||<q t|d|ƒ||<q W|S)Nro)r@rBrq)r\r]Úoptionsr^r r rÚ _get_optionsÜs zPrettyTable._get_optionscCsT|tkr| ¡n>|tkr$| ¡n,|tkr6| ¡n|tkrH| ¡ntdƒ‚dS)NzInvalid pre-set style!) ÚDEFAULTÚ_set_default_styleÚMSWORD_FRIENDLYÚ_set_msword_styleÚ PLAIN_COLUMNSÚ_set_columns_styleÚRANDOMÚ_set_random_styleru)r\Zstyler r rÚ set_styleës    zPrettyTable.set_stylecCs@d|_d|_t|_t|_d|_d|_d|_d|_ d|_ d|_ dS)NTrr/r1r3) rr rIrJrKrLr+r,r-r.r0r2)r\r r rrßøszPrettyTable._set_default_stylecCs.d|_d|_t|_d|_d|_d|_d|_dS)NTrr/)rr r¢rJr+r,r-r.)r\r r rrászPrettyTable._set_msword_stylecCs"d|_d|_d|_d|_d|_dS)NTFrré)rr r+r,r-)r\r r rrãs zPrettyTable._set_columns_stylecCs‚t d¡|_t d¡|_t ttttf¡|_t tttf¡|_ t  dd¡|_ t  dd¡|_ t d¡|_ t d¡|_t d¡|_dS)N)TFréz ~!@#$%^&*()_+|-=\{}[];':",./;<>?)ÚrandomZchoicerr rKrIr¡r¢rJrLZrandintr,r-r.r0r2)r\r r rrås    zPrettyTable._set_random_stylecCsf|jr2t|ƒt|jƒkr2tdt|ƒt|jƒfƒ‚|jsRdd„tdt|ƒƒDƒ|_|j t|ƒ¡dS)zAdd a row to the table Arguments: row - row of data, should be a list with as many elements as the table has fieldsz>Row has incorrect number of values, (actual) %d!=%d (expected)cSsg|]}d|d‘qS)zField %drr )rÚnr r rr4sz'PrettyTable.add_row..rN)r9rruÚranger>r=ÚappendÚlist)r\ryr r rrs(s zPrettyTable.add_rowcCs4|t|jƒdkr(td|t|jƒfƒ‚|j|=dS)z‚Delete a row to the table Arguments: row_index - The index of the row you want to delete. Indexing starts at 0.rz4Cant delete row at index %d, table only has %d rows!N)rr=ru)r\Z row_indexr r rÚdel_row7szPrettyTable.del_rowr”r–cCs´t|jƒdt|ƒfkr–| |¡| |¡|j |¡||j|<||j|<xdtdt|ƒƒD]6}t|jƒ|dkr||j g¡|j| ||¡qZWnt dt|ƒt|jƒfƒ‚dS)a­Add a column to the table. Arguments: fieldname - name of the field to contain the new column of data column - column of data, should be a list with as many elements as the table has rows align - desired alignment for this column - "l" for left, "c" for centre and "r" for right valign - desired vertical alignment for new columns - "t" for top, "m" for middle and "b" for bottomrrz2Column length %d does not match number of rows %d!N) rr=r•r™r9rìr:r;rëru)r\Ú fieldnameÚcolumnriÚvalignÚir r rÚ add_columnCs       zPrettyTable.add_columncCs g|_dS)z?Delete all rows from the table but keep the current field namesN)r=)r\r r rÚ clear_rows\szPrettyTable.clear_rowscCsg|_g|_g|_dS)zWDelete all rows and field names from the table, maintaining nothing but styling optionsN)r=r9r?)r\r r rÚclearbszPrettyTable.clearcCs t |¡S)N)ÚcopyÚdeepcopy)r\r r rrönszPrettyTable.copycCsdt|tƒr.||jkr.| d|j||¡}n,t|tƒrZ||jkrZ| d|j||¡}| |¡S)Nz%%%sdz%%%sf)rartrPrUÚfloatrQ)r\r¨rer r rÚ _format_valueus zPrettyTable._format_valuecCs®|drdd„|jDƒ}nt|jƒdg}xx|D]p}xjt|ƒD]^\}}|j|}||jkr‚t||tt|ƒd|j|ƒƒ||<q>t||t|ƒdƒ||<q>Wq0W||_dS)NrcSsg|]}t|ƒd‘qS)r)r)rr¨r r rr~sz/PrettyTable._compute_widths..r) r9rr>Ú enumeraterrÚminrr?)r\ÚrowsrÜZwidthsryrvrerïr r rÚ_compute_widths|s   ("zPrettyTable._compute_widthscCsD|ddk r|d}n|d}|ddk r4|d}n|d}||fS)Nr,r+r-r )r\rÜÚlpadÚrpadr r rÚ_get_padding_widthsŠs    zPrettyTable._get_padding_widthscsnt |j|d|d…¡}|drj|j |d¡‰‡fdd„|Dƒ}|j|d|ddd d„|Dƒ}|S) z—Return only those data rows that should be printed, based on slicing and sorting. Arguments: options - dictionary of option settings.rrr#csg|]}|ˆg|‘qSr r )rry)Ú sortindexr rr£sz)PrettyTable._get_rows..r$r%)ÚreverseÚkeycSsg|]}|dd…‘qS)rNr )rryr r rr§s)rör÷r=r9rvÚsort)r\rÜrür )rrÚ _get_rows–szPrettyTable._get_rowscs‡fdd„tˆj|ƒDƒS)Ncsg|]\}}ˆ ||¡‘qSr )rù)rr¨re)r\r rr«sz+PrettyTable._format_row..)r¥r9)r\ryrÜr )r\rÚ _format_rowªszPrettyTable._format_rowcs‡‡fdd„|DƒS)Ncsg|]}ˆ |ˆ¡‘qSr )r)rry)rÜr\r rr®sz,PrettyTable._format_rows..r )r\rürÜr )rÜr\rÚ _format_rows­szPrettyTable._format_rowscKsè| |¡}g}|jdkr,|dr(|ds,dS| |¡}| ||¡}| ||¡| |¡|_|drt| | |¡¡n$|dr˜|dt t fkr˜| |j¡x|D]}| |  ||¡¡qžW|drØ|dt krØ| |j¡|  d¡  |¡S)a"Return string representation of table in current state. Arguments: start - index of first data row to include in output end - index of last data row to include in output PLUS ONE (list slice style) fields - names of fields (columns) to include header - print a header showing field names (True or False) border - print a border around the table (True or False) hrules - controls printing of horizontal rules after rows. Allowed values: ALL, FRAME, HEADER, NONE vrules - controls printing of vertical rules between columns. Allowed values: FRAME, ALL, NONE int_format - controls formatting of integer data float_format - controls formatting of floating point data padding_width - number of spaces on either side of column data (only used if left and right paddings are None) left_padding_width - number of spaces on left hand side of column data right_padding_width - number of spaces on right hand side of column data vertical_char - single character string used to draw vertical lines horizontal_char - single character string used to draw horizontal lines junction_char - single character string used to draw line junctions sortby - name of field to sort rows by sort_key - sorting key function, applied to data points before sorting reversesort - True or False to sort in descending or ascending order print empty - if True, stringify just the header for an empty table, if False return an empty string rr4r ršrr!r )rÝrkrrrýÚ_stringify_hruleÚ_hrulerìÚ_stringify_headerrKrIÚ_stringify_rowrUÚjoin)r\r]rÜrrüÚformatted_rowsryr r rr~´s"        zPrettyTable.get_stringcCs|ds dS| |¡\}}|dttfkr6|dg}n |dg}|js^| |d¡d |¡Sxtt|j|jƒD]b\}}|drŒ||dkrŒqn| ||||d¡|dtkrÂ| |d¡qn| |d¡qnW|dtkrö| ¡| |d¡d |¡S)Nr ršr"r2r0r) rrKrIr9rìr r¥r?r¦)r\rÜrþrÿržr¨rr r rrñs(     zPrettyTable._stringify_hrulec Csäg}| |¡\}}|drj|dttfkr@| |j¡| d¡|dttfkr`| |d¡n | d¡|jsš|dttfkr| |d¡n | d¡xât|j|jƒD]Ð\}}|drÈ||dkrÈqª|jdkrÜ|  ¡}nD|jd krð|  ¡}n0|jd kr|  ¡}n|jd kr|  ¡}n|}| d||  |||j|¡d|¡|drª|dtkrp| |d¡qª| d¡qªW|dr¬|dtkr¬| ¡| |d¡|drÚ|dtkrÚ| d¡| |j¡d  |¡S) Nr r!r r"r.rgrrr‘r’r“rš)rrKrIrìr r9r¥r?rGÚ capitalizer‘r’r“rjr:r¦r¢r )r\rÜržrþrÿr¨rrïr r rr  sJ            *  zPrettyTable._stringify_headerc Csx€ttdt|ƒƒ|j||jƒD]`\}}}}| d¡}g}x.|D]&} t| ƒ|krZt | |¡} |  | ¡q>W|}d  |¡}|||<qWd} x$|D]} t | ƒd} | | krŒ| } qŒWg} |  |¡\}}xVtd| ƒD]H}|   g¡|drÊ|dt tfkr| |  |j¡qÊ| |  d¡qÊWxFt|j||jƒD]0\}}}|j|}| d¡}| t|ƒ}|r¼|dkr”dgt|d ƒ|dg|t|d ƒ}n(|d kr®dg||}n|dg|}d}x˜|D]}|d ræ||d kræqÆ| |  d|| |||j|¡d|¡|drL|dt kr>| |  |j¡n| |  d¡|d7}qÆWq*WxJtd| ƒD]<}|drl|dtkrl| | ¡| |  |d ¡qlW|drê|d t krê| | d  d¡| | d  |j¡x&td| ƒD]}d  | |¡| |<qöWd  | ¡S)Nrr rr r"rgr—ršrr˜rr.r!)r¥rërr9r?rr ÚtextwrapZfillrìr rrrKrIr.r;rtrjr:r¦r )r\ryrÜrvr¨rerrZ new_linesrZ row_heightr”ÚhržrþrÿÚyrñZdHeightrfr r rr :sj*              .  .  zPrettyTable._stringify_rowcKs,| |¡}|dr| |¡}n | |¡}|S)a;Return string representation of HTML formatted version of table in current state. Arguments: start - index of first data row to include in output end - index of last data row to include in output PLUS ONE (list slice style) fields - names of fields (columns) to include header - print a header showing field names (True or False) border - print a border around the table (True or False) hrules - controls printing of horizontal rules after rows. Allowed values: ALL, FRAME, HEADER, NONE vrules - controls printing of vertical rules between columns. Allowed values: FRAME, ALL, NONE int_format - controls formatting of integer data float_format - controls formatting of floating point data padding_width - number of spaces on either side of column data (only used if left and right paddings are None) left_padding_width - number of spaces on left hand side of column data right_padding_width - number of spaces on right hand side of column data sortby - name of field to sort rows by sort_key - sorting key function, applied to data points before sorting attributes - dictionary of name/value pairs to include as HTML attributes in the
tag xhtml - print
tags if True,
tags if falser5)rÝÚ_get_formatted_html_stringÚ_get_simple_html_string)r\r]rÜÚstringr r rÚget_html_string†s    zPrettyTable.get_html_stringc Csrg}|drd}nd}g}| d¡|drXx*|dD]}| d||d|f¡q6W| d¡| d |¡¡|d rÎ| d ¡x>|jD]4}|d r¦||d kr¦qŒ| d t|ƒ d |¡¡qŒW| d¡| |¡}| ||¡}xr|D]j} | d ¡xPt|j| ƒD]@\}} |d r*||d kr*q| dt| ƒ d |¡¡qW| d¡qêW| d¡| d ¡ |¡S)Nr6z
z
zršrz rz r z z z
%s
%s
) rìr r9rÚreplacerrr¥rU) r\rÜrÚ linebreakÚopen_tagÚ attr_namer¨rür ryÚdatumr r rr¦s:           z#PrettyTable._get_simple_html_stringc CsÐg}| |¡\}}|dr d}nd}g}| d¡|dr|dtkr`|dtkr`| d¡n¨|dtkr„|dtkr„| d ¡n„|dtkr¨|dtkr¨| d ¡n`|dtkrÀ| d ¡nH|dtkrØ| d ¡n0|dtkrð| d ¡n|dtkr| d¡|dr@x,|dD] }| d||d|f¡qW| d¡| d |¡¡|drÆ| d¡xL|jD]B}|dr–||dkr–qv| d||t|ƒ d|¡f¡qvW| d¡| |¡} |  | |¡} g} g} xH|jD]>}|  ddddœ|j |¡|  dddd œ|j |¡qìWx†| D]~} | d¡xbt |j| | | ƒD]N\}}}}|dr|||dkr|qT| d!||||t|ƒ d|¡f¡qTW| d¡q4W| d"¡|  d¡ |¡S)#Nr6z
z
zrzW %sr z ÚleftÚrightÚcenter)rfrhr”ÚtopZmiddleZbottom)r–r—r˜zg %sz)rrìrKrIr r9rrrrr:r;r¥rU)r\rÜrrþrÿrrrr¨rür ZalignsZvalignsryrrirñr r rrÎsd                  &    "  * z&PrettyTable._get_formatted_html_string)N)r”r–)ƒÚ__name__Ú __module__Ú __qualname__r_rUrjrnrzÚpy3kr|r{rBr€rˆr•r™rr‡r‰rŠrƒr„r…r‚r†r‹rŒr¤r©Úpropertyr>rªr«rir¬r­rñr®r¯rr°r±rr²r³rr´rµrr¶r·r#r¸r¹r$rºr»r%r¼r½rr¾r¿rrÀrÁr rÂrÃr!rÄrÅr"rÆrÇr)rÈrÉr*rÊrËr+rÌrÍr,rÎrÏr-rÐrÑr.rÒrÓr0rÔrÕr2rÖr×r5rØrÙr4rÚrÛr7rÝrærßrárãrårsrîrórôrõrörùrýrrrrr~rr r rrrr r r rrRs ]                                    =/L (rcCsìd|krdkrnndSd|kr0dkr8nndSd|krLdkrTnndSt t|ƒ¡rfd Sd |krzd ks”nd |krd kr˜nndSd|kr¬dkr´nndSd|krÈdkrÐnndS|dkrÜdS|dkrèd SdS)Né!é~riNiÿŸri¬i¯×ri@0iŸ0i 0iÿ0iÿi`ÿi0i>0)rçééÿÿÿÿ)ré)Ú unicodedataZ combiningÚuni_chr)Úcharr r rÚ_char_block_widths&.r-c Cstttttt d|¡ƒƒƒS)Nrš)ÚsumÚitermapr-ÚordÚ_reÚsub)rr r rr /sr cKs”t ¡ | d¡¡}| d¡t ||¡}tf|Ž}|r@||_n.trZdd„t |ƒDƒ|_ndd„|  ¡Dƒ|_x |D]}|  dd„|Dƒ¡qtW|S)NircSsg|] }| ¡‘qSr )Ústrip)rr&r r rrBszfrom_csv..cSsg|] }| ¡‘qSr )r3)rr&r r rrDscSsg|] }| ¡‘qSr )r3)rr&r r rrGs) ÚcsvZSnifferZsniffÚreadÚseekÚreaderrr>r#Únextrs)Úfpr>r]Zdialectr7Útableryr r rÚfrom_csv7s    r;cKsF|jrBtf|Ž}dd„|jDƒ|_x| ¡D]}| |¡q,W|SdS)NcSsg|] }|d‘qS)rr )rÚcolr r rrOsz"from_db_cursor..)Ú descriptionrr>Zfetchallrs)Zcursorr]r:ryr r rÚfrom_db_cursorKs  r>c@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)Ú TableHandlercKs>t |¡||_g|_g|_g|_d|_d|_d|_d|_ dS)NrršF) rr_r]ÚtablesÚlast_rowrüÚ max_row_widthÚactiveÚ last_contentÚis_last_row_header)r\r]r r rr_Vs zTableHandler.__init__cCs||_|dkrd|_dS)NÚthT)rCrE)r\ÚtagZattrsr r rÚhandle_starttagaszTableHandler.handle_starttagcCs|dkr|j ¡}|j |¡|dkrZ|j |j|jf¡t|jt|jƒƒ|_g|_d|_|dkr€|  |j¡}|j  |¡g|_d|_d|_ dS)N)rFZtdZtrFr:rg) rDr3rArìrürErrBrÚgenerate_tabler@rC)r\rGZstripped_contentr:r r rÚ handle_endtagfs    zTableHandler.handle_endtagcCs|j|7_dS)N)rD)r\Údatar r rÚ handle_dataxszTableHandler.handle_datacCsštf|jŽ}xˆ|jD]~}t|dƒ|jkr^|jt|dƒ}x td|ƒD]}|d d¡qHW|ddkr„| |d¡|d|_q|  |d¡qW|S)zE Generates from a list of rows a PrettyTable object. rrr1T) rr]rürrBrërìÚmake_fields_uniquer>rs)r\rür:ryZappendsròr r rrI{s    zTableHandler.generate_tablecCsXxRtdt|ƒƒD]@}x:t|dt|ƒƒD]$}||||kr(||d7<q(WqWdS)zB iterates over the row and make each field unique rrú'N)rër)r\rròÚjr r rrMszTableHandler.make_fields_uniqueN) r r!r"r_rHrJrLrIrMr r r rr?Ts  r?cKstf|Ž}| |¡|jS)zƒ Generates a list of PrettyTables from a string of HTML code. Each in the HTML becomes one PrettyTable object. )r?Zfeedr@)Ú html_coder]Úparserr r rÚ from_html–s  rRcKsFt|f|Ž}yt|ƒdkst‚Wntk r<tdƒ‚YnX|dS)zf Generates a PrettyTables from a string of HTML code which contains only a single
rzDMore than one
in provided HTML code! Use from_html instead.r)rRrrŽru)rPr]r@r r rÚ from_html_one s  rScCsÀtddddgƒ}d|_d|_d|jd<d|_d|jd<| d d d d g¡| d dddg¡| ddddg¡| ddddg¡| ddddg¡| dddd g¡| d!d"d#d$g¡t|ƒdS)%Nz City nameZAreaZ PopulationzAnnual RainfallTZ04dz6.1frfZAdelaideiis¬gÄ‚@ZBrisbaneii:Xgš™™™™é‘@ZDarwinépiDØgÍÌÌÌÌÊš@ZHobartiMiô"g\ƒ@ZSydneyi iö*Bg33333û’@Z MelbourneiiŒ:g333337„@ZPerthi iQ¹g33333+‹@)rr#r$r)r*rirsÚprint)r&r r rÚmain±s  rVÚ__main__)N)2Ú __version__rör4réÚreÚsysrÚ itertoolsr*Ú version_infor#rcrdrbÚmapr/r¥ZiterzipÚchrr+Z html.parserrZimapZizipZunichrZhtmlrZcgirIrKr¢r¡rÞràrâräÚcompiler1rÚobjectrr-r r;r>r?rRrSrVr r r r rÚ sj   E!  B