/usr/local/lib64/python3.6/site-packages/pandas/io/formats/__pycache__
NameSizeModeActions
console.cpython-36.pyc17530644editdlrm
css.cpython-36.pyc64870644editdlrm
csvs.cpython-36.pyc62220644editdlrm
excel.cpython-36.pyc182800644editdlrm
format.cpython-36.pyc546720644editdlrm
html.cpython-36.pyc152750644editdlrm
info.cpython-36.pyc107280644editdlrm
latex.cpython-36.pyc101800644editdlrm
printing.cpython-36.pyc140010644editdlrm
style.cpython-36.pyc457880644editdlrm
__init__.cpython-36.pyc1530644editdlrm
Edit: /usr/local/lib64/python3.6/site-packages/pandas/io/formats/__pycache__/format.cpython-36.pyc (54672B)
3 :%Eg @sdZddlmZddlmZmZddlmZddlZddl m Z ddl m Z ddl Z ddlZddlmZdd lmZmZmZmZmZmZmZmZmZmZmZmZmZmZdd l m!Z!ddl"Z#dd l$m%Z%m&Z&dd l'm(Z(dd l)m*Z*ddl+m,Z,ddl-m.Z.m/Z/m0Z0m1Z1ddl2m3Z3ddl4m5Z5m6Z6ddl7m8Z8ddl9m:Z:m;Z;mZ>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFddlGmHZHmIZIddlJmKZKddlLmMZMddlNmOZOddlPjQjRZSddlTmUZUddlVmWZWmXZXmYZYmZZZddl[m\Z\ddl]m^Z^ddl_m`Z`ddlambZbmcZcmdZder"ddlemfZfmgZgmhZheeeeedfeeeiejfeffZkeeied fZlee6eeiejffZmeeiejeeeiejfee6eeiejfffZnd!ZodZpd-ZqGd.d/d/ZrGd0d1d1ZsGd2d3d3ZtGd4d5d5etZuetd6d7d8ZvGd9d:d:ZwGd;d<dsz2CategoricalFormatter.to_string..z, []r^)rRr_rVrcrgjoinappendra)rYrR fmt_valuesvaluesresultrVrZrZr[ to_strings   zCategoricalFormatter.to_string)NTrQT) __name__ __module__ __qualname__rr raboolr\rcrrgrsrZrZrZr[rPs  rPc @seZdZddeeeeeefeeeeeeeeeeed ddZ dd d d Z ed d d Z e e eefd ddZe ed ddZed ddZdS)SeriesFormatterNTrQFrD) seriesrSrTheaderindexrUnamerddtypemax_rowsmin_rowsc Cst||_|dk r|nt|_||_||_||_||_||_| |_| |_ |dkrTt d}||_ | |_ t |_|jdS)Nzdisplay.float_format)ryrrSr|rUrzrTr{r~rrrdr}_get_adjustmentadj _chk_truncate) rYryrSrTrzr{rUr|rdr}r~rrZrZr[r\szSeriesFormatter.__init__)r]cCsddlm}||j}|j}|o,t|j|k}|j}|rtt|}|rPt||}|dkrl|}|j d|}n*|d}||j d||j | df}||_ nd|_ ||_ ||_ dS)Nr)concat) pandas.core.reshape.concatrrr~r_ryrintminiloc tr_row_num tr_series truncate_v)rYrrr~rryrow_numrZrZr[rs&   "zSeriesFormatter._chk_truncatecCs@|jj}d}t|jjdddk rLt|jjtttfs8t|d|jjj 7}|jdk r|dk r|rj|d7}t |dd }|d |7}|j d ks|j d kr|j r|r|d7}|d t |j7}|jdk o|jdk rt|jjdd}|r|r|d7}|dt |7}t|jjr8|jjj}|r0|d7}||7}t|S)NrWfreqzFreq: Fz,   r^) escape_charszName: TtruncatezLength: r|zdtype: )rrr^)ryr|getattrr{ isinstancer<r:r=AssertionErrorZfreqstrrArTrr_r}rr%_valuesr`ra)rYr|rVZ series_nameZ dtype_namerbrZrZr[rc$s6  zSeriesFormatter._get_footercCsR|jj}t|tr4tdd|jD}|jdd}n|jdk }|jdd}||fS)Ncss|] }|VqdS)NrZ)rir|rZrZr[ Osz7SeriesFormatter._get_formatted_index..T)names)r|)rr{rr9anyrformatr|)rYr{ have_header fmt_indexrZrZr[_get_formatted_indexKs   z$SeriesFormatter._get_formatted_indexcCst|jjd|j|jdS)N)rdrU)rerrrdrU)rYrZrZr[rgVs z%SeriesFormatter._get_formatted_valuesc Cs,|j}|j}t|dkr2t|jjd|dS|j\}}|j}|jrd}|j }t t |}|j j||d}|dkrd} nd} |j j | g|dd d} |j||| |j|dd |jr|j jd |dd|g} n|j jd|} |jo|r |dd | } |r| d |7} td j| S) Nrz([], )rz...z..rH)moderWr^)r)rrcr_typeryrtrrgrrrrrr@insertr{r?rzrarn) rYryrVrrrp n_header_rowsrwidthdot_strrrrZrZr[rs^s2     zSeriesFormatter.to_string) NTTTrQFNTNN)rtrurvrr rarrwrr\rrcrrrrgrsrZrZrZr[rxs@' rxc@sNeZdZddZeedddZdeeeeeddd Z eed d d Z d S)TextAdjustmentcCstd|_dS)Nzdisplay.encoding)rencoding)rYrZrZr[r\szTextAdjustment.__init__)textr]cCst|S)N)r_)rYrrZrZr[r_szTextAdjustment.lenrG)textsmax_lenrr]cCst|||dS)N)r)r@)rYrrrrZrZr[r@szTextAdjustment.justify)spacer]cOst|f||j|jd|S)N)ZstrlenZjustfunc)r?r_r@)rYrlistskwargsrZrZr[r?szTextAdjustment.adjoinN)rG) rtrurvr\rarr_r rr@r?rZrZrZr[rsrcsJeZdZfddZeedddZd eeeeeeddd Z Z S) EastAsianTextAdjustmentcs6tjtdrd|_nd|_dddddd|_dS)Nz!display.unicode.ambiguous_as_widerr)ZNaNWFH)superr\rambiguous_width_EAW_MAP)rY) __class__rZr[r\s  z EastAsianTextAdjustment.__init__)rr]cs(t|tst|Stfdd|DS)zN Calculate display width considering unicode East Asian Width c3s"|]}jjt|jVqdS)N)rgetrr)ric)rYrZr[rsz.EastAsianTextAdjustment.len..)rrar_sum)rYrrZ)rYr[r_s zEastAsianTextAdjustment.lenrG)rrrr]csXfdd|dkr(fdd|DS|dkrBfdd|DSfdd|DSdS) Ncsj|t|S)N)r_)t)rrYrZr[_get_padsz1EastAsianTextAdjustment.justify.._get_padrFcsg|]}|j|qSrZ)ljust)rix)rrZr[rksz3EastAsianTextAdjustment.justify..rHcsg|]}|j|qSrZ)rH)rir)rrZr[rkscsg|]}|j|qSrZ)rjust)rir)rrZr[rksrZ)rYrrrrZ)rrrYr[r@s zEastAsianTextAdjustment.justify)rG) rtrurvr\rarr_rrr@ __classcell__rZrZ)rr[rs  r)r]cCstd}|rtStSdS)Nz display.unicode.east_asian_width)rrr)Zuse_east_asian_widthrZrZr[rsrc@seZdZUeeefee e  e edddZ eeefeedddZedeeeeedd d Zeedd d d ZdeeeeeeedddZdS)TableFormatter)r]cCs|jdkp|jdko|jS)NTr)show_dimensions is_truncated)rYrZrZr[should_show_dimensionss z%TableFormatter.should_show_dimensions)rjr]cCs`t|jttfr2t|r,tt|}|j|SdSn*t|rN||jkrN|j|}|jj|dSdS)N) r formatterslisttupler,rrcolumnsr)rYrjrZrZr[_get_formatters   zTableFormatter._get_formatterN)rSrc cs|dk rt|}nt}|dkr&d}nt|ts8tdt|drJ|Vn6t|trxt|d|dd }|VWdQRXntddS) z Context manager to open, yield and close buffer for filenames or Path-like objects, otherwise yield buf unchanged. Nzutf-8z1buf is not a file name and encoding is specified.writewrW)rnewlinez1buf is not a file name and it has no write method)r>rrra ValueErrorhasattropen TypeError)rYrSrfrZrZr[ get_buffers    zTableFormatter.get_buffer)rSr]cCs t|dS)z; Write the result of serialization to buf. N)r$)rYrSrZrZr[ write_resultszTableFormatter.write_result)rSrr]c Cs:|j||d"}|j|d|dkr,|jSdSQRXdS)zY Perform serialization. Write to buf or return as string if buf is None. )r)rSN)rrgetvalue)rYrSrrrZrZr[ get_results  zTableFormatter.get_result)N)NN)rtrurvrrwrarrFormattersTyperr8rpropertyrrrr rrr"rr rrrZrZrZr[rs    rc@s,eZdZUdZerendZeee7Zed1dee e ee e e e e fe e eeee eeee e eeeeeeeee e e fe ee e e e d d d Zdd d dZeee d ddZee ddddZe d ddZd2eee ee ee dddZd3eee ee e ee e ee e ee ee ee d ddZeee dddZd4eee ee ee e eefe eeee dd d!Zdeee d"d#d$Zee d d%d&Z ee d d'd(Z!ee d d)d*Z"ee d d+d,Z#dee d"d-d.Z$ee d d/d0Z%dS)5DataFrameFormatterz Render a DataFrame self.to_string() : console-friendly tabular output self.to_html() : html table self.to_latex() : LaTeX tabular environment table rWNTrQF.rC)framer col_spacerzr{rUrr@rdsparsify index_names line_widthr~rmax_colsrdecimaltable_id render_links bold_rowsescapecs||_| |_| dkrtd} | |_| |_|dkr8i|_nDt|jt|ksTt|t r\||_n t dt|dt|jd||_ ||_ dkri|_ ntttfrdi|_ |j jfdd|jjDnttrx2jD]&}||jjko|dkrt d|qW|_ nHt|jtkrLt d tdt|jdt t|jj|_ ||_||_| |_| |_||_||_t| pt|jt|j|_||_||_||_|dkrtd |_n||_||_ ||_!|dk rt"||_|j|j|_n|j|_|j#t$|_%dS) Nzdisplay.multi_sparsezFormatters length(z+) should match DataFrame number of columns(rrWcsi|] }|qSrZrZ)ricolumn)rrZr[ Msz/DataFrameFormatter.__init__..z,Col_space is defined for an unknown column: zCol_space length(zdisplay.colheader_justify)&rshow_index_namesrrrdrr_rrdictrrUrrrraupdaterkeysziprzr{rr~rrrZmax_rows_displayedrrrr@rrr;rrr)rYrrrrzr{rUrr@rdrrrr~rrrrrrrrrrZ)rr[r\sd       zDataFrameFormatter.__init__)r]cCsddlm}|j}|j}||dks,|dkrt\}}||_||_|jdkrd}d}|jr^d}tt |j |_ |j |||} |j| } | |_ |dkrt |j j|kr|}|dkrt |j |kr|}t|ds|rt |j |kr|jrt|j|}||_ t|ds ||_|j} |j } | o(t |j| k} | o.r)minimumrzWriting z cols but got z aliasescSsg|] }|gqSrZrZ)rilabelrZrZr[rksz6DataFrameFormatter._to_str_columns..rWc3s|]}jj|VqdS)N)rr_)rir)rYrZr[rsz5DataFrameFormatter._to_str_columns..c3s|]}jj|VqdS)N)rr_)rir)rYrZr[rs)rrz ...Frz...z..rFrG)ritemsrrr.rz enumerate _format_col_make_fixed_widthr@rrrorrrar_rr_get_formatted_column_labelsshow_row_idx_namesmaxr{rrrrrr)rYrrZ str_indexZ stringifiedrjrrp str_columnsrZcheaderZheader_colwidthrstrcolsrrrrrixcolZcwidthZ is_dot_colZmy_strZdot_moderrZ)rYr[_to_str_columnssx      "     z"DataFrameFormatter._to_str_columns)rSr]csddlm|j}t|jdks.t|jdkr`dt|jjdt|jdt|j}|}nD|j }|j dkr|j j d|}nt |jt s|jdkr|j|}n|j j d|jd}|jjj}||j}|d} fd d |D} t| } d} xb| dkrh| dkrh| d7} tt| d } | j| }| |}| |d8} | j|} t| } qW| |j}t|d }||_|j|j }|j j d|}|j||jr|jd t|dt|jddS)zJ Render a DataFrame to a console-friendly tabular output. r)rDzEmpty z Columns: z Index: Nrr^csg|]}|jtjqSrZ)applyr_r)riZele)rDrZr[rkQsz3DataFrameFormatter.write_result..g@rz [z rows x z columns])r)r)r)pandasrDrr_rr{rrtrArrrr?rrr_join_multilinesplitrarrroundZdroprr writelinesrr)rYrSrZ info_linerrlinesrZdifZadj_difZcol_lensZn_colscounterZmidZmid_ixZcol_lenrrZ)rDr[r1sD *         zDataFrameFormatter.write_resultcsRj}d}t|}jrF|jd}|tjfdd|Dj|8}fdd|D}|dk sdtt||}t |}j rt t j _ j d} n t j} g} d} xt|D]\} } || | }jr|jd||dkr(| t |ko| |dkr|jdgdg| dn|jdg| | jjj|f|| } qWd j| S) Nrrcsg|]}jj|qSrZ)rr_)rir)rYrZr[rkssz6DataFrameFormatter._join_multiline..cs8g|]0}t|dkr0tjfdd|DjndqS)rcsg|]}jj|qSrZ)rr_)rir)rYrZr[rkvszADataFrameFormatter._join_multiline...)r_nparrayr)rir)rYrZr[rkvsz \z  z )rrr{popr r rr_binifyr_rrrrrrrrorr?rn)rYargsZlwidth adjoin_widthridxZ col_widthsZcol_binsZnbinsZnrowsZstr_lststrjZedrowrZ)rYr[rms8 $        z"DataFrameFormatter._join_multiline)rSrr]cCs|j||dS)N)rSr)r)rYrSrrZrZr[rsszDataFrameFormatter.to_string) rS column_format longtabler multicolumnmulticolumn_formatmultirowcaptionrr]c Cs.ddlm} | |||||||| dj||dS)zU Render a DataFrame to a LaTeX tabular/longtable environment output. r)LatexFormatter)rrrrrrr)rSr)Zpandas.io.formats.latexrr) rYrSrrrrrrrrrrZrZr[to_latexs zDataFrameFormatter.to_latex)rjr]cCsH|j}|j|}t|jdd|fj||j|j|jj|j ||j dS)N)rdrUrr) rrrerrrdrUrrrr)rYrjr formatterrZrZr[rs zDataFrameFormatter._format_col)rSrclassesnotebookborderr]c Cs4ddlm}m}|r|n|}||||dj||dS)a( Render a DataFrame to a html table. Parameters ---------- classes : str or list-like classes to include in the `class` attribute of the opening ```` tag, in addition to the default "dataframe". notebook : {True, False}, optional, default False Whether the generated HTML is for IPython Notebook. border : int A ``border=border`` attribute is included in the opening ``
`` tag. Default ``pd.options.display.html.border``. r) HTMLFormatterNotebookFormatter)rr!)rSr)Zpandas.io.formats.htmlr"r#r) rYrSrrr r!r"r#ZKlassrZrZr[to_htmls zDataFrameFormatter.to_html)rr]csddlm}|j}t|tr|jddd}tt|}jj j }t dd|j Dt t|tt|fddttfd d |D}jrt|r||}d d t|D}nB|j}jj }t t|tt|fd d tt||D}|S) Nr) _sparsifyF)rr?css|] }|jVqdS)N)Z is_floating)rilrZrZr[rszBDataFrameFormatter._get_formatted_column_labels..cs$|jkr |r  r d|S|S)Nr)r)ry) need_leadsprestrict_formattingrYrZr[ space_formats  zEDataFrameFormatter._get_formatted_column_labels..space_formatcs g|]fddDqS)csg|]}|qSrZrZ)rir')r*rrZr[rkszNDataFrameFormatter._get_formatted_column_labels...rZ)ri)r*)rr[rkszCDataFrameFormatter._get_formatted_column_labels..cSsg|] }t|qSrZ)r)rirrZrZr[rkscs6g|].\}\}}j| r,|r,d|n|gqS)r)r)rirjrr)r(rYrZr[rks)Zpandas.core.indexes.multir%rrr9rrrrdtypesrrlevelsrmapr/rr_r)rYrr%rZ fmt_columnsr+rrZ)r(r)rYr*r[rs(      z/DataFrameFormatter._get_formatted_column_labelscCs t|jjS)N) _has_namesrr{)rYrZrZr[has_index_names sz"DataFrameFormatter.has_index_namescCs t|jjS)N)r.rr)rYrZrZr[has_column_names sz#DataFrameFormatter.has_column_namescCst|j|j|jfS)N)allr/r{r)rYrZrZr[rsz%DataFrameFormatter.show_row_idx_namescCst|j|j|jfS)N)r1r0rrz)rYrZrZr[show_col_idx_namessz%DataFrameFormatter.show_col_idx_namescsddjjD|j}|j}jd}t|trL|jjdj |d}n|jj |dg}fdd|D}j j d |j d }j rd djD}n d g|j}jr||S|SdS)NcSsi|]\}}tt||qSrZ)rr)rirrrZrZr[rsz;DataFrameFormatter._get_formatted_index.. __index__F)rr?rr)r|rc s.g|]&}ttt|djddjdqS)rFrWr)r@rr)rrrrr)rir)rrYrZr[rk,sz;DataFrameFormatter._get_formatted_index..rr^cSsg|] }t|qSrZ)ra)rirrZrZr[rk8srW)r)rrr{rrrr9rrrrr?rr2_get_column_name_listZnlevelsrz)rYrr{rfmtrZadjoinedZ col_headerrZ)rrYr[rs(     z'DataFrameFormatter._get_formatted_indexcCsLg}|jj}t|tr.|jdd|jDn|j|jdkr@dn|j|S)Ncss|]}|dkrdn|VqdS)NrWrZ)rir|rZrZr[rEsz;DataFrameFormatter._get_column_name_list..rW)rrrr9extendrror|)rYrrrZrZr[r4As  z(DataFrameFormatter._get_column_name_list)NNTTrQNNNNTNNNNFrNFFT)NN) NNFNFNFNN)NNNFN)&rtrurv__doc__common_docstringreturn_docstring ColspaceTyperrrraColspaceArgTyperrwrFloatFormatTyperr\rrrr rrr"rsrrrr$rrr/r0rr2rr4rZrZrZr[rsv   |F][<)0*)(rrQr) rqrrdrUdigitsrr@r leading_spacerXr]c Cst|jrt} n^t|jr t} nNt|jr0t} n>t|jr@t} n.t |jsTt |jrZt } nt |jrjt } nt} |dkr~td}|dkrtd}|dkrtd}| |||||||||| d } | jS)aV Format an array for printing. Parameters ---------- values formatter float_format na_rep digits space justify decimal leading_space : bool, optional Whether the array should be formatted with a leading space. When an array as a column of a Series or DataFrame, we do want the leading space to pad between columns. When formatting an Index subclass (e.g. IntervalIndex._format_native_types), we don't want the leading space since it should be left-aligned. Returns ------- List[str] Nzdisplay.column_spacezdisplay.float_formatzdisplay.precision) r=rUrdrrr@rr>rX)r'r}Datetime64Formatterr(Datetime64TZFormatterr1Timedelta64Formatterr)ExtensionArrayFormatterr+r&FloatArrayFormatterr-IntArrayFormatterGenericArrayFormatterrr) rqrrdrUr=rr@rr>rXZ fmt_klassZfmt_objrZrZr[reOs>'     rec @sleZdZdeeeeeeeefee eeeee ee d d d Z e ed d d Z e ed ddZdS)rENrQ rGrT) rqr=rrUrrdr@rrX fixed_widthr>c CsF||_||_||_||_||_||_||_||_| |_| |_ | |_ dS)N) rqr=rUrrrdr@rrXrHr>) rYrqr=rrUrrdr@rrXrHr>rZrZr[r\szGenericArrayFormatter.__init__)r]cCs|j}t||jS)N)_format_stringsrr@)rYrprZrZr[rsz GenericArrayFormatter.get_resultc sRjdkr0td}|dkr6tdfdd}nj}jdk rHjn"jdk oZjtk}ttd|dfd d }tjd d }t j |t t j t|ttd t|jd@}j}|dkr|j}g}x~t|D]r\}} || o|r|jd|| q||r |j|| q|dkr0d} nd} |j| j|| dqW|S)Nzdisplay.float_formatzdisplay.precisioncs|dddS)Nz .dgrZ)r) precisionrZr[sz7GenericArrayFormatter._format_strings..rrr^)r quote_stringsc sjdk rpt|rpt|rpy6|dkr(dS|tkr8ttS|tksJtj|rNdSWntt fk rhYnXjSt |t rt|St|SdS)NNoner) rUr0r2rrarr Zisnatrrrr6)r)rrYrZr[_formats z6GenericArrayFormatter._format_strings.._formatT) extract_numpyr)rrFz{v}z {v})r)rrr^)rdrrrXrrrAr7rqrZ map_inferr*r r1r3rranger_shaper>rrror) rYrdrNrPvalsZ is_float_typer>rprjrZtplrZ)rrLrYr[rIs>   $  z%GenericArrayFormatter._format_strings) rFNrQrGNrGrNTN)rtrurvr rrr rarr<rwr\rrrIrZrZrZr[rEs<rEcsfeZdZdZfddZd eeeeee fe dddZ e j dd d Zeedd d ZZS)rCz csDtj|||jdk r@|jdkr@d|_t|jr@|j|_d|_dS)NF)rr\rdrrHcallable)rYrr)rrZr[r\s  zFloatArrayFormatter.__init__N)rd thresholdr]csldkrjr"fddn fddjdkrHfddndkrXSfdd }|S) z;Returns a function to be applied on each value to format itNcst|r|dSjS)N)value)r3rU)r)rdrYrZr[base_formatter%sz.base_formattercst|rt|SjS)N)r3rarU)r)rYrZr[rX*srcs|jdjdS)Nrr)replacer)r)rXrYrZr[decimal_formatter/sz?FloatArrayFormatter._value_formatter..decimal_formattercs0t|r&t|kr|SdSnjSdS)Ng)r3absrU)rW)rZrYrVrZr[r8s   z7FloatArrayFormatter._value_formatter..formatter)rdr)rYrdrVrrZ)rXrZrdrYrVr[_value_formatters   z$FloatArrayFormatter._value_formatter)r]c s:jdk r$tjfddjDSjr4tdndfdd}jdkrpjrhtdjj d}q|j}n fd d }||}js|St |d krt d d |D}|j dk}nd}tj dd:tj j}|dkj}|dj k|d k@j}WdQRX|s|r6|r6tdjj d}||}|S)z Returns the float values converted into strings using the parameters given at initialisation, as a numpy array Ncsg|]}j|qSrZ)r)rir)rYrZr[rkIsz;FloatArrayFormatter.get_result_as_array..zdisplay.chop_thresholdcsj|jdkr"dj}nj}j}t|}t|}tj|dd}|||<|j}tjfdd|j|D|j |<j r|rt |j |}nt |j |}tj|ddS|S)NrFrobject)r}csg|] }|qSrZrZ)rival)rrZr[rkcszWFloatArrayFormatter.get_result_as_array..format_values_with..)r\r@rUrqr&r2r r ravelZflatrH_trim_zeros_complexr_trim_zeros_floatasarray)rdrUrqZ is_complexmaskZimaskrr)rYrV)rr[format_values_withQs$    "zCFloatArrayFormatter.get_result_as_array..format_values_withz{value: .{digits:d}f})r=cs j|S)N)rd)rW)rYrZr[rMzsz9FloatArrayFormatter.get_result_as_array..rcss|]}t|VqdS)N)r_)rirrZrZr[rsz:FloatArrayFormatter.get_result_as_array..Fignore)invalidg.A z{value: .{digits:d}e})rr r rqrHrrdrrr=r_rerrstater[r) rYrdrdZformatted_valuesmaxlenZtoo_longZabs_valsZhas_large_valuesZhas_small_valuesrZ)rYrVr[get_result_as_arrayCs6  !     &z'FloatArrayFormatter.get_result_as_arraycs*jdk rfddjDStjS)Ncsg|]}j|qSrZ)r)rir)rYrZr[rksz7FloatArrayFormatter._format_strings..)rrqrrk)rYrZ)rYr[rIs z#FloatArrayFormatter._format_strings)NN)rtrurvr7r\rr<rfloatrr r\r ndarrayrkrrarIrrZrZ)rr[rCs ,XrCc@seZdZeedddZdS)rD)r]cs&|jp ddfdd|jD}|S)NcSs|dS)Nz drZ)rrZrZr[rMsz3IntArrayFormatter._format_strings..csg|] }|qSrZrZ)rir)rrZr[rksz5IntArrayFormatter._format_strings..)rrq)rYrprZ)rr[rIsz!IntArrayFormatter._format_stringsN)rtrurvrrarIrZrZrZr[rDsrDcsHeZdZd eejdeefeddfdd Z e eddd Z Z S) r?rNrD)rqnat_rep date_formatc s tj|f|||_||_dS)N)rr\rnro)rYrqrnror)rrZr[r\szDatetime64Formatter.__init__)r]cslj}t|tst|}jdk r>tjr>fdd|DSt|jjt|j j dj |j }|j S)z( we by definition have DO NOT have a TZ Ncsg|]}j|qSrZ)r)rir)rYrZr[rksz7Datetime64Formatter._format_strings..)rrU)rqrr<rrUrasi8r_"_get_format_datetime64_from_valuesrornZreshaperStolist)rYrqrprZ)rYr[rIs   z#Datetime64Formatter._format_strings)rN) rtrurvrr rmr<r4rar\rrIrrZrZ)rr[r?s&r?c@seZdZeedddZdS)rB)r]c Cs`t|jdd}|jdd}t|jr.|j}n tj|}t|||j |j |j |j |j |jd}|S)NT)rQ)Zboxed)rdrUr=rr@r>)r7rq _formatterr%r}rfr rbrerdrUr=rr@r>)rYrqrr rprZrZr[rIs     z'ExtensionArrayFormatter._format_stringsN)rtrurvrrarIrZrZrZr[rBsrB) percentilesr]cCsXtj|}tjdd8t| sBtj|dk sBtj|dk rJtdWdQRXd|}tj|jt|}tj|r|jtjt }dd |DStj |}|ddkr|dnd}|d dkrd|dnd}tj tj tj tj|||d jt }td|}tj|td }||jtjt ||<||j|jt ||<d d |DS)a Outputs rounded and formatted percentiles. Parameters ---------- percentiles : list-like, containing floats from interval [0,1] Returns ------- formatted : list of strings Notes ----- Rounding precision is chosen so that: (1) if any two elements of ``percentiles`` differ, they remain different after rounding (2) no entry is *rounded* to 0% or 100%. Any non-integer is always rounded to at least 1 decimal place. Examples -------- Keeps all entries different after rounding: >>> format_percentiles([0.01999, 0.02001, 0.5, 0.666666, 0.9999]) ['1.999%', '2.001%', '50%', '66.667%', '99.99%'] No element is rounded to 0% or 100% (unless already equal to it). Duplicates are allowed: >>> format_percentiles([0, 0.5, 0.02001, 0.5, 0.666666, 0.9999]) ['0%', '50%', '2.0%', '50%', '66.67%', '99.99%'] rf)rgrrz/percentiles should all be in the interval [0,1]NdcSsg|] }|dqS)%rZ)rirjrZrZr[rksz&format_percentiles..)to_beginto_end)r}cSsg|] }|dqS)rvrZ)rirjrZrZr[rk#sry)r rbrir/r1riscloseastyperrauniquefloorlog10rZediff1drZ empty_liker]r)rtZint_idxoutZ unique_pctsrwrxprecrZrZr[format_percentiless,$     r)rqr]cCs\|j}t|}|jdk rdS|j}|tk}d}tj||t|dkjdk}|rXdSdS)NFiQgeArTgS$B) r_r<tzrpr r  logical_andrr)rq values_intconsider_values one_day_nanos even_daysrZrZr[_is_dates_only&s  rr)rrrnr]cCsf|dkst|rt|r|S|dk s0t|t r^t|dddk rPt|j|}nt|j|}t|S)Nr)r0r2rrrZ tz_convertZ tz_localizera)rrrnrZrZr[_format_datetime64;sr)rrnror]cCsF|dkst|rt|r|St|ts.t|}|r<|j|S|jSdS)N)r0r2rrstrftimeZ _date_repr)rrnrorZrZr[_format_datetime64_dateonlyJs  r) is_dates_onlyrnror]cs&|rdfdd Sdfdd SdS)Ncst|dS)N)rnro)r)rr)rornrZr[rM^sz(_get_format_datetime64..cst||dS)N)rrn)r)rr)rnrZr[rMbs)N)NrZ)rrnrorZ)rornr[_get_format_datetime64Ysr)rqror]cCs6t|tjr|jdkr|j}t|}|r2|p0dS|S)z8 given values and a date_format, return a string format rz%Y-%m-%d)rr rmndimr_r)rqrorrZrZr[rqes rqc@seZdZeedddZdS)r@)r]cs>|jjt}t|}|jp&t||jdfdd|D}|S)z we by definition have a TZ )rocsg|] }|qSrZrZ)rir)rrZr[rk|sz9Datetime64TZFormatter._format_strings..)rqr{r]rrrro)rYrqrrprZ)rr[rIus   z%Datetime64TZFormatter._format_stringsN)rtrurvrrarIrZrZrZr[r@tsr@csDeZdZd eejefeedfdd Z e edddZ Z S) rArF)rqrnboxc s tj|f|||_||_dS)N)rr\rnr)rYrqrnrr)rrZr[r\szTimedelta64Formatter.__init__)r]cs.|jpt|j|j|jdfdd|jDS)N)rnrcsg|] }|qSrZrZ)rir)rrZr[rksz8Timedelta64Formatter._format_strings..)r_get_format_timedelta64rqrnr)rYrZ)rr[rIsz$Timedelta64Formatter._format_strings)rF) rtrurvrr rmr=rarwr\rrIrrZrZ)rr[rAs"rAF)rqrnrr]csV|jtj}|tk}d}tj|||dkjdk}|r>dndfdd}|S) z Return a formatter function for a range of timedeltas. These will all have the same format argument If box, then show the return in quotes iQgeArNlongcsN|dkst|rt|rSt|ts.t|}|jd}rJd|d}|S)N)r')r0r2rrZ _repr_base)rrr)rrrnrZr[rss   z+_get_format_timedelta64.._formattergS$B)r{r Zint64r rr)rqrnrrrrrrsrZ)rrrnr[rs  r)stringsr@rrr]cst|dks|dkr|Sdkr&ttfdd|D|dk rNt|tddk rjkrjfddfdd |D}j||d }|S) Nrr1c3s|]}j|VqdS)N)r_)rir)rrZr[rsz$_make_fixed_width..zdisplay.max_colwidthcs6dk r2dkj|k@r2|ddd}|S)Nrz...)r_)r)rconf_maxrrZr[justsz_make_fixed_width..justcsg|] }|qSrZrZ)rir)rrZr[rksz%_make_fixed_width..)r)r_rrrr@)rr@rrrrrZ)rrrrr[rs r) str_complexesrrUr]csfdd|DS)z Separates the real and imaginary parts from the complex number, and executes the _trim_zeros_float method on each of those. cs&g|]}djttjd|qS)rWz([j+-]))rnrarer)rir)rrUrZr[rksz'_trim_zeros_complex..rZ)rrrUrZ)rrUr[r`s r`) str_floatsrrUr]csR|}fddfdd}x||r<fdd|D}q Wfdd|DS)zM Trims zeros, leaving just one before the decimal points if need be. cs|ko|jd S)Ninf)endswith)r)rUrZr[ _is_numbersz%_trim_zeros_float.._is_numbercs^fdd|D}fdd|D}t|dko\t|o\tdd|Do\tdd|D S)Ncsg|]}|r|qSrZrZ)rir)rrZr[rksz4_trim_zeros_float.._cond..csg|] }|kqSrZrZ)rir)rrZr[rksrcss|]}|jdVqdS)0N)r)rirrZrZr[rsz3_trim_zeros_float.._cond..css|]}d|kpd|kVqdS)eENrZ)rirrZrZr[rs)r_r1r)rqZfiniteZ has_decimal)rrrZr[_conds  z _trim_zeros_float.._condcs$g|]}|r|ddn|qS)NrryrZ)rir)rrZr[rksz%_trim_zeros_float..cs*g|]"}|jr"|r"|dn|qS)r)r)rir)rrrZr[rksrZ)rrrUZtrimmedrrZ)rrrUr[ras   ra)r{r]cCs$t|trtj|jS|jdk SdS)N)rr9comZ any_not_nonerr|)r{rZrZr[r.s  r.c"@seZdZdZd$dd%dd&dd'd d(d d)d d*dd+dddddddd dd dddddddddiZd,eeeddd Ze ee fe d!d"d#Z dS)-rEzl Formats float values according to engineering format. Based on matplotlib.ticker.EngFormatter r'zarrGp nreurmrrWrMGTPrZYNF)accuracyuse_eng_prefixcCs||_||_dS)N)rr)rYrrrZrZr[r\)szEngFormatter.__init__)numr]c Cs"tjt|}tjj|rdStjj|r.dSd}|dkrDd}| }|dkrntjttj|jdd}n tjd}|j t |j j }|j t |j j }t|}|j r|j |}n$|dkrd| d}n d|d}||d |}|jd krd }nd |jd d}|j||d} | S)a Formats a number in engineering notation, appending a letter representing the power of 1000 of the original number. Some examples: >>> format_eng(0) # for self.accuracy = 0 ' 0' >>> format_eng(1000000) # for self.accuracy = 1, # self.use_eng_prefix = True ' 1.0M' >>> format_eng("-1e-6") # for self.accuracy = 2 # self.use_eng_prefix = False '-1.00E-06' @param num: the value to represent @type num: either a numeric value or a string that can be converted to a numeric value (as per decimal.Decimal constructor) @return: engineering formatted string rQrrrrzE-Z02dzE+rhNz{mant: g}{prefix}z{mant: .rJz f}{prefix})mantprefixry)rDecimalrais_nan is_infinitermathr}r~rr ENG_PREFIXESrrrr) rYrZdnumsignZpow10Z int_pow10rr format_str formattedrZrZr[__call__-s4  "    zEngFormatter.__call__iiiiiii)NF) rtrurvr7rrrrwr\rrlrarrZrZrZr[rE s(r)rrr]cCs(tdt||tdtd|ddS)z Alter default behavior on how float is formatted in DataFrame. Format float in engineering format. By accuracy, we mean the number of decimal digits after the floating point. See also EngFormatter. zdisplay.float_formatzdisplay.column_spacerGrN)rrEr)rrrZrZr[set_eng_float_formatnsr)colsrr]c Csd}g}d}t|d}xht|D]\\}}||}||7}||krX|d|koT|dk} n|d|koj|dk} | r"|j||}q"W|jt||S)Nrrr)r_rro) rrrZbinsZ curr_widthZ i_last_columnrjrZ w_adjoinedwraprZrZr[rzs  rrW)r,sentinelr]c Cst|dkrgSdgt|d}g}xn|D]f}d}i}x>t|D]2\}}||r\||kr\qBd||<||||<|}qBWt||||<|j|q,W|S)a For each index in each level the function returns lengths of indexes. Parameters ---------- levels : list of lists List of values on for level. sentinel : string, optional Value which states that no new index starts on there. Returns ------- Returns list of maps. For each level returns map of indexes (key is index in row and value is length of index). rTF)r_rro) r,rcontrolrrlevel last_indexlengthsrjkeyrZrZr[get_level_lengthss    r)rSr r]cCs4tdd|Dr dd|D}|jdj|dS)z Appends lines to a buffer. Parameters ---------- buf The buffer to write to lines The lines to append. css|]}t|tVqdS)N)rra)rirrZrZr[rsz#buffer_put_lines..cSsg|] }t|qSrZ)ra)rirrZrZr[rksz$buffer_put_lines..r^N)rrrn)rSr rZrZr[buffer_put_liness r) rFrGrHr@rIrJrKrLrMrNrO)NrQNNrGrNN)Nr)rN)rN)rF)rGNN)rrQ)rrQ)rF)rW)r7 contextlibrcsvrrdatetimerr functoolsriorrrshutilrtypingr r r r r rrrrrrrrr unicodedatarZnumpyr Zpandas._config.configrrZ pandas._libsrZpandas._libs.missingrZpandas._libs.tslibrZpandas._libs.tslibsrrrr Zpandas._libs.tslibs.nattyper!Zpandas._typingr"r#Z pandas.errorsr$Zpandas.core.dtypes.commonr%r&r'r(r)r*r+r,r-r.r/r0r1Zpandas.core.dtypes.missingr2r3Zpandas.core.arrays.datetimesr4Zpandas.core.arrays.timedeltasr5Zpandas.core.baser6Zpandas.core.commoncorecommonrZpandas.core.constructionr7Zpandas.core.indexes.apir8r9r:r;Zpandas.core.indexes.datetimesr<Zpandas.core.indexes.timedeltasr=Zpandas.io.commonr>Zpandas.io.formats.printingr?r@rArrBrCrDrarrr<r:r;r8Z_VALID_JUSTIFY_PARAMETERSr9rPrxrrrrrrwrerErCrDr?rBrmrlrrrrrrqr@rArrr`rar.rErrr]rrrZrZrZr[s     @      <        (*: @ 'LH6Dd"*B   %  a )