Spaces:
Runtime error
Runtime error
| """Update Hugging Face Space using git commands.""" | |
| import os | |
| import subprocess | |
| import logging | |
| from pathlib import Path | |
| import shutil | |
| from huggingface_hub import HfApi | |
| from dotenv import load_dotenv | |
| # Configure logging | |
| logging.basicConfig(level=logging.INFO) | |
| logger = logging.getLogger(__name__) | |
| def run_command(command, cwd=None): | |
| """Run a shell command and log output.""" | |
| try: | |
| result = subprocess.run( | |
| command, | |
| shell=True, | |
| check=True, | |
| text=True, | |
| capture_output=True, | |
| cwd=cwd | |
| ) | |
| logger.info(f"Command output: {result.stdout}") | |
| return True | |
| except subprocess.CalledProcessError as e: | |
| logger.error(f"Command failed: {e.stderr}") | |
| return False | |
| def update_space(): | |
| """Update the Hugging Face Space using git commands.""" | |
| try: | |
| # Load environment variables | |
| load_dotenv() | |
| token = os.getenv("HUGGINGFACE_TOKEN") | |
| if not token: | |
| raise ValueError("HUGGINGFACE_TOKEN not found in environment variables") | |
| # Space configuration | |
| SPACE_NAME = "nananie143/agentic-system" | |
| REPO_URL = f"https://huggingface.co/spaces/{SPACE_NAME}" | |
| logger.info("Starting Space update process...") | |
| # 1. Initialize Hugging Face API | |
| api = HfApi(token=token) | |
| # 2. Create the Space if it doesn't exist | |
| logger.info("Creating/Checking Space...") | |
| try: | |
| api.create_repo( | |
| repo_id=SPACE_NAME, | |
| repo_type="space", | |
| space_sdk="gradio", | |
| private=False, | |
| exist_ok=True | |
| ) | |
| except Exception as e: | |
| logger.warning(f"Note about Space creation: {e}") | |
| # 3. Set up the repository directory | |
| repo_dir = Path("space_repo") | |
| if repo_dir.exists(): | |
| logger.info("Cleaning up existing repository...") | |
| shutil.rmtree(repo_dir) | |
| # 4. Clone the Space repository with token | |
| logger.info("Cloning Space repository...") | |
| clone_url = f"https://user:{token}@huggingface.co/spaces/{SPACE_NAME}" | |
| run_command(f"git clone {clone_url} {repo_dir}") | |
| # 5. Copy files to the repository | |
| logger.info("Copying files to repository...") | |
| files_to_copy = [ | |
| "app.py", | |
| "agentic_system.py", | |
| "requirements.txt", | |
| "space.yml", | |
| "download_models_space.py", | |
| "app_space.sh", | |
| "reasoning", | |
| "orchestrator.py", | |
| "team_management.py", | |
| "meta_learning.py", | |
| "config.py" | |
| ] | |
| for file in files_to_copy: | |
| src = Path(file) | |
| dst = repo_dir / src.name | |
| if src.is_file(): | |
| shutil.copy2(src, dst) | |
| elif src.is_dir(): | |
| if dst.exists(): | |
| shutil.rmtree(dst) | |
| shutil.copytree(src, dst) | |
| # 6. Configure git | |
| logger.info("Configuring git...") | |
| run_command('git config user.email "cascade@codeium.com"', cwd=repo_dir) | |
| run_command('git config user.name "Cascade Bot"', cwd=repo_dir) | |
| # 7. Add and commit changes | |
| logger.info("Committing changes...") | |
| run_command("git add .", cwd=repo_dir) | |
| run_command('git commit -m "Update Space with latest changes and model configurations"', cwd=repo_dir) | |
| # 8. Push changes | |
| logger.info("Pushing changes to Space...") | |
| run_command("git push", cwd=repo_dir) | |
| # 9. Clean up | |
| logger.info("Cleaning up...") | |
| shutil.rmtree(repo_dir) | |
| logger.info(f"Space updated successfully! Visit: {REPO_URL}") | |
| return True | |
| except Exception as e: | |
| logger.error(f"Error updating Space: {e}") | |
| return False | |
| if __name__ == "__main__": | |
| update_space() | |