Source code for htpolynet.utils.stringthings
"""
.. module:: stringthings
:synopsis: defines a specially-formatted logging method (silly)
.. moduleauthor: Cameron F. Abrams, <cfa22@drexel.edu>
"""
import pandas as pd
_ANGSTROM_='Ångström'
[docs]
def my_logger(msg,logf,width=67,fill='*',sep=', ',just='^'):
fmt=r'{'+r':'+fill+just+f'{width}'+r'}'
ll=' ' if just in ['^','>'] else ''
rr=' ' if just in ['^','<'] else ''
if type(msg)==list:
rr=' ' if ' ' not in sep else ''
lnlst=[]
for tok in msg:
ll_sofar=sum([len(x) for x in lnlst])
test_ll=ll_sofar+len(tok)+len(sep)*(len(lnlst)+1)
if test_ll>width-2*(1+len(sep)):
outstr=ll+sep.join(lnlst)+sep+rr
logf(fmt.format(outstr))
lnlst=[tok]
else:
lnlst.append(tok)
outstr=ll+sep.join(lnlst)+' '
logf(fmt.format(outstr))
elif type(msg)==pd.DataFrame:
for ln in msg.to_string().split('\n'):
outstr=ll+ln+rr
logf(fmt.format(outstr))
else:
lns=msg.split('\n')
for ln in lns:
outstr=ll+ln+rr
logf(fmt.format(outstr))