validmind 2.14.0__tar.gz → 2.15.0__tar.gz

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.
Files changed (401) hide show
  1. {validmind-2.14.0 → validmind-2.15.0}/PKG-INFO +2 -1
  2. {validmind-2.14.0 → validmind-2.15.0}/pyproject.toml +13 -1
  3. validmind-2.15.0/validmind/__version__.py +1 -0
  4. {validmind-2.14.0 → validmind-2.15.0}/validmind/ai/test_descriptions.py +8 -0
  5. {validmind-2.14.0 → validmind-2.15.0}/validmind/api_client.py +14 -19
  6. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/__init__.py +2 -0
  7. validmind-2.15.0/validmind/datasets/regression/credit_card_balance.py +57 -0
  8. validmind-2.15.0/validmind/datasets/regression/datasets/credit_card_balance.csv +5001 -0
  9. validmind-2.15.0/validmind/datasets/regression/generate_credit_card_balance_csv.py +113 -0
  10. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/__types__.py +18 -0
  11. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/comparison.py +16 -0
  12. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/load.py +17 -0
  13. validmind-2.15.0/validmind/tests/model_validation/CalibrationByDecile.py +139 -0
  14. validmind-2.15.0/validmind/tests/model_validation/FeatureSensitivity.py +158 -0
  15. validmind-2.15.0/validmind/tests/model_validation/Heteroscedasticity.py +178 -0
  16. validmind-2.15.0/validmind/tests/model_validation/PerformanceConfidenceIntervals.py +202 -0
  17. validmind-2.15.0/validmind/tests/model_validation/PerformanceOverTime.py +173 -0
  18. validmind-2.15.0/validmind/tests/model_validation/PredictionRange.py +116 -0
  19. validmind-2.15.0/validmind/tests/model_validation/RegressionWeakspots.py +167 -0
  20. validmind-2.15.0/validmind/tests/model_validation/ResidualBiasBySegment.py +166 -0
  21. validmind-2.15.0/validmind/tests/model_validation/ResidualNormality.py +197 -0
  22. validmind-2.15.0/validmind/tests/model_validation/ScenarioAnalysis.py +158 -0
  23. validmind-2.15.0/validmind/tests/model_validation/TailPerformance.py +129 -0
  24. validmind-2.15.0/validmind/tests/model_validation/_segments.py +91 -0
  25. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/embeddings/StabilityAnalysisTranslation.py +14 -1
  26. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/ragas/AnswerCorrectness.py +4 -4
  27. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/ragas/AspectCritic.py +4 -4
  28. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/ragas/ContextEntityRecall.py +4 -4
  29. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/ragas/ContextPrecision.py +4 -4
  30. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/ragas/ContextPrecisionWithoutReference.py +4 -4
  31. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/ragas/ContextRecall.py +4 -4
  32. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/ragas/Faithfulness.py +4 -4
  33. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/ragas/NoiseSensitivity.py +4 -4
  34. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/ragas/ResponseRelevancy.py +4 -4
  35. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/ragas/SemanticSimilarity.py +4 -4
  36. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/ragas/utils.py +14 -2
  37. validmind-2.15.0/validmind/tests/model_validation/statsmodels/CoefficientStability.py +126 -0
  38. validmind-2.15.0/validmind/tests/model_validation/statsmodels/ExpectedCoefficientSigns.py +116 -0
  39. validmind-2.15.0/validmind/tests/model_validation/statsmodels/InfluentialObservations.py +200 -0
  40. validmind-2.15.0/validmind/tests/model_validation/statsmodels/LinearitySpecification.py +189 -0
  41. validmind-2.15.0/validmind/tests/model_validation/statsmodels/PredictionIntervals.py +245 -0
  42. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/statsmodels/RegressionCoeffs.py +25 -33
  43. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/statsmodels/RegressionModelSensitivityPlot.py +1 -1
  44. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/statsmodels/RegressionModelSummary.py +3 -2
  45. validmind-2.15.0/validmind/tests/model_validation/statsmodels/RobustStandardErrors.py +100 -0
  46. validmind-2.15.0/validmind/tests/model_validation/statsmodels/VarianceInflationFactor.py +160 -0
  47. validmind-2.15.0/validmind/tests/model_validation/statsmodels/statsutils.py +134 -0
  48. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/figure.py +12 -0
  49. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/result/result.py +4 -1
  50. validmind-2.14.0/validmind/__version__.py +0 -1
  51. validmind-2.14.0/validmind/tests/model_validation/statsmodels/statsutils.py +0 -17
  52. {validmind-2.14.0 → validmind-2.15.0}/.gitignore +0 -0
  53. {validmind-2.14.0 → validmind-2.15.0}/LICENSE +0 -0
  54. {validmind-2.14.0 → validmind-2.15.0}/README.pypi.md +0 -0
  55. {validmind-2.14.0 → validmind-2.15.0}/validmind/__init__.py +0 -0
  56. {validmind-2.14.0 → validmind-2.15.0}/validmind/ai/utils.py +0 -0
  57. {validmind-2.14.0 → validmind-2.15.0}/validmind/client.py +0 -0
  58. {validmind-2.14.0 → validmind-2.15.0}/validmind/client_config.py +0 -0
  59. {validmind-2.14.0 → validmind-2.15.0}/validmind/credentials_store.py +0 -0
  60. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/__init__.py +0 -0
  61. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/classification/__init__.py +0 -0
  62. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/classification/config.json +0 -0
  63. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/classification/customer_churn.py +0 -0
  64. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/classification/datasets/bank_customer_churn.csv +0 -0
  65. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/classification/datasets/taiwan_credit.csv +0 -0
  66. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/classification/taiwan_credit.py +0 -0
  67. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/cluster/digits.py +0 -0
  68. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/credit_risk/__init__.py +0 -0
  69. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/credit_risk/datasets/lending_club_biased.csv.gz +0 -0
  70. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/credit_risk/datasets/lending_club_loan_data_2007_2014_clean.csv.gz +0 -0
  71. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/credit_risk/lending_club.py +0 -0
  72. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/credit_risk/lending_club_bias.py +0 -0
  73. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/llm/__init__.py +0 -0
  74. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/llm/agent_dataset.py +0 -0
  75. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/llm/rag/__init__.py +0 -0
  76. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_1.csv +0 -0
  77. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_2.csv +0 -0
  78. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_3.csv +0 -0
  79. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_4.csv +0 -0
  80. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_5.csv +0 -0
  81. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/llm/rag/rfp.py +0 -0
  82. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/nlp/__init__.py +0 -0
  83. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/nlp/cnn_dailymail.py +0 -0
  84. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/nlp/datasets/Covid_19.csv +0 -0
  85. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/nlp/datasets/cnn_dailymail_100_with_predictions.csv +0 -0
  86. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/nlp/datasets/cnn_dailymail_500_with_predictions.csv +0 -0
  87. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/nlp/datasets/sentiments_with_predictions.csv +0 -0
  88. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/nlp/twitter_covid_19.py +0 -0
  89. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/california_housing.py +0 -0
  90. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/california_housing.csv +0 -0
  91. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/fred/CPIAUCSL.csv +0 -0
  92. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/fred/CSUSHPISA.csv +0 -0
  93. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/fred/DRSFRMACBS.csv +0 -0
  94. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/fred/FEDFUNDS.csv +0 -0
  95. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/fred/GDP.csv +0 -0
  96. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/fred/GDPC1.csv +0 -0
  97. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/fred/GS10.csv +0 -0
  98. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/fred/GS3.csv +0 -0
  99. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/fred/GS5.csv +0 -0
  100. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/fred/MORTGAGE30US.csv +0 -0
  101. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/fred/UNRATE.csv +0 -0
  102. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/fred_loan_rates.csv +0 -0
  103. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/fred_loan_rates_test_1.csv +0 -0
  104. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/fred_loan_rates_test_2.csv +0 -0
  105. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/fred_loan_rates_test_3.csv +0 -0
  106. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/fred_loan_rates_test_4.csv +0 -0
  107. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/fred_loan_rates_test_5.csv +0 -0
  108. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/datasets/leanding_club_loan_rates.csv +0 -0
  109. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/fred.py +0 -0
  110. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/fred_timeseries.py +0 -0
  111. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/generate_california_housing_csv.py +0 -0
  112. {validmind-2.14.0 → validmind-2.15.0}/validmind/datasets/regression/lending_club.py +0 -0
  113. {validmind-2.14.0 → validmind-2.15.0}/validmind/errors.py +0 -0
  114. {validmind-2.14.0 → validmind-2.15.0}/validmind/experimental/__init__.py +0 -0
  115. {validmind-2.14.0 → validmind-2.15.0}/validmind/experimental/agents.py +0 -0
  116. {validmind-2.14.0 → validmind-2.15.0}/validmind/html_templates/__init__.py +0 -0
  117. {validmind-2.14.0 → validmind-2.15.0}/validmind/html_templates/content_blocks.py +0 -0
  118. {validmind-2.14.0 → validmind-2.15.0}/validmind/input_registry.py +0 -0
  119. {validmind-2.14.0 → validmind-2.15.0}/validmind/logging.py +0 -0
  120. {validmind-2.14.0 → validmind-2.15.0}/validmind/models/__init__.py +0 -0
  121. {validmind-2.14.0 → validmind-2.15.0}/validmind/models/foundation.py +0 -0
  122. {validmind-2.14.0 → validmind-2.15.0}/validmind/models/function.py +0 -0
  123. {validmind-2.14.0 → validmind-2.15.0}/validmind/models/huggingface.py +0 -0
  124. {validmind-2.14.0 → validmind-2.15.0}/validmind/models/metadata.py +0 -0
  125. {validmind-2.14.0 → validmind-2.15.0}/validmind/models/pipeline.py +0 -0
  126. {validmind-2.14.0 → validmind-2.15.0}/validmind/models/pytorch.py +0 -0
  127. {validmind-2.14.0 → validmind-2.15.0}/validmind/models/r_model.py +0 -0
  128. {validmind-2.14.0 → validmind-2.15.0}/validmind/models/sklearn.py +0 -0
  129. {validmind-2.14.0 → validmind-2.15.0}/validmind/oidc_device.py +0 -0
  130. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/__init__.py +0 -0
  131. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/classification/AbsoluteError.py +0 -0
  132. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/classification/BrierScore.py +0 -0
  133. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/classification/CalibrationError.py +0 -0
  134. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/classification/ClassBalance.py +0 -0
  135. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/classification/Confidence.py +0 -0
  136. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/classification/Correctness.py +0 -0
  137. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/classification/LogLoss.py +0 -0
  138. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/classification/OutlierScore.py +0 -0
  139. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/classification/ProbabilityError.py +0 -0
  140. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/classification/Uncertainty.py +0 -0
  141. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/classification/__init__.py +0 -0
  142. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/llm/deepeval/AnswerRelevancy.py +0 -0
  143. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/llm/deepeval/ArgumentCorrectness.py +0 -0
  144. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/llm/deepeval/Bias.py +0 -0
  145. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/llm/deepeval/ContextualPrecision.py +0 -0
  146. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/llm/deepeval/ContextualRecall.py +0 -0
  147. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/llm/deepeval/ContextualRelevancy.py +0 -0
  148. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/llm/deepeval/Faithfulness.py +0 -0
  149. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/llm/deepeval/GEval.py +0 -0
  150. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/llm/deepeval/Hallucination.py +0 -0
  151. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/llm/deepeval/PlanAdherence.py +0 -0
  152. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/llm/deepeval/PlanQuality.py +0 -0
  153. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/llm/deepeval/Summarization.py +0 -0
  154. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/llm/deepeval/TaskCompletion.py +0 -0
  155. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/llm/deepeval/ToolCorrectness.py +0 -0
  156. {validmind-2.14.0 → validmind-2.15.0}/validmind/scorers/llm/deepeval/__init__.py +0 -0
  157. {validmind-2.14.0 → validmind-2.15.0}/validmind/template.py +0 -0
  158. {validmind-2.14.0 → validmind-2.15.0}/validmind/test_suites/__init__.py +0 -0
  159. {validmind-2.14.0 → validmind-2.15.0}/validmind/test_suites/classifier.py +0 -0
  160. {validmind-2.14.0 → validmind-2.15.0}/validmind/test_suites/cluster.py +0 -0
  161. {validmind-2.14.0 → validmind-2.15.0}/validmind/test_suites/embeddings.py +0 -0
  162. {validmind-2.14.0 → validmind-2.15.0}/validmind/test_suites/llm.py +0 -0
  163. {validmind-2.14.0 → validmind-2.15.0}/validmind/test_suites/nlp.py +0 -0
  164. {validmind-2.14.0 → validmind-2.15.0}/validmind/test_suites/parameters_optimization.py +0 -0
  165. {validmind-2.14.0 → validmind-2.15.0}/validmind/test_suites/regression.py +0 -0
  166. {validmind-2.14.0 → validmind-2.15.0}/validmind/test_suites/statsmodels_timeseries.py +0 -0
  167. {validmind-2.14.0 → validmind-2.15.0}/validmind/test_suites/summarization.py +0 -0
  168. {validmind-2.14.0 → validmind-2.15.0}/validmind/test_suites/tabular_datasets.py +0 -0
  169. {validmind-2.14.0 → validmind-2.15.0}/validmind/test_suites/text_data.py +0 -0
  170. {validmind-2.14.0 → validmind-2.15.0}/validmind/test_suites/time_series.py +0 -0
  171. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/__init__.py +0 -0
  172. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/_store.py +0 -0
  173. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/ACFandPACFPlot.py +0 -0
  174. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/ADF.py +0 -0
  175. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/AutoAR.py +0 -0
  176. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/AutoMA.py +0 -0
  177. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/AutoStationarity.py +0 -0
  178. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/BivariateScatterPlots.py +0 -0
  179. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/BoxPierce.py +0 -0
  180. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/ChiSquaredFeaturesTable.py +0 -0
  181. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/ClassImbalance.py +0 -0
  182. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/DatasetDescription.py +0 -0
  183. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/DatasetSplit.py +0 -0
  184. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/DescriptiveStatistics.py +0 -0
  185. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/DickeyFullerGLS.py +0 -0
  186. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/Duplicates.py +0 -0
  187. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/EngleGrangerCoint.py +0 -0
  188. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/FeatureTargetCorrelationPlot.py +0 -0
  189. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/HighCardinality.py +0 -0
  190. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/HighPearsonCorrelation.py +0 -0
  191. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/IQROutliersBarPlot.py +0 -0
  192. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/IQROutliersTable.py +0 -0
  193. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/IsolationForestOutliers.py +0 -0
  194. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/JarqueBera.py +0 -0
  195. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/KPSS.py +0 -0
  196. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/LJungBox.py +0 -0
  197. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/LaggedCorrelationHeatmap.py +0 -0
  198. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/MissingValues.py +0 -0
  199. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/MissingValuesBarPlot.py +0 -0
  200. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/MutualInformation.py +0 -0
  201. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/PearsonCorrelationMatrix.py +0 -0
  202. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/PhillipsPerronArch.py +0 -0
  203. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/ProtectedClassesCombination.py +0 -0
  204. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/ProtectedClassesDescription.py +0 -0
  205. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/ProtectedClassesDisparity.py +0 -0
  206. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/ProtectedClassesThresholdOptimizer.py +0 -0
  207. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/RollingStatsPlot.py +0 -0
  208. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/RunsTest.py +0 -0
  209. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/ScatterPlot.py +0 -0
  210. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/ScoreBandDefaultRates.py +0 -0
  211. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/SeasonalDecompose.py +0 -0
  212. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/ShapiroWilk.py +0 -0
  213. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/Skewness.py +0 -0
  214. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/SpreadPlot.py +0 -0
  215. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/TabularCategoricalBarPlots.py +0 -0
  216. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/TabularDateTimeHistograms.py +0 -0
  217. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/TabularDescriptionTables.py +0 -0
  218. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/TabularNumericalHistograms.py +0 -0
  219. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/TargetRateBarPlots.py +0 -0
  220. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/TimeSeriesDescription.py +0 -0
  221. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/TimeSeriesDescriptiveStatistics.py +0 -0
  222. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/TimeSeriesFrequency.py +0 -0
  223. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/TimeSeriesHistogram.py +0 -0
  224. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/TimeSeriesLinePlot.py +0 -0
  225. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/TimeSeriesMissingValues.py +0 -0
  226. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/TimeSeriesOutliers.py +0 -0
  227. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/TooManyZeroValues.py +0 -0
  228. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/UniqueRows.py +0 -0
  229. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/WOEBinPlots.py +0 -0
  230. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/WOEBinTable.py +0 -0
  231. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/ZivotAndrewsArch.py +0 -0
  232. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/__init__.py +0 -0
  233. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/nlp/CommonWords.py +0 -0
  234. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/nlp/Hashtags.py +0 -0
  235. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/nlp/LanguageDetection.py +0 -0
  236. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/nlp/Mentions.py +0 -0
  237. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/nlp/PolarityAndSubjectivity.py +0 -0
  238. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/nlp/Punctuations.py +0 -0
  239. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/nlp/Sentiment.py +0 -0
  240. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/nlp/StopWords.py +0 -0
  241. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/nlp/TextDescription.py +0 -0
  242. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/nlp/Toxicity.py +0 -0
  243. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/data_validation/nlp/__init__.py +0 -0
  244. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/decorator.py +0 -0
  245. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/BertScore.py +0 -0
  246. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/BleuScore.py +0 -0
  247. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/ClusterSizeDistribution.py +0 -0
  248. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/ContextualRecall.py +0 -0
  249. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/FeaturesAUC.py +0 -0
  250. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/MeteorScore.py +0 -0
  251. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/ModelMetadata.py +0 -0
  252. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/ModelPredictionResiduals.py +0 -0
  253. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/RegardScore.py +0 -0
  254. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/RegressionResidualsPlot.py +0 -0
  255. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/RougeScore.py +0 -0
  256. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/TimeSeriesPredictionWithCI.py +0 -0
  257. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/TimeSeriesPredictionsPlot.py +0 -0
  258. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/TimeSeriesR2SquareBySegments.py +0 -0
  259. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/TokenDisparity.py +0 -0
  260. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/ToxicityScore.py +0 -0
  261. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/__init__.py +0 -0
  262. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/embeddings/ClusterDistribution.py +0 -0
  263. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/embeddings/CosineSimilarityComparison.py +0 -0
  264. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/embeddings/CosineSimilarityDistribution.py +0 -0
  265. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/embeddings/CosineSimilarityHeatmap.py +0 -0
  266. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/embeddings/DescriptiveAnalytics.py +0 -0
  267. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/embeddings/EmbeddingsVisualization2D.py +0 -0
  268. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/embeddings/EuclideanDistanceComparison.py +0 -0
  269. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/embeddings/EuclideanDistanceHeatmap.py +0 -0
  270. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/embeddings/PCAComponentsPairwisePlots.py +0 -0
  271. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/embeddings/StabilityAnalysisKeyword.py +0 -0
  272. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/embeddings/StabilityAnalysisRandomNoise.py +0 -0
  273. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/embeddings/StabilityAnalysisSynonyms.py +0 -0
  274. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/embeddings/TSNEComponentsPairwisePlots.py +0 -0
  275. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/embeddings/utils.py +0 -0
  276. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/AdjustedMutualInformation.py +0 -0
  277. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/AdjustedRandIndex.py +0 -0
  278. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/CalibrationCurve.py +0 -0
  279. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/ClassifierPerformance.py +0 -0
  280. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/ClassifierThresholdOptimization.py +0 -0
  281. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/ClusterCosineSimilarity.py +0 -0
  282. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/ClusterPerformanceMetrics.py +0 -0
  283. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/CompletenessScore.py +0 -0
  284. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/ConfusionMatrix.py +0 -0
  285. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/FeatureImportance.py +0 -0
  286. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/FowlkesMallowsScore.py +0 -0
  287. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/HomogeneityScore.py +0 -0
  288. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/HyperParametersTuning.py +0 -0
  289. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/KMeansClustersOptimization.py +0 -0
  290. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/MinimumAccuracy.py +0 -0
  291. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/MinimumF1Score.py +0 -0
  292. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/MinimumROCAUCScore.py +0 -0
  293. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/ModelParameters.py +0 -0
  294. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py +0 -0
  295. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/OverfitDiagnosis.py +0 -0
  296. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/PermutationFeatureImportance.py +0 -0
  297. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/PopulationStabilityIndex.py +0 -0
  298. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/PrecisionRecallCurve.py +0 -0
  299. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/ROCCurve.py +0 -0
  300. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/RegressionErrors.py +0 -0
  301. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/RegressionErrorsComparison.py +0 -0
  302. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/RegressionPerformance.py +0 -0
  303. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/RegressionR2Square.py +0 -0
  304. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/RegressionR2SquareComparison.py +0 -0
  305. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/RobustnessDiagnosis.py +0 -0
  306. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py +0 -0
  307. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/ScoreProbabilityAlignment.py +0 -0
  308. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/SilhouettePlot.py +0 -0
  309. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/TrainingTestDegradation.py +0 -0
  310. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/VMeasure.py +0 -0
  311. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/WeakspotsDiagnosis.py +0 -0
  312. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/__init__.py +0 -0
  313. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/_diagnosis_metrics.py +0 -0
  314. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/sklearn/_multiclass_proba.py +0 -0
  315. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/statsmodels/AutoARIMA.py +0 -0
  316. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/statsmodels/CumulativePredictionProbabilities.py +0 -0
  317. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py +0 -0
  318. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/statsmodels/GINITable.py +0 -0
  319. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/statsmodels/KolmogorovSmirnov.py +0 -0
  320. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/statsmodels/Lilliefors.py +0 -0
  321. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/statsmodels/PredictionProbabilitiesHistogram.py +0 -0
  322. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/statsmodels/RegressionFeatureSignificance.py +0 -0
  323. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlot.py +0 -0
  324. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlotLevels.py +0 -0
  325. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/statsmodels/RegressionPermutationFeatureImportance.py +0 -0
  326. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/statsmodels/ScorecardHistogram.py +0 -0
  327. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/model_validation/statsmodels/__init__.py +0 -0
  328. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/ongoing_monitoring/CalibrationCurveDrift.py +0 -0
  329. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/ongoing_monitoring/ClassDiscriminationDrift.py +0 -0
  330. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/ongoing_monitoring/ClassImbalanceDrift.py +0 -0
  331. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/ongoing_monitoring/ClassificationAccuracyDrift.py +0 -0
  332. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/ongoing_monitoring/ConfusionMatrixDrift.py +0 -0
  333. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/ongoing_monitoring/CumulativePredictionProbabilitiesDrift.py +0 -0
  334. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/ongoing_monitoring/FeatureDrift.py +0 -0
  335. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/ongoing_monitoring/PredictionAcrossEachFeature.py +0 -0
  336. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/ongoing_monitoring/PredictionCorrelation.py +0 -0
  337. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/ongoing_monitoring/PredictionProbabilitiesHistogramDrift.py +0 -0
  338. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/ongoing_monitoring/PredictionQuantilesAcrossFeatures.py +0 -0
  339. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/ongoing_monitoring/ROCCurveDrift.py +0 -0
  340. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/ongoing_monitoring/ScoreBandsDrift.py +0 -0
  341. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/ongoing_monitoring/ScorecardHistogramDrift.py +0 -0
  342. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/ongoing_monitoring/TargetPredictionDistributionPlot.py +0 -0
  343. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/output.py +0 -0
  344. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/plots/BoxPlot.py +0 -0
  345. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/plots/CorrelationHeatmap.py +0 -0
  346. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/plots/HistogramPlot.py +0 -0
  347. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/plots/ViolinPlot.py +0 -0
  348. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/plots/__init__.py +0 -0
  349. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/prompt_validation/Bias.py +0 -0
  350. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/prompt_validation/Clarity.py +0 -0
  351. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/prompt_validation/Conciseness.py +0 -0
  352. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/prompt_validation/Delimitation.py +0 -0
  353. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/prompt_validation/NegativeInstruction.py +0 -0
  354. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/prompt_validation/Robustness.py +0 -0
  355. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/prompt_validation/Specificity.py +0 -0
  356. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/prompt_validation/__init__.py +0 -0
  357. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/prompt_validation/ai_powered_test.py +0 -0
  358. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/run.py +0 -0
  359. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/stats/CorrelationAnalysis.py +0 -0
  360. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/stats/DescriptiveStats.py +0 -0
  361. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/stats/NormalityTests.py +0 -0
  362. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/stats/OutlierDetection.py +0 -0
  363. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/stats/__init__.py +0 -0
  364. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/test_providers.py +0 -0
  365. {validmind-2.14.0 → validmind-2.15.0}/validmind/tests/utils.py +0 -0
  366. {validmind-2.14.0 → validmind-2.15.0}/validmind/unit_metrics/__init__.py +0 -0
  367. {validmind-2.14.0 → validmind-2.15.0}/validmind/unit_metrics/classification/Accuracy.py +0 -0
  368. {validmind-2.14.0 → validmind-2.15.0}/validmind/unit_metrics/classification/F1.py +0 -0
  369. {validmind-2.14.0 → validmind-2.15.0}/validmind/unit_metrics/classification/Precision.py +0 -0
  370. {validmind-2.14.0 → validmind-2.15.0}/validmind/unit_metrics/classification/ROC_AUC.py +0 -0
  371. {validmind-2.14.0 → validmind-2.15.0}/validmind/unit_metrics/classification/Recall.py +0 -0
  372. {validmind-2.14.0 → validmind-2.15.0}/validmind/unit_metrics/regression/AdjustedRSquaredScore.py +0 -0
  373. {validmind-2.14.0 → validmind-2.15.0}/validmind/unit_metrics/regression/GiniCoefficient.py +0 -0
  374. {validmind-2.14.0 → validmind-2.15.0}/validmind/unit_metrics/regression/HuberLoss.py +0 -0
  375. {validmind-2.14.0 → validmind-2.15.0}/validmind/unit_metrics/regression/KolmogorovSmirnovStatistic.py +0 -0
  376. {validmind-2.14.0 → validmind-2.15.0}/validmind/unit_metrics/regression/MeanAbsoluteError.py +0 -0
  377. {validmind-2.14.0 → validmind-2.15.0}/validmind/unit_metrics/regression/MeanAbsolutePercentageError.py +0 -0
  378. {validmind-2.14.0 → validmind-2.15.0}/validmind/unit_metrics/regression/MeanBiasDeviation.py +0 -0
  379. {validmind-2.14.0 → validmind-2.15.0}/validmind/unit_metrics/regression/MeanSquaredError.py +0 -0
  380. {validmind-2.14.0 → validmind-2.15.0}/validmind/unit_metrics/regression/QuantileLoss.py +0 -0
  381. {validmind-2.14.0 → validmind-2.15.0}/validmind/unit_metrics/regression/RSquaredScore.py +0 -0
  382. {validmind-2.14.0 → validmind-2.15.0}/validmind/unit_metrics/regression/RootMeanSquaredError.py +0 -0
  383. {validmind-2.14.0 → validmind-2.15.0}/validmind/utils.py +0 -0
  384. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/__init__.py +0 -0
  385. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/dataset/__init__.py +0 -0
  386. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/dataset/dataset.py +0 -0
  387. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/dataset/utils.py +0 -0
  388. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/html_progress.py +0 -0
  389. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/html_renderer.py +0 -0
  390. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/input.py +0 -0
  391. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/model.py +0 -0
  392. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/result/__init__.py +0 -0
  393. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/result/pii_filter.py +0 -0
  394. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/result/result.jinja +0 -0
  395. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/result/utils.py +0 -0
  396. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/test_suite/__init__.py +0 -0
  397. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/test_suite/runner.py +0 -0
  398. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/test_suite/summary.py +0 -0
  399. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/test_suite/test.py +0 -0
  400. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/test_suite/test_suite.py +0 -0
  401. {validmind-2.14.0 → validmind-2.15.0}/validmind/vm_models/text_generation_summary.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: validmind
3
- Version: 2.14.0
3
+ Version: 2.15.0
4
4
  Summary: ValidMind Library
5
5
  Author-email: Andres Rodriguez <andres@validmind.ai>, Juan Martinez <juan@validmind.ai>, Anil Sorathiya <anil@validmind.ai>, Luis Pallares <luis@validmind.ai>, John Walz <john@validmind.ai>
6
6
  License: DUAL LICENSE NOTICE
@@ -696,6 +696,7 @@ Requires-Dist: aiohttp[speedups]<3.13.1
696
696
  Requires-Dist: anywidget
697
697
  Requires-Dist: beautifulsoup4
698
698
  Requires-Dist: ipywidgets
699
+ Requires-Dist: jinja2>=3.1.2
699
700
  Requires-Dist: kaleido<2.0.0,>=1.2.0
700
701
  Requires-Dist: matplotlib
701
702
  Requires-Dist: mistune<4.0.0,>=3.0.2
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "validmind"
3
- version = "2.14.0"
3
+ version = "2.15.0"
4
4
  description = "ValidMind Library"
5
5
  readme = "README.pypi.md"
6
6
  requires-python = ">=3.9,<3.15"
@@ -16,6 +16,7 @@ dependencies = [
16
16
  "aiohttp[speedups] (<3.13.1)",
17
17
  "requests (>=2.28.0,<3.0.0)",
18
18
  "ipywidgets",
19
+ "jinja2 (>=3.1.2)",
19
20
  "kaleido (>=1.2.0,<2.0.0)",
20
21
  "matplotlib",
21
22
  "mistune (>=3.0.2,<4.0.0)",
@@ -198,3 +199,14 @@ exclude-newer = "7 days"
198
199
  exclude-newer-package = { certifi = "2026-10-21" }
199
200
  # Security floor: certifi>=2026.10.19 distrusts compromised eMudhra intermediates (Mozilla bug 2083449)
200
201
  constraint-dependencies = ["certifi>=2026.10.19"]
202
+
203
+ # CPU-only torch for this repo's own installs (dev, CI). CI runners have no GPU, and PyPI's Linux
204
+ # torch pulls ~3 GB of NVIDIA libraries. uv-only setting: the published package still depends on
205
+ # plain `torch`, so what users install is unchanged.
206
+ [[tool.uv.index]]
207
+ name = "pytorch-cpu"
208
+ url = "https://download.pytorch.org/whl/cpu"
209
+ explicit = true
210
+
211
+ [tool.uv.sources]
212
+ torch = [{ index = "pytorch-cpu", marker = "sys_platform == 'linux'" }]
@@ -0,0 +1 @@
1
+ __version__ = "2.15.0"
@@ -220,6 +220,14 @@ def background_generate_description(
220
220
 
221
221
  return test_description, False
222
222
 
223
+ # Render figures to PNG here, on the calling thread: Plotly's renderer (kaleido)
224
+ # deadlocks when several description workers start it at the same time.
225
+ for figure in figures or []:
226
+ try:
227
+ figure.pre_serialize()
228
+ except Exception:
229
+ pass # the worker hits the same error and falls back to the default
230
+
223
231
  return DescriptionFuture(__executor.submit(wrapped))
224
232
 
225
233
 
@@ -50,6 +50,7 @@ _oidc_expires_at: Optional[str] = None
50
50
  _oidc_refresh_lock = threading.Lock()
51
51
 
52
52
  __api_session: Optional[aiohttp.ClientSession] = None
53
+ __api_session_loop: Optional[asyncio.AbstractEventLoop] = None
53
54
 
54
55
 
55
56
  def _invalidate_async_session() -> None:
@@ -72,23 +73,10 @@ def _invalidate_async_session() -> None:
72
73
  @atexit.register
73
74
  def _close_session():
74
75
  """Closes the async client session at exit."""
75
- if __api_session and not __api_session.closed:
76
- try:
77
- loop = asyncio.get_event_loop()
78
- if loop.is_running():
79
- loop.create_task(__api_session.close())
80
- else:
81
- loop.run_until_complete(__api_session.close())
82
- except RuntimeError as e:
83
- # ignore RuntimeError when closing the session from the main thread
84
- if "no current event loop in thread" in str(e):
85
- pass
86
- elif "Event loop is closed" in str(e):
87
- pass
88
- else:
89
- raise e
90
- except Exception as e:
91
- logger.exception("Error closing aiohttp session at exit: %s", e)
76
+ try:
77
+ _invalidate_async_session()
78
+ except Exception as e:
79
+ logger.exception("Error closing aiohttp session at exit: %s", e)
92
80
 
93
81
 
94
82
  def get_api_host() -> Optional[str]:
@@ -120,8 +108,14 @@ def _get_api_headers() -> Dict[str, str]:
120
108
 
121
109
 
122
110
  def _get_session() -> aiohttp.ClientSession:
123
- """Initializes the async client session."""
124
- global __api_session
111
+ """Initializes the async client session for the running event loop."""
112
+ global __api_session, __api_session_loop
113
+
114
+ # An aiohttp session only works on the loop it was created on, and outside a
115
+ # notebook run_async starts a new loop (asyncio.run) for every call.
116
+ loop = asyncio.get_running_loop()
117
+ if __api_session_loop is not loop:
118
+ _invalidate_async_session()
125
119
 
126
120
  if not __api_session or __api_session.closed:
127
121
  __api_session = aiohttp.ClientSession(
@@ -129,6 +123,7 @@ def _get_session() -> aiohttp.ClientSession:
129
123
  timeout=aiohttp.ClientTimeout(total=int(os.getenv("VM_API_TIMEOUT", 30))),
130
124
  trust_env=True,
131
125
  )
126
+ __api_session_loop = loop
132
127
 
133
128
  return __api_session
134
129
 
@@ -10,6 +10,8 @@ from typing import List
10
10
  import pandas as pd
11
11
 
12
12
  __all__: List[str] = [
13
+ "california_housing",
14
+ "credit_card_balance",
13
15
  "fred",
14
16
  "lending_club",
15
17
  ]
@@ -0,0 +1,57 @@
1
+ # Copyright © 2023-2026 ValidMind Inc. All rights reserved.
2
+ # Refer to the LICENSE file in the root of this repository for details.
3
+ # SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial
4
+
5
+ """
6
+ Synthetic credit card balance dataset for linear regression.
7
+
8
+ Each row is a cardholder observed in one quarter; the target is their average monthly
9
+ revolving balance. The data is synthetic — see `generate_credit_card_balance_csv.py`
10
+ for how it was made.
11
+ """
12
+
13
+ import os
14
+
15
+ import pandas as pd
16
+ from sklearn.model_selection import train_test_split
17
+
18
+ current_path = os.path.dirname(os.path.abspath(__file__))
19
+ dataset_path = os.path.join(current_path, "datasets")
20
+
21
+ feature_columns = [
22
+ "Income",
23
+ "DebtToIncome",
24
+ "CreditScore",
25
+ "CreditLimit",
26
+ "RecentInquiries",
27
+ "NumCards",
28
+ "TenureYears",
29
+ "IsStudent",
30
+ "Region",
31
+ ]
32
+ target_column = "Balance"
33
+ time_column = "Quarter"
34
+ oot_start = "2025Q3"
35
+
36
+ bundled_data_file = os.path.join(dataset_path, "credit_card_balance.csv")
37
+
38
+
39
+ def load_data():
40
+ """Load the bundled synthetic credit card balance dataset."""
41
+ return pd.read_csv(bundled_data_file)
42
+
43
+
44
+ def preprocess(df, oot_start=oot_start, test_size=0.2, random_state=42):
45
+ """
46
+ Split into train and test sets from the development period, and an out-of-time
47
+ set from `oot_start` onwards.
48
+
49
+ Returns:
50
+ tuple: (train_df, test_df, oot_df)
51
+ """
52
+ development = df[df[time_column] < oot_start]
53
+ oot_df = df[df[time_column] >= oot_start].copy()
54
+ train_df, test_df = train_test_split(
55
+ development.copy(), test_size=test_size, random_state=random_state
56
+ )
57
+ return train_df, test_df, oot_df