crypto-walk / config.py
pymmdrza's picture
Update config.py
a357b18 verified
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"