allow styles.csv to be symlinked or mounted in docker without moving the file around
This commit is contained in:
parent
22bcc7be42
commit
f7215906af
|
@ -72,16 +72,14 @@ class StyleDatabase:
|
||||||
return apply_styles_to_prompt(prompt, [self.styles.get(x, self.no_style).negative_prompt for x in styles])
|
return apply_styles_to_prompt(prompt, [self.styles.get(x, self.no_style).negative_prompt for x in styles])
|
||||||
|
|
||||||
def save_styles(self, path: str) -> None:
|
def save_styles(self, path: str) -> None:
|
||||||
# Write to temporary file first, so we don't nuke the file if something goes wrong
|
# Always keep a backup file around
|
||||||
fd, temp_path = tempfile.mkstemp(".csv")
|
if os.path.exists(path):
|
||||||
|
shutil.copy(path, path + ".bak")
|
||||||
|
|
||||||
|
fd = os.open(path, os.O_RDWR|os.O_CREAT)
|
||||||
with os.fdopen(fd, "w", encoding="utf-8-sig", newline='') as file:
|
with os.fdopen(fd, "w", encoding="utf-8-sig", newline='') as file:
|
||||||
# _fields is actually part of the public API: typing.NamedTuple is a replacement for collections.NamedTuple,
|
# _fields is actually part of the public API: typing.NamedTuple is a replacement for collections.NamedTuple,
|
||||||
# and collections.NamedTuple has explicit documentation for accessing _fields. Same goes for _asdict()
|
# and collections.NamedTuple has explicit documentation for accessing _fields. Same goes for _asdict()
|
||||||
writer = csv.DictWriter(file, fieldnames=PromptStyle._fields)
|
writer = csv.DictWriter(file, fieldnames=PromptStyle._fields)
|
||||||
writer.writeheader()
|
writer.writeheader()
|
||||||
writer.writerows(style._asdict() for k, style in self.styles.items())
|
writer.writerows(style._asdict() for k, style in self.styles.items())
|
||||||
|
|
||||||
# Always keep a backup file around
|
|
||||||
if os.path.exists(path):
|
|
||||||
shutil.move(path, path + ".bak")
|
|
||||||
shutil.move(temp_path, path)
|
|
||||||
|
|
Loading…
Reference in New Issue