validmind 2.13.5__tar.gz → 2.13.6__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 (376) hide show
  1. {validmind-2.13.5 → validmind-2.13.6}/PKG-INFO +5 -1
  2. {validmind-2.13.5 → validmind-2.13.6}/pyproject.toml +8 -2
  3. validmind-2.13.6/validmind/__version__.py +1 -0
  4. {validmind-2.13.5 → validmind-2.13.6}/validmind/ai/utils.py +112 -22
  5. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/IQROutliersBarPlot.py +6 -2
  6. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/IQROutliersTable.py +5 -2
  7. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/ModelPredictionResiduals.py +2 -2
  8. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/MinimumF1Score.py +12 -3
  9. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/PrecisionRecallCurve.py +1 -0
  10. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/ROCCurve.py +1 -0
  11. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/statsmodels/CumulativePredictionProbabilities.py +2 -2
  12. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/statsmodels/PredictionProbabilitiesHistogram.py +2 -2
  13. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/statsmodels/ScorecardHistogram.py +2 -2
  14. validmind-2.13.5/validmind/__version__.py +0 -1
  15. {validmind-2.13.5 → validmind-2.13.6}/.gitignore +0 -0
  16. {validmind-2.13.5 → validmind-2.13.6}/LICENSE +0 -0
  17. {validmind-2.13.5 → validmind-2.13.6}/README.pypi.md +0 -0
  18. {validmind-2.13.5 → validmind-2.13.6}/validmind/__init__.py +0 -0
  19. {validmind-2.13.5 → validmind-2.13.6}/validmind/ai/test_descriptions.py +0 -0
  20. {validmind-2.13.5 → validmind-2.13.6}/validmind/api_client.py +0 -0
  21. {validmind-2.13.5 → validmind-2.13.6}/validmind/client.py +0 -0
  22. {validmind-2.13.5 → validmind-2.13.6}/validmind/client_config.py +0 -0
  23. {validmind-2.13.5 → validmind-2.13.6}/validmind/credentials_store.py +0 -0
  24. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/__init__.py +0 -0
  25. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/classification/__init__.py +0 -0
  26. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/classification/config.json +0 -0
  27. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/classification/customer_churn.py +0 -0
  28. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/classification/datasets/bank_customer_churn.csv +0 -0
  29. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/classification/datasets/taiwan_credit.csv +0 -0
  30. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/classification/taiwan_credit.py +0 -0
  31. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/cluster/digits.py +0 -0
  32. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/credit_risk/__init__.py +0 -0
  33. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/credit_risk/datasets/lending_club_biased.csv.gz +0 -0
  34. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/credit_risk/datasets/lending_club_loan_data_2007_2014_clean.csv.gz +0 -0
  35. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/credit_risk/lending_club.py +0 -0
  36. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/credit_risk/lending_club_bias.py +0 -0
  37. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/llm/__init__.py +0 -0
  38. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/llm/agent_dataset.py +0 -0
  39. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/llm/rag/__init__.py +0 -0
  40. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_1.csv +0 -0
  41. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_2.csv +0 -0
  42. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_3.csv +0 -0
  43. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_4.csv +0 -0
  44. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_5.csv +0 -0
  45. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/llm/rag/rfp.py +0 -0
  46. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/nlp/__init__.py +0 -0
  47. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/nlp/cnn_dailymail.py +0 -0
  48. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/nlp/datasets/Covid_19.csv +0 -0
  49. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/nlp/datasets/cnn_dailymail_100_with_predictions.csv +0 -0
  50. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/nlp/datasets/cnn_dailymail_500_with_predictions.csv +0 -0
  51. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/nlp/datasets/sentiments_with_predictions.csv +0 -0
  52. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/nlp/twitter_covid_19.py +0 -0
  53. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/__init__.py +0 -0
  54. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/california_housing.py +0 -0
  55. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/california_housing.csv +0 -0
  56. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/fred/CPIAUCSL.csv +0 -0
  57. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/fred/CSUSHPISA.csv +0 -0
  58. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/fred/DRSFRMACBS.csv +0 -0
  59. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/fred/FEDFUNDS.csv +0 -0
  60. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/fred/GDP.csv +0 -0
  61. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/fred/GDPC1.csv +0 -0
  62. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/fred/GS10.csv +0 -0
  63. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/fred/GS3.csv +0 -0
  64. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/fred/GS5.csv +0 -0
  65. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/fred/MORTGAGE30US.csv +0 -0
  66. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/fred/UNRATE.csv +0 -0
  67. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/fred_loan_rates.csv +0 -0
  68. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/fred_loan_rates_test_1.csv +0 -0
  69. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/fred_loan_rates_test_2.csv +0 -0
  70. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/fred_loan_rates_test_3.csv +0 -0
  71. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/fred_loan_rates_test_4.csv +0 -0
  72. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/fred_loan_rates_test_5.csv +0 -0
  73. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/datasets/leanding_club_loan_rates.csv +0 -0
  74. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/fred.py +0 -0
  75. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/fred_timeseries.py +0 -0
  76. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/generate_california_housing_csv.py +0 -0
  77. {validmind-2.13.5 → validmind-2.13.6}/validmind/datasets/regression/lending_club.py +0 -0
  78. {validmind-2.13.5 → validmind-2.13.6}/validmind/errors.py +0 -0
  79. {validmind-2.13.5 → validmind-2.13.6}/validmind/experimental/__init__.py +0 -0
  80. {validmind-2.13.5 → validmind-2.13.6}/validmind/experimental/agents.py +0 -0
  81. {validmind-2.13.5 → validmind-2.13.6}/validmind/html_templates/__init__.py +0 -0
  82. {validmind-2.13.5 → validmind-2.13.6}/validmind/html_templates/content_blocks.py +0 -0
  83. {validmind-2.13.5 → validmind-2.13.6}/validmind/input_registry.py +0 -0
  84. {validmind-2.13.5 → validmind-2.13.6}/validmind/logging.py +0 -0
  85. {validmind-2.13.5 → validmind-2.13.6}/validmind/models/__init__.py +0 -0
  86. {validmind-2.13.5 → validmind-2.13.6}/validmind/models/foundation.py +0 -0
  87. {validmind-2.13.5 → validmind-2.13.6}/validmind/models/function.py +0 -0
  88. {validmind-2.13.5 → validmind-2.13.6}/validmind/models/huggingface.py +0 -0
  89. {validmind-2.13.5 → validmind-2.13.6}/validmind/models/metadata.py +0 -0
  90. {validmind-2.13.5 → validmind-2.13.6}/validmind/models/pipeline.py +0 -0
  91. {validmind-2.13.5 → validmind-2.13.6}/validmind/models/pytorch.py +0 -0
  92. {validmind-2.13.5 → validmind-2.13.6}/validmind/models/r_model.py +0 -0
  93. {validmind-2.13.5 → validmind-2.13.6}/validmind/models/sklearn.py +0 -0
  94. {validmind-2.13.5 → validmind-2.13.6}/validmind/oidc_device.py +0 -0
  95. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/__init__.py +0 -0
  96. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/classification/AbsoluteError.py +0 -0
  97. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/classification/BrierScore.py +0 -0
  98. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/classification/CalibrationError.py +0 -0
  99. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/classification/ClassBalance.py +0 -0
  100. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/classification/Confidence.py +0 -0
  101. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/classification/Correctness.py +0 -0
  102. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/classification/LogLoss.py +0 -0
  103. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/classification/OutlierScore.py +0 -0
  104. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/classification/ProbabilityError.py +0 -0
  105. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/classification/Uncertainty.py +0 -0
  106. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/classification/__init__.py +0 -0
  107. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/llm/deepeval/AnswerRelevancy.py +0 -0
  108. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/llm/deepeval/ArgumentCorrectness.py +0 -0
  109. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/llm/deepeval/Bias.py +0 -0
  110. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/llm/deepeval/ContextualPrecision.py +0 -0
  111. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/llm/deepeval/ContextualRecall.py +0 -0
  112. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/llm/deepeval/ContextualRelevancy.py +0 -0
  113. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/llm/deepeval/Faithfulness.py +0 -0
  114. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/llm/deepeval/GEval.py +0 -0
  115. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/llm/deepeval/Hallucination.py +0 -0
  116. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/llm/deepeval/PlanAdherence.py +0 -0
  117. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/llm/deepeval/PlanQuality.py +0 -0
  118. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/llm/deepeval/Summarization.py +0 -0
  119. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/llm/deepeval/TaskCompletion.py +0 -0
  120. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/llm/deepeval/ToolCorrectness.py +0 -0
  121. {validmind-2.13.5 → validmind-2.13.6}/validmind/scorers/llm/deepeval/__init__.py +0 -0
  122. {validmind-2.13.5 → validmind-2.13.6}/validmind/template.py +0 -0
  123. {validmind-2.13.5 → validmind-2.13.6}/validmind/test_suites/__init__.py +0 -0
  124. {validmind-2.13.5 → validmind-2.13.6}/validmind/test_suites/classifier.py +0 -0
  125. {validmind-2.13.5 → validmind-2.13.6}/validmind/test_suites/cluster.py +0 -0
  126. {validmind-2.13.5 → validmind-2.13.6}/validmind/test_suites/embeddings.py +0 -0
  127. {validmind-2.13.5 → validmind-2.13.6}/validmind/test_suites/llm.py +0 -0
  128. {validmind-2.13.5 → validmind-2.13.6}/validmind/test_suites/nlp.py +0 -0
  129. {validmind-2.13.5 → validmind-2.13.6}/validmind/test_suites/parameters_optimization.py +0 -0
  130. {validmind-2.13.5 → validmind-2.13.6}/validmind/test_suites/regression.py +0 -0
  131. {validmind-2.13.5 → validmind-2.13.6}/validmind/test_suites/statsmodels_timeseries.py +0 -0
  132. {validmind-2.13.5 → validmind-2.13.6}/validmind/test_suites/summarization.py +0 -0
  133. {validmind-2.13.5 → validmind-2.13.6}/validmind/test_suites/tabular_datasets.py +0 -0
  134. {validmind-2.13.5 → validmind-2.13.6}/validmind/test_suites/text_data.py +0 -0
  135. {validmind-2.13.5 → validmind-2.13.6}/validmind/test_suites/time_series.py +0 -0
  136. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/__init__.py +0 -0
  137. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/__types__.py +0 -0
  138. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/_store.py +0 -0
  139. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/comparison.py +0 -0
  140. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/ACFandPACFPlot.py +0 -0
  141. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/ADF.py +0 -0
  142. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/AutoAR.py +0 -0
  143. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/AutoMA.py +0 -0
  144. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/AutoStationarity.py +0 -0
  145. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/BivariateScatterPlots.py +0 -0
  146. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/BoxPierce.py +0 -0
  147. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/ChiSquaredFeaturesTable.py +0 -0
  148. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/ClassImbalance.py +0 -0
  149. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/DatasetDescription.py +0 -0
  150. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/DatasetSplit.py +0 -0
  151. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/DescriptiveStatistics.py +0 -0
  152. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/DickeyFullerGLS.py +0 -0
  153. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/Duplicates.py +0 -0
  154. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/EngleGrangerCoint.py +0 -0
  155. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/FeatureTargetCorrelationPlot.py +0 -0
  156. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/HighCardinality.py +0 -0
  157. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/HighPearsonCorrelation.py +0 -0
  158. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/IsolationForestOutliers.py +0 -0
  159. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/JarqueBera.py +0 -0
  160. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/KPSS.py +0 -0
  161. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/LJungBox.py +0 -0
  162. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/LaggedCorrelationHeatmap.py +0 -0
  163. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/MissingValues.py +0 -0
  164. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/MissingValuesBarPlot.py +0 -0
  165. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/MutualInformation.py +0 -0
  166. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/PearsonCorrelationMatrix.py +0 -0
  167. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/PhillipsPerronArch.py +0 -0
  168. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/ProtectedClassesCombination.py +0 -0
  169. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/ProtectedClassesDescription.py +0 -0
  170. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/ProtectedClassesDisparity.py +0 -0
  171. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/ProtectedClassesThresholdOptimizer.py +0 -0
  172. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/RollingStatsPlot.py +0 -0
  173. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/RunsTest.py +0 -0
  174. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/ScatterPlot.py +0 -0
  175. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/ScoreBandDefaultRates.py +0 -0
  176. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/SeasonalDecompose.py +0 -0
  177. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/ShapiroWilk.py +0 -0
  178. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/Skewness.py +0 -0
  179. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/SpreadPlot.py +0 -0
  180. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/TabularCategoricalBarPlots.py +0 -0
  181. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/TabularDateTimeHistograms.py +0 -0
  182. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/TabularDescriptionTables.py +0 -0
  183. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/TabularNumericalHistograms.py +0 -0
  184. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/TargetRateBarPlots.py +0 -0
  185. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/TimeSeriesDescription.py +0 -0
  186. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/TimeSeriesDescriptiveStatistics.py +0 -0
  187. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/TimeSeriesFrequency.py +0 -0
  188. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/TimeSeriesHistogram.py +0 -0
  189. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/TimeSeriesLinePlot.py +0 -0
  190. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/TimeSeriesMissingValues.py +0 -0
  191. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/TimeSeriesOutliers.py +0 -0
  192. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/TooManyZeroValues.py +0 -0
  193. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/UniqueRows.py +0 -0
  194. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/WOEBinPlots.py +0 -0
  195. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/WOEBinTable.py +0 -0
  196. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/ZivotAndrewsArch.py +0 -0
  197. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/__init__.py +0 -0
  198. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/nlp/CommonWords.py +0 -0
  199. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/nlp/Hashtags.py +0 -0
  200. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/nlp/LanguageDetection.py +0 -0
  201. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/nlp/Mentions.py +0 -0
  202. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/nlp/PolarityAndSubjectivity.py +0 -0
  203. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/nlp/Punctuations.py +0 -0
  204. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/nlp/Sentiment.py +0 -0
  205. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/nlp/StopWords.py +0 -0
  206. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/nlp/TextDescription.py +0 -0
  207. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/nlp/Toxicity.py +0 -0
  208. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/data_validation/nlp/__init__.py +0 -0
  209. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/decorator.py +0 -0
  210. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/load.py +0 -0
  211. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/BertScore.py +0 -0
  212. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/BleuScore.py +0 -0
  213. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/ClusterSizeDistribution.py +0 -0
  214. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/ContextualRecall.py +0 -0
  215. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/FeaturesAUC.py +0 -0
  216. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/MeteorScore.py +0 -0
  217. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/ModelMetadata.py +0 -0
  218. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/RegardScore.py +0 -0
  219. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/RegressionResidualsPlot.py +0 -0
  220. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/RougeScore.py +0 -0
  221. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/TimeSeriesPredictionWithCI.py +0 -0
  222. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/TimeSeriesPredictionsPlot.py +0 -0
  223. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/TimeSeriesR2SquareBySegments.py +0 -0
  224. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/TokenDisparity.py +0 -0
  225. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/ToxicityScore.py +0 -0
  226. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/__init__.py +0 -0
  227. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/embeddings/ClusterDistribution.py +0 -0
  228. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/embeddings/CosineSimilarityComparison.py +0 -0
  229. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/embeddings/CosineSimilarityDistribution.py +0 -0
  230. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/embeddings/CosineSimilarityHeatmap.py +0 -0
  231. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/embeddings/DescriptiveAnalytics.py +0 -0
  232. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/embeddings/EmbeddingsVisualization2D.py +0 -0
  233. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/embeddings/EuclideanDistanceComparison.py +0 -0
  234. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/embeddings/EuclideanDistanceHeatmap.py +0 -0
  235. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/embeddings/PCAComponentsPairwisePlots.py +0 -0
  236. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/embeddings/StabilityAnalysisKeyword.py +0 -0
  237. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/embeddings/StabilityAnalysisRandomNoise.py +0 -0
  238. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/embeddings/StabilityAnalysisSynonyms.py +0 -0
  239. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/embeddings/StabilityAnalysisTranslation.py +0 -0
  240. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/embeddings/TSNEComponentsPairwisePlots.py +0 -0
  241. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/embeddings/utils.py +0 -0
  242. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/ragas/AnswerCorrectness.py +0 -0
  243. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/ragas/AspectCritic.py +0 -0
  244. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/ragas/ContextEntityRecall.py +0 -0
  245. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/ragas/ContextPrecision.py +0 -0
  246. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/ragas/ContextPrecisionWithoutReference.py +0 -0
  247. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/ragas/ContextRecall.py +0 -0
  248. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/ragas/Faithfulness.py +0 -0
  249. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/ragas/NoiseSensitivity.py +0 -0
  250. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/ragas/ResponseRelevancy.py +0 -0
  251. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/ragas/SemanticSimilarity.py +0 -0
  252. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/ragas/utils.py +0 -0
  253. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/AdjustedMutualInformation.py +0 -0
  254. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/AdjustedRandIndex.py +0 -0
  255. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/CalibrationCurve.py +0 -0
  256. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/ClassifierPerformance.py +0 -0
  257. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/ClassifierThresholdOptimization.py +0 -0
  258. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/ClusterCosineSimilarity.py +0 -0
  259. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/ClusterPerformanceMetrics.py +0 -0
  260. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/CompletenessScore.py +0 -0
  261. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/ConfusionMatrix.py +0 -0
  262. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/FeatureImportance.py +0 -0
  263. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/FowlkesMallowsScore.py +0 -0
  264. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/HomogeneityScore.py +0 -0
  265. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/HyperParametersTuning.py +0 -0
  266. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/KMeansClustersOptimization.py +0 -0
  267. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/MinimumAccuracy.py +0 -0
  268. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/MinimumROCAUCScore.py +0 -0
  269. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/ModelParameters.py +0 -0
  270. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py +0 -0
  271. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/OverfitDiagnosis.py +0 -0
  272. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/PermutationFeatureImportance.py +0 -0
  273. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/PopulationStabilityIndex.py +0 -0
  274. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/RegressionErrors.py +0 -0
  275. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/RegressionErrorsComparison.py +0 -0
  276. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/RegressionPerformance.py +0 -0
  277. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/RegressionR2Square.py +0 -0
  278. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/RegressionR2SquareComparison.py +0 -0
  279. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/RobustnessDiagnosis.py +0 -0
  280. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py +0 -0
  281. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/ScoreProbabilityAlignment.py +0 -0
  282. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/SilhouettePlot.py +0 -0
  283. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/TrainingTestDegradation.py +0 -0
  284. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/VMeasure.py +0 -0
  285. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/WeakspotsDiagnosis.py +0 -0
  286. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/sklearn/__init__.py +0 -0
  287. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/statsmodels/AutoARIMA.py +0 -0
  288. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py +0 -0
  289. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/statsmodels/GINITable.py +0 -0
  290. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/statsmodels/KolmogorovSmirnov.py +0 -0
  291. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/statsmodels/Lilliefors.py +0 -0
  292. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/statsmodels/RegressionCoeffs.py +0 -0
  293. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/statsmodels/RegressionFeatureSignificance.py +0 -0
  294. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlot.py +0 -0
  295. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlotLevels.py +0 -0
  296. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/statsmodels/RegressionModelSensitivityPlot.py +0 -0
  297. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/statsmodels/RegressionModelSummary.py +0 -0
  298. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/statsmodels/RegressionPermutationFeatureImportance.py +0 -0
  299. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/statsmodels/__init__.py +0 -0
  300. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/model_validation/statsmodels/statsutils.py +0 -0
  301. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/ongoing_monitoring/CalibrationCurveDrift.py +0 -0
  302. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/ongoing_monitoring/ClassDiscriminationDrift.py +0 -0
  303. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/ongoing_monitoring/ClassImbalanceDrift.py +0 -0
  304. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/ongoing_monitoring/ClassificationAccuracyDrift.py +0 -0
  305. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/ongoing_monitoring/ConfusionMatrixDrift.py +0 -0
  306. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/ongoing_monitoring/CumulativePredictionProbabilitiesDrift.py +0 -0
  307. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/ongoing_monitoring/FeatureDrift.py +0 -0
  308. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/ongoing_monitoring/PredictionAcrossEachFeature.py +0 -0
  309. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/ongoing_monitoring/PredictionCorrelation.py +0 -0
  310. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/ongoing_monitoring/PredictionProbabilitiesHistogramDrift.py +0 -0
  311. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/ongoing_monitoring/PredictionQuantilesAcrossFeatures.py +0 -0
  312. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/ongoing_monitoring/ROCCurveDrift.py +0 -0
  313. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/ongoing_monitoring/ScoreBandsDrift.py +0 -0
  314. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/ongoing_monitoring/ScorecardHistogramDrift.py +0 -0
  315. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/ongoing_monitoring/TargetPredictionDistributionPlot.py +0 -0
  316. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/output.py +0 -0
  317. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/plots/BoxPlot.py +0 -0
  318. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/plots/CorrelationHeatmap.py +0 -0
  319. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/plots/HistogramPlot.py +0 -0
  320. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/plots/ViolinPlot.py +0 -0
  321. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/plots/__init__.py +0 -0
  322. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/prompt_validation/Bias.py +0 -0
  323. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/prompt_validation/Clarity.py +0 -0
  324. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/prompt_validation/Conciseness.py +0 -0
  325. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/prompt_validation/Delimitation.py +0 -0
  326. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/prompt_validation/NegativeInstruction.py +0 -0
  327. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/prompt_validation/Robustness.py +0 -0
  328. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/prompt_validation/Specificity.py +0 -0
  329. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/prompt_validation/__init__.py +0 -0
  330. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/prompt_validation/ai_powered_test.py +0 -0
  331. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/run.py +0 -0
  332. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/stats/CorrelationAnalysis.py +0 -0
  333. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/stats/DescriptiveStats.py +0 -0
  334. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/stats/NormalityTests.py +0 -0
  335. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/stats/OutlierDetection.py +0 -0
  336. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/stats/__init__.py +0 -0
  337. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/test_providers.py +0 -0
  338. {validmind-2.13.5 → validmind-2.13.6}/validmind/tests/utils.py +0 -0
  339. {validmind-2.13.5 → validmind-2.13.6}/validmind/unit_metrics/__init__.py +0 -0
  340. {validmind-2.13.5 → validmind-2.13.6}/validmind/unit_metrics/classification/Accuracy.py +0 -0
  341. {validmind-2.13.5 → validmind-2.13.6}/validmind/unit_metrics/classification/F1.py +0 -0
  342. {validmind-2.13.5 → validmind-2.13.6}/validmind/unit_metrics/classification/Precision.py +0 -0
  343. {validmind-2.13.5 → validmind-2.13.6}/validmind/unit_metrics/classification/ROC_AUC.py +0 -0
  344. {validmind-2.13.5 → validmind-2.13.6}/validmind/unit_metrics/classification/Recall.py +0 -0
  345. {validmind-2.13.5 → validmind-2.13.6}/validmind/unit_metrics/regression/AdjustedRSquaredScore.py +0 -0
  346. {validmind-2.13.5 → validmind-2.13.6}/validmind/unit_metrics/regression/GiniCoefficient.py +0 -0
  347. {validmind-2.13.5 → validmind-2.13.6}/validmind/unit_metrics/regression/HuberLoss.py +0 -0
  348. {validmind-2.13.5 → validmind-2.13.6}/validmind/unit_metrics/regression/KolmogorovSmirnovStatistic.py +0 -0
  349. {validmind-2.13.5 → validmind-2.13.6}/validmind/unit_metrics/regression/MeanAbsoluteError.py +0 -0
  350. {validmind-2.13.5 → validmind-2.13.6}/validmind/unit_metrics/regression/MeanAbsolutePercentageError.py +0 -0
  351. {validmind-2.13.5 → validmind-2.13.6}/validmind/unit_metrics/regression/MeanBiasDeviation.py +0 -0
  352. {validmind-2.13.5 → validmind-2.13.6}/validmind/unit_metrics/regression/MeanSquaredError.py +0 -0
  353. {validmind-2.13.5 → validmind-2.13.6}/validmind/unit_metrics/regression/QuantileLoss.py +0 -0
  354. {validmind-2.13.5 → validmind-2.13.6}/validmind/unit_metrics/regression/RSquaredScore.py +0 -0
  355. {validmind-2.13.5 → validmind-2.13.6}/validmind/unit_metrics/regression/RootMeanSquaredError.py +0 -0
  356. {validmind-2.13.5 → validmind-2.13.6}/validmind/utils.py +0 -0
  357. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/__init__.py +0 -0
  358. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/dataset/__init__.py +0 -0
  359. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/dataset/dataset.py +0 -0
  360. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/dataset/utils.py +0 -0
  361. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/figure.py +0 -0
  362. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/html_progress.py +0 -0
  363. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/html_renderer.py +0 -0
  364. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/input.py +0 -0
  365. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/model.py +0 -0
  366. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/result/__init__.py +0 -0
  367. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/result/pii_filter.py +0 -0
  368. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/result/result.jinja +0 -0
  369. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/result/result.py +0 -0
  370. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/result/utils.py +0 -0
  371. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/test_suite/__init__.py +0 -0
  372. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/test_suite/runner.py +0 -0
  373. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/test_suite/summary.py +0 -0
  374. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/test_suite/test.py +0 -0
  375. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/test_suite/test_suite.py +0 -0
  376. {validmind-2.13.5 → validmind-2.13.6}/validmind/vm_models/text_generation_summary.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: validmind
3
- Version: 2.13.5
3
+ Version: 2.13.6
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
@@ -726,7 +726,9 @@ Requires-Dist: langchain-google-genai; extra == 'all'
726
726
  Requires-Dist: langchain-openai>=0.1.8; extra == 'all'
727
727
  Requires-Dist: langchain<0.4.0,>=0.2.0; extra == 'all'
728
728
  Requires-Dist: langdetect; extra == 'all'
729
+ Requires-Dist: llvmlite<0.48,>=0.47.0; (python_version >= '3.14') and extra == 'all'
729
730
  Requires-Dist: nltk<4.0.0,>=3.8.1; extra == 'all'
731
+ Requires-Dist: numba>=0.65.1; (python_version >= '3.14') and extra == 'all'
730
732
  Requires-Dist: pyarrow<16; (python_version < '3.13') and extra == 'all'
731
733
  Requires-Dist: pyarrow<21,>=20; (python_version == '3.13') and extra == 'all'
732
734
  Requires-Dist: pyarrow<23,>=22; (python_version >= '3.14') and extra == 'all'
@@ -753,6 +755,8 @@ Requires-Dist: pyarrow<16; (python_version < '3.13') and extra == 'datasets'
753
755
  Requires-Dist: pyarrow<21,>=20; (python_version == '3.13') and extra == 'datasets'
754
756
  Requires-Dist: pyarrow<23,>=22; (python_version >= '3.14') and extra == 'datasets'
755
757
  Provides-Extra: explainability
758
+ Requires-Dist: llvmlite<0.48,>=0.47.0; (python_version >= '3.14') and extra == 'explainability'
759
+ Requires-Dist: numba>=0.65.1; (python_version >= '3.14') and extra == 'explainability'
756
760
  Requires-Dist: shap>=0.46.0; extra == 'explainability'
757
761
  Provides-Extra: huggingface
758
762
  Requires-Dist: sentencepiece<0.3.0,>=0.2.0; extra == 'huggingface'
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "validmind"
3
- version = "2.13.5"
3
+ version = "2.13.6"
4
4
  description = "ValidMind Library"
5
5
  readme = "README.pypi.md"
6
6
  requires-python = ">=3.9,<3.15"
@@ -65,6 +65,8 @@ all = [
65
65
  "pyarrow (>=22,<23) ; python_version >= '3.14'",
66
66
  "arch (>=7.0.0)",
67
67
  "shap (>=0.46.0)",
68
+ "numba (>=0.65.1) ; python_version >= '3.14'",
69
+ "llvmlite (>=0.47.0,<0.48) ; python_version >= '3.14'",
68
70
  "scorecardpy==0.1.9.6",
69
71
  "setuptools (<82)",
70
72
  ]
@@ -107,7 +109,11 @@ nlp = [
107
109
  pytorch = ["torch (>=2.0.0)"]
108
110
  stats = ["scipy", "statsmodels (>=0.14.2,<0.15.0)", "arch (>=7.0.0)"]
109
111
  xgboost = ["xgboost (>=1.5.2,<3)"]
110
- explainability = ["shap (>=0.46.0)"]
112
+ explainability = [
113
+ "shap (>=0.46.0)",
114
+ "numba (>=0.65.1) ; python_version >= '3.14'",
115
+ "llvmlite (>=0.47.0,<0.48) ; python_version >= '3.14'",
116
+ ]
111
117
  credit_risk = ["scorecardpy==0.1.9.6", "setuptools (<82)"]
112
118
  datasets = [
113
119
  "datasets (>=2.10.0,<3.0.0) ; python_version < '3.14'",
@@ -0,0 +1 @@
1
+ __version__ = "2.13.6"
@@ -17,6 +17,7 @@ __client = None
17
17
  __model = None
18
18
  __judge_llm = None
19
19
  __judge_embeddings = None
20
+ __judge_llm_explicitly_set = False
20
21
  OPENAI_MODEL = "gpt-4.1"
21
22
  OPENAI_EMBEDDINGS_MODEL = "text-embedding-3-small"
22
23
  GEMINI_MODEL = "gemini-2.5-pro"
@@ -238,14 +239,95 @@ def _unwrap_deepeval_response(response):
238
239
  return getattr(response, "content", response)
239
240
 
240
241
 
241
- def _build_gemini_deepeval_model(model):
242
+ def _is_reason_only_schema(schema):
243
+ """True when ``schema`` is a single-field ``{reason}`` explanation schema.
244
+
245
+ DeepEval's ``*ScoreReason`` schemas carry only the human-readable explanation
246
+ and do not affect the metric score, so a missing value can be degraded safely.
247
+ """
248
+ fields = getattr(schema, "model_fields", None) or getattr(
249
+ schema, "__fields__", None
250
+ )
251
+ try:
252
+ return set(fields.keys()) == {"reason"}
253
+ except Exception:
254
+ return False
255
+
256
+
257
+ def _require_structured_response(result, schema):
258
+ """Guard against a judge LLM returning no parseable structured output.
259
+
260
+ Gemini's default function-calling path yields ``None`` when the model
261
+ response contains no tool call. Returning that ``None`` to DeepEval surfaces
262
+ as a cryptic ``'NoneType' object has no attribute 'reason'``.
263
+
264
+ For reason-only schemas the metric score is already computed from earlier
265
+ verdict calls, so a missing explanation is cosmetic: degrade to a placeholder
266
+ reason and keep the score. Score-bearing schemas (statements, verdicts) are
267
+ never faked -- doing so would yield a silently wrong score -- so those raise.
268
+ """
269
+ if result is not None:
270
+ return result
271
+
272
+ schema_name = getattr(schema, "__name__", schema)
273
+
274
+ if _is_reason_only_schema(schema):
275
+ logger.warning(
276
+ "Judge LLM returned no structured output for %s; recording the score "
277
+ "with an empty explanation.",
278
+ schema_name,
279
+ )
280
+ return schema(reason="N/A (judge LLM returned no explanation)")
281
+
282
+ raise ValueError(
283
+ f"Judge LLM returned no parseable structured output for {schema_name}. "
284
+ "This usually means the model produced no tool call for the requested "
285
+ "schema. Try a different judge model, or check provider quotas and "
286
+ "safety settings."
287
+ )
288
+
289
+
290
+ def _structured_generate(chat_model, prompt, schema):
291
+ """Invoke ``chat_model`` for structured output, retrying via json_mode.
292
+
293
+ Gemini's default function-calling path can return ``None`` when the model
294
+ emits no tool call; json_mode binds a response schema and is deterministic.
295
+ """
296
+ result = chat_model.with_structured_output(schema).invoke(prompt)
297
+ if result is None:
298
+ try:
299
+ result = chat_model.with_structured_output(
300
+ schema, method="json_mode"
301
+ ).invoke(prompt)
302
+ except Exception:
303
+ pass
304
+ return _require_structured_response(result, schema)
305
+
306
+
307
+ async def _a_structured_generate(chat_model, prompt, schema):
308
+ """Async counterpart of :func:`_structured_generate`."""
309
+ result = await chat_model.with_structured_output(schema).ainvoke(prompt)
310
+ if result is None:
311
+ try:
312
+ result = await chat_model.with_structured_output(
313
+ schema, method="json_mode"
314
+ ).ainvoke(prompt)
315
+ except Exception:
316
+ pass
317
+ return _require_structured_response(result, schema)
318
+
319
+
320
+ def _build_langchain_deepeval_model(chat_model):
321
+ """Wrap any LangChain BaseChatModel as a DeepEval-compatible model.
322
+
323
+ Used when set_judge_config() has been called so that DeepEval scorers
324
+ honour the same judge model as prompt-validation and RAGAS tests.
325
+ """
242
326
  DeepEvalBaseLLM = _import_deepeval_base_llm()
243
- judge_llm, _ = _build_gemini_judge_config(model)
244
327
 
245
- class GeminiDeepEvalModel(DeepEvalBaseLLM):
246
- def __init__(self, chat_model, model_name):
247
- self._chat_model = chat_model
248
- self._model_name = model_name
328
+ class LangChainDeepEvalModel(DeepEvalBaseLLM):
329
+ def __init__(self, model):
330
+ self._chat_model = model
249
331
  self.model = self.load_model()
250
332
 
251
333
  def load_model(self, *args, **kwargs):
@@ -254,27 +336,28 @@ def _build_gemini_deepeval_model(model):
254
336
  def generate(self, prompt: str, schema=None):
255
337
  chat_model = self.load_model()
256
338
  if schema is not None and hasattr(chat_model, "with_structured_output"):
257
- response = chat_model.with_structured_output(schema).invoke(prompt)
258
- else:
259
- response = chat_model.invoke(prompt)
260
-
261
- return _unwrap_deepeval_response(response)
339
+ return _structured_generate(chat_model, prompt, schema)
340
+ return _unwrap_deepeval_response(chat_model.invoke(prompt))
262
341
 
263
342
  async def a_generate(self, prompt: str, schema=None):
264
343
  chat_model = self.load_model()
265
344
  if schema is not None and hasattr(chat_model, "with_structured_output"):
266
- response = await chat_model.with_structured_output(schema).ainvoke(
267
- prompt
268
- )
269
- else:
270
- response = await chat_model.ainvoke(prompt)
271
-
272
- return _unwrap_deepeval_response(response)
345
+ return await _a_structured_generate(chat_model, prompt, schema)
346
+ return _unwrap_deepeval_response(await chat_model.ainvoke(prompt))
273
347
 
274
348
  def get_model_name(self, *args, **kwargs):
275
- return self._model_name
349
+ for attr in ("model", "model_name", "azure_deployment"):
350
+ val = getattr(self._chat_model, attr, None)
351
+ if val:
352
+ return val
353
+ return type(self._chat_model).__name__
354
+
355
+ return LangChainDeepEvalModel(chat_model)
356
+
276
357
 
277
- return GeminiDeepEvalModel(judge_llm, model)
358
+ def _build_gemini_deepeval_model(model):
359
+ judge_llm, _ = _build_gemini_judge_config(model)
360
+ return _build_langchain_deepeval_model(judge_llm)
278
361
 
279
362
 
280
363
  def run_deepeval_evaluation(*, test_cases, metrics):
@@ -332,6 +415,12 @@ def get_deepeval_model():
332
415
  OpenAI/Azure scorers currently pass a model string. Gemini support requires a
333
416
  native DeepEval model object so the provider can be configured correctly.
334
417
  """
418
+ if (
419
+ __judge_llm_explicitly_set
420
+ and __judge_llm is not None
421
+ and __judge_embeddings is not None
422
+ ):
423
+ return _build_langchain_deepeval_model(__judge_llm)
335
424
 
336
425
  provider = _get_configured_provider()
337
426
  _, model = get_client_and_model()
@@ -359,7 +448,7 @@ def get_deepeval_model():
359
448
 
360
449
 
361
450
  def set_judge_config(judge_llm, judge_embeddings):
362
- global __judge_llm, __judge_embeddings
451
+ global __judge_llm, __judge_embeddings, __judge_llm_explicitly_set
363
452
  try:
364
453
  from langchain_core.embeddings import Embeddings
365
454
  from langchain_core.language_models.chat_models import BaseChatModel
@@ -372,12 +461,13 @@ def set_judge_config(judge_llm, judge_embeddings):
372
461
  ):
373
462
  __judge_llm = judge_llm
374
463
  __judge_embeddings = judge_embeddings
375
- # Assuming 'your_object' is the object you want to check
464
+ __judge_llm_explicitly_set = True
376
465
  elif isinstance(judge_llm, FunctionModel) and isinstance(
377
466
  judge_embeddings, FunctionModel
378
467
  ):
379
468
  __judge_llm = judge_llm.model
380
469
  __judge_embeddings = judge_embeddings.model
470
+ __judge_llm_explicitly_set = True
381
471
  else:
382
472
  raise ValueError(
383
473
  "Provided Judge LLM/Embeddings are not Langchain compatible. Ensure the judge LLM/embedding provided are an instance of "
@@ -5,6 +5,7 @@
5
5
 
6
6
  from typing import Tuple
7
7
 
8
+ import pandas as pd
8
9
  import plotly.graph_objects as go
9
10
 
10
11
  from validmind import RawData, tags, tasks
@@ -76,9 +77,12 @@ def IQROutliersBarPlot(
76
77
  """
77
78
  df = dataset.df
78
79
 
79
- # Exclude binary/boolean features (IQR is not meaningful and quantile fails on bool)
80
+ # Exclude boolean and binary features. The IQR is not meaningful for them and
81
+ # `quantile` raises "numpy boolean subtract" on boolean dtype columns.
80
82
  eligible_columns = [
81
- col for col in dataset.feature_columns_numeric if len(df[col].unique()) > 2
83
+ col
84
+ for col in dataset.feature_columns_numeric
85
+ if not pd.api.types.is_bool_dtype(df[col]) and df[col].nunique() > 2
82
86
  ]
83
87
 
84
88
  figures = []
@@ -5,6 +5,8 @@
5
5
 
6
6
  from typing import Any, Dict, Tuple
7
7
 
8
+ import pandas as pd
9
+
8
10
  from validmind import RawData, tags, tasks
9
11
  from validmind.vm_models import VMDataset
10
12
 
@@ -72,8 +74,9 @@ def IQROutliersTable(
72
74
  all_outliers = {}
73
75
 
74
76
  for col in dataset.feature_columns_numeric:
75
- # Skip binary features
76
- if len(df[col].unique()) <= 2:
77
+ # Skip boolean and binary features. The IQR is not meaningful for them and
78
+ # `quantile` raises "numpy boolean subtract" on boolean dtype columns.
79
+ if pd.api.types.is_bool_dtype(df[col]) or df[col].nunique() <= 2:
77
80
  continue
78
81
 
79
82
  outliers = compute_outliers(df[col], threshold)
@@ -12,7 +12,7 @@ from validmind.errors import MissingDependencyError
12
12
  from validmind.vm_models import VMDataset, VMModel
13
13
 
14
14
  try:
15
- from scipy.stats import kstest
15
+ from scipy.stats import kstest, norm
16
16
  except ImportError as e:
17
17
  if "scipy" in str(e):
18
18
  raise MissingDependencyError(
@@ -109,7 +109,7 @@ def ModelPredictionResiduals(
109
109
 
110
110
  # Perform KS normality test
111
111
  ks_stat, p_value = kstest(
112
- residuals, "norm", args=(residuals.mean(), residuals.std())
112
+ residuals, norm(loc=residuals.mean(), scale=residuals.std()).cdf
113
113
  )
114
114
  ks_normality = "Normal" if p_value > p_value_threshold else "Not Normal"
115
115
 
@@ -58,10 +58,19 @@ def MinimumF1Score(
58
58
  closely with specific requirements.
59
59
  """
60
60
 
61
- if len(np.unique(dataset.y)) > 2:
62
- score = f1_score(dataset.y, dataset.y_pred(model), average="macro")
61
+ y_true = dataset.y
62
+ y_pred = dataset.y_pred(model)
63
+
64
+ # Decide the averaging method from the labels f1_score actually sees -- the
65
+ # union of y_true and y_pred. Inspecting y_true alone is not enough: a split
66
+ # whose true labels collapse to <=2 classes while the model predicts a third
67
+ # class is still multiclass to sklearn, and average="binary" would raise
68
+ # "Target is multiclass but average='binary'".
69
+ n_classes = len(np.unique(np.concatenate([y_true, y_pred])))
70
+ if n_classes > 2:
71
+ score = f1_score(y_true, y_pred, average="macro")
63
72
  else:
64
- score = f1_score(dataset.y, dataset.y_pred(model))
73
+ score = f1_score(y_true, y_pred)
65
74
 
66
75
  return (
67
76
  [
@@ -63,6 +63,7 @@ def PrecisionRecallCurve(
63
63
  raise SkipTestError("Skipping PrecisionRecallCurve for Foundation models")
64
64
 
65
65
  y_true = dataset.y
66
+ # Binary-only by design: multiclass is skipped, not handled (unlike MinimumF1Score).
66
67
  if len(np.unique(y_true)) > 2:
67
68
  raise SkipTestError(
68
69
  "Precision Recall Curve is only supported for binary classification models"
@@ -68,6 +68,7 @@ def ROCCurve(model: VMModel, dataset: VMDataset) -> Tuple[go.Figure, RawData]:
68
68
  incorrect, provided that the model's ranking format is retained. This phenomenon is commonly termed the "Class
69
69
  Imbalance Problem".
70
70
  """
71
+ # Binary-only by design: multiclass is skipped, not handled (unlike MinimumF1Score).
71
72
  if len(np.unique(dataset.y)) > 2:
72
73
  raise SkipTestError(
73
74
  "ROC Curve is only supported for binary classification models"
@@ -4,9 +4,9 @@
4
4
 
5
5
  from typing import Tuple
6
6
 
7
+ import matplotlib
7
8
  import numpy as np
8
9
  import plotly.graph_objects as go
9
- from matplotlib import cm
10
10
 
11
11
  from validmind import RawData, tags, tasks
12
12
  from validmind.vm_models import VMDataset, VMModel
@@ -75,7 +75,7 @@ def _plot_cumulative_prob(df, target_col, title):
75
75
 
76
76
  # Generate a colormap and convert to Plotly-accepted color format
77
77
  # Adjust 'viridis' to any other matplotlib colormap if desired
78
- colormap = cm.get_cmap("viridis")
78
+ colormap = matplotlib.colormaps["viridis"]
79
79
 
80
80
  fig = go.Figure()
81
81
 
@@ -4,8 +4,8 @@
4
4
 
5
5
  from typing import Tuple
6
6
 
7
+ import matplotlib
7
8
  import plotly.graph_objects as go
8
- from matplotlib import cm
9
9
 
10
10
  from validmind import RawData, tags, tasks
11
11
  from validmind.vm_models import VMDataset, VMModel
@@ -75,7 +75,7 @@ def _plot_prob_histogram(df, target_col, title):
75
75
 
76
76
  # Generate a colormap and convert to Plotly-accepted color format
77
77
  # Adjust 'viridis' to any other matplotlib colormap if desired
78
- colormap = cm.get_cmap("viridis")
78
+ colormap = matplotlib.colormaps["viridis"]
79
79
 
80
80
  fig = go.Figure()
81
81
 
@@ -2,8 +2,8 @@
2
2
  # Refer to the LICENSE file in the root of this repository for details.
3
3
  # SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial
4
4
 
5
+ import matplotlib
5
6
  import plotly.graph_objects as go
6
- from matplotlib import cm
7
7
 
8
8
  from validmind import tags, tasks
9
9
  from validmind.vm_models import VMDataset
@@ -77,7 +77,7 @@ def ScorecardHistogram(
77
77
  def _plot_score_histogram(df, score_col, target_col, title):
78
78
  # Generate a colormap and convert to Plotly-accepted color format
79
79
  # Adjust 'viridis' to any other matplotlib colormap if desired
80
- colormap = cm.get_cmap("viridis")
80
+ colormap = matplotlib.colormaps["viridis"]
81
81
 
82
82
  fig = go.Figure()
83
83
 
@@ -1 +0,0 @@
1
- __version__ = "2.13.5"
File without changes
File without changes
File without changes