def get_pair_position(pair: TradePair, position: str) -> Asset: assert position == 'first' or position == 'second' currencies = pair.split('_') if len(currencies) != 2: raise ValueError("Could not split {} pair".format(pair)) currency = currencies[0] if position == 'first' else currencies[1] return cast(Asset, currency)
def pair_get_assets(pair: TradePair) -> Tuple[Asset, Asset]: """Returns a tuple with the (base, quote) assets""" assets = pair.split('_') if len(assets) != 2: raise ValueError(f'Could not split {pair} pair') return cast(Asset, assets[0]), cast(Asset, assets[1])
def _split_pair(pair: TradePair) -> Tuple[str, str]: assets = pair.split('_') if len(assets) != 2: # Could not split the pair raise UnprocessableTradePair(pair) if len(assets[0]) == 0 or len(assets[1]) == 0: # no base or no quote asset raise UnprocessableTradePair(pair) return assets[0], assets[1]
def _split_pair(pair: TradePair) -> Tuple[str, str]: assets = pair.split('_') if len(assets) != 2: raise ValueError(f'Could not split {pair} pair') if len(assets[0]) == 0: raise ValueError(f'Splitting {pair} yielded no base asset') if len(assets[1]) == 0: raise ValueError(f'Splitting {pair} yielded no quote asset') return assets[0], assets[1]