From cfdd01d295548008429257f7b4bce5f3d908cdc6 Mon Sep 17 00:00:00 2001 From: Matthias Date: Tue, 18 Jul 2023 06:44:33 +0200 Subject: [PATCH] Update most of Api schema to pydantic 2.0 --- freqtrade/rpc/api_server/api_schemas.py | 214 ++++++++++++------------ 1 file changed, 107 insertions(+), 107 deletions(-) diff --git a/freqtrade/rpc/api_server/api_schemas.py b/freqtrade/rpc/api_server/api_schemas.py index 4c674e05e..6d7c12c27 100644 --- a/freqtrade/rpc/api_server/api_schemas.py +++ b/freqtrade/rpc/api_server/api_schemas.py @@ -9,9 +9,9 @@ from freqtrade.types import ValidExchangesType class ExchangeModePayloadMixin(BaseModel): - trading_mode: Optional[TradingMode] - margin_mode: Optional[MarginMode] - exchange: Optional[str] + trading_mode: Optional[TradingMode] = None + margin_mode: Optional[MarginMode] = None + exchange: Optional[str] = None class Ping(BaseModel): @@ -43,11 +43,11 @@ class BackgroundTaskStatus(BaseModel): job_category: str status: str running: bool - progress: Optional[float] + progress: Optional[float] = None class BackgroundTaskResult(BaseModel): - error: Optional[str] + error: Optional[str] = None status: str @@ -60,9 +60,9 @@ class Balance(BaseModel): free: float balance: float used: float - bot_owned: Optional[float] + bot_owned: Optional[float] = None est_stake: float - est_stake_bot: Optional[float] + est_stake_bot: Optional[float] = None stake: str # Starting with 2.x side: str @@ -141,7 +141,7 @@ class Profit(BaseModel): expectancy_ratio: float max_drawdown: float max_drawdown_abs: float - trading_volume: Optional[float] + trading_volume: Optional[float] = None bot_start_timestamp: int bot_start_date: str @@ -173,50 +173,50 @@ class Daily(BaseModel): class UnfilledTimeout(BaseModel): - entry: Optional[int] - exit: Optional[int] - unit: Optional[str] - exit_timeout_count: Optional[int] + entry: Optional[int] = None + exit: Optional[int] = None + unit: Optional[str] = None + exit_timeout_count: Optional[int] = None class OrderTypes(BaseModel): entry: OrderTypeValues exit: OrderTypeValues - emergency_exit: Optional[OrderTypeValues] - force_exit: Optional[OrderTypeValues] - force_entry: Optional[OrderTypeValues] + emergency_exit: Optional[OrderTypeValues] = None + force_exit: Optional[OrderTypeValues] = None + force_entry: Optional[OrderTypeValues] = None stoploss: OrderTypeValues stoploss_on_exchange: bool - stoploss_on_exchange_interval: Optional[int] + stoploss_on_exchange_interval: Optional[int] = None class ShowConfig(BaseModel): version: str - strategy_version: Optional[str] + strategy_version: Optional[str] = None api_version: float dry_run: bool trading_mode: str short_allowed: bool stake_currency: str stake_amount: str - available_capital: Optional[float] + available_capital: Optional[float] = None stake_currency_decimals: int max_open_trades: IntOrInf minimal_roi: Dict[str, Any] - stoploss: Optional[float] + stoploss: Optional[float] = None stoploss_on_exchange: bool - trailing_stop: Optional[bool] - trailing_stop_positive: Optional[float] - trailing_stop_positive_offset: Optional[float] - trailing_only_offset_is_reached: Optional[bool] - unfilledtimeout: Optional[UnfilledTimeout] # Empty in webserver mode - order_types: Optional[OrderTypes] - use_custom_stoploss: Optional[bool] - timeframe: Optional[str] + trailing_stop: Optional[bool] = None + trailing_stop_positive: Optional[float] = None + trailing_stop_positive_offset: Optional[float] = None + trailing_only_offset_is_reached: Optional[bool] = None + unfilledtimeout: Optional[UnfilledTimeout] = None # Empty in webserver mode + order_types: Optional[OrderTypes] = None + use_custom_stoploss: Optional[bool] = None + timeframe: Optional[str] = None timeframe_ms: int timeframe_min: int exchange: str - strategy: Optional[str] + strategy: Optional[str] = None force_entry_enable: bool exit_pricing: Dict[str, Any] entry_pricing: Dict[str, Any] @@ -231,17 +231,17 @@ class OrderSchema(BaseModel): pair: str order_id: str status: str - remaining: Optional[float] + remaining: Optional[float] = None amount: float safe_price: float cost: float - filled: Optional[float] + filled: Optional[float] = None ft_order_side: str order_type: str is_open: bool - order_timestamp: Optional[int] - order_filled_timestamp: Optional[int] - ft_fee_base: Optional[float] + order_timestamp: Optional[int] = None + order_filled_timestamp: Optional[int] = None + ft_fee_base: Optional[float] = None class TradeSchema(BaseModel): @@ -255,81 +255,81 @@ class TradeSchema(BaseModel): amount: float amount_requested: float stake_amount: float - max_stake_amount: Optional[float] + max_stake_amount: Optional[float] = None strategy: str - enter_tag: Optional[str] + enter_tag: Optional[str] = None timeframe: int - fee_open: Optional[float] - fee_open_cost: Optional[float] - fee_open_currency: Optional[str] - fee_close: Optional[float] - fee_close_cost: Optional[float] - fee_close_currency: Optional[str] + fee_open: Optional[float] = None + fee_open_cost: Optional[float] = None + fee_open_currency: Optional[str] = None + fee_close: Optional[float] = None + fee_close_cost: Optional[float] = None + fee_close_currency: Optional[str] = None open_date: str open_timestamp: int open_rate: float - open_rate_requested: Optional[float] + open_rate_requested: Optional[float] = None open_trade_value: float - close_date: Optional[str] - close_timestamp: Optional[int] - close_rate: Optional[float] - close_rate_requested: Optional[float] + close_date: Optional[str] = None + close_timestamp: Optional[int] = None + close_rate: Optional[float] = None + close_rate_requested: Optional[float] = None - close_profit: Optional[float] - close_profit_pct: Optional[float] - close_profit_abs: Optional[float] + close_profit: Optional[float] = None + close_profit_pct: Optional[float] = None + close_profit_abs: Optional[float] = None - profit_ratio: Optional[float] - profit_pct: Optional[float] - profit_abs: Optional[float] - profit_fiat: Optional[float] + profit_ratio: Optional[float] = None + profit_pct: Optional[float] = None + profit_abs: Optional[float] = None + profit_fiat: Optional[float] = None realized_profit: float - realized_profit_ratio: Optional[float] + realized_profit_ratio: Optional[float] = None - exit_reason: Optional[str] - exit_order_status: Optional[str] + exit_reason: Optional[str] = None + exit_order_status: Optional[str] = None - stop_loss_abs: Optional[float] - stop_loss_ratio: Optional[float] - stop_loss_pct: Optional[float] - stoploss_order_id: Optional[str] - stoploss_last_update: Optional[str] - stoploss_last_update_timestamp: Optional[int] - initial_stop_loss_abs: Optional[float] - initial_stop_loss_ratio: Optional[float] - initial_stop_loss_pct: Optional[float] + stop_loss_abs: Optional[float] = None + stop_loss_ratio: Optional[float] = None + stop_loss_pct: Optional[float] = None + stoploss_order_id: Optional[str] = None + stoploss_last_update: Optional[str] = None + stoploss_last_update_timestamp: Optional[int] = None + initial_stop_loss_abs: Optional[float] = None + initial_stop_loss_ratio: Optional[float] = None + initial_stop_loss_pct: Optional[float] = None - min_rate: Optional[float] - max_rate: Optional[float] - open_order_id: Optional[str] + min_rate: Optional[float] = None + max_rate: Optional[float] = None + open_order_id: Optional[str] = None orders: List[OrderSchema] - leverage: Optional[float] - interest_rate: Optional[float] - liquidation_price: Optional[float] - funding_fees: Optional[float] - trading_mode: Optional[TradingMode] + leverage: Optional[float] = None + interest_rate: Optional[float] = None + liquidation_price: Optional[float] = None + funding_fees: Optional[float] = None + trading_mode: Optional[TradingMode] = None - amount_precision: Optional[float] - price_precision: Optional[float] - precision_mode: Optional[int] + amount_precision: Optional[float] = None + price_precision: Optional[float] = None + precision_mode: Optional[int] = None class OpenTradeSchema(TradeSchema): - stoploss_current_dist: Optional[float] - stoploss_current_dist_pct: Optional[float] - stoploss_current_dist_ratio: Optional[float] - stoploss_entry_dist: Optional[float] - stoploss_entry_dist_ratio: Optional[float] + stoploss_current_dist: Optional[float] = None + stoploss_current_dist_pct: Optional[float] = None + stoploss_current_dist_ratio: Optional[float] = None + stoploss_entry_dist: Optional[float] = None + stoploss_entry_dist_ratio: Optional[float] = None current_rate: float total_profit_abs: float - total_profit_fiat: Optional[float] - total_profit_ratio: Optional[float] + total_profit_fiat: Optional[float] = None + total_profit_ratio: Optional[float] = None - open_order: Optional[str] + open_order: Optional[str] = None class TradeResponse(BaseModel): @@ -352,7 +352,7 @@ class LockModel(BaseModel): lock_timestamp: int pair: str side: str - reason: Optional[str] + reason: Optional[str] = None class Locks(BaseModel): @@ -361,8 +361,8 @@ class Locks(BaseModel): class DeleteLockRequest(BaseModel): - pair: Optional[str] - lockid: Optional[int] + pair: Optional[str] = None + lockid: Optional[int] = None class Logs(BaseModel): @@ -373,17 +373,17 @@ class Logs(BaseModel): class ForceEnterPayload(BaseModel): pair: str side: SignalDirection = SignalDirection.LONG - price: Optional[float] - ordertype: Optional[OrderTypeValues] - stakeamount: Optional[float] - entry_tag: Optional[str] - leverage: Optional[float] + price: Optional[float] = None + ordertype: Optional[OrderTypeValues] = None + stakeamount: Optional[float] = None + entry_tag: Optional[str] = None + leverage: Optional[float] = None class ForceExitPayload(BaseModel): tradeid: str - ordertype: Optional[OrderTypeValues] - amount: Optional[float] + ordertype: Optional[OrderTypeValues] = None + amount: Optional[float] = None class BlacklistPayload(BaseModel): @@ -405,7 +405,7 @@ class WhitelistResponse(BaseModel): class WhitelistEvaluateResponse(BackgroundTaskResult): - result: Optional[WhitelistResponse] + result: Optional[WhitelistResponse] = None class DeleteTrade(BaseModel): @@ -497,16 +497,16 @@ class BacktestFreqAIInputs(BaseModel): class BacktestRequest(BaseModel): strategy: str - timeframe: Optional[str] - timeframe_detail: Optional[str] - timerange: Optional[str] - max_open_trades: Optional[IntOrInf] - stake_amount: Optional[str] + timeframe: Optional[str] = None + timeframe_detail: Optional[str] = None + timerange: Optional[str] = None + max_open_trades: Optional[IntOrInf] = None + stake_amount: Optional[str] = None enable_protections: bool - dry_run_wallet: Optional[float] - backtest_cache: Optional[str] - freqaimodel: Optional[str] - freqai: Optional[BacktestFreqAIInputs] + dry_run_wallet: Optional[float] = None + backtest_cache: Optional[str] = None + freqaimodel: Optional[str] = None + freqai: Optional[BacktestFreqAIInputs] = None class BacktestResponse(BaseModel): @@ -515,7 +515,7 @@ class BacktestResponse(BaseModel): status_msg: str step: str progress: float - trade_count: Optional[float] + trade_count: Optional[float] = None # TODO: Properly type backtestresult... backtest_result: SerializeAsAny[Optional[Dict[str, Any]]] = None @@ -534,5 +534,5 @@ class SysInfo(BaseModel): class Health(BaseModel): - last_process: Optional[datetime] - last_process_ts: Optional[int] + last_process: Optional[datetime] = None + last_process_ts: Optional[int] = None