Spaces:
Sleeping
Sleeping
Update storage.py
Browse files- storage.py +4 -13
storage.py
CHANGED
|
@@ -4,40 +4,31 @@ import time
|
|
| 4 |
import threading
|
| 5 |
|
| 6 |
DB_FILE = "hunter_data.db"
|
| 7 |
-
db_lock = threading.Lock()
|
| 8 |
|
| 9 |
def init_db():
|
| 10 |
with db_lock:
|
| 11 |
conn = sqlite3.connect(DB_FILE, check_same_thread=False)
|
| 12 |
c = conn.cursor()
|
| 13 |
c.execute('''CREATE TABLE IF NOT EXISTS results
|
| 14 |
-
(symbol TEXT PRIMARY KEY,
|
| 15 |
-
|
| 16 |
-
decision TEXT,
|
| 17 |
-
trend TEXT,
|
| 18 |
-
metrics TEXT,
|
| 19 |
-
reason TEXT,
|
| 20 |
-
timestamp REAL)''')
|
| 21 |
c.execute('''CREATE TABLE IF NOT EXISTS state
|
| 22 |
(key TEXT PRIMARY KEY, value TEXT)''')
|
| 23 |
conn.commit()
|
| 24 |
conn.close()
|
| 25 |
|
| 26 |
def save_result(data):
|
| 27 |
-
"""Thread-safe save."""
|
| 28 |
with db_lock:
|
| 29 |
conn = sqlite3.connect(DB_FILE, check_same_thread=False)
|
| 30 |
c = conn.cursor()
|
| 31 |
-
c.execute('''INSERT OR REPLACE INTO results
|
| 32 |
-
(symbol, score, decision, trend, metrics, reason, timestamp)
|
| 33 |
-
VALUES (?, ?, ?, ?, ?, ?, ?)''',
|
| 34 |
(data['Ticker'], data['Score'], data['Decision'],
|
| 35 |
data['Trend'], data['Key Metrics'], data['AI Reasoning'], time.time()))
|
| 36 |
conn.commit()
|
| 37 |
conn.close()
|
| 38 |
|
| 39 |
def fetch_results():
|
| 40 |
-
"""Thread-safe read."""
|
| 41 |
with db_lock:
|
| 42 |
conn = sqlite3.connect(DB_FILE, check_same_thread=False)
|
| 43 |
try:
|
|
|
|
| 4 |
import threading
|
| 5 |
|
| 6 |
DB_FILE = "hunter_data.db"
|
| 7 |
+
db_lock = threading.Lock()
|
| 8 |
|
| 9 |
def init_db():
|
| 10 |
with db_lock:
|
| 11 |
conn = sqlite3.connect(DB_FILE, check_same_thread=False)
|
| 12 |
c = conn.cursor()
|
| 13 |
c.execute('''CREATE TABLE IF NOT EXISTS results
|
| 14 |
+
(symbol TEXT PRIMARY KEY, score INTEGER, decision TEXT,
|
| 15 |
+
trend TEXT, metrics TEXT, reason TEXT, timestamp REAL)''')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
c.execute('''CREATE TABLE IF NOT EXISTS state
|
| 17 |
(key TEXT PRIMARY KEY, value TEXT)''')
|
| 18 |
conn.commit()
|
| 19 |
conn.close()
|
| 20 |
|
| 21 |
def save_result(data):
|
|
|
|
| 22 |
with db_lock:
|
| 23 |
conn = sqlite3.connect(DB_FILE, check_same_thread=False)
|
| 24 |
c = conn.cursor()
|
| 25 |
+
c.execute('''INSERT OR REPLACE INTO results VALUES (?, ?, ?, ?, ?, ?, ?)''',
|
|
|
|
|
|
|
| 26 |
(data['Ticker'], data['Score'], data['Decision'],
|
| 27 |
data['Trend'], data['Key Metrics'], data['AI Reasoning'], time.time()))
|
| 28 |
conn.commit()
|
| 29 |
conn.close()
|
| 30 |
|
| 31 |
def fetch_results():
|
|
|
|
| 32 |
with db_lock:
|
| 33 |
conn = sqlite3.connect(DB_FILE, check_same_thread=False)
|
| 34 |
try:
|