semvec/pypi-packages huggingface dataset:
justbases-string 0.1
string representation of a rational number in any base
License: Apache 2.0

justbases-string
================

Purpose
-------
A small library for generating a human readable string value from a number
with an arbitrary base. The number is represented by five elements:

* a sign

  -1, 1, or 0 as appropriate

* an integer part

  a list of non-negative ints, where each element is less than the base value

* a non repeating fractional part

  a list of non-negative ints, where each element is less than the base value

* a repeating fractional part

  a list of non-negative ints, where each element is less than the base value

* a base

  the base of the number, must be an integer greater than 1.


Usage
-----

::

    >>> from justbases_string import *
    >>> xformer = String(DisplayConfig(), 2)
    >>> xformer.xform(-1, [1, 0, 1], [], [1, 0], 0)
    '-101.(10)_2'
    >>> xformer.xform(0, [], [0, 0], [], 0)
    '0_2'

An exception is raised if the parts of the number do not conform to the
necessary constraints: ::

    >>> xformer.xform(1, [2], [0, 0], [], 0)
    Traceback (most recent call last):
    ...

    >>> xformer.xform(1, [-1], [0, 0], [], 0)
    Traceback (most recent call last):
    ...

There are numerous options for configuring the string result: ::

    >>> digits_config = DigitsConfig(use_letters=False)
    >>> xformer = String(DisplayConfig(digits_config=digits_config), 1024)
    >>> xformer.xform(1, [2], [2, 4, 256], [], 0)
    '2.2~4~256_1024'

    >>> digits_config = DigitsConfig(use_caps=True)
    >>> xformer = String(DisplayConfig(digits_config=digits_config), 16)
    >>> xformer.xform(1, [], [0, 13], [], 0)
    '0.0D_16'

The final argument is the relation of the value being displayed to the value
it represents: ::

    >>> xformer.xform(1, [2], [2, 4, 256], [], Fraction(1, 3))
    '< 2.2~4~256_1024'