Spaces:
Sleeping
Sleeping
File size: 1,938 Bytes
149a034 a357b18 149a034 a357b18 149a034 a357b18 149a034 a357b18 149a034 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
import json
import os
import ccxt
import openai
SESSION_FILE = ".session.json"
class SessionManager:
def __init__(self):
self.openai_key = None
self.kucoin_key = None
self.kucoin_secret = None
self.kucoin_passphrase = None
self.provider = "OpenAI"
self.hf_token = None
self._load()
def _load(self):
if os.path.exists(SESSION_FILE):
with open(SESSION_FILE, "r") as f:
data = json.load(f)
self.__dict__.update(data)
def set_keys(
self, openai_key, kucoin_key, kucoin_secret, kucoin_pass, provider, hf_token
):
self.openai_key = openai_key
self.kucoin_key = kucoin_key
self.kucoin_secret = kucoin_secret
self.kucoin_passphrase = kucoin_pass
self.provider = provider
self.hf_token = hf_token
with open(SESSION_FILE, "w") as f:
json.dump(self.__dict__, f)
def clear(self):
if os.path.exists(SESSION_FILE):
os.remove(SESSION_FILE)
self.__init__()
def is_ready(self):
return all([self.kucoin_key, self.kucoin_secret, self.kucoin_passphrase]) and (
self.openai_key if self.provider == "OpenAI" else self.hf_token
)
def validate_all_keys(session: SessionManager):
try:
kucoin = ccxt.kucoinfutures(
{
"apiKey": session.kucoin_key,
"secret": session.kucoin_secret,
"password": session.kucoin_passphrase,
}
)
_ = kucoin.fetch_balance()
except Exception as e:
return False, f"❌ KuCoin error: {e}"
if session.provider == "OpenAI":
try:
openai.api_key = session.openai_key
_ = openai.models.list()
except Exception as e:
return False, f"❌ OpenAI error: {e}"
return True, "✅ API keys valid and ready"
|