Update dataprovider function name to get_producer_df

This commit is contained in:
Matthias 2022-09-22 20:46:40 +02:00
parent e6c5c22ea0
commit 1626eb7f97
3 changed files with 11 additions and 11 deletions

View File

@ -39,7 +39,7 @@ Enable subscribing to an instance by adding the `external_message_consumer` sect
|------------|-------------| |------------|-------------|
| `enabled` | **Required.** Enable follower mode. If set to false, all other settings in this section are ignored.<br>*Defaults to `false`.*<br> **Datatype:** boolean . | `enabled` | **Required.** Enable follower mode. If set to false, all other settings in this section are ignored.<br>*Defaults to `false`.*<br> **Datatype:** boolean .
| `producers` | **Required.** List of producers <br> **Datatype:** Array. | `producers` | **Required.** List of producers <br> **Datatype:** Array.
| `producers.name` | **Required.** Name of this producer. This name must be used in calls to `get_producer_pairs()` and `get_external_df()` if more than one producer is used.<br> **Datatype:** string | `producers.name` | **Required.** Name of this producer. This name must be used in calls to `get_producer_pairs()` and `get_producer_df()` if more than one producer is used.<br> **Datatype:** string
| `producers.host` | **Required.** The hostname or IP address from your leader.<br> **Datatype:** string | `producers.host` | **Required.** The hostname or IP address from your leader.<br> **Datatype:** string
| `producers.port` | **Required.** The port matching the above host.<br> **Datatype:** string | `producers.port` | **Required.** The port matching the above host.<br> **Datatype:** string
| `producers.ws_token` | **Required.** `ws_token` as configured on the leader.<br> **Datatype:** string | `producers.ws_token` | **Required.** `ws_token` as configured on the leader.<br> **Datatype:** string
@ -106,7 +106,7 @@ class FollowerStrategy(IStrategy):
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame: def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
""" """
Use the websocket api to get pre-populated indicators from another freqtrade instance. Use the websocket api to get pre-populated indicators from another freqtrade instance.
Use `self.dp.get_external_df(pair)` to get the dataframe Use `self.dp.get_producer_df(pair)` to get the dataframe
""" """
pair = metadata['pair'] pair = metadata['pair']
timeframe = self.timeframe timeframe = self.timeframe
@ -116,9 +116,9 @@ class FollowerStrategy(IStrategy):
# self.dp.get_producer_pairs("my_other_producer") # self.dp.get_producer_pairs("my_other_producer")
# This func returns the analyzed dataframe, and when it was analyzed # This func returns the analyzed dataframe, and when it was analyzed
leader_dataframe, _ = self.dp.get_external_df(pair) leader_dataframe, _ = self.dp.get_producer_df(pair)
# You can get other data if your leader makes it available: # You can get other data if your leader makes it available:
# self.dp.get_external_df( # self.dp.get_producer_df(
# pair, # pair,
# timeframe="1h", # timeframe="1h",
# candle_type=CandleType.SPOT, # candle_type=CandleType.SPOT,

View File

@ -150,7 +150,7 @@ class DataProvider:
self.__producer_pairs_df[producer_name][pair_key] = (dataframe, _last_analyzed) self.__producer_pairs_df[producer_name][pair_key] = (dataframe, _last_analyzed)
logger.debug(f"External DataFrame for {pair_key} from {producer_name} added.") logger.debug(f"External DataFrame for {pair_key} from {producer_name} added.")
def get_external_df( def get_producer_df(
self, self,
pair: str, pair: str,
timeframe: Optional[str] = None, timeframe: Optional[str] = None,
@ -158,7 +158,7 @@ class DataProvider:
producer_name: str = "default" producer_name: str = "default"
) -> Tuple[DataFrame, datetime]: ) -> Tuple[DataFrame, datetime]:
""" """
Get the pair data from the external sources. Get the pair data from producers.
:param pair: pair to get the data for :param pair: pair to get the data for
:param timeframe: Timeframe to get data for :param timeframe: Timeframe to get data for

View File

@ -161,7 +161,7 @@ def test_producer_pairs(mocker, default_conf, ohlcv_history):
assert dataprovider.get_producer_pairs("bad") == [] assert dataprovider.get_producer_pairs("bad") == []
def test_external_df(mocker, default_conf, ohlcv_history): def test_get_producer_df(mocker, default_conf, ohlcv_history):
dataprovider = DataProvider(default_conf, None) dataprovider = DataProvider(default_conf, None)
pair = 'BTC/USDT' pair = 'BTC/USDT'
@ -172,23 +172,23 @@ def test_external_df(mocker, default_conf, ohlcv_history):
now = datetime.now(timezone.utc) now = datetime.now(timezone.utc)
# no data has been added, any request should return an empty dataframe # no data has been added, any request should return an empty dataframe
dataframe, la = dataprovider.get_external_df(pair, timeframe, candle_type) dataframe, la = dataprovider.get_producer_df(pair, timeframe, candle_type)
assert dataframe.empty assert dataframe.empty
assert la == empty_la assert la == empty_la
# the data is added, should return that added dataframe # the data is added, should return that added dataframe
dataprovider._add_external_df(pair, ohlcv_history, now, timeframe, candle_type) dataprovider._add_external_df(pair, ohlcv_history, now, timeframe, candle_type)
dataframe, la = dataprovider.get_external_df(pair, timeframe, candle_type) dataframe, la = dataprovider.get_producer_df(pair, timeframe, candle_type)
assert len(dataframe) > 0 assert len(dataframe) > 0
assert la > empty_la assert la > empty_la
# no data on this producer, should return empty dataframe # no data on this producer, should return empty dataframe
dataframe, la = dataprovider.get_external_df(pair, producer_name='bad') dataframe, la = dataprovider.get_producer_df(pair, producer_name='bad')
assert dataframe.empty assert dataframe.empty
assert la == empty_la assert la == empty_la
# non existent timeframe, empty dataframe # non existent timeframe, empty dataframe
datframe, la = dataprovider.get_external_df(pair, timeframe='1h') datframe, la = dataprovider.get_producer_df(pair, timeframe='1h')
assert dataframe.empty assert dataframe.empty
assert la == empty_la assert la == empty_la