Spaces:
Running
Running
Joseph Pollack
commited on
adds datasets repo name and simplifies repo ceration
Browse files- scripts/deploy_demo_space.py +53 -36
scripts/deploy_demo_space.py
CHANGED
@@ -480,31 +480,42 @@ os.environ['BRAND_PROJECT_URL'] = json.dumps({_json.dumps(self.brand_project_url
|
|
480 |
# Set HF token for CLI
|
481 |
os.environ['HF_TOKEN'] = self.hf_token
|
482 |
|
483 |
-
#
|
484 |
-
|
485 |
-
"hf", "
|
486 |
-
self.space_id,
|
487 |
-
"--type", "space"
|
|
|
488 |
]
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
if result.returncode != 0:
|
494 |
-
logger.warning(f"First attempt failed: {result.stderr}")
|
495 |
-
# Try alternative approach without space-specific flags
|
496 |
-
logger.info("Retrying with basic space creation...")
|
497 |
-
cmd = [
|
498 |
-
"hf", "repo", "create",
|
499 |
-
self.space_id
|
500 |
-
]
|
501 |
result = subprocess.run(cmd, capture_output=True, text=True)
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
|
|
|
|
506 |
else:
|
507 |
-
logger.error(f"β Failed to create space: {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
508 |
return False
|
509 |
|
510 |
except Exception as e:
|
@@ -626,20 +637,26 @@ os.environ['BRAND_PROJECT_URL'] = json.dumps({_json.dumps(self.brand_project_url
|
|
626 |
|
627 |
for file_path in temp_path.iterdir():
|
628 |
if file_path.is_file():
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
643 |
|
644 |
logger.info(f"β
Successfully uploaded {len(uploaded_files)} files to Space")
|
645 |
return True
|
|
|
480 |
# Set HF token for CLI
|
481 |
os.environ['HF_TOKEN'] = self.hf_token
|
482 |
|
483 |
+
# Try multiple CLI variants depending on installed version
|
484 |
+
cli_attempts = [
|
485 |
+
["hf", "space", "create", self.space_id, "--type", "gradio", "--hardware", "cpu-basic"],
|
486 |
+
["huggingface-cli", "space", "create", self.space_id, "--type", "gradio", "--hardware", "cpu-basic"],
|
487 |
+
["hf", "repo", "create", self.space_id, "--repo-type", "space"],
|
488 |
+
["huggingface-cli", "repo", "create", self.space_id, "--repo-type", "space"],
|
489 |
]
|
490 |
+
|
491 |
+
last_err = None
|
492 |
+
for cmd in cli_attempts:
|
493 |
+
logger.info(f"Running command: {' '.join(cmd)}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
494 |
result = subprocess.run(cmd, capture_output=True, text=True)
|
495 |
+
if result.returncode == 0:
|
496 |
+
logger.info(f"β
Space created (CLI): {self.space_url}")
|
497 |
+
break
|
498 |
+
else:
|
499 |
+
last_err = result.stderr
|
500 |
+
logger.warning(f"CLI attempt failed: {last_err}")
|
501 |
else:
|
502 |
+
logger.error(f"β Failed to create space via CLI: {last_err}")
|
503 |
+
return False
|
504 |
+
|
505 |
+
# Verify the space exists and is recognized as a space
|
506 |
+
try:
|
507 |
+
for _ in range(10):
|
508 |
+
try:
|
509 |
+
info = self.api.repo_info(self.space_id, repo_type="space")
|
510 |
+
if info: # type: ignore
|
511 |
+
logger.info("β
Verified space existence via API")
|
512 |
+
return True
|
513 |
+
except Exception:
|
514 |
+
time.sleep(2)
|
515 |
+
logger.error("β Space verification timed out after CLI creation")
|
516 |
+
return False
|
517 |
+
except Exception as e:
|
518 |
+
logger.error(f"β Error verifying space: {e}")
|
519 |
return False
|
520 |
|
521 |
except Exception as e:
|
|
|
637 |
|
638 |
for file_path in temp_path.iterdir():
|
639 |
if file_path.is_file():
|
640 |
+
# Retry uploads to absorb propagation delays
|
641 |
+
for attempt in range(5):
|
642 |
+
try:
|
643 |
+
upload_file(
|
644 |
+
path_or_fileobj=str(file_path),
|
645 |
+
path_in_repo=file_path.name,
|
646 |
+
repo_id=self.space_id,
|
647 |
+
repo_type="space",
|
648 |
+
token=self.hf_token
|
649 |
+
)
|
650 |
+
uploaded_files.append(file_path.name)
|
651 |
+
logger.info(f"β
Uploaded {file_path.name}")
|
652 |
+
break
|
653 |
+
except Exception as e:
|
654 |
+
if "404" in str(e) or "Not Found" in str(e):
|
655 |
+
logger.warning(f"Upload failed (likely propagation). Retry {attempt+1}/5 in 2s: {e}")
|
656 |
+
time.sleep(2)
|
657 |
+
continue
|
658 |
+
logger.error(f"β Failed to upload {file_path.name}: {e}")
|
659 |
+
return False
|
660 |
|
661 |
logger.info(f"β
Successfully uploaded {len(uploaded_files)} files to Space")
|
662 |
return True
|