validmind 2.4.5__py3-none-any.whl → 2.4.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
validmind/__version__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "2.4.5"
1
+ __version__ = "2.4.7"
validmind/tests/run.py CHANGED
@@ -89,22 +89,24 @@ def _update_plotly_titles(figures, input_groups, title_template):
89
89
  for i, figure in enumerate(figures):
90
90
  figure.figure.layout.title.text = title_template.format(
91
91
  current_title=f"{current_title} " if current_title else "",
92
- input_description=", ".join(
93
- f"{k}={v if isinstance(v, str) else v.input_id}"
92
+ input_description=" and ".join(
93
+ f"{k}: {v if isinstance(v, str) else ', '.join(item.input_id for item in v) if isinstance(v, list) and all(hasattr(item, 'input_id') for item in v) else v.input_id}"
94
94
  for k, v in input_groups[i].items()
95
95
  ),
96
96
  )
97
97
 
98
98
 
99
99
  def _update_matplotlib_titles(figures, input_groups, title_template):
100
- current_title = figures[0].figure.get_title()
100
+ current_title = (
101
+ figures[0].figure._suptitle.get_text() if figures[0].figure._suptitle else ""
102
+ )
101
103
 
102
104
  for i, figure in enumerate(figures):
103
105
  figure.figure.suptitle(
104
106
  title_template.format(
105
107
  current_title=f"{current_title} " if current_title else "",
106
108
  input_description=" and ".join(
107
- f"{k}: {v if isinstance(v, str) else v.input_id}"
109
+ f"{k}: {v if isinstance(v, str) else ', '.join(item.input_id for item in v) if isinstance(v, list) and all(hasattr(item, 'input_id') for item in v) else v.input_id}"
108
110
  for k, v in input_groups[i].items()
109
111
  ),
110
112
  )
@@ -139,10 +141,20 @@ def metric_comparison(
139
141
  """Build a comparison result for multiple metric results"""
140
142
  ref_id = str(uuid4())
141
143
 
142
- input_group_strings = [
143
- {k: v if isinstance(v, str) else v.input_id for k, v in group.items()}
144
- for group in input_groups
145
- ]
144
+ input_group_strings = []
145
+
146
+ for group in input_groups:
147
+ new_group = {}
148
+ for k, v in group.items():
149
+ if isinstance(v, str):
150
+ new_group[k] = v
151
+ elif hasattr(v, "input_id"):
152
+ new_group[k] = v.input_id
153
+ elif isinstance(v, list) and all(hasattr(item, "input_id") for item in v):
154
+ new_group[k] = ", ".join([item.input_id for item in v])
155
+ else:
156
+ raise ValueError(f"Unsupported type for value: {v}")
157
+ input_group_strings.append(new_group)
146
158
 
147
159
  merged_summary = _combine_summaries(
148
160
  [
@@ -173,9 +185,11 @@ def metric_comparison(
173
185
  ),
174
186
  ],
175
187
  inputs=[
176
- input if isinstance(input, str) else input.input_id
188
+ item.input_id if hasattr(item, "input_id") else item
177
189
  for group in input_groups
178
190
  for input in group.values()
191
+ for item in (input if isinstance(input, list) else [input])
192
+ if hasattr(item, "input_id") or isinstance(item, str)
179
193
  ],
180
194
  output_template=output_template,
181
195
  metric=MetricResult(
@@ -198,10 +212,20 @@ def threshold_test_comparison(
198
212
  """Build a comparison result for multiple threshold test results"""
199
213
  ref_id = str(uuid4())
200
214
 
201
- input_group_strings = [
202
- {k: v if isinstance(v, str) else v.input_id for k, v in group.items()}
203
- for group in input_groups
204
- ]
215
+ input_group_strings = []
216
+
217
+ for group in input_groups:
218
+ new_group = {}
219
+ for k, v in group.items():
220
+ if isinstance(v, str):
221
+ new_group[k] = v
222
+ elif hasattr(v, "input_id"):
223
+ new_group[k] = v.input_id
224
+ elif isinstance(v, list) and all(hasattr(item, "input_id") for item in v):
225
+ new_group[k] = ", ".join([item.input_id for item in v])
226
+ else:
227
+ raise ValueError(f"Unsupported type for value: {v}")
228
+ input_group_strings.append(new_group)
205
229
 
206
230
  merged_summary = _combine_summaries(
207
231
  [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: validmind
3
- Version: 2.4.5
3
+ Version: 2.4.7
4
4
  Summary: ValidMind Developer Framework
5
5
  License: Commercial License
6
6
  Author: Andres Rodriguez
@@ -32,7 +32,7 @@ Requires-Dist: mistune (>=3.0.2,<4.0.0)
32
32
  Requires-Dist: nltk (>=3.8.1,<4.0.0)
33
33
  Requires-Dist: numba (<0.59.0)
34
34
  Requires-Dist: numpy
35
- Requires-Dist: openai (>=1) ; extra == "all"
35
+ Requires-Dist: openai (>=1)
36
36
  Requires-Dist: pandas (>=1.1,<2)
37
37
  Requires-Dist: plotly
38
38
  Requires-Dist: plotly-express
@@ -1,5 +1,5 @@
1
1
  validmind/__init__.py,sha256=UfmzPwUCdUWbWq3zPqqmq4jw0_kfl3hX4U72p_seE4I,3700
2
- validmind/__version__.py,sha256=zcb2VyQ6EBDMkktW4mmZ-qJGw-tYB_UjmzqDEz6RI9w,22
2
+ validmind/__version__.py,sha256=6Ls7f3ZJxdJNWxciT1KkTqmIR_gddzXVDXxBtiav_WI,22
3
3
  validmind/ai/test_descriptions.py,sha256=Q1Ftus4x5eiVLKWJu7hqPLukBQZzhy-dARqq_6_JWtk,9464
4
4
  validmind/ai/utils.py,sha256=TEXII_S5CpkpczzSyHwTlqLcPMLnPBJWEBR6QFMKh1U,3421
5
5
  validmind/api_client.py,sha256=xr9VNqCmA_WFf8rVm-0M0pmzVyLAPFOnfEe4dAog1LA,17144
@@ -266,7 +266,7 @@ validmind/tests/prompt_validation/Robustness.py,sha256=fBdkYnO9yoBazz4wD-l62tT8D
266
266
  validmind/tests/prompt_validation/Specificity.py,sha256=h3gKRTTi2rfnGWmGC1YnSt2s_VbZU4KX0iY7LciZ3PU,6068
267
267
  validmind/tests/prompt_validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
268
268
  validmind/tests/prompt_validation/ai_powered_test.py,sha256=7TTeIR5GotQosm7oVT8Y3KnwPB3XkVT1Fzhckpr-SgE,1963
269
- validmind/tests/run.py,sha256=OI0SxHvJGH0L2o7LyiK-723Cui1UFAu30YxG52ooU7M,14305
269
+ validmind/tests/run.py,sha256=24E5pRg6p0dUHoK6shB9KeKHWTOEJa5HymT6tD8Ozl4,15574
270
270
  validmind/tests/test_providers.py,sha256=47xe5eb5ufvj1jmhdRsbSvDQTXSDpFDFNeXg3xtXwhw,5320
271
271
  validmind/tests/utils.py,sha256=kNrxfUYbj4DwmkZtpp_1rG4GMUGxYEhvqnYR_A7qAKM,471
272
272
  validmind/unit_metrics/__init__.py,sha256=AlFnWA9pmzVf8xysPxYpQ3kBTQ81-YVxRTJpgC0Q41w,7344
@@ -307,8 +307,8 @@ validmind/vm_models/test_suite/runner.py,sha256=aewxadRfoOPH48jes2Gtb3Ju_FWFfVM_
307
307
  validmind/vm_models/test_suite/summary.py,sha256=GQRNe2ZvvqjQN0yKmaN7ohAUjRFQIN4YYUYxfOuWN6M,4682
308
308
  validmind/vm_models/test_suite/test.py,sha256=_GfbK36l98SjzgVcucmp0OKBJKqMW3neO7SqJ3EWeps,5049
309
309
  validmind/vm_models/test_suite/test_suite.py,sha256=Cns2wL54v0T5Mv5_HJb3kMeaa4rtycdqT8KxK9_rWEU,6279
310
- validmind-2.4.5.dist-info/LICENSE,sha256=XonPUfwjvrC5Ombl3y-ko0Wubb1xdG_7nzvIbkZRKHw,35772
311
- validmind-2.4.5.dist-info/METADATA,sha256=Dj-H444StTjuG_j6I4KG3nYtmKDJClmReWm1morfegc,4222
312
- validmind-2.4.5.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
313
- validmind-2.4.5.dist-info/entry_points.txt,sha256=HuW7YyOv9u_OEWpViQXtv0nfoI67uieJHawKWA4Hv9A,76
314
- validmind-2.4.5.dist-info/RECORD,,
310
+ validmind-2.4.7.dist-info/LICENSE,sha256=XonPUfwjvrC5Ombl3y-ko0Wubb1xdG_7nzvIbkZRKHw,35772
311
+ validmind-2.4.7.dist-info/METADATA,sha256=XZsaqO_KTpTE3beBkIOytceLn1l5q6Ln5JKT8rJ6O60,4205
312
+ validmind-2.4.7.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
313
+ validmind-2.4.7.dist-info/entry_points.txt,sha256=HuW7YyOv9u_OEWpViQXtv0nfoI67uieJHawKWA4Hv9A,76
314
+ validmind-2.4.7.dist-info/RECORD,,