Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -2,7 +2,7 @@ import gradio as gr
|
|
2 |
import requests
|
3 |
from huggingface_hub import create_repo, list_models, upload_file
|
4 |
|
5 |
-
# — USER INFO & MODEL LISTING —
|
6 |
|
7 |
def show_profile(profile: gr.OAuthProfile | None) -> str:
|
8 |
if profile is None:
|
@@ -11,7 +11,7 @@ def show_profile(profile: gr.OAuthProfile | None) -> str:
|
|
11 |
|
12 |
def list_private_models(
|
13 |
profile: gr.OAuthProfile | None,
|
14 |
-
oauth_token: gr.OAuthToken
|
15 |
) -> str:
|
16 |
if profile is None or oauth_token is None:
|
17 |
return "Please log in to see your models."
|
@@ -19,37 +19,33 @@ def list_private_models(
|
|
19 |
f"{m.id} ({'private' if m.private else 'public'})"
|
20 |
for m in list_models(author=profile.username, token=oauth_token.token)
|
21 |
]
|
22 |
-
return (
|
23 |
-
"No models found."
|
24 |
-
if not models
|
25 |
-
else "Models:\n\n" + "\n - ".join(models)
|
26 |
-
)
|
27 |
|
28 |
-
# — BUTTON‑ENABLING HELPERS —
|
29 |
|
30 |
def enable_create(
|
31 |
profile: gr.OAuthProfile | None,
|
32 |
oauth_token: gr.OAuthToken | None
|
33 |
-
)
|
34 |
"""Enable Create Space once logged in."""
|
35 |
return gr.update(interactive=profile is not None)
|
36 |
|
37 |
def enable_repo_actions(
|
38 |
repo_id: str,
|
39 |
profile: gr.OAuthProfile | None,
|
40 |
-
oauth_token: gr.OAuthToken
|
41 |
-
)
|
42 |
"""Enable Upload & Get Logs once space exists and logged in."""
|
43 |
return gr.update(interactive=bool(repo_id and profile and oauth_token))
|
44 |
|
45 |
-
# — CORE ACTIONS —
|
46 |
|
47 |
def create_space(
|
48 |
repo_name: str,
|
49 |
sdk: str,
|
50 |
profile: gr.OAuthProfile | None,
|
51 |
-
oauth_token: gr.OAuthToken
|
52 |
-
) -> tuple[str,str,str]:
|
53 |
if profile is None or oauth_token is None:
|
54 |
return "", "⚠️ Please log in first.", "<p>No Space created yet.</p>"
|
55 |
repo_id = f"{profile.username}/{repo_name}"
|
@@ -70,7 +66,7 @@ def upload_file_to_space(
|
|
70 |
path_in_repo: str,
|
71 |
repo_id: str,
|
72 |
profile: gr.OAuthProfile | None,
|
73 |
-
oauth_token: gr.OAuthToken
|
74 |
) -> str:
|
75 |
if profile is None or oauth_token is None:
|
76 |
return "⚠️ Please log in first."
|
@@ -90,7 +86,7 @@ def upload_file_to_space(
|
|
90 |
def get_space_logs(
|
91 |
repo_id: str,
|
92 |
profile: gr.OAuthProfile | None,
|
93 |
-
oauth_token: gr.OAuthToken
|
94 |
) -> str:
|
95 |
if profile is None or oauth_token is None or not repo_id:
|
96 |
return "⚠️ Please log in and create a Space first."
|
@@ -102,7 +98,7 @@ def get_space_logs(
|
|
102 |
entries = resp.json()
|
103 |
return "\n".join(e.get("text","") for e in entries)
|
104 |
|
105 |
-
# — BUILD THE UI —
|
106 |
|
107 |
with gr.Blocks(title="HF OAuth + Space Manager") as demo:
|
108 |
gr.Markdown(
|
@@ -126,7 +122,7 @@ with gr.Blocks(title="HF OAuth + Space Manager") as demo:
|
|
126 |
# — CREATE SPACE —
|
127 |
repo_name = gr.Textbox(label="New Space name", placeholder="my-space")
|
128 |
sdk_selector = gr.Radio(
|
129 |
-
choices=["gradio","streamlit"],
|
130 |
value="gradio",
|
131 |
label="Space template (SDK)"
|
132 |
)
|
|
|
2 |
import requests
|
3 |
from huggingface_hub import create_repo, list_models, upload_file
|
4 |
|
5 |
+
# — USER INFO & MODEL LISTING —
|
6 |
|
7 |
def show_profile(profile: gr.OAuthProfile | None) -> str:
|
8 |
if profile is None:
|
|
|
11 |
|
12 |
def list_private_models(
|
13 |
profile: gr.OAuthProfile | None,
|
14 |
+
oauth_token: gr.OAuthToken | None
|
15 |
) -> str:
|
16 |
if profile is None or oauth_token is None:
|
17 |
return "Please log in to see your models."
|
|
|
19 |
f"{m.id} ({'private' if m.private else 'public'})"
|
20 |
for m in list_models(author=profile.username, token=oauth_token.token)
|
21 |
]
|
22 |
+
return "No models found." if not models else "Models:\n\n" + "\n - ".join(models)
|
|
|
|
|
|
|
|
|
23 |
|
24 |
+
# — BUTTON‑ENABLING HELPERS —
|
25 |
|
26 |
def enable_create(
|
27 |
profile: gr.OAuthProfile | None,
|
28 |
oauth_token: gr.OAuthToken | None
|
29 |
+
):
|
30 |
"""Enable Create Space once logged in."""
|
31 |
return gr.update(interactive=profile is not None)
|
32 |
|
33 |
def enable_repo_actions(
|
34 |
repo_id: str,
|
35 |
profile: gr.OAuthProfile | None,
|
36 |
+
oauth_token: gr.OAuthToken | None
|
37 |
+
):
|
38 |
"""Enable Upload & Get Logs once space exists and logged in."""
|
39 |
return gr.update(interactive=bool(repo_id and profile and oauth_token))
|
40 |
|
41 |
+
# — CORE ACTIONS —
|
42 |
|
43 |
def create_space(
|
44 |
repo_name: str,
|
45 |
sdk: str,
|
46 |
profile: gr.OAuthProfile | None,
|
47 |
+
oauth_token: gr.OAuthToken | None
|
48 |
+
) -> tuple[str, str, str]:
|
49 |
if profile is None or oauth_token is None:
|
50 |
return "", "⚠️ Please log in first.", "<p>No Space created yet.</p>"
|
51 |
repo_id = f"{profile.username}/{repo_name}"
|
|
|
66 |
path_in_repo: str,
|
67 |
repo_id: str,
|
68 |
profile: gr.OAuthProfile | None,
|
69 |
+
oauth_token: gr.OAuthToken | None
|
70 |
) -> str:
|
71 |
if profile is None or oauth_token is None:
|
72 |
return "⚠️ Please log in first."
|
|
|
86 |
def get_space_logs(
|
87 |
repo_id: str,
|
88 |
profile: gr.OAuthProfile | None,
|
89 |
+
oauth_token: gr.OAuthToken | None
|
90 |
) -> str:
|
91 |
if profile is None or oauth_token is None or not repo_id:
|
92 |
return "⚠️ Please log in and create a Space first."
|
|
|
98 |
entries = resp.json()
|
99 |
return "\n".join(e.get("text","") for e in entries)
|
100 |
|
101 |
+
# — BUILD THE UI —
|
102 |
|
103 |
with gr.Blocks(title="HF OAuth + Space Manager") as demo:
|
104 |
gr.Markdown(
|
|
|
122 |
# — CREATE SPACE —
|
123 |
repo_name = gr.Textbox(label="New Space name", placeholder="my-space")
|
124 |
sdk_selector = gr.Radio(
|
125 |
+
choices=["gradio", "streamlit"],
|
126 |
value="gradio",
|
127 |
label="Space template (SDK)"
|
128 |
)
|