Spaces:
Running
Running
| import os | |
| import requests | |
| import yaml | |
| from colorama import Fore | |
| from git import Repo | |
| def clean_input(prompt: str = ""): | |
| try: | |
| return input(prompt) | |
| except KeyboardInterrupt: | |
| print("You interrupted Auto-GPT") | |
| print("Quitting...") | |
| exit(0) | |
| def validate_yaml_file(file: str): | |
| try: | |
| with open(file, encoding="utf-8") as fp: | |
| yaml.load(fp.read(), Loader=yaml.FullLoader) | |
| except FileNotFoundError: | |
| return (False, f"The file {Fore.CYAN}`{file}`{Fore.RESET} wasn't found") | |
| except yaml.YAMLError as e: | |
| return ( | |
| False, | |
| f"There was an issue while trying to read with your AI Settings file: {e}", | |
| ) | |
| return (True, f"Successfully validated {Fore.CYAN}`{file}`{Fore.RESET}!") | |
| def readable_file_size(size, decimal_places=2): | |
| """Converts the given size in bytes to a readable format. | |
| Args: | |
| size: Size in bytes | |
| decimal_places (int): Number of decimal places to display | |
| """ | |
| for unit in ["B", "KB", "MB", "GB", "TB"]: | |
| if size < 1024.0: | |
| break | |
| size /= 1024.0 | |
| return f"{size:.{decimal_places}f} {unit}" | |
| def get_bulletin_from_web() -> str: | |
| try: | |
| response = requests.get( | |
| "https://raw.githubusercontent.com/Significant-Gravitas/Auto-GPT/master/BULLETIN.md" | |
| ) | |
| if response.status_code == 200: | |
| return response.text | |
| except: | |
| return "" | |
| def get_current_git_branch() -> str: | |
| try: | |
| repo = Repo(search_parent_directories=True) | |
| branch = repo.active_branch | |
| return branch.name | |
| except: | |
| return "" | |
| def get_latest_bulletin() -> str: | |
| exists = os.path.exists("CURRENT_BULLETIN.md") | |
| current_bulletin = "" | |
| if exists: | |
| current_bulletin = open("CURRENT_BULLETIN.md", "r", encoding="utf-8").read() | |
| new_bulletin = get_bulletin_from_web() | |
| is_new_news = new_bulletin != current_bulletin | |
| if new_bulletin and is_new_news: | |
| open("CURRENT_BULLETIN.md", "w", encoding="utf-8").write(new_bulletin) | |
| return f" {Fore.RED}::UPDATED:: {Fore.CYAN}{new_bulletin}{Fore.RESET}" | |
| return current_bulletin | |