Add strategy_version to API response

This commit is contained in:
Matthias 2021-12-04 14:49:45 +01:00
parent e3190cf8a8
commit d0467b30ba
5 changed files with 9 additions and 3 deletions

View File

@ -145,6 +145,7 @@ class OrderTypes(BaseModel):
class ShowConfig(BaseModel): class ShowConfig(BaseModel):
version: str version: str
strategy_version: Optional[str]
api_version: float api_version: float
dry_run: bool dry_run: bool
stake_currency: str stake_currency: str

View File

@ -121,9 +121,11 @@ def edge(rpc: RPC = Depends(get_rpc)):
@router.get('/show_config', response_model=ShowConfig, tags=['info']) @router.get('/show_config', response_model=ShowConfig, tags=['info'])
def show_config(rpc: Optional[RPC] = Depends(get_rpc_optional), config=Depends(get_config)): def show_config(rpc: Optional[RPC] = Depends(get_rpc_optional), config=Depends(get_config)):
state = '' state = ''
strategy_version = None
if rpc: if rpc:
state = rpc._freqtrade.state state = rpc._freqtrade.state
resp = RPC._rpc_show_config(config, state) strategy_version = rpc._freqtrade.strategy.version()
resp = RPC._rpc_show_config(config, state, strategy_version)
resp['api_version'] = API_VERSION resp['api_version'] = API_VERSION
return resp return resp

View File

@ -98,7 +98,8 @@ class RPC:
self._fiat_converter = CryptoToFiatConverter() self._fiat_converter = CryptoToFiatConverter()
@staticmethod @staticmethod
def _rpc_show_config(config, botstate: Union[State, str]) -> Dict[str, Any]: def _rpc_show_config(config, botstate: Union[State, str],
strategy_version: Optional[str] = None) -> Dict[str, Any]:
""" """
Return a dict of config options. Return a dict of config options.
Explicitly does NOT return the full config to avoid leakage of sensitive Explicitly does NOT return the full config to avoid leakage of sensitive
@ -106,6 +107,7 @@ class RPC:
""" """
val = { val = {
'version': __version__, 'version': __version__,
'strategy_version': strategy_version,
'dry_run': config['dry_run'], 'dry_run': config['dry_run'],
'stake_currency': config['stake_currency'], 'stake_currency': config['stake_currency'],
'stake_currency_decimals': decimals_per_coin(config['stake_currency']), 'stake_currency_decimals': decimals_per_coin(config['stake_currency']),

View File

@ -394,7 +394,7 @@ class IStrategy(ABC, HyperStrategyMixin):
""" """
return [] return []
def version(self) -> str: def version(self) -> Optional[str]:
""" """
Returns version of the strategy. Returns version of the strategy.
""" """

View File

@ -533,6 +533,7 @@ def test_api_show_config(botclient):
assert rc.json()['timeframe_min'] == 5 assert rc.json()['timeframe_min'] == 5
assert rc.json()['state'] == 'running' assert rc.json()['state'] == 'running'
assert rc.json()['bot_name'] == 'freqtrade' assert rc.json()['bot_name'] == 'freqtrade'
assert rc.json()['strategy_version'] is None
assert not rc.json()['trailing_stop'] assert not rc.json()['trailing_stop']
assert 'bid_strategy' in rc.json() assert 'bid_strategy' in rc.json()
assert 'ask_strategy' in rc.json() assert 'ask_strategy' in rc.json()