62 lines
2.3 KiB
Python
62 lines
2.3 KiB
Python
import sys
|
|
import os
|
|
import shutil
|
|
import gradio
|
|
|
|
# Get the paths
|
|
module_path = os.path.join(sys.path[1],"scripts")
|
|
detect_module_path = os.path.join(sys.path[0], "detect_extension.py") # assuming the script is in the current directory
|
|
|
|
# Form the destination path
|
|
destination_path = os.path.join(module_path, "detect_extension.py")
|
|
|
|
# Check if the source file exists and is a file (not a directory),
|
|
# and if the file doesn't already exist at the destination,
|
|
# and if the module path is a valid directory
|
|
if os.path.isfile(detect_module_path) and not os.path.isfile(destination_path) and os.path.isdir(module_path):
|
|
# Copy the file
|
|
shutil.copyfile(detect_module_path, destination_path)
|
|
|
|
|
|
# Check the version of the gradio, if it is less than 3.28.1 then cancel the installation
|
|
is_right_version = False
|
|
|
|
# Getting the Gradio version
|
|
current_version = gradio.__version__
|
|
|
|
# Converting versions into tuples of numbers for easy comparison
|
|
def version_to_tuple(version_string):
|
|
return tuple(map(int, version_string.split('.')))
|
|
|
|
minimum_required_version = "3.28.1"
|
|
second_required_version = "3.32.0"
|
|
|
|
# Checking the Gradio version
|
|
if version_to_tuple(current_version) < version_to_tuple(minimum_required_version):
|
|
print("\nPlease update webui to the latest version for the canvas-zoom extension to work properly, supported versions from 1.1 \n")
|
|
elif version_to_tuple(current_version) <= version_to_tuple(second_required_version):
|
|
source_dir_name = 'v1_1_v1_5_1'
|
|
is_right_version = True
|
|
else:
|
|
source_dir_name = ''
|
|
is_right_version = True
|
|
|
|
if is_right_version:
|
|
# Moving files with replacement
|
|
canvasZoomPath = sys.path[0]
|
|
gradioPath = os.path.dirname(gradio.__file__)
|
|
|
|
source_dir = os.path.join(canvasZoomPath,"dist", source_dir_name, 'templates', 'frontend')
|
|
if not os.path.exists(source_dir):
|
|
canvasZoomPath = os.path.dirname(os.path.realpath(__file__))
|
|
source_dir = os.path.join(canvasZoomPath,"dist", source_dir_name, 'templates', 'frontend')
|
|
|
|
destination_dir = os.path.join(gradioPath, 'templates', 'frontend')
|
|
|
|
# Deleting the existing "templates" folder in the gradio folder, if it exists
|
|
if os.path.exists(destination_dir):
|
|
shutil.rmtree(destination_dir)
|
|
|
|
# Moving the "templates" folder from the canvasZoom folder to the gradio folder
|
|
shutil.copytree(source_dir, destination_dir)
|