code: def load_from_csv(self, path: str):
      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, path
              )
  
imports: import csv
  import fnmatch
  import os
  import os.path
  import typing
  import shutil
label_desc: Use image node_id 3 for calling the StyleDatabase obj's underlying member method code with example usage: obj.load_from_csv(path) without return types