Compare commits
4 Commits
bcae3d4e29
...
88717fbb8e
Author | SHA1 | Date | |
---|---|---|---|
88717fbb8e | |||
e5ba8f371f | |||
3eead4bd35 | |||
de619e2548 |
|
@ -55,12 +55,31 @@ __all__ = [
|
|||
'static',
|
||||
]
|
||||
|
||||
import importlib
|
||||
import logging
|
||||
|
||||
from . import (
|
||||
data,
|
||||
defi_kraken,
|
||||
defi_kucoin,
|
||||
defi_partisia_blockchain,
|
||||
investbank_nordnet,
|
||||
static,
|
||||
)
|
||||
from ._version import __version__
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def load_backend(name: str) -> object | None:
|
||||
try:
|
||||
return importlib.import_module(f'{__name__}.{name}')
|
||||
except Exception:
|
||||
logger.exception(
|
||||
'Backend %s could not be imported? Are all module dependencies installed?',
|
||||
name,
|
||||
)
|
||||
return None
|
||||
|
||||
# Import modules
|
||||
|
||||
defi_kraken = load_backend('defi_kraken')
|
||||
defi_kucoin = load_backend('defi_kucoin')
|
||||
investbank_nordnet = load_backend('investbank_nordnet')
|
||||
defi_partisia_blockchain = load_backend('defi_partisia_blockchain')
|
||||
|
|
|
@ -1 +1 @@
|
|||
__version__ = '0.1.28'
|
||||
__version__ = '0.1.29'
|
||||
|
|
|
@ -139,7 +139,10 @@ class KucoinDepoFetcher(DepoFetcher):
|
|||
return self._get_order_details(response['orderId'], input_asset, output_asset)
|
||||
|
||||
def _get_order_details(
|
||||
self, order_id: str, input_asset: fin_defs.Asset, output_asset: fin_defs.Asset,
|
||||
self,
|
||||
order_id: str,
|
||||
input_asset: fin_defs.Asset,
|
||||
output_asset: fin_defs.Asset,
|
||||
) -> TradeOrderDetails:
|
||||
"""Determine the order details for the order with the given id.
|
||||
|
||||
|
@ -164,14 +167,19 @@ class KucoinDepoFetcher(DepoFetcher):
|
|||
fee_asset=fin_defs.WELL_KNOWN_SYMBOLS[order_details['feeCurrency']],
|
||||
fee_amount=Decimal(order_details['fee']),
|
||||
executed_time=datetime.datetime.fromtimestamp(
|
||||
order_details['createdAt'] / 1000, tz=datetime.UTC,
|
||||
order_details['createdAt'] / 1000,
|
||||
tz=datetime.UTC,
|
||||
),
|
||||
order_id=order_id,
|
||||
raw_order_details=order_details,
|
||||
)
|
||||
|
||||
def _get_order_with_retries(
|
||||
self, order_id: str, *, num_retries: int, sleep_between_tries: float = 1.0,
|
||||
self,
|
||||
order_id: str,
|
||||
*,
|
||||
num_retries: int,
|
||||
sleep_between_tries: float = 1.0,
|
||||
) -> dict:
|
||||
"""Get the order details from KuCoin backend.
|
||||
|
||||
|
|
|
@ -18,18 +18,23 @@ import fin_defs
|
|||
import requests
|
||||
from frozendict import frozendict
|
||||
from nordnet_api_client import NordnetClient
|
||||
from nordnet_api_client.data import Instrument
|
||||
|
||||
from .data import Depo, DepoFetcher, DepoGroup, DepoSingle
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def asset_from_instrument(intrument) -> fin_defs.Asset | None:
|
||||
if intrument.instrument_group_type == 'FND':
|
||||
def asset_from_instrument(instrument: Instrument) -> fin_defs.Asset | None:
|
||||
if instrument.instrument_group_type == 'FND':
|
||||
return None
|
||||
symbol = intrument.symbol
|
||||
exchange_id = intrument.tradables[0].mic
|
||||
return fin_defs.Stock(symbol, fin_defs.EXCHANGES_BY_IDS[exchange_id])
|
||||
symbol = instrument.symbol
|
||||
exchange_id = instrument.tradables[0].mic
|
||||
return fin_defs.Stock(
|
||||
symbol,
|
||||
fin_defs.EXCHANGES_BY_IDS[exchange_id],
|
||||
nordnet_id=instrument.instrument_id,
|
||||
)
|
||||
|
||||
|
||||
EMPTY_DICT: Mapping[str, str | int] = frozendict()
|
||||
|
|
|
@ -7,7 +7,8 @@ import fin_depo
|
|||
|
||||
def test_get_depo():
|
||||
fetcher = fin_depo.static.StaticDepoFetcher(
|
||||
'Test', {fin_defs.BTC: Decimal(1000), fin_defs.USD: Decimal(2000)},
|
||||
'Test',
|
||||
{fin_defs.BTC: Decimal(1000), fin_defs.USD: Decimal(2000)},
|
||||
)
|
||||
|
||||
depo = fetcher.get_depo()
|
||||
|
|
Loading…
Reference in New Issue
Block a user