Update most of Api schema to pydantic 2.0

This commit is contained in:
Matthias
2023-07-18 06:44:33 +02:00
parent 53c76160a7
commit cfdd01d295

View File

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