gL i3xdZddlmZddlmZddlmZddlZddl m Z er ddl m Z ddl mZGd d Zd d Zy) z; Module for formatting output data in console (to string). ) annotations)get_terminal_size) TYPE_CHECKINGN) pprint_thing)Iterable)DataFrameFormatterceZdZdZdddZddZddZddZeddZ eddZ dd Z edd Z dd Z dd Zdd ZddZy)StringFormatterz3Formatter for string representation of a dataframe.Ncd||_|j|_|j|_||_yN)fmtadjframe line_width)selfr rs ^/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/io/formats/string.py__init__zStringFormatter.__init__s&77YY $c|j}|jjr||jj}|Sr )_get_string_representationr should_show_dimensionsdimensions_info)rtexts r to_stringzStringFormatter.to_strings;..0 88 * *VDHH4456D rc|jj}|jjr|j|}|Sr )r get_strcols is_truncated_insert_dot_separatorsrstrcolss r _get_strcolszStringFormatter._get_strcols"s6((&&( 88 11':Grc(|jjjr |jS|j }|j |j jdg|S|jr|j|S|j|SN) r rempty_empty_info_liner!rradjoin_need_to_wrap_around_join_multiline_fit_strcols_to_terminal_widthrs rrz*StringFormatter._get_string_representation(s| 88>>  (( (##% ?? ""488??1/w/ /  $ $''0 0227;;rcdt|jjdt|jjdt|jj S)NzEmpty z Columns: z Index: )typer__name__rcolumnsindexrs rr&z StringFormatter._empty_info_line7sYT$**%../0$TZZ%7%789:"4::#3#345 7 rczt|jjduxs|jjdkDS)Nr)boolr max_colsr0s rr(z$StringFormatter._need_to_wrap_around?s0DHH%%-F1B1BQ1FGGrc|jj|jj}t|}|jjr|j ||}|jj r|j||}|Sr )r _get_formatted_indextr_framelenis_truncated_horizontally _insert_dot_separator_horizontalis_truncated_vertically_insert_dot_separator_vertical)rr str_index index_lengths rrz&StringFormatter._insert_dot_separatorsCslHH11$((2C2CD 9~ 88 - -;;G\RG 88 + +99'<PGrc|jjr|jjdzS|jjSr#)r r/ tr_col_numr0s r_adjusted_tr_col_numz$StringFormatter._adjusted_tr_col_numOs0*.((..txx""Q&Qdhh>Q>QQrcF|j|jdg|z|S)Nz ...)insertr@)rr r=s rr9z0StringFormatter._insert_dot_separator_horizontalSs$ t006(\2IJrc|t|jjz }|jj}t |D]\}}|j j||}|jj r||jk(}nd}|dkDs|rd} nd} |dk(r|jjrd} n |rd}d} nd} |j j| g|| d} |j||z| |S) NFz...z..rleftright)mode) r7r r6 tr_row_num enumeraterr8r@r/justifyrB) rr r= n_header_rowsrow_numixcolcwidth is_dot_coldotsdot_modedot_strs rr;z.StringFormatter._insert_dot_separator_verticalYs%s488+<+<'== ((%% ) 9GBXX\\#g,/Fxx114#<#<< " zZQw488>>!""hh&&vvH&EaHG JJw. 8- 9.rc |j}d}t|}|jjra|j d}|t j |Dcgc]}|jj|c}j|zz}|Dcgc]\}t|dkDrJt j |Dcgc]}|jj|c}jnd^}}}|Jt||} t| } g} d} t| D]\} }|| |}|jjr|jd| dkDrVt|d}|t|kr%| | dz kr|jdgdg|dz zzn|jdg|z| j|jj|g||} dj| Scc}wcc}wcc}}w)Nr$rz \z  z )rlistr r/popnparrayrr7max_binifyrJrBappendr'join)r strcols_inputlwidth adjoin_widthr idxxrO col_widthscol_binsnbinsstr_lststartiendrownrowss rr)zStringFormatter._join_multilinews }% 88>>++a.C bhh=A Q=>BBD|S SF ?B#hlBHHs3!dhhll1o3 4 8 8 :PQ Q  !!!:v.H ) FAs%$Cxx~~ 1c"qyCG #g,&1uqy=JJw$519)==>JJuu}- NN?488??<>#> ?E {{7##3 >4 s"G3 &G=<"G8G=8G=cRddlm}|jjdg|j d}||j j j}t\}}||z }|dz}||D cgc]0} || j j j2c} } t | } d} |dkDr[| dkDrV| dz } t| dz } | j| }| |}||dzz}| j|} t | } |dkDr| dkDrV| |jjz }t|d}||j_ |jj|j}|jjdg|Scc} w)Nr)Seriesr$ )pandasrorr'splitstrr7r\rroundr/dropr max_cols_fittedtruncater!)rr rolinesmax_lenwidth_difadj_difelecol_lensn_colscountermidmid_ixcol_lenrws rr*z.StringFormatter._fit_strcols_to_terminal_widths!,G,2248-##'')--/$&qo''J36#;??..0446JKXkfqj qLG #C^^C(Fv&G w{ "G}}V,H]Fkfqj!488>>1oq1#2  ##%txxq+7++/Ks>5F$r )r rrz int | NonereturnNone)rrt)rlist[list[str]])rr2)r rrr)rint)r rr=rrr)r`zIterable[list[str]]rrt)r rrrt)r- __module__ __qualname____doc__rrr!rpropertyr&r(rr@r9r;r)r*rrr r s=%   <  HH RR&69  &69 < $D!,rr cd}g}d}t|dz }t|D]I\}}||z}||z }||k(r|dz|kDxr|dkD} n|dz|kDxr|dkD} | s7|j||}K|jt||S)Nr$rrq)r7rJr^) colsrrbbins curr_width i_last_columnrjw w_adjoinedwraps rr]r]sL DJIMM$ $1% j A >J.81q5D>J.81q5D  KKN#J $ KKD  Kr)r list[int]rrrr)r __future__rshutilrtypingrnumpyrZpandas.io.formats.printingrcollections.abcrpandas.io.formats.formatrr r]rrrrs6#$ 3(;g,g,Tr