Spaces:
Running
Running
File size: 4,759 Bytes
e729f97 b8abf64 e729f97 b8abf64 e729f97 b8abf64 e729f97 b8abf64 e729f97 b8abf64 e729f97 a05f4a6 e729f97 a05f4a6 e729f97 a05f4a6 e729f97 7d58ebe a05f4a6 e729f97 a05f4a6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
import os, json, re
from googleapiclient.discovery import build
from googleapiclient.http import MediaFileUpload
from google.oauth2 import service_account
import base64
from PIL import Image
from PIL import Image
from io import BytesIO
from vouchervision.general_utils import get_cfg_from_full_path
def setup_streamlit_config(dir_home):
# Define the directory path and filename
dir_path = os.path.join(dir_home, ".streamlit")
file_path = os.path.join(dir_path, "config.toml")
# Check if directory exists, if not create it
if not os.path.exists(dir_path):
os.makedirs(dir_path)
# Create or modify the file with the provided content
config_content = f"""
[theme]
base = "dark"
primaryColor = "#00ff00"
[server]
enableStaticServing = false
runOnSave = true
port = 8524
maxUploadSize = 5000
"""
with open(file_path, "w") as f:
f.write(config_content.strip())
def save_uploaded_file(directory, img_file, image=None):
if not os.path.exists(directory):
os.makedirs(directory)
# Assuming the uploaded file is an image
if image is None:
try:
with Image.open(img_file) as image:
full_path = os.path.join(directory, img_file.name)
image.save(full_path, "JPEG")
# Return the full path of the saved image
return full_path
except:
with Image.open(os.path.join(directory,img_file)) as image:
full_path = os.path.join(directory, img_file)
image.save(full_path, "JPEG")
# Return the full path of the saved image
return full_path
else:
try:
full_path = os.path.join(directory, img_file.name)
image.save(full_path, "JPEG")
return full_path
except:
full_path = os.path.join(directory, img_file)
image.save(full_path, "JPEG")
return full_path
def save_uploaded_local(directory, img_file, image=None):
name = img_file.split(os.path.sep)[-1]
if not os.path.exists(directory):
os.makedirs(directory)
# Assuming the uploaded file is an image
if image is None:
with Image.open(img_file) as image:
full_path = os.path.join(directory, name)
image.save(full_path, "JPEG")
# Return the full path of the saved image
return os.path.join('uploads_small',name)
else:
full_path = os.path.join(directory, name)
image.save(full_path, "JPEG")
return os.path.join('.','uploads_small',name)
def image_to_base64(img):
buffered = BytesIO()
img.save(buffered, format="JPEG")
return base64.b64encode(buffered.getvalue()).decode()
def check_prompt_yaml_filename(fname):
# Check if the filename only contains letters, numbers, underscores, and dashes
pattern = r'^[\w-]+$'
# The \w matches any alphanumeric character and is equivalent to the character class [a-zA-Z0-9_].
# The hyphen - is literally matched.
if re.match(pattern, fname):
return True
else:
return False
# Function to upload files to Google Drive
def upload_to_drive(filepath, filename):
# Parse the service account info from the environment variable
creds_info = os.environ.get('GDRIVE_API')
if creds_info:
creds_info = json.loads(creds_info)
creds = service_account.Credentials.from_service_account_info(
creds_info, scopes=["https://www.googleapis.com/auth/drive"]
)
service = build('drive', 'v3', credentials=creds)
# Get the folder ID from the environment variable
folder_id = os.environ.get('GDRIVE_FOLDER_ID') # Renamed for clarity
if folder_id:
file_metadata = {
'name': filename,
'parents': [folder_id]
}
# Determine the mimetype based on the file extension
if filename.endswith('.yaml') or filename.endswith('.yml'):
mimetype = 'application/x-yaml'
elif filename.endswith('.zip'):
mimetype = 'application/zip'
else:
# Set a default mimetype if desired or handle the unsupported file type
print("Unsupported file type")
return None
# Upload the file
media = MediaFileUpload(filepath, mimetype=mimetype)
file = service.files().create(
body=file_metadata,
media_body=media,
fields='id'
).execute()
print(f"Uploaded file with ID: {file.get('id')}")
else:
print("GDRIVE_API environment variable not set.") |