Spaces:
Runtime error
Runtime error
twinkle-toes
commited on
Commit
•
6edb968
1
Parent(s):
18fb5f7
Update app.py
Browse files
app.py
CHANGED
@@ -10,15 +10,18 @@ class Validator:
|
|
10 |
self.valid = True
|
11 |
self.obj = obj
|
12 |
|
13 |
-
def
|
14 |
if key not in self.obj:
|
15 |
-
self.valid = False
|
16 |
return False
|
17 |
if not isinstance(self.obj[key], ty):
|
18 |
-
self.valid = False
|
19 |
return False
|
20 |
return True
|
21 |
|
|
|
|
|
|
|
|
|
|
|
22 |
def validate_key_if_present(self, key, ty):
|
23 |
if key in self.obj and not isinstance(self.obj[key], ty):
|
24 |
self.valid = False
|
@@ -47,9 +50,13 @@ class Validator:
|
|
47 |
def validate_prompt_order(self):
|
48 |
self.validate_key("character_id", str)
|
49 |
if self.validate_key("order", list):
|
50 |
-
|
51 |
-
|
52 |
-
|
|
|
|
|
|
|
|
|
53 |
|
54 |
def validate_ordering(self):
|
55 |
self.validate_key("identifier", str)
|
@@ -94,10 +101,16 @@ class Validator:
|
|
94 |
continue
|
95 |
known_prompt_ids.add(prompt["identifier"])
|
96 |
seen_cid0 = False
|
97 |
-
if self.
|
98 |
for order in self.obj["prompt_order"]:
|
99 |
if Validator.is_valid_prompt_order(order) and order["character_id"] == "100000" and all(lambda o: o["identifier"] in known_prompt_ids for o in order["order"]):
|
100 |
seen_cid0 = True
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
if not seen_cid0:
|
102 |
self.valid = False
|
103 |
|
@@ -119,6 +132,12 @@ class Validator:
|
|
119 |
v.validate_prompt_order()
|
120 |
return v.valid
|
121 |
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
@classmethod
|
123 |
def is_valid_ordering(cls, ordering):
|
124 |
v = cls(ordering)
|
@@ -186,7 +205,7 @@ with gr.Blocks() as demo:
|
|
186 |
gr.Markdown("Preset loaded and validated")
|
187 |
prompt_map = {p["identifier"]: p for p in preset["prompts"]}
|
188 |
gr.Markdown("# Preset")
|
189 |
-
for order in next(o for o in preset["prompt_order"] if o["character_id"] == "100000")["order"]:
|
190 |
prompt = prompt_map[order["identifier"]]
|
191 |
render_prompt(prompt, order["enabled"])
|
192 |
with gr.Accordion("# All prompts", open=False):
|
|
|
10 |
self.valid = True
|
11 |
self.obj = obj
|
12 |
|
13 |
+
def try_validate_key(self, key, ty):
|
14 |
if key not in self.obj:
|
|
|
15 |
return False
|
16 |
if not isinstance(self.obj[key], ty):
|
|
|
17 |
return False
|
18 |
return True
|
19 |
|
20 |
+
def validate_key(self, key, ty):
|
21 |
+
r = self.try_validate_key(self, key, ty)
|
22 |
+
self.valid = r
|
23 |
+
return r
|
24 |
+
|
25 |
def validate_key_if_present(self, key, ty):
|
26 |
if key in self.obj and not isinstance(self.obj[key], ty):
|
27 |
self.valid = False
|
|
|
50 |
def validate_prompt_order(self):
|
51 |
self.validate_key("character_id", str)
|
52 |
if self.validate_key("order", list):
|
53 |
+
if not Validator.is_valid_prompt_order_list(self.obj["order"]):
|
54 |
+
self.valid = False
|
55 |
+
|
56 |
+
def validate_prompt_order_list(self):
|
57 |
+
for s in self.obj["order"]:
|
58 |
+
if not Validator.is_valid_ordering(s):
|
59 |
+
self.valid = False
|
60 |
|
61 |
def validate_ordering(self):
|
62 |
self.validate_key("identifier", str)
|
|
|
101 |
continue
|
102 |
known_prompt_ids.add(prompt["identifier"])
|
103 |
seen_cid0 = False
|
104 |
+
if self.try_validate_key("prompt_order", list):
|
105 |
for order in self.obj["prompt_order"]:
|
106 |
if Validator.is_valid_prompt_order(order) and order["character_id"] == "100000" and all(lambda o: o["identifier"] in known_prompt_ids for o in order["order"]):
|
107 |
seen_cid0 = True
|
108 |
+
elif self.validate_key("prompt_order", dict):
|
109 |
+
if not Validator.is_valid_prompt_order_list(self.obj["prompt_order"]):
|
110 |
+
self.valid = False
|
111 |
+
else:
|
112 |
+
if all(lambda o: o["identifier"] in known_prompt_ids for o in self.obj["prompt_order"]):
|
113 |
+
seen_cid0 = True
|
114 |
if not seen_cid0:
|
115 |
self.valid = False
|
116 |
|
|
|
132 |
v.validate_prompt_order()
|
133 |
return v.valid
|
134 |
|
135 |
+
@classmethod
|
136 |
+
def is_valid_prompt_order_list(cls, prompt_order_list):
|
137 |
+
v = cls(prompt_order_list)
|
138 |
+
v.validate_prompt_order_list()
|
139 |
+
return v.valid
|
140 |
+
|
141 |
@classmethod
|
142 |
def is_valid_ordering(cls, ordering):
|
143 |
v = cls(ordering)
|
|
|
205 |
gr.Markdown("Preset loaded and validated")
|
206 |
prompt_map = {p["identifier"]: p for p in preset["prompts"]}
|
207 |
gr.Markdown("# Preset")
|
208 |
+
for order in (next(o for o in preset["prompt_order"] if o["character_id"] == "100000")["order"] if isinstance(preset["prompt_order"], list) else preset["prompt_order"]):
|
209 |
prompt = prompt_map[order["identifier"]]
|
210 |
render_prompt(prompt, order["enabled"])
|
211 |
with gr.Accordion("# All prompts", open=False):
|