From 4c3e47766775e79917792d85512a9c6644e17cdf Mon Sep 17 00:00:00 2001 From: Matthias Date: Sat, 28 Dec 2024 15:41:10 +0100 Subject: [PATCH] chore: rename Annotation type --- freqtrade/ft_types/__init__.py | 2 +- freqtrade/ft_types/plot_annotation_type.py | 4 +++- freqtrade/rpc/api_server/api_schemas.py | 4 ++-- freqtrade/strategy/__init__.py | 4 ++-- freqtrade/strategy/interface.py | 8 ++++---- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/freqtrade/ft_types/__init__.py b/freqtrade/ft_types/__init__.py index 0203a6456..5ef97ed32 100644 --- a/freqtrade/ft_types/__init__.py +++ b/freqtrade/ft_types/__init__.py @@ -5,5 +5,5 @@ from freqtrade.ft_types.backtest_result_type import ( BacktestResultType, get_BacktestResultType_default, ) -from freqtrade.ft_types.plot_annotation_type import MarkArea +from freqtrade.ft_types.plot_annotation_type import AnnotationType from freqtrade.ft_types.valid_exchanges_type import ValidExchangesType diff --git a/freqtrade/ft_types/plot_annotation_type.py b/freqtrade/ft_types/plot_annotation_type.py index e63c564d6..0e9f37363 100644 --- a/freqtrade/ft_types/plot_annotation_type.py +++ b/freqtrade/ft_types/plot_annotation_type.py @@ -1,9 +1,11 @@ from datetime import datetime +from typing import Literal from typing_extensions import NotRequired, TypedDict -class MarkArea(TypedDict): +class AnnotationType(TypedDict): + type: Literal["area"] = "area" start: NotRequired[str | datetime] end: NotRequired[str | datetime] y_start: NotRequired[float] diff --git a/freqtrade/rpc/api_server/api_schemas.py b/freqtrade/rpc/api_server/api_schemas.py index 02c19ef71..207b383ce 100644 --- a/freqtrade/rpc/api_server/api_schemas.py +++ b/freqtrade/rpc/api_server/api_schemas.py @@ -5,7 +5,7 @@ from pydantic import AwareDatetime, BaseModel, RootModel, SerializeAsAny, model_ from freqtrade.constants import DL_DATA_TIMEFRAMES, IntOrInf from freqtrade.enums import MarginMode, OrderTypeValues, SignalDirection, TradingMode -from freqtrade.ft_types import MarkArea, ValidExchangesType +from freqtrade.ft_types import AnnotationType, ValidExchangesType from freqtrade.rpc.api_server.webserver_bgwork import ProgressTask @@ -537,7 +537,7 @@ class PairHistory(BaseModel): columns: list[str] all_columns: list[str] = [] data: SerializeAsAny[list[Any]] - mark_areas: list[MarkArea] | None = None + mark_areas: list[AnnotationType] | None = None length: int buy_signals: int sell_signals: int diff --git a/freqtrade/strategy/__init__.py b/freqtrade/strategy/__init__.py index de7e49a94..f1a6c687c 100644 --- a/freqtrade/strategy/__init__.py +++ b/freqtrade/strategy/__init__.py @@ -6,7 +6,7 @@ from freqtrade.exchange import ( timeframe_to_prev_date, timeframe_to_seconds, ) -from freqtrade.ft_types import MarkArea +from freqtrade.ft_types import AnnotationType from freqtrade.persistence import Order, PairLocks, Trade from freqtrade.strategy.informative_decorator import informative from freqtrade.strategy.interface import IStrategy @@ -45,5 +45,5 @@ __all__ = [ "merge_informative_pair", "stoploss_from_absolute", "stoploss_from_open", - "MarkArea", + "AnnotationType", ] diff --git a/freqtrade/strategy/interface.py b/freqtrade/strategy/interface.py index 3f3dd83f4..3b4e4a986 100644 --- a/freqtrade/strategy/interface.py +++ b/freqtrade/strategy/interface.py @@ -26,7 +26,7 @@ from freqtrade.enums import ( ) from freqtrade.exceptions import OperationalException, StrategyError from freqtrade.exchange import timeframe_to_minutes, timeframe_to_next_date, timeframe_to_seconds -from freqtrade.ft_types import MarkArea +from freqtrade.ft_types import AnnotationType from freqtrade.misc import remove_entry_exit_signals from freqtrade.persistence import Order, PairLocks, Trade from freqtrade.strategy.hyper import HyperStrategyMixin @@ -737,7 +737,7 @@ class IStrategy(ABC, HyperStrategyMixin): def plot_annotations( self, pair: str, start_date: datetime, end_date: datetime, dataframe: DataFrame, **kwargs - ) -> list[MarkArea]: + ) -> list[AnnotationType]: """ Retrieve area annotations for a chart. Must be returned as array, with label, start, end, y_start, y_end and color. @@ -748,7 +748,7 @@ class IStrategy(ABC, HyperStrategyMixin): :param end_date: End date of the chart data being requested :param dataframe: DataFrame with the analyzed data for the chart :param **kwargs: Ensure to keep this here so updates to this won't break your strategy. - :return: List of MarkArea objects + :return: List of AnnotationType objects """ return [] @@ -1688,7 +1688,7 @@ class IStrategy(ABC, HyperStrategyMixin): df = df.rename({"sell": "exit_long"}, axis="columns") return df - def ft_plot_annotations(self, pair: str, dataframe: DataFrame) -> list[MarkArea]: + def ft_plot_annotations(self, pair: str, dataframe: DataFrame) -> list[AnnotationType]: """ Internal wrapper around plot_dataframe """