| 
							 | 
						 | 
					
					
						
						| 
							 | 
						""" | 
					
					
						
						| 
							 | 
						Check Git status and configuration for Hugging Face Space deployment. | 
					
					
						
						| 
							 | 
						This script helps troubleshoot git issues when deploying to Hugging Face Spaces. | 
					
					
						
						| 
							 | 
						""" | 
					
					
						
						| 
							 | 
						import subprocess | 
					
					
						
						| 
							 | 
						import os | 
					
					
						
						| 
							 | 
						import sys | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						def run_cmd(cmd, description, show_output=True): | 
					
					
						
						| 
							 | 
						    """Run a command and return the result.""" | 
					
					
						
						| 
							 | 
						    print(f"\n{description}:") | 
					
					
						
						| 
							 | 
						    try: | 
					
					
						
						| 
							 | 
						        if show_output: | 
					
					
						
						| 
							 | 
						            subprocess.run(cmd, check=True) | 
					
					
						
						| 
							 | 
						            return True | 
					
					
						
						| 
							 | 
						        else: | 
					
					
						
						| 
							 | 
						            result = subprocess.run(cmd, check=True, capture_output=True, text=True) | 
					
					
						
						| 
							 | 
						            return result.stdout.strip() | 
					
					
						
						| 
							 | 
						    except subprocess.CalledProcessError as e: | 
					
					
						
						| 
							 | 
						        print(f"Error: {e}") | 
					
					
						
						| 
							 | 
						        if e.stderr: | 
					
					
						
						| 
							 | 
						            print(f"Details: {e.stderr}") | 
					
					
						
						| 
							 | 
						        return False | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						def check_git_installation(): | 
					
					
						
						| 
							 | 
						    """Check if git is installed and properly configured.""" | 
					
					
						
						| 
							 | 
						    print("="*50) | 
					
					
						
						| 
							 | 
						    print("Checking Git Installation and Configuration") | 
					
					
						
						| 
							 | 
						    print("="*50) | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    if not run_cmd(["git", "--version"], "Git version"): | 
					
					
						
						| 
							 | 
						        print("Git is not installed. Please install Git and try again.") | 
					
					
						
						| 
							 | 
						        return False | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    user_name = run_cmd(["git", "config", "user.name"], "Git user name", False) | 
					
					
						
						| 
							 | 
						    user_email = run_cmd(["git", "config", "user.email"], "Git user email", False) | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    if not user_name or not user_email: | 
					
					
						
						| 
							 | 
						        print("\nGit user name or email is not configured. Please set them:") | 
					
					
						
						| 
							 | 
						        print("  git config --global user.name \"Your Name\"") | 
					
					
						
						| 
							 | 
						        print("  git config --global user.email \"your.email@example.com\"") | 
					
					
						
						| 
							 | 
						         | 
					
					
						
						| 
							 | 
						         | 
					
					
						
						| 
							 | 
						        if input("\nDo you want to set them now? (y/n): ").lower() == 'y': | 
					
					
						
						| 
							 | 
						            name = input("Enter your name: ") | 
					
					
						
						| 
							 | 
						            email = input("Enter your email: ") | 
					
					
						
						| 
							 | 
						            run_cmd(["git", "config", "--global", "user.name", name], "Setting Git user name", False) | 
					
					
						
						| 
							 | 
						            run_cmd(["git", "config", "--global", "user.email", email], "Setting Git user email", False) | 
					
					
						
						| 
							 | 
						            print("Git configuration updated.") | 
					
					
						
						| 
							 | 
						        else: | 
					
					
						
						| 
							 | 
						            return False | 
					
					
						
						| 
							 | 
						    else: | 
					
					
						
						| 
							 | 
						        print(f"\nGit user name: {user_name}") | 
					
					
						
						| 
							 | 
						        print(f"Git user email: {user_email}") | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    return True | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						def check_git_repository(): | 
					
					
						
						| 
							 | 
						    """Check the Git repository status.""" | 
					
					
						
						| 
							 | 
						    print("\n" + "="*50) | 
					
					
						
						| 
							 | 
						    print("Checking Git Repository Status") | 
					
					
						
						| 
							 | 
						    print("="*50) | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    is_git_repo = os.path.exists(".git") | 
					
					
						
						| 
							 | 
						    print(f"\nIs Git repository: {'Yes' if is_git_repo else 'No'}") | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    if not is_git_repo: | 
					
					
						
						| 
							 | 
						        print("This is not a git repository. You can initialize it with 'git init'") | 
					
					
						
						| 
							 | 
						         | 
					
					
						
						| 
							 | 
						         | 
					
					
						
						| 
							 | 
						        if input("\nDo you want to initialize git now? (y/n): ").lower() == 'y': | 
					
					
						
						| 
							 | 
						            run_cmd(["git", "init"], "Initializing Git repository") | 
					
					
						
						| 
							 | 
						            print("Git repository initialized.") | 
					
					
						
						| 
							 | 
						        else: | 
					
					
						
						| 
							 | 
						            return False | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    run_cmd(["git", "status"], "Git status") | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    run_cmd(["git", "remote", "-v"], "Git remotes") | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    return True | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						def check_huggingface_configuration(): | 
					
					
						
						| 
							 | 
						    """Check Hugging Face-specific configurations.""" | 
					
					
						
						| 
							 | 
						    print("\n" + "="*50) | 
					
					
						
						| 
							 | 
						    print("Checking Hugging Face Configuration") | 
					
					
						
						| 
							 | 
						    print("="*50) | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    try: | 
					
					
						
						| 
							 | 
						        import huggingface_hub | 
					
					
						
						| 
							 | 
						        print(f"\nhuggingface_hub version: {huggingface_hub.__version__}") | 
					
					
						
						| 
							 | 
						    except ImportError: | 
					
					
						
						| 
							 | 
						        print("\nhuggingface_hub is not installed. Installing...") | 
					
					
						
						| 
							 | 
						        subprocess.run([sys.executable, "-m", "pip", "install", "huggingface_hub"], check=True) | 
					
					
						
						| 
							 | 
						        print("huggingface_hub installed.") | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    hf_username = os.environ.get("HF_USERNAME") | 
					
					
						
						| 
							 | 
						    hf_token = os.environ.get("HF_TOKEN") | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    print(f"\nHF_USERNAME is {'set' if hf_username else 'not set'}") | 
					
					
						
						| 
							 | 
						    print(f"HF_TOKEN is {'set' if hf_token else 'not set'}") | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    if not hf_username or not hf_token: | 
					
					
						
						| 
							 | 
						        print("\nPlease set HF_USERNAME and HF_TOKEN environment variables.") | 
					
					
						
						| 
							 | 
						        print("You can run the deploy_to_hf.py script to do this.") | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    return True | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						def main(): | 
					
					
						
						| 
							 | 
						    """Main function to check git status.""" | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    if not check_git_installation(): | 
					
					
						
						| 
							 | 
						        print("\nGit installation or configuration issue. Please fix and try again.") | 
					
					
						
						| 
							 | 
						        return | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    if not check_git_repository(): | 
					
					
						
						| 
							 | 
						        print("\nGit repository issue. Please fix and try again.") | 
					
					
						
						| 
							 | 
						        return | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    if not check_huggingface_configuration(): | 
					
					
						
						| 
							 | 
						        print("\nHugging Face configuration issue. Please fix and try again.") | 
					
					
						
						| 
							 | 
						        return | 
					
					
						
						| 
							 | 
						     | 
					
					
						
						| 
							 | 
						    print("\n" + "="*50) | 
					
					
						
						| 
							 | 
						    print("Git status check completed successfully!") | 
					
					
						
						| 
							 | 
						    print("="*50) | 
					
					
						
						| 
							 | 
						    print("\nYou are ready to deploy to Hugging Face Spaces.") | 
					
					
						
						| 
							 | 
						    print("Run 'python deploy_to_hf.py' to begin deployment.") | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						if __name__ == "__main__": | 
					
					
						
						| 
							 | 
						    main()  |