from io import BytesIO import requests import os from PIL import Image from github import Github image_list = [] # Utility Functions to be called from all modules # Function to convert a string to a dictionary def string_to_dict(string): return eval(string) # Function to return a list of keys of a nested dictionary using it's key value (item or creature) def keys_list(dict, index): keys_list=list(dict.keys()) return keys_list[index] # Create a list of a directory if directory exists def directory_contents(directory_path): if os.path.isdir(directory_path) : contents = os.listdir(directory_path) return contents else : pass # Delete a list of file def delete_files(file_paths): if file_paths: for file_path in file_paths: if file_path != ".keep": try: os.remove(f"./image_temp/{file_path}") print(f"Remove : ./image_temp/{file_path}") except OSError as e: print(f"Error: {file_path} : {e.strerror}") file_paths.clear() def open_image_from_url(image_url): response = requests.get(image_url) image_data = BytesIO(response.content) image = Image.open(image_data) return image def receive_upload(image_file): image = Image.open(image_file[0][0]) print(image) return image def index_image_paths(repo_name,directory_path): g = Github() # No token needed for public repos repo = g.get_repo(repo_name) contents = repo.get_contents(directory_path) files = [] for content_file in contents: if content_file.type == "file": media_url = content_file.download_url.replace("raw.githubusercontent.com", "media.githubusercontent.com/media") files.append(media_url) # Or content_file.path for just the path return files