cobramv12 commited on
Commit
b1fb00f
verified
1 Parent(s): f1230d4

Fix: Atomic sys.modules injection to bypass HfFolder removal

Browse files
Files changed (1) hide show
  1. app.py +25 -27
app.py CHANGED
@@ -1,42 +1,40 @@
1
  import sys
2
  import os
 
3
 
4
- # --- L脥NEA 1: PARCHE DE EMERGENCIA TOTAL (HfFolder + audioop) ---
5
- try:
6
- import huggingface_hub
7
- # Si la pieza falta en la librer铆a del servidor, la inyectamos manualmente
8
- if not hasattr(huggingface_hub, "HfFolder"):
9
- class MockHfFolder:
10
- @staticmethod
11
- def get_token(): return os.getenv("HF_TOKEN")
12
- @staticmethod
13
- def save_token(token): pass
14
- @staticmethod
15
- def delete_token(): pass
16
- huggingface_hub.HfFolder = MockHfFolder
17
- sys.modules["huggingface_hub.HfFolder"] = MockHfFolder
18
- print("HfFolder Patch Applied")
19
- except: pass
20
 
 
21
  try:
22
  import audioop_lts
23
  sys.modules["audioop"] = audioop_lts
24
- print("Audioop Patch Applied")
25
  except:
26
  from unittest.mock import MagicMock
27
  sys.modules["audioop"] = MagicMock()
28
- # --------------------------------------------------------------
29
 
30
  # --- PARCHE PARA EL BUG DE 'BOOL' EN GRADIO_CLIENT ---
31
- try:
32
- import gradio_client.utils as client_utils
33
- if hasattr(client_utils, "get_type"):
34
- old_get_type = client_utils.get_type
35
- def new_get_type(schema):
36
- if isinstance(schema, bool): return "Any"
37
- return old_get_type(schema)
38
- client_utils.get_type = new_get_type
39
- except: pass
40
  # -----------------------------------------------------
41
 
42
  import spaces
 
1
  import sys
2
  import os
3
+ from types import ModuleType
4
 
5
+ # --- L脥NEA 1: INYECCI脫N AT脫MICA DE M脫DULOS (FIX HfFolder) ---
6
+ # Creamos un m贸dulo falso para HfFolder y lo inyectamos en sys.modules
7
+ # Esto enga帽a a Gradio para que crea que la pieza que falta est谩 ah铆.
8
+ class MockHfFolder:
9
+ @staticmethod
10
+ def get_token(): return os.getenv("HF_TOKEN")
11
+ @staticmethod
12
+ def save_token(token): pass
13
+ @staticmethod
14
+ def delete_token(): pass
15
+
16
+ # Inyectamos tanto como atributo como subm贸dulo
17
+ import huggingface_hub
18
+ huggingface_hub.HfFolder = MockHfFolder
19
+ sys.modules["huggingface_hub.HfFolder"] = MockHfFolder
 
20
 
21
+ # Parche de Audio para Python 3.13
22
  try:
23
  import audioop_lts
24
  sys.modules["audioop"] = audioop_lts
 
25
  except:
26
  from unittest.mock import MagicMock
27
  sys.modules["audioop"] = MagicMock()
28
+ # -----------------------------------------------------------
29
 
30
  # --- PARCHE PARA EL BUG DE 'BOOL' EN GRADIO_CLIENT ---
31
+ import gradio_client.utils as client_utils
32
+ if hasattr(client_utils, "get_type"):
33
+ old_get_type = client_utils.get_type
34
+ def new_get_type(schema):
35
+ if isinstance(schema, bool): return "Any"
36
+ return old_get_type(schema)
37
+ client_utils.get_type = new_get_type
 
 
38
  # -----------------------------------------------------
39
 
40
  import spaces