Code quality
This commit is contained in:
parent
6856343f4c
commit
a322770205
|
@ -205,7 +205,7 @@ class Asset:
|
|||
@enforce_typing.enforce_types
|
||||
@dataclasses.dataclass(frozen=True)
|
||||
class UnknownAsset(Asset):
|
||||
pass
|
||||
"""An asset that does not exist."""
|
||||
|
||||
@abc.abstractmethod
|
||||
def raw_short_name(self) -> str:
|
||||
|
@ -215,12 +215,14 @@ class UnknownAsset(Asset):
|
|||
@enforce_typing.enforce_types
|
||||
@dataclasses.dataclass(frozen=True)
|
||||
class Currency(Asset):
|
||||
pass
|
||||
"""Either a Fiat or a Crypto Currency."""
|
||||
|
||||
|
||||
@enforce_typing.enforce_types
|
||||
@dataclasses.dataclass(frozen=True, eq=True, order=True)
|
||||
class FiatCurrency(Currency):
|
||||
"""Fiat Currency."""
|
||||
|
||||
iso_code: str
|
||||
|
||||
def __post_init__(self) -> None:
|
||||
|
@ -253,6 +255,8 @@ FiatCurrency.JPY = FiatCurrency('JPY')
|
|||
@enforce_typing.enforce_types
|
||||
@dataclasses.dataclass(frozen=True, eq=True)
|
||||
class CryptoCurrency(Currency):
|
||||
"""Crypto Currency."""
|
||||
|
||||
ccxt_symbol: str
|
||||
coingecko_id: str | None = None
|
||||
|
||||
|
|
|
@ -82,7 +82,8 @@ def test_add_wrong_type():
|
|||
|
||||
def test_add_wrong_asset():
|
||||
with pytest.raises(
|
||||
ValueError, match='AssetAmount must have same asset, but: fiat:USD != fiat:DKK',
|
||||
ValueError,
|
||||
match='AssetAmount must have same asset, but: fiat:USD != fiat:DKK',
|
||||
):
|
||||
assert USD_20 + DKK_21
|
||||
|
||||
|
@ -94,7 +95,8 @@ def test_sub_wrong_type():
|
|||
|
||||
def test_sub_wrong_asset():
|
||||
with pytest.raises(
|
||||
ValueError, match='AssetAmount must have same asset, but: fiat:USD != fiat:DKK',
|
||||
ValueError,
|
||||
match='AssetAmount must have same asset, but: fiat:USD != fiat:DKK',
|
||||
):
|
||||
assert USD_20 - DKK_21
|
||||
|
||||
|
@ -106,13 +108,15 @@ def test_cmp_wrong_type():
|
|||
|
||||
def test_cmp_wrong_asset():
|
||||
with pytest.raises(
|
||||
ValueError, match='AssetAmount must have same asset, but: fiat:USD != fiat:DKK',
|
||||
ValueError,
|
||||
match='AssetAmount must have same asset, but: fiat:USD != fiat:DKK',
|
||||
):
|
||||
assert USD_20 < DKK_21
|
||||
|
||||
|
||||
def test_div_wrong_asset():
|
||||
with pytest.raises(
|
||||
ValueError, match='AssetAmount must have same asset, but: fiat:USD != fiat:DKK',
|
||||
ValueError,
|
||||
match='AssetAmount must have same asset, but: fiat:USD != fiat:DKK',
|
||||
):
|
||||
assert USD_21 / DKK_21
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
import fin_defs
|
||||
|
||||
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
|
||||
import datetime
|
||||
from decimal import Decimal
|
||||
|
||||
import fin_defs
|
||||
|
||||
NOW = datetime.datetime.now()
|
||||
NOW = datetime.datetime.now(tz=datetime.UTC)
|
||||
THEN = NOW - datetime.timedelta(days=1)
|
||||
|
||||
SAMPLE_AVERAGE = fin_defs.ExchangeRateSample(
|
||||
NOW, (fin_defs.FiatCurrency.DKK, fin_defs.FiatCurrency.USD), _average=Decimal(1),
|
||||
NOW,
|
||||
(fin_defs.FiatCurrency.DKK, fin_defs.FiatCurrency.USD),
|
||||
_average=Decimal(1),
|
||||
)
|
||||
|
||||
SAMPLE_HIGH_LOW = fin_defs.ExchangeRateSample(
|
||||
|
|
|
@ -29,7 +29,8 @@ ASSETS_POLYGON_PRESERVES_FULL_ID = frozenset(
|
|||
a
|
||||
for a in ASSETS
|
||||
if not isinstance(
|
||||
a, fin_defs.CryptoCurrency | fin_defs.Commodity | fin_defs.UnknownAsset,
|
||||
a,
|
||||
fin_defs.CryptoCurrency | fin_defs.Commodity | fin_defs.UnknownAsset,
|
||||
)
|
||||
) - frozenset([NVO])
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user