Fix some issues with types
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import ClassVar, Optional
|
from typing import ClassVar, Optional, Self, Sequence
|
||||||
|
|
||||||
from sqlalchemy import DateTime, ForeignKey, Integer, String, Text, UniqueConstraint, select
|
from sqlalchemy import DateTime, ForeignKey, Integer, String, Text, UniqueConstraint, select
|
||||||
from sqlalchemy.orm import Mapped, Query, mapped_column, relationship
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||||
|
|
||||||
from freqtrade.constants import DATETIME_PRINT_FORMAT
|
from freqtrade.constants import DATETIME_PRINT_FORMAT
|
||||||
from freqtrade.persistence.base import ModelBase, SessionType
|
from freqtrade.persistence.base import ModelBase, SessionType
|
||||||
@@ -45,16 +45,18 @@ class CustomData(ModelBase):
|
|||||||
f'value={self.cd_value}, trade_id={self.ft_trade_id}, created={create_time}, ' +
|
f'value={self.cd_value}, trade_id={self.ft_trade_id}, created={create_time}, ' +
|
||||||
f'updated={update_time})')
|
f'updated={update_time})')
|
||||||
|
|
||||||
@staticmethod
|
@classmethod
|
||||||
def query_cd(key: Optional[str] = None, trade_id: Optional[int] = None) -> Query:
|
def query_cd(cls, key: Optional[str] = None,
|
||||||
|
trade_id: Optional[int] = None) -> Sequence['CustomData']:
|
||||||
"""
|
"""
|
||||||
Get all CustomData, if trade_id is not specified
|
Get all CustomData, if trade_id is not specified
|
||||||
return will be for generic values not tied to a trade
|
return will be for generic values not tied to a trade
|
||||||
:param trade_id: id of the Trade
|
:param trade_id: id of the Trade
|
||||||
"""
|
"""
|
||||||
filters = []
|
filters = []
|
||||||
filters.append(CustomData.ft_trade_id == trade_id if trade_id is not None else 0)
|
if trade_id is not None:
|
||||||
|
filters.append(CustomData.ft_trade_id == trade_id)
|
||||||
if key is not None:
|
if key is not None:
|
||||||
filters.append(CustomData.cd_key.ilike(key))
|
filters.append(CustomData.cd_key.ilike(key))
|
||||||
|
|
||||||
return CustomData.session.scalars(select(CustomData))
|
return CustomData.session.scalars(select(CustomData)).all()
|
||||||
|
|||||||
@@ -37,11 +37,11 @@ class CustomDataWrapper:
|
|||||||
trade_id = 0
|
trade_id = 0
|
||||||
|
|
||||||
if CustomDataWrapper.use_db:
|
if CustomDataWrapper.use_db:
|
||||||
filtered_custom_data = CustomData.query_cd(trade_id=trade_id, key=key).all()
|
filtered_custom_data = []
|
||||||
for index, data_entry in enumerate(filtered_custom_data):
|
for data_entry in CustomData.query_cd(trade_id=trade_id, key=key):
|
||||||
if data_entry.cd_type not in CustomDataWrapper.unserialized_types:
|
if data_entry.cd_type not in CustomDataWrapper.unserialized_types:
|
||||||
data_entry.cd_value = json.loads(data_entry.cd_value)
|
data_entry.cd_value = json.loads(data_entry.cd_value)
|
||||||
filtered_custom_data[index] = data_entry
|
filtered_custom_data.append(data_entry)
|
||||||
return filtered_custom_data
|
return filtered_custom_data
|
||||||
else:
|
else:
|
||||||
filtered_custom_data = [
|
filtered_custom_data = [
|
||||||
@@ -110,6 +110,6 @@ class CustomDataWrapper:
|
|||||||
def get_all_custom_data() -> List[CustomData]:
|
def get_all_custom_data() -> List[CustomData]:
|
||||||
|
|
||||||
if CustomDataWrapper.use_db:
|
if CustomDataWrapper.use_db:
|
||||||
return CustomData.session.scalars(select(CustomData)).all()
|
return list(CustomData.query_cd())
|
||||||
else:
|
else:
|
||||||
return CustomDataWrapper.custom_data
|
return CustomDataWrapper.custom_data
|
||||||
|
|||||||
Reference in New Issue
Block a user