Browse Source

catch load style.csv error

w-e-w 1 year ago
parent
commit
bbe8e02d74
1 changed files with 17 additions and 13 deletions
  1. 17 13
      modules/styles.py

+ 17 - 13
modules/styles.py

@@ -1,4 +1,5 @@
 from pathlib import Path
+from modules import errors
 import csv
 import os
 import typing
@@ -128,19 +129,22 @@ class StyleDatabase:
                 self.load_from_csv(styles_file)
 
     def load_from_csv(self, path: str | Path):
-        with open(path, "r", encoding="utf-8-sig", newline="") as file:
-            reader = csv.DictReader(file, skipinitialspace=True)
-            for row in reader:
-                # Ignore empty rows or rows starting with a comment
-                if not row or row["name"].startswith("#"):
-                    continue
-                # Support loading old CSV format with "name, text"-columns
-                prompt = row["prompt"] if "prompt" in row else row["text"]
-                negative_prompt = row.get("negative_prompt", "")
-                # Add style to database
-                self.styles[row["name"]] = PromptStyle(
-                    row["name"], prompt, negative_prompt, str(path)
-                )
+        try:
+            with open(path, "r", encoding="utf-8-sig", newline="") as file:
+                reader = csv.DictReader(file, skipinitialspace=True)
+                for row in reader:
+                    # Ignore empty rows or rows starting with a comment
+                    if not row or row["name"].startswith("#"):
+                        continue
+                    # Support loading old CSV format with "name, text"-columns
+                    prompt = row["prompt"] if "prompt" in row else row["text"]
+                    negative_prompt = row.get("negative_prompt", "")
+                    # Add style to database
+                    self.styles[row["name"]] = PromptStyle(
+                        row["name"], prompt, negative_prompt, str(path)
+                    )
+        except Exception:
+            errors.report(f'Error loading styles from {path}: ', exc_info=True)
 
     def get_style_paths(self) -> set:
         """Returns a set of all distinct paths of files that styles are loaded from."""