validmind 2.7.10__py3-none-any.whl → 2.7.11__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.7.10"
1
+ __version__ = "2.7.11"
validmind/errors.py CHANGED
@@ -228,7 +228,7 @@ class MissingRExtrasError(BaseError):
228
228
  def description(self, *args, **kwargs):
229
229
  return (
230
230
  self.message
231
- or "ValidMind r-support needs to be installed: `pip install validmind[r-support]`"
231
+ or "`rpy2` is required to use R models. Please install it with `pip install rpy2`"
232
232
  )
233
233
 
234
234
 
validmind/utils.py CHANGED
@@ -110,6 +110,7 @@ class NumpyEncoder(json.JSONEncoder):
110
110
  self.is_numpy_ndarray: lambda obj: obj.tolist(),
111
111
  self.is_numpy_bool: lambda obj: bool(obj),
112
112
  self.is_pandas_timestamp: lambda obj: str(obj),
113
+ self.is_numpy_datetime64: lambda obj: str(obj),
113
114
  self.is_set: lambda obj: list(obj),
114
115
  self.is_quantlib_date: lambda obj: obj.ISO(),
115
116
  self.is_generic_object: self.handle_generic_object,
@@ -142,6 +143,9 @@ class NumpyEncoder(json.JSONEncoder):
142
143
  def is_pandas_timestamp(self, obj):
143
144
  return isinstance(obj, pd.Timestamp)
144
145
 
146
+ def is_numpy_datetime64(self, obj):
147
+ return isinstance(obj, np.datetime64)
148
+
145
149
  def is_set(self, obj):
146
150
  return isinstance(obj, set)
147
151
 
@@ -152,11 +156,12 @@ class NumpyEncoder(json.JSONEncoder):
152
156
  return isinstance(obj, object)
153
157
 
154
158
  def handle_generic_object(self, obj):
155
- return (
156
- obj.__str__()
157
- if type(obj).__dict__.get("__str__")
158
- else str(obj).split(".")[1].split(" ")[0]
159
- )
159
+ try:
160
+ if hasattr(obj, "__str__"):
161
+ return obj.__str__()
162
+ return obj.__class__.__name__
163
+ except Exception:
164
+ return str(type(obj).__name__)
160
165
 
161
166
  def encode(self, obj):
162
167
  obj = nan_to_none(obj)
@@ -177,6 +182,18 @@ class HumanReadableEncoder(NumpyEncoder):
177
182
  else obj.tolist()
178
183
  )
179
184
 
185
+ def default(self, obj):
186
+ if self.is_dataframe(obj):
187
+ return {
188
+ "type": str(type(obj)),
189
+ "preview": obj.head(5).to_dict(orient="list"),
190
+ "shape": f"{obj.shape[0]} rows x {obj.shape[1]} columns",
191
+ }
192
+ return super().default(obj)
193
+
194
+ def is_dataframe(self, obj):
195
+ return isinstance(obj, pd.DataFrame)
196
+
180
197
 
181
198
  def get_full_typename(o: Any) -> Any:
182
199
  """We determine types based on type names so we don't have to import
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: validmind
3
- Version: 2.7.10
3
+ Version: 2.7.11
4
4
  Summary: ValidMind Library
5
5
  License: Commercial License
6
6
  Author: Andres Rodriguez
@@ -15,8 +15,8 @@ Provides-Extra: all
15
15
  Provides-Extra: huggingface
16
16
  Provides-Extra: llm
17
17
  Provides-Extra: pytorch
18
- Provides-Extra: r-support
19
18
  Requires-Dist: aiohttp[speedups]
19
+ Requires-Dist: anywidget (>=0.9.13,<0.10.0)
20
20
  Requires-Dist: arch
21
21
  Requires-Dist: bert-score (>=0.3.13)
22
22
  Requires-Dist: catboost
@@ -42,7 +42,6 @@ Requires-Dist: pycocoevalcap (>=1.2,<2.0) ; extra == "all" or extra == "llm"
42
42
  Requires-Dist: python-dotenv
43
43
  Requires-Dist: ragas (>=0.2.3) ; extra == "all" or extra == "llm"
44
44
  Requires-Dist: rouge (>=1)
45
- Requires-Dist: rpy2 (>=3.5.10,<4.0.0) ; extra == "all" or extra == "r-support"
46
45
  Requires-Dist: scikit-learn (<1.6.0)
47
46
  Requires-Dist: scipy
48
47
  Requires-Dist: scorecardpy (>=0.1.9.6,<0.2.0.0)
@@ -53,6 +52,7 @@ Requires-Dist: shap (==0.44.1)
53
52
  Requires-Dist: statsmodels
54
53
  Requires-Dist: tabulate (>=0.8.9,<0.9.0)
55
54
  Requires-Dist: textblob (>=0.18.0.post0,<0.19.0)
55
+ Requires-Dist: tiktoken
56
56
  Requires-Dist: torch (>=1.10.0) ; extra == "all" or extra == "llm" or extra == "pytorch"
57
57
  Requires-Dist: tqdm
58
58
  Requires-Dist: transformers (>=4.32.0,<5.0.0) ; extra == "all" or extra == "huggingface" or extra == "llm"
@@ -1,5 +1,5 @@
1
1
  validmind/__init__.py,sha256=7qIV3pfZ9K4Gnq11Nkm8TutNKdAmPtUY9DZ0N_OaKks,2738
2
- validmind/__version__.py,sha256=VMxnpQRsMLys_wF-V3rmQ_SXhvDNO7fY78c-gRLzhB8,23
2
+ validmind/__version__.py,sha256=qTAhkm3w0sGgJpXc-pVxyhoS0yuj8p5TuTn1cjbmhrA,23
3
3
  validmind/ai/test_descriptions.py,sha256=pnLZlvhet30gMmUKSCbezzOdrQ-7nhAKDfaLOmdeB6o,8476
4
4
  validmind/ai/test_result_description/config.yaml,sha256=E1gPd-uv-MzdrWZA_rP6LSk8pVmkYijx6v78hZ8ceL0,787
5
5
  validmind/ai/test_result_description/context.py,sha256=ebKulFMpXTDLqd6lOHAsG200GmLNnhnu7sMDnbo2Dhc,2339
@@ -64,7 +64,7 @@ validmind/datasets/regression/models/fred_loan_rates_model_2.pkl,sha256=J1ukMdeF
64
64
  validmind/datasets/regression/models/fred_loan_rates_model_3.pkl,sha256=IogZPcUQc1F_v11fR6KWT-nRt5JzvK5f7p4Hrw7vLps,40063
65
65
  validmind/datasets/regression/models/fred_loan_rates_model_4.pkl,sha256=cSxhpcrI4hCbxCwZwE2-nr7KObbWpDii3NzpECoXmmM,48292
66
66
  validmind/datasets/regression/models/fred_loan_rates_model_5.pkl,sha256=FkNLHq9xkPMbYks_vyMjFL371mw9SQYbP1iX9lY4Ljo,60343
67
- validmind/errors.py,sha256=QrobGZtTH7SC91pFHj2Yal11gVxX0np9W2fKBfVxn-E,8074
67
+ validmind/errors.py,sha256=_zM-CABfIGz6hirW4nuukyOgYkFCZ8xh55Jn5DSjd6g,8074
68
68
  validmind/html_templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
69
  validmind/html_templates/content_blocks.py,sha256=vFMRS4Ogq4RZq88WzG3teNEOq3U4OLgLDzD3lBx4h-g,4050
70
70
  validmind/input_registry.py,sha256=8C_mrhgLT72hwbt_lo3ZwXb5NCyIcSuCQI1HdJ3bK2A,1042
@@ -311,7 +311,7 @@ validmind/unit_metrics/regression/MeanSquaredError.py,sha256=h-zgtlR3aigQwMGbi55
311
311
  validmind/unit_metrics/regression/QuantileLoss.py,sha256=rs0m9w4zIL6daQOHqYY-sEeQs6SDTpd0t3cN_KFZyqA,518
312
312
  validmind/unit_metrics/regression/RSquaredScore.py,sha256=z8-E-KSewvma9nu1OSUv97IfmFLpV5-rOq15jtlxklg,459
313
313
  validmind/unit_metrics/regression/RootMeanSquaredError.py,sha256=uIDsSpy75Z7W3zu4LditvW3mPJIkGxf-PdFQ7szWBZU,603
314
- validmind/utils.py,sha256=HXau6k_NkG4gYdtVQEn2h7P9mo0RzPpRWAKZUTOzXGk,18531
314
+ validmind/utils.py,sha256=MgRkxXJ8TDIgbVWIHtgZeSlVrqfgFjVw9O5Y7Mb3kKQ,19114
315
315
  validmind/vm_models/__init__.py,sha256=lcqf9q2aRzrVrNN6R--81IkrnSa6BXPbhJ8SnkT_hcI,702
316
316
  validmind/vm_models/dataset/__init__.py,sha256=U4CxZjdoc0dd9u2AqBl5PJh1UVbzXWNrmundmjLF-qE,346
317
317
  validmind/vm_models/dataset/dataset.py,sha256=F6_rc5pjccRLnB7UcIMiGMbD-qMVUW5v4TnZTNSXTbo,26370
@@ -327,8 +327,8 @@ validmind/vm_models/test_suite/runner.py,sha256=Cpl9WKwHzJD5Zvrh71FzbEhGZkHM0x0M
327
327
  validmind/vm_models/test_suite/summary.py,sha256=Ug3nMvpPL2DSTDujWagWMCrFiW9oDy0AqJL_zXN8pH0,4642
328
328
  validmind/vm_models/test_suite/test.py,sha256=uImjmPlBlLrlVPavsUzbaDK55bvpOn3PuFyWeyYyTac,3908
329
329
  validmind/vm_models/test_suite/test_suite.py,sha256=5Jppt2UXSMgvJ6FO5LIAKA4oN_-hh9SMr8APAFJzk9g,5080
330
- validmind-2.7.10.dist-info/LICENSE,sha256=XonPUfwjvrC5Ombl3y-ko0Wubb1xdG_7nzvIbkZRKHw,35772
331
- validmind-2.7.10.dist-info/METADATA,sha256=JaRr1Dq-ysVkw-8IUeqBJnJAAk2ePuZexZHQefp8JzM,6085
332
- validmind-2.7.10.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
333
- validmind-2.7.10.dist-info/entry_points.txt,sha256=HuW7YyOv9u_OEWpViQXtv0nfoI67uieJHawKWA4Hv9A,76
334
- validmind-2.7.10.dist-info/RECORD,,
330
+ validmind-2.7.11.dist-info/LICENSE,sha256=XonPUfwjvrC5Ombl3y-ko0Wubb1xdG_7nzvIbkZRKHw,35772
331
+ validmind-2.7.11.dist-info/METADATA,sha256=CaokoO94oOSUuh53B8L-vPu_Iq2j2kXv0frN8cpr8jU,6048
332
+ validmind-2.7.11.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
333
+ validmind-2.7.11.dist-info/entry_points.txt,sha256=HuW7YyOv9u_OEWpViQXtv0nfoI67uieJHawKWA4Hv9A,76
334
+ validmind-2.7.11.dist-info/RECORD,,