stable/freqtrade/persistence/binanceannouncements.py
stefano 8fe5ee2a49 Improvements
- add StaticAnnouncementsPairList in AVAILABLE_PAIRLISTS
- handle Database persistance of BinanceAnnouncementsData
2021-10-24 16:03:26 +02:00

51 lines
1.2 KiB
Python

# -*- coding: utf-8 -*-
import pandas as pd
import pytz
from sqlalchemy import create_engine
from sqlalchemy.exc import ProgrammingError
from sqlalchemy.types import DateTime
TABLE = "binanceannouncements"
def get_engine(uri: str):
return create_engine(uri, pool_recycle=3600)
def get_connection(uri: str):
return get_engine(uri).connect()
def get_df(uri):
"""Get dataframe and the first time create DB."""
connection = get_connection(uri)
try:
return pd.read_sql_table(
table_name=TABLE,
con=connection,
index_col='index',
columns=['Token', 'Text', 'Link', 'Datetime discover', 'Datetime announcement'],
)
except ValueError as e:
return None
finally:
connection.close()
def save_df(df, uri):
"""Save dataframe on DB."""
connection = get_connection(uri)
try:
df.to_sql(
name=TABLE,
con=connection,
index=True,
index_label='index',
if_exists='replace',
dtype={"Datetime discover": DateTime(timezone=pytz.utc),
"Datetime announcement": DateTime(timezone=pytz.utc)}
)
finally:
connection.close()