mirror of
https://github.com/Pakobbix/StartUI-oobabooga-webui
synced 2025-11-09 15:39:39 +00:00
made the update text-gen-webui update button to disappear if already at the newest commit
This commit is contained in:
parent
5e40ae8456
commit
c3696284fa
37
StartUI.py
37
StartUI.py
@ -1,4 +1,4 @@
|
|||||||
import sys, os, gpustat, json, subprocess, platform, psutil, re, requests, darkdetect, qdarkstyle, time
|
import sys, os, gpustat, json, subprocess, platform, psutil, re, requests, darkdetect, qdarkstyle, time, git
|
||||||
from PyQt5.QtWidgets import QApplication, QHBoxLayout, QToolBar, QMessageBox, QAction, QMainWindow, QSpinBox, QLabel, QVBoxLayout, QComboBox, QSlider, QCheckBox, QLineEdit, QFileDialog, QPushButton, QWidget, QListWidget, QListWidgetItem, QGridLayout, QRadioButton, QFrame
|
from PyQt5.QtWidgets import QApplication, QHBoxLayout, QToolBar, QMessageBox, QAction, QMainWindow, QSpinBox, QLabel, QVBoxLayout, QComboBox, QSlider, QCheckBox, QLineEdit, QFileDialog, QPushButton, QWidget, QListWidget, QListWidgetItem, QGridLayout, QRadioButton, QFrame
|
||||||
from PyQt5.QtCore import Qt
|
from PyQt5.QtCore import Qt
|
||||||
from PyQt5.QtGui import QDoubleValidator, QIntValidator
|
from PyQt5.QtGui import QDoubleValidator, QIntValidator
|
||||||
@ -11,6 +11,7 @@ profiles_folder = "./profiles"
|
|||||||
# Create the profile folder if it doesn't exist
|
# Create the profile folder if it doesn't exist
|
||||||
os.makedirs(profiles_folder, exist_ok=True)
|
os.makedirs(profiles_folder, exist_ok=True)
|
||||||
|
|
||||||
|
repo_path = "./text-generation-webui"
|
||||||
model_folder = "./text-generation-webui/models"
|
model_folder = "./text-generation-webui/models"
|
||||||
extensions_folder = "./text-generation-webui/extensions"
|
extensions_folder = "./text-generation-webui/extensions"
|
||||||
loras_folder = "./text-generation-webui/loras"
|
loras_folder = "./text-generation-webui/loras"
|
||||||
@ -90,6 +91,7 @@ class MainWindow(QMainWindow):
|
|||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
self.init_ui()
|
self.init_ui()
|
||||||
|
self.load_last_commit()
|
||||||
self.load_settings()
|
self.load_settings()
|
||||||
self.set_ram_slider_max()
|
self.set_ram_slider_max()
|
||||||
self.update_check()
|
self.update_check()
|
||||||
@ -221,6 +223,7 @@ class MainWindow(QMainWindow):
|
|||||||
# |_| |_|\__,_|_|_| |_| \_/\_/ |_|_| |_|\__,_|\___/ \_/\_/ #
|
# |_| |_|\__,_|_|_| |_| \_/\_/ |_|_| |_|\__,_|\___/ \_/\_/ #
|
||||||
# #
|
# #
|
||||||
###################################################################
|
###################################################################
|
||||||
|
|
||||||
layout = QGridLayout()
|
layout = QGridLayout()
|
||||||
layout.setColumnMinimumWidth(0, 350)
|
layout.setColumnMinimumWidth(0, 350)
|
||||||
layout.setColumnMinimumWidth(3, 30)
|
layout.setColumnMinimumWidth(3, 30)
|
||||||
@ -1905,15 +1908,6 @@ class MainWindow(QMainWindow):
|
|||||||
def on_update_button_clicked(self):
|
def on_update_button_clicked(self):
|
||||||
run_cmd_with_conda(f"python {webui_file} --update && exit")
|
run_cmd_with_conda(f"python {webui_file} --update && exit")
|
||||||
|
|
||||||
def load_profile(self, profile_file):
|
|
||||||
with open(profile_file, "r") as file:
|
|
||||||
try:
|
|
||||||
settings = json.load(file)
|
|
||||||
# Set the GUI elements based on the loaded settings...
|
|
||||||
except json.JSONDecodeError:
|
|
||||||
# Handle the case when the file is empty or not in valid JSON format
|
|
||||||
pass
|
|
||||||
|
|
||||||
def populate_profiles_dropdown(self):
|
def populate_profiles_dropdown(self):
|
||||||
self.profiles_dropdown.clear()
|
self.profiles_dropdown.clear()
|
||||||
profiles = [name for name in os.listdir(profiles_folder) if name.endswith(".json")]
|
profiles = [name for name in os.listdir(profiles_folder) if name.endswith(".json")]
|
||||||
@ -1928,6 +1922,29 @@ class MainWindow(QMainWindow):
|
|||||||
profile_name = selected_profile.replace(".json", "")
|
profile_name = selected_profile.replace(".json", "")
|
||||||
self.profile_name_textfield.setText(profile_name)
|
self.profile_name_textfield.setText(profile_name)
|
||||||
|
|
||||||
|
def load_last_commit(self):
|
||||||
|
last_commit = os.path.join("./text-generation-webui/.git/ORIG_HEAD")
|
||||||
|
if os.path.exists(last_commit):
|
||||||
|
with open(last_commit, "r") as file:
|
||||||
|
last_commit_sha = file.read()
|
||||||
|
print(last_commit_sha)
|
||||||
|
try:
|
||||||
|
current_commit = (self.get_current_commit_sha() + '\n') # Call the method within the class
|
||||||
|
print(current_commit)
|
||||||
|
if current_commit != last_commit_sha:
|
||||||
|
self.update_button.setVisible(True)
|
||||||
|
else:
|
||||||
|
self.update_button.setVisible(False)
|
||||||
|
except json.JSONDecodeError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def get_current_commit_sha(self):
|
||||||
|
# Initialize the Git repository object
|
||||||
|
repo = git.Repo(repo_path)
|
||||||
|
# Get the current commit SHA
|
||||||
|
commit_sha = repo.head.object.hexsha
|
||||||
|
return commit_sha
|
||||||
|
|
||||||
def apply_load_settings(self, settings):
|
def apply_load_settings(self, settings):
|
||||||
self.model_dropdown.setCurrentText(settings.get("model", ""))
|
self.model_dropdown.setCurrentText(settings.get("model", ""))
|
||||||
self.model_type.setCurrentText(settings.get("model_type", ""))
|
self.model_type.setCurrentText(settings.get("model_type", ""))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user