Spaces:
Sleeping
Sleeping
Update pdf_generator.py
Browse files- pdf_generator.py +6 -7
pdf_generator.py
CHANGED
@@ -154,16 +154,19 @@ def process_quantitative_criteria(answer, styles):
|
|
154 |
return story
|
155 |
|
156 |
def parse_quantitative_criteria(input_string):
|
157 |
-
|
|
|
158 |
if match:
|
159 |
name, value, min_val, max_val = match.groups()
|
160 |
name = name.strip()
|
161 |
|
162 |
# Handle percentage inputs
|
163 |
-
is_percentage = '%' in value or '%' in min_val or '%' in max_val
|
164 |
-
|
|
|
165 |
min_val = float(min_val.rstrip('%'))
|
166 |
max_val = float(max_val.rstrip('%'))
|
|
|
167 |
|
168 |
if is_percentage:
|
169 |
value /= 100
|
@@ -175,10 +178,6 @@ def parse_quantitative_criteria(input_string):
|
|
175 |
value = int(value)
|
176 |
min_val = int(min_val)
|
177 |
max_val = int(max_val)
|
178 |
-
else:
|
179 |
-
value = float(value)
|
180 |
-
min_val = float(min_val)
|
181 |
-
max_val = float(max_val)
|
182 |
|
183 |
return name, value, min_val, max_val, is_percentage
|
184 |
return None
|
|
|
154 |
return story
|
155 |
|
156 |
def parse_quantitative_criteria(input_string):
|
157 |
+
# Match both "Name: value [min-max]" and "Name [min-max]" formats
|
158 |
+
match = re.match(r'(.+?)(?:\s*:\s*([-+]?(?:\d*\.*\d+)(?:%)?))?\s*\[([-+]?(?:\d*\.*\d+)(?:%)?)\s*-\s*([-+]?(?:\d*\.*\d+)(?:%)?)?\]', input_string)
|
159 |
if match:
|
160 |
name, value, min_val, max_val = match.groups()
|
161 |
name = name.strip()
|
162 |
|
163 |
# Handle percentage inputs
|
164 |
+
is_percentage = '%' in (value or '') or '%' in min_val or '%' in max_val
|
165 |
+
|
166 |
+
# Convert to float, handling None values
|
167 |
min_val = float(min_val.rstrip('%'))
|
168 |
max_val = float(max_val.rstrip('%'))
|
169 |
+
value = float(value.rstrip('%')) if value else (min_val + max_val) / 2 # Default to middle of range if no value given
|
170 |
|
171 |
if is_percentage:
|
172 |
value /= 100
|
|
|
178 |
value = int(value)
|
179 |
min_val = int(min_val)
|
180 |
max_val = int(max_val)
|
|
|
|
|
|
|
|
|
181 |
|
182 |
return name, value, min_val, max_val, is_percentage
|
183 |
return None
|