Experimentally type query property ...

This commit is contained in:
Matthias 2023-02-20 20:00:01 +01:00
parent c2c039151c
commit db4f4498dc
3 changed files with 13 additions and 8 deletions

View File

@ -6,7 +6,7 @@ from typing import Any, Dict
from sqlalchemy import create_engine, inspect from sqlalchemy import create_engine, inspect
from sqlalchemy.exc import NoSuchModuleError from sqlalchemy.exc import NoSuchModuleError
from sqlalchemy.orm import scoped_session, sessionmaker from sqlalchemy.orm import Session, scoped_session, sessionmaker
from sqlalchemy.pool import StaticPool from sqlalchemy.pool import StaticPool
from freqtrade.exceptions import OperationalException from freqtrade.exceptions import OperationalException
@ -20,6 +20,7 @@ logger = logging.getLogger(__name__)
_SQL_DOCS_URL = 'http://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls' _SQL_DOCS_URL = 'http://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls'
SessionType = scoped_session[Session]
def init_db(db_url: str) -> None: def init_db(db_url: str) -> None:

View File

@ -3,9 +3,11 @@ from typing import Any, ClassVar, Dict, Optional
from sqlalchemy import String, or_ from sqlalchemy import String, or_
from sqlalchemy.orm import Mapped, Query, mapped_column from sqlalchemy.orm import Mapped, Query, mapped_column
from sqlalchemy.orm.scoping import _QueryDescriptorType
from freqtrade.constants import DATETIME_PRINT_FORMAT from freqtrade.constants import DATETIME_PRINT_FORMAT
from freqtrade.persistence.base import ModelBase from freqtrade.persistence.base import ModelBase
from freqtrade.persistence.models import SessionType
class PairLock(ModelBase): class PairLock(ModelBase):
@ -13,8 +15,8 @@ class PairLock(ModelBase):
Pair Locks database model. Pair Locks database model.
""" """
__tablename__ = 'pairlocks' __tablename__ = 'pairlocks'
# TODO: Properly type query. query: ClassVar[_QueryDescriptorType]
query: ClassVar[Any] session: ClassVar[SessionType]
id: Mapped[int] = mapped_column(primary_key=True) id: Mapped[int] = mapped_column(primary_key=True)

View File

@ -9,6 +9,7 @@ from typing import Any, ClassVar, Dict, List, Optional
from sqlalchemy import Enum, Float, ForeignKey, Integer, String, UniqueConstraint, desc, func from sqlalchemy import Enum, Float, ForeignKey, Integer, String, UniqueConstraint, desc, func
from sqlalchemy.orm import Mapped, Query, lazyload, mapped_column, relationship from sqlalchemy.orm import Mapped, Query, lazyload, mapped_column, relationship
from sqlalchemy.orm.scoping import _QueryDescriptorType
from freqtrade.constants import (DATETIME_PRINT_FORMAT, MATH_CLOSE_PREC, NON_OPEN_EXCHANGE_STATES, from freqtrade.constants import (DATETIME_PRINT_FORMAT, MATH_CLOSE_PREC, NON_OPEN_EXCHANGE_STATES,
BuySell, LongShort) BuySell, LongShort)
@ -17,6 +18,7 @@ from freqtrade.exceptions import DependencyException, OperationalException
from freqtrade.exchange import amount_to_contract_precision, price_to_precision from freqtrade.exchange import amount_to_contract_precision, price_to_precision
from freqtrade.leverage import interest from freqtrade.leverage import interest
from freqtrade.persistence.base import ModelBase from freqtrade.persistence.base import ModelBase
from freqtrade.persistence.models import SessionType
from freqtrade.util import FtPrecise from freqtrade.util import FtPrecise
@ -35,8 +37,9 @@ class Order(ModelBase):
Mirrors CCXT Order structure Mirrors CCXT Order structure
""" """
__tablename__ = 'orders' __tablename__ = 'orders'
# TODO: Properly type query. query: ClassVar[_QueryDescriptorType]
query: ClassVar[Any] session: ClassVar[SessionType]
# Uniqueness should be ensured over pair, order_id # Uniqueness should be ensured over pair, order_id
# its likely that order_id is unique per Pair on some exchanges. # its likely that order_id is unique per Pair on some exchanges.
__table_args__ = (UniqueConstraint('ft_pair', 'order_id', name="_order_pair_order_id"),) __table_args__ = (UniqueConstraint('ft_pair', 'order_id', name="_order_pair_order_id"),)
@ -1172,9 +1175,8 @@ class Trade(ModelBase, LocalTrade):
Note: Fields must be aligned with LocalTrade class Note: Fields must be aligned with LocalTrade class
""" """
__tablename__ = 'trades' __tablename__ = 'trades'
# TODO: Type query type throughout. query: ClassVar[_QueryDescriptorType]
query: ClassVar[Any] session: ClassVar[SessionType] = None
session: ClassVar[Any] = None
use_db: bool = True use_db: bool = True