MilanM commited on
Commit
49417eb
·
verified ·
1 Parent(s): 3a016f4

Update pdf_generator.py

Browse files
Files changed (1) hide show
  1. 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
- match = re.match(r'(.+):\s*([-+]?(?:\d*\.*\d+)(?:%)?)\s*\[([-+]?(?:\d*\.*\d+)(?:%)?)\s*-\s*([-+]?(?:\d*\.*\d+)(?:%)?)?\]', input_string)
 
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
- value = float(value.rstrip('%'))
 
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