From bbe8e02d74ab8f2efca44407488e38a1bb733983 Mon Sep 17 00:00:00 2001 From: w-e-w <40751091+w-e-w@users.noreply.github.com> Date: Thu, 1 Feb 2024 15:40:15 +0900 Subject: [PATCH] catch load style.csv error --- modules/styles.py | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/modules/styles.py b/modules/styles.py index 9edcc7e44..60bd8a7fb 100644 --- a/modules/styles.py +++ b/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."""