| Total Complexity | 2 |
| Total Lines | 28 |
| Duplicated Lines | 0 % |
| Changes | 0 | ||
| 1 | import decimal |
||
| 2 | import math |
||
| 3 | from types import MappingProxyType |
||
| 4 | from typing import NewType, Union |
||
| 5 | |||
| 6 | InfNumber = NewType("InfNumber", Union[float, int, decimal.Decimal]) |
||
| 7 | |||
| 8 | INFINITY_MAPPER = MappingProxyType({ |
||
| 9 | 'Infinity': math.inf, |
||
| 10 | '-Infinity': -math.inf |
||
| 11 | }) |
||
| 12 | |||
| 13 | MATH_INF_MAPPER = MappingProxyType({ |
||
| 14 | math.inf: 'Infinity', |
||
| 15 | -math.inf: '-Infinity' |
||
| 16 | }) |
||
| 17 | |||
| 18 | |||
| 19 | def str_to_infnum(value: str): |
||
| 20 | return INFINITY_MAPPER.get(value, value) |
||
| 21 | |||
| 22 | |||
| 23 | def infnum_to_str(value: InfNumber): |
||
| 24 | return MATH_INF_MAPPER.get(value, value) |
||
| 25 | |||
| 26 | |||
| 27 | __all__ = ['InfNumber', 'infnum_to_str', 'str_to_infnum'] |
||
| 28 |