MCPcopy Create free account
hub / github.com/ccxt/ccxt / features_generator

Method features_generator

python/ccxt/base/exchange.py:3688–3723  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

3686 self.init_throttler()
3687
3688 def features_generator(self):
3689 #
3690 # in the exchange-specific features can be something like self, where we support 'string' aliases too:
3691 #
3692 # {
3693 # 'my' : {
3694 # 'createOrder' : {...},
3695 # },
3696 # 'swap': {
3697 # 'linear': {
3698 # 'extends': my',
3699 # },
3700 # },
3701 # }
3702 #
3703 if self.features is None:
3704 return
3705 # reconstruct
3706 initialFeatures = self.features
3707 self.features = {}
3708 unifiedMarketTypes = ['spot', 'swap', 'future', 'option']
3709 subTypes = ['linear', 'inverse']
3710 # atm only support basic methods, eg: 'createOrder', 'fetchOrder', 'fetchOrders', 'fetchMyTrades'
3711 for i in range(0, len(unifiedMarketTypes)):
3712 marketType = unifiedMarketTypes[i]
3713 # if marketType is not filled for self exchange, don't add that in `features`
3714 if not (marketType in initialFeatures):
3715 self.features[marketType] = None
3716 else:
3717 if marketType == 'spot':
3718 self.features[marketType] = self.features_mapper(initialFeatures, marketType)
3719 else:
3720 self.features[marketType] = {}
3721 for j in range(0, len(subTypes)):
3722 subType = subTypes[j]
3723 self.features[marketType][subType] = self.features_mapper(initialFeatures, marketType, subType)
3724
3725 def features_mapper(self, initialFeatures: Any, marketType: Str, subType: Str = None):
3726 featuresObj = initialFeatures[marketType][subType] if (subType is not None) else initialFeatures[marketType]

Callers 1

after_constructMethod · 0.95

Calls 2

features_mapperMethod · 0.95
rangeFunction · 0.50

Tested by

no test coverage detected