umar8902 commited on
Commit
6bd0a08
Β·
verified Β·
1 Parent(s): e0e9078

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -6
app.py CHANGED
@@ -12,7 +12,6 @@ import requests
12
  import uuid
13
  import base64
14
  import io
15
- from huggingface_hub import HfApi
16
  from werkzeug.security import generate_password_hash, check_password_hash
17
 
18
  from dotenv import load_dotenv
@@ -26,7 +25,15 @@ CORS(app, resources={r"/*": {"origins": "*"}}, supports_credentials=True)
26
  HF_TOKEN = os.environ.get("HF_TOKEN", "").strip()
27
  HF_USER_DATA_REPO = os.environ.get("HF_USER_DATA_REPO", "").strip()
28
  HF_USER_DATA_PATH = os.environ.get("HF_USER_DATA_PATH", "users.json").strip() or "users.json"
29
- hf_api = HfApi(token=HF_TOKEN) if HF_TOKEN else None
 
 
 
 
 
 
 
 
30
 
31
  ## ── SECRETS ──────────────────────────────────────────────────────────────────
32
  # Pull keys from environment variables for secure web deployment
@@ -75,11 +82,12 @@ def _base_users_payload():
75
 
76
 
77
  def load_users_from_hf():
78
- if not hf_api or not HF_USER_DATA_REPO:
 
79
  raise RuntimeError("Hugging Face is not configured. Set HF_TOKEN and HF_USER_DATA_REPO.")
80
 
81
  try:
82
- downloaded_path = hf_api.hf_hub_download(
83
  repo_id=HF_USER_DATA_REPO,
84
  filename=HF_USER_DATA_PATH,
85
  repo_type="dataset",
@@ -106,7 +114,8 @@ def load_users_from_hf():
106
 
107
 
108
  def save_users_to_hf(payload, commit_message):
109
- if not hf_api or not HF_USER_DATA_REPO:
 
110
  raise RuntimeError("Hugging Face is not configured. Set HF_TOKEN and HF_USER_DATA_REPO.")
111
 
112
  with tempfile.NamedTemporaryFile("w", suffix=".json", delete=False, encoding="utf-8") as temp_file:
@@ -114,7 +123,7 @@ def save_users_to_hf(payload, commit_message):
114
  temp_file_path = temp_file.name
115
 
116
  try:
117
- hf_api.upload_file(
118
  path_or_fileobj=temp_file_path,
119
  path_in_repo=HF_USER_DATA_PATH,
120
  repo_id=HF_USER_DATA_REPO,
 
12
  import uuid
13
  import base64
14
  import io
 
15
  from werkzeug.security import generate_password_hash, check_password_hash
16
 
17
  from dotenv import load_dotenv
 
25
  HF_TOKEN = os.environ.get("HF_TOKEN", "").strip()
26
  HF_USER_DATA_REPO = os.environ.get("HF_USER_DATA_REPO", "").strip()
27
  HF_USER_DATA_PATH = os.environ.get("HF_USER_DATA_PATH", "users.json").strip() or "users.json"
28
+ hf_api = None
29
+
30
+
31
+ def get_hf_api():
32
+ global hf_api
33
+ if hf_api is None and HF_TOKEN:
34
+ from huggingface_hub import HfApi
35
+ hf_api = HfApi(token=HF_TOKEN)
36
+ return hf_api
37
 
38
  ## ── SECRETS ──────────────────────────────────────────────────────────────────
39
  # Pull keys from environment variables for secure web deployment
 
82
 
83
 
84
  def load_users_from_hf():
85
+ api = get_hf_api()
86
+ if not api or not HF_USER_DATA_REPO:
87
  raise RuntimeError("Hugging Face is not configured. Set HF_TOKEN and HF_USER_DATA_REPO.")
88
 
89
  try:
90
+ downloaded_path = api.hf_hub_download(
91
  repo_id=HF_USER_DATA_REPO,
92
  filename=HF_USER_DATA_PATH,
93
  repo_type="dataset",
 
114
 
115
 
116
  def save_users_to_hf(payload, commit_message):
117
+ api = get_hf_api()
118
+ if not api or not HF_USER_DATA_REPO:
119
  raise RuntimeError("Hugging Face is not configured. Set HF_TOKEN and HF_USER_DATA_REPO.")
120
 
121
  with tempfile.NamedTemporaryFile("w", suffix=".json", delete=False, encoding="utf-8") as temp_file:
 
123
  temp_file_path = temp_file.name
124
 
125
  try:
126
+ api.upload_file(
127
  path_or_fileobj=temp_file_path,
128
  path_in_repo=HF_USER_DATA_PATH,
129
  repo_id=HF_USER_DATA_REPO,