diff --git a/fin_depo/investbank_nordnet.py b/fin_depo/investbank_nordnet.py index 8444835..7123606 100644 --- a/fin_depo/investbank_nordnet.py +++ b/fin_depo/investbank_nordnet.py @@ -14,6 +14,7 @@ import logging from decimal import Decimal import fin_defs +from frozendict import frozendict from .data import Depo, DepoGroup, DepoSingle @@ -38,6 +39,7 @@ def asset_from_instrument_json(json) -> fin_defs.Asset | None: exchange_id = json['tradables'][0]['mic'] return fin_defs.Stock(symbol, fin_defs.EXCHANGES_BY_IDS[exchange_id]) +EMPTY_DICT: dict[str,str | int] = frozendict() class NordnetDepoFetcher: """Depository fetcher for [Nordnet](https://nordnet.dk), the online investment bank. @@ -56,16 +58,22 @@ class NordnetDepoFetcher: """ def __init__(self, session, username: str, password: str): - assert session is not None, 'missing session' self.session = session self.username = username self.password = password self.is_logged_in = False - assert self.username is not None, 'Username is missing' - assert self.password is not None, 'Password is missing' + if self.session is None: + msg = 'Session argument is missing' + raise TypeError(msg) + if self.username is not None: + msg = 'Username argument s missing' + raise TypeError(msg) + if self.password is not None: + msg = 'Password argument is missing' + raise TypeError(msg) - def get_json(self, url: str, params: dict[str, str | int] = {}) -> dict: + def get_json(self, url: str, params: dict[str, str | int] = EMPTY_DICT)-> dict: if not url.startswith(API_ROOT): msg = f'Given url must be located below API ROOT: {url}' raise ValueError(msg) @@ -109,7 +117,7 @@ class NordnetDepoFetcher: json_accounts = self.get_json(API_ACCOUNTS) - nested = [] + nested: list[Depo] = [] for json_account in json_accounts: account_id = json_account['accid'] @@ -148,7 +156,7 @@ class NordnetDepoFetcher: ) return DepoGroup( - name=f'Nordnet', + name='Nordnet', updated_time=now, nested=nested, )