akhaliq HF Staff commited on
Commit
2923087
Β·
1 Parent(s): de2e4ad
Files changed (1) hide show
  1. app.py +43 -9
app.py CHANGED
@@ -2856,6 +2856,27 @@ with gr.Blocks(
2856
  return gr.update(value="πŸ”„ Update Space")
2857
  else:
2858
  return gr.update(value="πŸš€ Deploy App")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2859
 
2860
  # Load project button event
2861
  load_project_btn.click(
@@ -2872,6 +2893,10 @@ with gr.Blocks(
2872
  show_deploy_components,
2873
  None,
2874
  [space_name_input, sdk_dropdown, deploy_btn]
 
 
 
 
2875
  )
2876
  # Update preview when code or language changes
2877
  code_output.change(preview_logic, inputs=[code_output, language_dropdown], outputs=sandbox)
@@ -3128,18 +3153,27 @@ with gr.Blocks(
3128
  except Exception as e:
3129
  # Handle potential RepoUrl object errors
3130
  error_msg = str(e)
3131
- if "'url'" in error_msg or "RepoUrl" in error_msg and not is_update:
3132
- # Extract the URL from RepoUrl object if possible
3133
  try:
3134
- if 'duplicated_repo' in locals() and hasattr(duplicated_repo, 'url'):
3135
- repo_url = duplicated_repo.url
3136
- elif 'duplicated_repo' in locals() and hasattr(duplicated_repo, '_url'):
3137
- repo_url = duplicated_repo._url
 
 
 
 
 
 
 
3138
  else:
3139
- repo_url = f"https://huggingface.co/spaces/{repo_id}"
3140
- return gr.update(value=f"Error: Could not properly handle space creation response. Space may have been created successfully. Check: {repo_url}", visible=True)
3141
  except:
3142
- return gr.update(value=f"Error duplicating Transformers.js space: RepoUrl handling error. Please try again manually at https://huggingface.co/new-space", visible=True)
 
 
3143
 
3144
  # General error handling for both creation and updates
3145
  action_verb = "updating" if is_update else "duplicating"
 
2856
  return gr.update(value="πŸ”„ Update Space")
2857
  else:
2858
  return gr.update(value="πŸš€ Deploy App")
2859
+
2860
+ def preserve_space_info_for_followup(history):
2861
+ """Check if this is a followup on an imported project and preserve space info"""
2862
+ if not history or len(history) == 0:
2863
+ return [gr.update(), gr.update()]
2864
+
2865
+ # Look for imported project pattern in history
2866
+ for user_msg, assistant_msg in history:
2867
+ if assistant_msg and 'IMPORTED PROJECT FROM HUGGING FACE SPACE' in assistant_msg:
2868
+ # Extract space name from the imported project info
2869
+ import re
2870
+ space_match = re.search(r'Space:\s*([^\s\n]+)', assistant_msg)
2871
+ if space_match:
2872
+ space_name = space_match.group(1)
2873
+ return [
2874
+ gr.update(value=space_name, visible=True), # Update space name
2875
+ gr.update(value="πŸ”„ Update Space", visible=True) # Update button text
2876
+ ]
2877
+
2878
+ # No imported project found, return no changes
2879
+ return [gr.update(), gr.update()]
2880
 
2881
  # Load project button event
2882
  load_project_btn.click(
 
2893
  show_deploy_components,
2894
  None,
2895
  [space_name_input, sdk_dropdown, deploy_btn]
2896
+ ).then(
2897
+ preserve_space_info_for_followup,
2898
+ inputs=[history],
2899
+ outputs=[space_name_input, deploy_btn]
2900
  )
2901
  # Update preview when code or language changes
2902
  code_output.change(preview_logic, inputs=[code_output, language_dropdown], outputs=sandbox)
 
3153
  except Exception as e:
3154
  # Handle potential RepoUrl object errors
3155
  error_msg = str(e)
3156
+ if "'url'" in error_msg or "RepoUrl" in error_msg:
3157
+ # For RepoUrl object issues, check if the space was actually created successfully
3158
  try:
3159
+ # Check if space exists by trying to access it
3160
+ space_url = f"https://huggingface.co/spaces/{repo_id}"
3161
+ test_api = HfApi(token=token.token)
3162
+ space_exists = test_api.space_info(repo_id)
3163
+
3164
+ if space_exists and not is_update:
3165
+ # Space was created successfully despite the RepoUrl error
3166
+ return gr.update(value=f"βœ… Deployed! Space was created successfully despite a technical error. [Open your Transformers.js Space here]({space_url})", visible=True)
3167
+ elif space_exists and is_update:
3168
+ # Space was updated successfully despite the RepoUrl error
3169
+ return gr.update(value=f"βœ… Updated! Space was updated successfully despite a technical error. [Open your Transformers.js Space here]({space_url})", visible=True)
3170
  else:
3171
+ # Space doesn't exist, real error
3172
+ return gr.update(value=f"Error: Could not create/update space. Please try again manually at https://huggingface.co/new-space", visible=True)
3173
  except:
3174
+ # Fallback to informative error with link
3175
+ repo_url = f"https://huggingface.co/spaces/{repo_id}"
3176
+ return gr.update(value=f"Error: Could not properly handle space creation response. Space may have been created successfully. Check: {repo_url}", visible=True)
3177
 
3178
  # General error handling for both creation and updates
3179
  action_verb = "updating" if is_update else "duplicating"