Browse Source
util/Fiat: Fiat(No Data) should equal Fiat(No Data)
Decimal('NaN') != Decimal('NaN')
matters in e.g. qt history tab refresh (shortcut)
regtest_lnd
SomberNight
6 years ago
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
1 changed files with
9 additions and
2 deletions
-
electrum/util.py
|
|
@ -161,9 +161,11 @@ class Satoshis(object): |
|
|
|
class Fiat(object): |
|
|
|
__slots__ = ('value', 'ccy') |
|
|
|
|
|
|
|
def __new__(cls, value, ccy): |
|
|
|
def __new__(cls, value: Optional[Decimal], ccy: str): |
|
|
|
self = super(Fiat, cls).__new__(cls) |
|
|
|
self.ccy = ccy |
|
|
|
if not isinstance(value, (Decimal, type(None))): |
|
|
|
raise TypeError(f"value should be Decimal or None, not {type(value)}") |
|
|
|
self.value = value |
|
|
|
return self |
|
|
|
|
|
|
@ -177,7 +179,12 @@ class Fiat(object): |
|
|
|
return "{:.2f}".format(self.value) |
|
|
|
|
|
|
|
def __eq__(self, other): |
|
|
|
return self.ccy == other.ccy and self.value == other.value |
|
|
|
if self.ccy != other.ccy: |
|
|
|
return False |
|
|
|
if isinstance(self.value, Decimal) and isinstance(other.value, Decimal) \ |
|
|
|
and self.value.is_nan() and other.value.is_nan(): |
|
|
|
return True |
|
|
|
return self.value == other.value |
|
|
|
|
|
|
|
def __ne__(self, other): |
|
|
|
return not (self == other) |
|
|
|