import re import textwrap from torba.constants import COIN def lbc_to_dewies(lbc): if isinstance(lbc, str): result = re.search(r'^(\d{1,10})\.(\d{1,8})$', lbc) if result is not None: whole, fractional = result.groups() return int(whole+fractional.ljust(8, "0")) raise ValueError(textwrap.dedent( """ Decimal inputs require a value in the ones place and in the tenths place separated by a period. The value provided, '{}', is not of the correct format. The following are examples of valid decimal inputs: 1.0 0.001 2.34500 4534.4 2323434.0000 The following are NOT valid: 83 .456 123. """.format(lbc) )) def dewies_to_lbc(dewies): lbc = '{:.8f}'.format(dewies / COIN).rstrip('0') if lbc.endswith('.'): return lbc+'0' else: return lbc