validmind 2.8.10__tar.gz → 2.8.12__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 (329) hide show
  1. {validmind-2.8.10 → validmind-2.8.12}/PKG-INFO +2 -2
  2. {validmind-2.8.10 → validmind-2.8.12}/pyproject.toml +2 -2
  3. validmind-2.8.12/validmind/__version__.py +1 -0
  4. {validmind-2.8.10 → validmind-2.8.12}/validmind/ai/test_descriptions.py +4 -2
  5. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/ACFandPACFPlot.py +4 -1
  6. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/AutoMA.py +1 -1
  7. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/BivariateScatterPlots.py +5 -1
  8. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/BoxPierce.py +3 -1
  9. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/ClassImbalance.py +1 -1
  10. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/DatasetDescription.py +1 -1
  11. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/DickeyFullerGLS.py +1 -1
  12. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/FeatureTargetCorrelationPlot.py +1 -1
  13. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/HighCardinality.py +5 -1
  14. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/HighPearsonCorrelation.py +1 -1
  15. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/IQROutliersBarPlot.py +5 -3
  16. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/IQROutliersTable.py +5 -2
  17. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/IsolationForestOutliers.py +5 -4
  18. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/JarqueBera.py +2 -2
  19. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/LJungBox.py +2 -2
  20. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/LaggedCorrelationHeatmap.py +1 -1
  21. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/MissingValues.py +14 -10
  22. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/MissingValuesBarPlot.py +3 -1
  23. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/MutualInformation.py +2 -1
  24. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/PearsonCorrelationMatrix.py +1 -1
  25. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/ProtectedClassesCombination.py +2 -0
  26. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/ProtectedClassesDescription.py +2 -2
  27. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/ProtectedClassesDisparity.py +9 -5
  28. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/ProtectedClassesThresholdOptimizer.py +10 -2
  29. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/RollingStatsPlot.py +2 -1
  30. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/ScoreBandDefaultRates.py +4 -2
  31. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/SeasonalDecompose.py +1 -1
  32. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/ShapiroWilk.py +2 -2
  33. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/SpreadPlot.py +1 -1
  34. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/TabularCategoricalBarPlots.py +1 -1
  35. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/TabularDateTimeHistograms.py +1 -1
  36. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/TargetRateBarPlots.py +4 -1
  37. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/TimeSeriesFrequency.py +1 -1
  38. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/TimeSeriesOutliers.py +7 -2
  39. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/WOEBinPlots.py +1 -1
  40. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/WOEBinTable.py +1 -1
  41. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/ZivotAndrewsArch.py +5 -2
  42. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/nlp/CommonWords.py +1 -1
  43. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/nlp/Hashtags.py +1 -1
  44. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/nlp/LanguageDetection.py +1 -1
  45. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/nlp/Mentions.py +1 -1
  46. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/nlp/PolarityAndSubjectivity.py +5 -1
  47. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/nlp/Punctuations.py +1 -1
  48. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/nlp/Sentiment.py +3 -1
  49. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/nlp/TextDescription.py +1 -1
  50. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/nlp/Toxicity.py +1 -1
  51. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/BertScore.py +7 -1
  52. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/BleuScore.py +7 -1
  53. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/ClusterSizeDistribution.py +3 -1
  54. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/ContextualRecall.py +9 -1
  55. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/FeaturesAUC.py +1 -1
  56. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/MeteorScore.py +7 -1
  57. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/ModelPredictionResiduals.py +5 -1
  58. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/RegardScore.py +6 -1
  59. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/RegressionResidualsPlot.py +10 -1
  60. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/RougeScore.py +3 -1
  61. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/TimeSeriesPredictionWithCI.py +2 -0
  62. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/TimeSeriesPredictionsPlot.py +10 -2
  63. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/TimeSeriesR2SquareBySegments.py +6 -2
  64. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/TokenDisparity.py +5 -1
  65. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/ToxicityScore.py +2 -0
  66. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/embeddings/ClusterDistribution.py +1 -1
  67. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/embeddings/CosineSimilarityComparison.py +5 -1
  68. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/embeddings/CosineSimilarityDistribution.py +5 -1
  69. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/embeddings/CosineSimilarityHeatmap.py +5 -1
  70. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/embeddings/DescriptiveAnalytics.py +2 -0
  71. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/embeddings/EmbeddingsVisualization2D.py +5 -1
  72. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/embeddings/EuclideanDistanceComparison.py +6 -2
  73. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/embeddings/EuclideanDistanceHeatmap.py +3 -1
  74. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/embeddings/PCAComponentsPairwisePlots.py +4 -1
  75. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/embeddings/StabilityAnalysisKeyword.py +5 -1
  76. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/embeddings/StabilityAnalysisRandomNoise.py +5 -1
  77. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/embeddings/StabilityAnalysisSynonyms.py +5 -1
  78. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/embeddings/StabilityAnalysisTranslation.py +5 -1
  79. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/embeddings/TSNEComponentsPairwisePlots.py +6 -1
  80. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/ragas/AnswerCorrectness.py +1 -1
  81. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/ragas/AspectCritic.py +4 -1
  82. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/ragas/ContextEntityRecall.py +1 -1
  83. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/ragas/ContextPrecision.py +1 -1
  84. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/ragas/ContextPrecisionWithoutReference.py +1 -1
  85. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/ragas/ContextRecall.py +1 -1
  86. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/ragas/Faithfulness.py +1 -1
  87. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/ragas/NoiseSensitivity.py +1 -1
  88. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/ragas/ResponseRelevancy.py +1 -1
  89. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/ragas/SemanticSimilarity.py +1 -1
  90. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/AdjustedMutualInformation.py +9 -9
  91. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/AdjustedRandIndex.py +9 -9
  92. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/CalibrationCurve.py +5 -2
  93. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/ClassifierThresholdOptimization.py +15 -2
  94. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/ClusterCosineSimilarity.py +5 -1
  95. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/ClusterPerformanceMetrics.py +24 -14
  96. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/CompletenessScore.py +8 -9
  97. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/ConfusionMatrix.py +22 -3
  98. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/FeatureImportance.py +6 -2
  99. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/FowlkesMallowsScore.py +12 -9
  100. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/HomogeneityScore.py +14 -9
  101. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/HyperParametersTuning.py +4 -2
  102. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/KMeansClustersOptimization.py +6 -1
  103. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/MinimumAccuracy.py +12 -7
  104. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/MinimumF1Score.py +12 -7
  105. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/MinimumROCAUCScore.py +21 -6
  106. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/OverfitDiagnosis.py +8 -2
  107. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/PermutationFeatureImportance.py +5 -1
  108. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/PopulationStabilityIndex.py +5 -1
  109. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/PrecisionRecallCurve.py +6 -1
  110. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/ROCCurve.py +3 -1
  111. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/RegressionErrors.py +6 -2
  112. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/RegressionPerformance.py +13 -8
  113. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/RegressionR2Square.py +8 -5
  114. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/RobustnessDiagnosis.py +5 -1
  115. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py +6 -1
  116. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/ScoreProbabilityAlignment.py +10 -2
  117. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/SilhouettePlot.py +5 -1
  118. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/VMeasure.py +12 -9
  119. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/statsmodels/CumulativePredictionProbabilities.py +5 -1
  120. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py +6 -1
  121. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/statsmodels/GINITable.py +8 -1
  122. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/statsmodels/KolmogorovSmirnov.py +2 -2
  123. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/statsmodels/PredictionProbabilitiesHistogram.py +6 -2
  124. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/statsmodels/RegressionCoeffs.py +8 -2
  125. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/statsmodels/RegressionFeatureSignificance.py +3 -1
  126. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlot.py +7 -2
  127. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlotLevels.py +2 -0
  128. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/statsmodels/RegressionModelSensitivityPlot.py +2 -0
  129. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/statsmodels/RegressionModelSummary.py +4 -2
  130. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/statsmodels/RegressionPermutationFeatureImportance.py +3 -1
  131. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/ongoing_monitoring/CalibrationCurveDrift.py +11 -1
  132. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/ongoing_monitoring/ClassificationAccuracyDrift.py +10 -2
  133. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/ongoing_monitoring/ConfusionMatrixDrift.py +8 -1
  134. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/ongoing_monitoring/CumulativePredictionProbabilitiesDrift.py +18 -2
  135. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/ongoing_monitoring/FeatureDrift.py +9 -2
  136. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/ongoing_monitoring/PredictionAcrossEachFeature.py +8 -2
  137. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/ongoing_monitoring/PredictionCorrelation.py +13 -2
  138. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/ongoing_monitoring/PredictionProbabilitiesHistogramDrift.py +13 -2
  139. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/ongoing_monitoring/ROCCurveDrift.py +16 -2
  140. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/ongoing_monitoring/ScoreBandsDrift.py +11 -2
  141. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/ongoing_monitoring/TargetPredictionDistributionPlot.py +13 -2
  142. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/prompt_validation/Clarity.py +1 -1
  143. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/prompt_validation/NegativeInstruction.py +1 -1
  144. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/prompt_validation/Robustness.py +6 -1
  145. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/prompt_validation/Specificity.py +1 -1
  146. {validmind-2.8.10 → validmind-2.8.12}/validmind/vm_models/result/utils.py +4 -23
  147. validmind-2.8.10/validmind/__version__.py +0 -1
  148. {validmind-2.8.10 → validmind-2.8.12}/LICENSE +0 -0
  149. {validmind-2.8.10 → validmind-2.8.12}/README.pypi.md +0 -0
  150. {validmind-2.8.10 → validmind-2.8.12}/validmind/__init__.py +0 -0
  151. {validmind-2.8.10 → validmind-2.8.12}/validmind/ai/utils.py +0 -0
  152. {validmind-2.8.10 → validmind-2.8.12}/validmind/api_client.py +0 -0
  153. {validmind-2.8.10 → validmind-2.8.12}/validmind/client.py +0 -0
  154. {validmind-2.8.10 → validmind-2.8.12}/validmind/client_config.py +0 -0
  155. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/__init__.py +0 -0
  156. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/classification/__init__.py +0 -0
  157. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/classification/customer_churn.py +0 -0
  158. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/classification/datasets/bank_customer_churn.csv +0 -0
  159. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/classification/datasets/taiwan_credit.csv +0 -0
  160. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/classification/taiwan_credit.py +0 -0
  161. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/cluster/digits.py +0 -0
  162. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/credit_risk/__init__.py +0 -0
  163. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/credit_risk/datasets/lending_club_biased.csv.gz +0 -0
  164. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/credit_risk/datasets/lending_club_loan_data_2007_2014_clean.csv.gz +0 -0
  165. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/credit_risk/lending_club.py +0 -0
  166. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/credit_risk/lending_club_bias.py +0 -0
  167. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/llm/rag/__init__.py +0 -0
  168. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_1.csv +0 -0
  169. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_2.csv +0 -0
  170. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_3.csv +0 -0
  171. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_4.csv +0 -0
  172. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_5.csv +0 -0
  173. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/llm/rag/rfp.py +0 -0
  174. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/nlp/__init__.py +0 -0
  175. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/nlp/cnn_dailymail.py +0 -0
  176. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/nlp/datasets/Covid_19.csv +0 -0
  177. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/nlp/datasets/cnn_dailymail_100_with_predictions.csv +0 -0
  178. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/nlp/datasets/cnn_dailymail_500_with_predictions.csv +0 -0
  179. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/nlp/datasets/sentiments_with_predictions.csv +0 -0
  180. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/nlp/twitter_covid_19.py +0 -0
  181. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/__init__.py +0 -0
  182. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/california_housing.py +0 -0
  183. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/fred/CPIAUCSL.csv +0 -0
  184. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/fred/CSUSHPISA.csv +0 -0
  185. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/fred/DRSFRMACBS.csv +0 -0
  186. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/fred/FEDFUNDS.csv +0 -0
  187. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/fred/GDP.csv +0 -0
  188. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/fred/GDPC1.csv +0 -0
  189. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/fred/GS10.csv +0 -0
  190. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/fred/GS3.csv +0 -0
  191. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/fred/GS5.csv +0 -0
  192. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/fred/MORTGAGE30US.csv +0 -0
  193. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/fred/UNRATE.csv +0 -0
  194. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/fred_loan_rates.csv +0 -0
  195. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/fred_loan_rates_test_1.csv +0 -0
  196. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/fred_loan_rates_test_2.csv +0 -0
  197. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/fred_loan_rates_test_3.csv +0 -0
  198. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/fred_loan_rates_test_4.csv +0 -0
  199. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/fred_loan_rates_test_5.csv +0 -0
  200. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/datasets/leanding_club_loan_rates.csv +0 -0
  201. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/fred.py +0 -0
  202. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/fred_timeseries.py +0 -0
  203. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/lending_club.py +0 -0
  204. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/models/fred_loan_rates_model_1.pkl +0 -0
  205. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/models/fred_loan_rates_model_2.pkl +0 -0
  206. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/models/fred_loan_rates_model_3.pkl +0 -0
  207. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/models/fred_loan_rates_model_4.pkl +0 -0
  208. {validmind-2.8.10 → validmind-2.8.12}/validmind/datasets/regression/models/fred_loan_rates_model_5.pkl +0 -0
  209. {validmind-2.8.10 → validmind-2.8.12}/validmind/errors.py +0 -0
  210. {validmind-2.8.10 → validmind-2.8.12}/validmind/html_templates/__init__.py +0 -0
  211. {validmind-2.8.10 → validmind-2.8.12}/validmind/html_templates/content_blocks.py +0 -0
  212. {validmind-2.8.10 → validmind-2.8.12}/validmind/input_registry.py +0 -0
  213. {validmind-2.8.10 → validmind-2.8.12}/validmind/logging.py +0 -0
  214. {validmind-2.8.10 → validmind-2.8.12}/validmind/models/__init__.py +0 -0
  215. {validmind-2.8.10 → validmind-2.8.12}/validmind/models/foundation.py +0 -0
  216. {validmind-2.8.10 → validmind-2.8.12}/validmind/models/function.py +0 -0
  217. {validmind-2.8.10 → validmind-2.8.12}/validmind/models/huggingface.py +0 -0
  218. {validmind-2.8.10 → validmind-2.8.12}/validmind/models/metadata.py +0 -0
  219. {validmind-2.8.10 → validmind-2.8.12}/validmind/models/pipeline.py +0 -0
  220. {validmind-2.8.10 → validmind-2.8.12}/validmind/models/pytorch.py +0 -0
  221. {validmind-2.8.10 → validmind-2.8.12}/validmind/models/r_model.py +0 -0
  222. {validmind-2.8.10 → validmind-2.8.12}/validmind/models/sklearn.py +0 -0
  223. {validmind-2.8.10 → validmind-2.8.12}/validmind/template.py +0 -0
  224. {validmind-2.8.10 → validmind-2.8.12}/validmind/test_suites/__init__.py +0 -0
  225. {validmind-2.8.10 → validmind-2.8.12}/validmind/test_suites/classifier.py +0 -0
  226. {validmind-2.8.10 → validmind-2.8.12}/validmind/test_suites/cluster.py +0 -0
  227. {validmind-2.8.10 → validmind-2.8.12}/validmind/test_suites/embeddings.py +0 -0
  228. {validmind-2.8.10 → validmind-2.8.12}/validmind/test_suites/llm.py +0 -0
  229. {validmind-2.8.10 → validmind-2.8.12}/validmind/test_suites/nlp.py +0 -0
  230. {validmind-2.8.10 → validmind-2.8.12}/validmind/test_suites/parameters_optimization.py +0 -0
  231. {validmind-2.8.10 → validmind-2.8.12}/validmind/test_suites/regression.py +0 -0
  232. {validmind-2.8.10 → validmind-2.8.12}/validmind/test_suites/statsmodels_timeseries.py +0 -0
  233. {validmind-2.8.10 → validmind-2.8.12}/validmind/test_suites/summarization.py +0 -0
  234. {validmind-2.8.10 → validmind-2.8.12}/validmind/test_suites/tabular_datasets.py +0 -0
  235. {validmind-2.8.10 → validmind-2.8.12}/validmind/test_suites/text_data.py +0 -0
  236. {validmind-2.8.10 → validmind-2.8.12}/validmind/test_suites/time_series.py +0 -0
  237. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/__init__.py +0 -0
  238. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/__types__.py +0 -0
  239. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/_store.py +0 -0
  240. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/comparison.py +0 -0
  241. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/ADF.py +0 -0
  242. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/AutoAR.py +0 -0
  243. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/AutoStationarity.py +0 -0
  244. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/ChiSquaredFeaturesTable.py +0 -0
  245. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/DatasetSplit.py +0 -0
  246. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/DescriptiveStatistics.py +0 -0
  247. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/Duplicates.py +0 -0
  248. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/EngleGrangerCoint.py +0 -0
  249. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/KPSS.py +0 -0
  250. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/PhillipsPerronArch.py +0 -0
  251. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/RunsTest.py +0 -0
  252. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/ScatterPlot.py +0 -0
  253. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/Skewness.py +0 -0
  254. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/TabularDescriptionTables.py +0 -0
  255. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/TabularNumericalHistograms.py +0 -0
  256. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/TimeSeriesDescription.py +0 -0
  257. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/TimeSeriesDescriptiveStatistics.py +0 -0
  258. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/TimeSeriesHistogram.py +0 -0
  259. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/TimeSeriesLinePlot.py +0 -0
  260. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/TimeSeriesMissingValues.py +0 -0
  261. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/TooManyZeroValues.py +0 -0
  262. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/UniqueRows.py +0 -0
  263. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/__init__.py +0 -0
  264. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/nlp/StopWords.py +0 -0
  265. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/data_validation/nlp/__init__.py +0 -0
  266. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/decorator.py +0 -0
  267. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/load.py +0 -0
  268. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/ModelMetadata.py +0 -0
  269. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/__init__.py +0 -0
  270. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/embeddings/utils.py +0 -0
  271. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/ragas/utils.py +0 -0
  272. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/ClassifierPerformance.py +0 -0
  273. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/ModelParameters.py +0 -0
  274. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py +0 -0
  275. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/RegressionErrorsComparison.py +0 -0
  276. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/RegressionR2SquareComparison.py +0 -0
  277. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/TrainingTestDegradation.py +0 -0
  278. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/WeakspotsDiagnosis.py +0 -0
  279. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/sklearn/__init__.py +0 -0
  280. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/statsmodels/AutoARIMA.py +0 -0
  281. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/statsmodels/Lilliefors.py +0 -0
  282. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/statsmodels/ScorecardHistogram.py +0 -0
  283. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/statsmodels/__init__.py +0 -0
  284. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/model_validation/statsmodels/statsutils.py +0 -0
  285. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/ongoing_monitoring/ClassDiscriminationDrift.py +0 -0
  286. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/ongoing_monitoring/ClassImbalanceDrift.py +0 -0
  287. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/ongoing_monitoring/PredictionQuantilesAcrossFeatures.py +0 -0
  288. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/ongoing_monitoring/ScorecardHistogramDrift.py +0 -0
  289. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/output.py +0 -0
  290. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/prompt_validation/Bias.py +0 -0
  291. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/prompt_validation/Conciseness.py +0 -0
  292. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/prompt_validation/Delimitation.py +0 -0
  293. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/prompt_validation/__init__.py +0 -0
  294. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/prompt_validation/ai_powered_test.py +0 -0
  295. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/run.py +0 -0
  296. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/test_providers.py +0 -0
  297. {validmind-2.8.10 → validmind-2.8.12}/validmind/tests/utils.py +0 -0
  298. {validmind-2.8.10 → validmind-2.8.12}/validmind/unit_metrics/__init__.py +0 -0
  299. {validmind-2.8.10 → validmind-2.8.12}/validmind/unit_metrics/classification/Accuracy.py +0 -0
  300. {validmind-2.8.10 → validmind-2.8.12}/validmind/unit_metrics/classification/F1.py +0 -0
  301. {validmind-2.8.10 → validmind-2.8.12}/validmind/unit_metrics/classification/Precision.py +0 -0
  302. {validmind-2.8.10 → validmind-2.8.12}/validmind/unit_metrics/classification/ROC_AUC.py +0 -0
  303. {validmind-2.8.10 → validmind-2.8.12}/validmind/unit_metrics/classification/Recall.py +0 -0
  304. {validmind-2.8.10 → validmind-2.8.12}/validmind/unit_metrics/regression/AdjustedRSquaredScore.py +0 -0
  305. {validmind-2.8.10 → validmind-2.8.12}/validmind/unit_metrics/regression/GiniCoefficient.py +0 -0
  306. {validmind-2.8.10 → validmind-2.8.12}/validmind/unit_metrics/regression/HuberLoss.py +0 -0
  307. {validmind-2.8.10 → validmind-2.8.12}/validmind/unit_metrics/regression/KolmogorovSmirnovStatistic.py +0 -0
  308. {validmind-2.8.10 → validmind-2.8.12}/validmind/unit_metrics/regression/MeanAbsoluteError.py +0 -0
  309. {validmind-2.8.10 → validmind-2.8.12}/validmind/unit_metrics/regression/MeanAbsolutePercentageError.py +0 -0
  310. {validmind-2.8.10 → validmind-2.8.12}/validmind/unit_metrics/regression/MeanBiasDeviation.py +0 -0
  311. {validmind-2.8.10 → validmind-2.8.12}/validmind/unit_metrics/regression/MeanSquaredError.py +0 -0
  312. {validmind-2.8.10 → validmind-2.8.12}/validmind/unit_metrics/regression/QuantileLoss.py +0 -0
  313. {validmind-2.8.10 → validmind-2.8.12}/validmind/unit_metrics/regression/RSquaredScore.py +0 -0
  314. {validmind-2.8.10 → validmind-2.8.12}/validmind/unit_metrics/regression/RootMeanSquaredError.py +0 -0
  315. {validmind-2.8.10 → validmind-2.8.12}/validmind/utils.py +0 -0
  316. {validmind-2.8.10 → validmind-2.8.12}/validmind/vm_models/__init__.py +0 -0
  317. {validmind-2.8.10 → validmind-2.8.12}/validmind/vm_models/dataset/__init__.py +0 -0
  318. {validmind-2.8.10 → validmind-2.8.12}/validmind/vm_models/dataset/dataset.py +0 -0
  319. {validmind-2.8.10 → validmind-2.8.12}/validmind/vm_models/dataset/utils.py +0 -0
  320. {validmind-2.8.10 → validmind-2.8.12}/validmind/vm_models/figure.py +0 -0
  321. {validmind-2.8.10 → validmind-2.8.12}/validmind/vm_models/input.py +0 -0
  322. {validmind-2.8.10 → validmind-2.8.12}/validmind/vm_models/model.py +0 -0
  323. {validmind-2.8.10 → validmind-2.8.12}/validmind/vm_models/result/__init__.py +0 -0
  324. {validmind-2.8.10 → validmind-2.8.12}/validmind/vm_models/result/result.jinja +0 -0
  325. {validmind-2.8.10 → validmind-2.8.12}/validmind/vm_models/result/result.py +0 -0
  326. {validmind-2.8.10 → validmind-2.8.12}/validmind/vm_models/test_suite/runner.py +0 -0
  327. {validmind-2.8.10 → validmind-2.8.12}/validmind/vm_models/test_suite/summary.py +0 -0
  328. {validmind-2.8.10 → validmind-2.8.12}/validmind/vm_models/test_suite/test.py +0 -0
  329. {validmind-2.8.10 → validmind-2.8.12}/validmind/vm_models/test_suite/test_suite.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: validmind
3
- Version: 2.8.10
3
+ Version: 2.8.12
4
4
  Summary: ValidMind Library
5
5
  License: Commercial License
6
6
  Author: Andres Rodriguez
@@ -35,7 +35,7 @@ Requires-Dist: numba (<0.59.0)
35
35
  Requires-Dist: numpy
36
36
  Requires-Dist: openai (>=1)
37
37
  Requires-Dist: pandas (>=1.1,<=2.0.3)
38
- Requires-Dist: plotly
38
+ Requires-Dist: plotly (<6.0.0)
39
39
  Requires-Dist: plotly-express
40
40
  Requires-Dist: polars
41
41
  Requires-Dist: pycocoevalcap (>=1.2,<2.0) ; extra == "all" or extra == "llm"
@@ -10,7 +10,7 @@ description = "ValidMind Library"
10
10
  license = "Commercial License"
11
11
  name = "validmind"
12
12
  readme = "README.pypi.md"
13
- version = "2.8.10"
13
+ version = "2.8.12"
14
14
 
15
15
  [tool.poetry.dependencies]
16
16
  aiohttp = {extras = ["speedups"], version = "*"}
@@ -33,7 +33,7 @@ numba = "<0.59.0" # TODO: https://github.com/validmind/validmind-library/pull/28
33
33
  numpy = "*"
34
34
  openai = ">=1"
35
35
  pandas = ">=1.1,<=2.0.3"
36
- plotly = "*"
36
+ plotly = "<6.0.0"
37
37
  plotly-express = "*"
38
38
  polars = "*"
39
39
  pycocoevalcap = {version = "^1.2", optional = true}
@@ -0,0 +1 @@
1
+ __version__ = "2.8.12"
@@ -37,8 +37,10 @@ def _get_llm_global_context():
37
37
  return context if context_enabled and context else None
38
38
 
39
39
 
40
- def _truncate_summary(summary: str, test_id: str, max_tokens: int = 100_000):
41
- if len(summary) < max_tokens:
40
+ def _truncate_summary(
41
+ summary: Union[str, None], test_id: str, max_tokens: int = 100_000
42
+ ):
43
+ if summary is None or len(summary) < max_tokens:
42
44
  # since string itself is less than max_tokens, definitely small enough
43
45
  return summary
44
46
 
@@ -94,4 +94,7 @@ def ACFandPACFPlot(dataset: VMDataset):
94
94
  figures.append(pacf_fig)
95
95
  pacf_store[col] = pacf_values
96
96
 
97
- return (*figures, RawData(acf_values=acf_store, pacf_values=pacf_store))
97
+ return (
98
+ *figures,
99
+ RawData(acf_values=acf_store, pacf_values=pacf_store, dataset=dataset.input_id),
100
+ )
@@ -116,4 +116,4 @@ def AutoMA(dataset: VMDataset, max_ma_order: int = 3):
116
116
  return {
117
117
  "Auto MA Analysis Results": summary_ma_analysis,
118
118
  "Best MA Order Results": best_ma_order,
119
- }, RawData(raw_series_data=df)
119
+ }, RawData(raw_series_data=df, dataset=dataset.input_id)
@@ -80,5 +80,9 @@ def BivariateScatterPlots(dataset):
80
80
  figures.append(fig)
81
81
 
82
82
  return tuple(figures) + (
83
- RawData(selected_numerical_df=df, feature_pairs=features_pairs),
83
+ RawData(
84
+ selected_numerical_df=df,
85
+ feature_pairs=features_pairs,
86
+ dataset=dataset.input_id,
87
+ ),
84
88
  )
@@ -68,4 +68,6 @@ def BoxPierce(dataset):
68
68
  box_pierce_df.reset_index(inplace=True)
69
69
  box_pierce_df.columns = ["column", "stat", "pvalue"]
70
70
 
71
- return box_pierce_df, RawData(box_pierce_values=box_pierce_values)
71
+ return box_pierce_df, RawData(
72
+ box_pierce_values=box_pierce_values, dataset=dataset.input_id
73
+ )
@@ -104,5 +104,5 @@ def ClassImbalance(
104
104
  },
105
105
  go.Figure(data=[trace], layout=layout),
106
106
  all(row["Pass/Fail"] == "Pass" for row in imbalanced_classes),
107
- RawData(imbalance_percentages=imbalance_percentages),
107
+ RawData(imbalance_percentages=imbalance_percentages, dataset=dataset.input_id),
108
108
  )
@@ -242,4 +242,4 @@ def DatasetDescription(dataset: VMDataset):
242
242
  }
243
243
  for column in results
244
244
  ]
245
- }, RawData(raw_data=raw_data)
245
+ }, RawData(raw_data=raw_data, dataset=dataset.input_id)
@@ -97,4 +97,4 @@ def DickeyFullerGLS(dataset: VMDataset):
97
97
 
98
98
  return {
99
99
  "DFGLS Test Results": dfgls_values,
100
- }, RawData(df=df)
100
+ }, RawData(df=df, dataset=dataset.input_id)
@@ -58,7 +58,7 @@ def FeatureTargetCorrelationPlot(dataset, fig_height=600):
58
58
  df, dataset.target_column, fig_height
59
59
  )
60
60
 
61
- return fig, RawData(correlation_data=correlations)
61
+ return fig, RawData(correlation_data=correlations, dataset=dataset.input_id)
62
62
 
63
63
 
64
64
  def _visualize_feature_target_correlation(df, target_column, fig_height):
@@ -83,4 +83,8 @@ def HighCardinality(
83
83
  if not passed:
84
84
  all_passed = False
85
85
 
86
- return table, all_passed, RawData(raw_cardinality_details=raw_data)
86
+ return (
87
+ table,
88
+ all_passed,
89
+ RawData(raw_cardinality_details=raw_data, dataset=dataset.input_id),
90
+ )
@@ -84,5 +84,5 @@ def HighPearsonCorrelation(
84
84
  return (
85
85
  pairs,
86
86
  all(p["Pass/Fail"] == "Pass" for p in pairs),
87
- RawData(correlation_matrix=corr),
87
+ RawData(correlation_matrix=corr, dataset=dataset.input_id),
88
88
  )
@@ -118,11 +118,13 @@ def IQROutliersBarPlot(
118
118
  )
119
119
  figures.append(fig)
120
120
 
121
+ outliers_by_feature = df[dataset.feature_columns_numeric].apply(
122
+ lambda col: compute_outliers(col, threshold)
123
+ )
124
+
121
125
  return (
122
126
  *figures,
123
127
  RawData(
124
- outlier_counts_by_feature=df[dataset.feature_columns_numeric].apply(
125
- lambda col: compute_outliers(col, threshold)
126
- )
128
+ outlier_counts_by_feature=outliers_by_feature, dataset=dataset.input_id
127
129
  ),
128
130
  )
@@ -2,7 +2,7 @@
2
2
  # See 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
- from validmind import tags, tasks
5
+ from validmind import RawData, tags, tasks
6
6
  from validmind.vm_models import VMDataset
7
7
 
8
8
 
@@ -64,6 +64,7 @@ def IQROutliersTable(dataset: VMDataset, threshold: float = 1.5):
64
64
  df = dataset.df
65
65
 
66
66
  outliers_table = []
67
+ all_outliers = {}
67
68
 
68
69
  for col in dataset.feature_columns_numeric:
69
70
  # Skip binary features
@@ -71,6 +72,8 @@ def IQROutliersTable(dataset: VMDataset, threshold: float = 1.5):
71
72
  continue
72
73
 
73
74
  outliers = compute_outliers(df[col], threshold)
75
+ all_outliers[col] = outliers
76
+
74
77
  if outliers.empty:
75
78
  continue
76
79
 
@@ -89,4 +92,4 @@ def IQROutliersTable(dataset: VMDataset, threshold: float = 1.5):
89
92
 
90
93
  return {
91
94
  "Summary of Outliers Detected by IQR Method": outliers_table,
92
- }
95
+ }, RawData(all_outliers=all_outliers, dataset=dataset.input_id)
@@ -8,7 +8,7 @@ import matplotlib.pyplot as plt
8
8
  import seaborn as sns
9
9
  from sklearn.ensemble import IsolationForest
10
10
 
11
- from validmind import tags, tasks
11
+ from validmind import RawData, tags, tasks
12
12
  from validmind.vm_models import VMDataset
13
13
 
14
14
 
@@ -91,6 +91,7 @@ def IsolationForestOutliers(
91
91
 
92
92
  figures.append(fig)
93
93
 
94
- plt.close()
95
-
96
- return tuple(figures)
94
+ return (
95
+ *figures,
96
+ RawData(predictions=y_pred, dataset=dataset.input_id),
97
+ )
@@ -5,7 +5,7 @@
5
5
  import pandas as pd
6
6
  from statsmodels.stats.stattools import jarque_bera
7
7
 
8
- from validmind import tags, tasks
8
+ from validmind import RawData, tags, tasks
9
9
 
10
10
 
11
11
  @tasks("classification", "regression")
@@ -67,4 +67,4 @@ def JarqueBera(dataset):
67
67
  jb_df.reset_index(inplace=True)
68
68
  jb_df.columns = ["column", "stat", "pvalue", "skew", "kurtosis"]
69
69
 
70
- return jb_df
70
+ return jb_df, RawData(jb_values=jb_values, dataset=dataset.input_id)
@@ -5,7 +5,7 @@
5
5
  import pandas as pd
6
6
  from statsmodels.stats.diagnostic import acorr_ljungbox
7
7
 
8
- from validmind import tags, tasks
8
+ from validmind import RawData, tags, tasks
9
9
 
10
10
 
11
11
  @tasks("regression")
@@ -63,4 +63,4 @@ def LJungBox(dataset):
63
63
  ljung_box_df.reset_index(inplace=True)
64
64
  ljung_box_df.columns = ["column", "stat", "pvalue"]
65
65
 
66
- return ljung_box_df
66
+ return ljung_box_df, RawData(ljung_box_df=ljung_box_df, dataset=dataset.input_id)
@@ -101,4 +101,4 @@ def LaggedCorrelationHeatmap(dataset: VMDataset, num_lags: int = 10):
101
101
  xaxis_title="Lags",
102
102
  )
103
103
 
104
- return fig, RawData(correlation_matrix=correlation_df)
104
+ return fig, RawData(correlation_matrix=correlation_df, dataset=dataset.input_id)
@@ -2,7 +2,7 @@
2
2
  # See 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
- from validmind import tags, tasks
5
+ from validmind import RawData, tags, tasks
6
6
  from validmind.vm_models import VMDataset
7
7
 
8
8
 
@@ -49,12 +49,16 @@ def MissingValues(dataset: VMDataset, min_threshold: int = 1):
49
49
  df = dataset.df
50
50
  missing = df.isna().sum()
51
51
 
52
- return [
53
- {
54
- "Column": col,
55
- "Number of Missing Values": missing[col],
56
- "Percentage of Missing Values (%)": missing[col] / df.shape[0] * 100,
57
- "Pass/Fail": "Pass" if missing[col] < min_threshold else "Fail",
58
- }
59
- for col in missing.index
60
- ], all(missing[col] < min_threshold for col in missing.index)
52
+ return (
53
+ [
54
+ {
55
+ "Column": col,
56
+ "Number of Missing Values": missing[col],
57
+ "Percentage of Missing Values (%)": missing[col] / df.shape[0] * 100,
58
+ "Pass/Fail": "Pass" if missing[col] < min_threshold else "Fail",
59
+ }
60
+ for col in missing.index
61
+ ],
62
+ all(missing[col] < min_threshold for col in missing.index),
63
+ RawData(missing_values=missing, dataset=dataset.input_id),
64
+ )
@@ -117,5 +117,7 @@ def MissingValuesBarPlot(
117
117
  height=fig_height,
118
118
  ),
119
119
  ),
120
- RawData(missing_percentages=missing_percentages_sorted),
120
+ RawData(
121
+ missing_percentages=missing_percentages_sorted, dataset=dataset.input_id
122
+ ),
121
123
  )
@@ -123,5 +123,6 @@ def MutualInformation(
123
123
  return fig, RawData(
124
124
  mutual_information_scores={
125
125
  feature: score for feature, score in zip(sorted_features, sorted_scores)
126
- }
126
+ },
127
+ dataset=dataset.input_id,
127
128
  )
@@ -88,4 +88,4 @@ def PearsonCorrelationMatrix(dataset):
88
88
 
89
89
  fig = go.Figure(data=[heatmap], layout=layout)
90
90
 
91
- return fig, RawData(correlation_matrix=corr_matrix)
91
+ return fig, RawData(correlation_matrix=corr_matrix, dataset=dataset.input_id)
@@ -206,5 +206,7 @@ def ProtectedClassesCombination(dataset, model, protected_classes=None):
206
206
  metrics_frame=mf,
207
207
  demographic_parity_ratios=m_dpr,
208
208
  equalized_odds_ratios=m_eqo,
209
+ model=model.input_id,
210
+ dataset=dataset.input_id,
209
211
  ),
210
212
  )
@@ -6,7 +6,7 @@
6
6
  import pandas as pd
7
7
  import plotly.graph_objects as go
8
8
 
9
- from validmind import tags, tasks
9
+ from validmind import RawData, tags, tasks
10
10
  from validmind.logging import get_logger
11
11
 
12
12
  logger = get_logger(__name__)
@@ -127,4 +127,4 @@ def ProtectedClassesDescription(dataset, protected_classes=None):
127
127
  ["Protected Class", "Count"], ascending=[True, False]
128
128
  )
129
129
 
130
- return (stats_df, *figures)
130
+ return (stats_df, *figures, RawData(dataset=dataset.input_id))
@@ -7,7 +7,7 @@ import sys
7
7
 
8
8
  import pandas as pd
9
9
 
10
- from validmind import tags, tasks
10
+ from validmind import RawData, tags, tasks
11
11
  from validmind.errors import MissingDependencyError
12
12
  from validmind.logging import get_logger
13
13
 
@@ -119,7 +119,7 @@ def ProtectedClassesDisparity(
119
119
  mask_significance=True,
120
120
  )
121
121
 
122
- figures = []
122
+ returns = [] # Renamed to 'returns' for clarity
123
123
  for protected_class in protected_classes:
124
124
  plot = ap.disparity(
125
125
  bdf, metrics, protected_class, fairness_threshold=disparity_tolerance
@@ -129,12 +129,16 @@ def ProtectedClassesDisparity(
129
129
  plot.save(
130
130
  buf, format="png"
131
131
  ) # as long as the above library is installed, this will work
132
- figures.append(buf.getvalue())
132
+ returns.append(buf.getvalue())
133
133
 
134
134
  string = "_disparity"
135
135
  metrics_adj = [x + string for x in metrics]
136
136
 
137
137
  table = bdf[["attribute_name", "attribute_value"] + b.list_disparities(bdf)]
138
- figures.append(aqp.plot_disparity_all(bdf, metrics=metrics_adj))
138
+ returns.append(aqp.plot_disparity_all(bdf, metrics=metrics_adj))
139
139
 
140
- return (table, *figures)
140
+ return (
141
+ table,
142
+ *returns,
143
+ RawData(model=model.input_id, dataset=dataset.input_id, disparity_data=bdf),
144
+ )
@@ -8,7 +8,7 @@ import sys
8
8
  import matplotlib.pyplot as plt
9
9
  import pandas as pd
10
10
 
11
- from validmind import tags, tasks
11
+ from validmind import RawData, tags, tasks
12
12
  from validmind.errors import MissingDependencyError
13
13
  from validmind.logging import get_logger
14
14
 
@@ -103,7 +103,15 @@ def ProtectedClassesThresholdOptimizer(
103
103
  test_df, target, y_pred_opt, protected_classes
104
104
  )
105
105
 
106
- return {"DPR and EOR Table": fairness_metrics.reset_index()}, fig
106
+ return (
107
+ {"DPR and EOR Table": fairness_metrics.reset_index()},
108
+ fig,
109
+ RawData(
110
+ y_predictions=y_pred_opt.tolist(),
111
+ dataset=dataset.input_id,
112
+ protected_classes=protected_classes,
113
+ ),
114
+ )
107
115
 
108
116
 
109
117
  def initialize_and_fit_optimizer(pipeline, X_train, y_train, protected_classes_df):
@@ -113,6 +113,7 @@ def RollingStatsPlot(dataset: VMDataset, window_size: int = 12):
113
113
  "rolling_std": dataset.df[col].rolling(window=window_size).std(),
114
114
  }
115
115
  for col in dataset.feature_columns
116
- }
116
+ },
117
+ dataset=dataset.input_id,
117
118
  ),
118
119
  )
@@ -5,7 +5,7 @@
5
5
  import numpy as np
6
6
  import pandas as pd
7
7
 
8
- from validmind import tags, tasks
8
+ from validmind import RawData, tags, tasks
9
9
  from validmind.vm_models import VMDataset, VMModel
10
10
 
11
11
 
@@ -137,4 +137,6 @@ def ScoreBandDefaultRates(
137
137
  }
138
138
  )
139
139
 
140
- return pd.DataFrame(results)
140
+ return pd.DataFrame(results), RawData(
141
+ results=results, model=model.input_id, dataset=dataset.input_id
142
+ )
@@ -166,4 +166,4 @@ def SeasonalDecompose(dataset: VMDataset, seasonal_model: str = "additive"):
166
166
  if not figures:
167
167
  raise SkipTestError("No valid features found for seasonal decomposition")
168
168
 
169
- return (*figures, RawData(decomposed_components=raw_data))
169
+ return (*figures, RawData(decomposed_components=raw_data, dataset=dataset.input_id))
@@ -5,7 +5,7 @@
5
5
  import pandas as pd
6
6
  from scipy import stats
7
7
 
8
- from validmind import tags, tasks
8
+ from validmind import RawData, tags, tasks
9
9
 
10
10
 
11
11
  @tasks("classification", "regression")
@@ -66,4 +66,4 @@ def ShapiroWilk(dataset):
66
66
  sw_df.reset_index(inplace=True)
67
67
  sw_df.columns = ["column", "stat", "pvalue"]
68
68
 
69
- return sw_df
69
+ return sw_df, RawData(shapiro_results=sw_values, dataset=dataset.input_id)
@@ -95,4 +95,4 @@ def SpreadPlot(dataset: VMDataset):
95
95
  name=f"spread_{var1}_{var2}"
96
96
  )
97
97
 
98
- return (*figures, RawData(spread_data=spread_data))
98
+ return (*figures, RawData(spread_data=spread_data, dataset=dataset.input_id))
@@ -92,4 +92,4 @@ def TabularCategoricalBarPlots(dataset: VMDataset):
92
92
  )
93
93
  figures.append(fig)
94
94
 
95
- return (*figures, RawData(category_counts=counts_dict))
95
+ return (*figures, RawData(category_counts=counts_dict, dataset=dataset.input_id))
@@ -72,4 +72,4 @@ def TabularDateTimeHistograms(dataset: VMDataset):
72
72
  font=dict(size=18),
73
73
  )
74
74
 
75
- return fig, RawData(date_differences=date_diffs)
75
+ return fig, RawData(date_differences=date_diffs, dataset=dataset.input_id)
@@ -108,4 +108,7 @@ def TargetRateBarPlots(dataset: VMDataset):
108
108
 
109
109
  figures.append(fig)
110
110
 
111
- return (*figures, RawData(target_rates_by_category=raw_data))
111
+ return (
112
+ *figures,
113
+ RawData(target_rates_by_category=raw_data, dataset=dataset.input_id),
114
+ )
@@ -107,5 +107,5 @@ def TimeSeriesFrequency(dataset: VMDataset):
107
107
  frequencies,
108
108
  fig,
109
109
  len(set(item["Frequency"] for item in frequencies)) == 1,
110
- RawData(time_diff_days=time_diff_days),
110
+ RawData(time_diff_days=time_diff_days, dataset=dataset.input_id),
111
111
  )
@@ -5,7 +5,7 @@
5
5
  import pandas as pd
6
6
  import plotly.graph_objects as go
7
7
 
8
- from validmind import tags, tasks
8
+ from validmind import RawData, tags, tasks
9
9
  from validmind.errors import SkipTestError
10
10
  from validmind.vm_models import VMDataset
11
11
 
@@ -111,4 +111,9 @@ def TimeSeriesOutliers(dataset: VMDataset, zscore_threshold: int = 3):
111
111
 
112
112
  figures.append(fig)
113
113
 
114
- return (outlier_df.sort_values(["Column", "Date"]), figures, len(outlier_df) == 0)
114
+ return (
115
+ outlier_df.sort_values(["Column", "Date"]),
116
+ figures,
117
+ len(outlier_df) == 0,
118
+ RawData(outliers=outlier_df, dataset=dataset.input_id),
119
+ )
@@ -140,4 +140,4 @@ def WOEBinPlots(
140
140
 
141
141
  figures.append(fig)
142
142
 
143
- return (*figures, RawData(woe_iv_data=woe_iv_df))
143
+ return (*figures, RawData(woe_iv_data=woe_iv_df, dataset=dataset.input_id))
@@ -71,4 +71,4 @@ def WOEBinTable(dataset: VMDataset, breaks_adj: list = None):
71
71
 
72
72
  return {
73
73
  "Weight of Evidence (WoE) and Information Value (IV)": result_table
74
- }, RawData(woe_bins=bins)
74
+ }, RawData(woe_bins=bins, dataset=dataset.input_id)
@@ -6,7 +6,7 @@ import pandas as pd
6
6
  from arch.unitroot import ZivotAndrews
7
7
  from numpy.linalg import LinAlgError
8
8
 
9
- from validmind import tags, tasks
9
+ from validmind import RawData, tags, tasks
10
10
  from validmind.errors import SkipTestError
11
11
  from validmind.logging import get_logger
12
12
  from validmind.vm_models import VMDataset
@@ -83,4 +83,7 @@ def ZivotAndrewsArch(dataset: VMDataset):
83
83
  }
84
84
  )
85
85
 
86
- return {"Zivot-Andrews Test Results": za_values}
86
+ return (
87
+ {"Zivot-Andrews Test Results": za_values},
88
+ RawData(zivot_andrews=za_values, dataset=dataset.input_id),
89
+ )
@@ -94,4 +94,4 @@ def CommonWords(dataset: VMDataset):
94
94
  xaxis_tickangle=-45,
95
95
  )
96
96
 
97
- return fig, RawData(words=x, frequencies=y)
97
+ return fig, RawData(words=x, frequencies=y, dataset=dataset.input_id)
@@ -76,4 +76,4 @@ def Hashtags(dataset: VMDataset, top_hashtags: int = 25):
76
76
  xaxis_tickangle=-45,
77
77
  )
78
78
 
79
- return fig, RawData(top_hashtag_counts=top_hashtag_counts)
79
+ return fig, RawData(top_hashtag_counts=top_hashtag_counts, dataset=dataset.input_id)
@@ -71,5 +71,5 @@ def LanguageDetection(dataset):
71
71
  title="Language Distribution",
72
72
  labels={"x": "Language Codes"},
73
73
  ),
74
- RawData(detected_languages=languages),
74
+ RawData(detected_languages=languages, dataset=dataset.input_id),
75
75
  )
@@ -82,5 +82,5 @@ def Mentions(dataset: VMDataset, top_mentions: int = 25):
82
82
  values="Percentage",
83
83
  title="Tree of Mentions",
84
84
  ),
85
- RawData(mention_counts=mention_counts),
85
+ RawData(mention_counts=mention_counts, dataset=dataset.input_id),
86
86
  )
@@ -144,4 +144,8 @@ def PolarityAndSubjectivity(dataset, threshold_subjectivity=0.5, threshold_polar
144
144
 
145
145
  statistics_tables = {"Quadrant Distribution": quadrant_df, "Statistics": stats_df}
146
146
 
147
- return fig, statistics_tables, RawData(sentiment_data=data)
147
+ return (
148
+ fig,
149
+ statistics_tables,
150
+ RawData(sentiment_data=data, dataset=dataset.input_id),
151
+ )
@@ -65,7 +65,7 @@ def Punctuations(dataset, count_mode="token"):
65
65
  punctuation_counts = _count_punctuations(corpus, count_mode)
66
66
  fig = _create_punctuation_plot(punctuation_counts)
67
67
 
68
- return fig, RawData(punctuation_counts=punctuation_counts)
68
+ return fig, RawData(punctuation_counts=punctuation_counts, dataset=dataset.input_id)
69
69
 
70
70
 
71
71
  def _create_punctuation_plot(punctuation_counts):
@@ -77,4 +77,6 @@ def Sentiment(dataset):
77
77
 
78
78
  plt.close("all")
79
79
 
80
- return fig, RawData(sentiment_scores=vader_sentiment.tolist())
80
+ return fig, RawData(
81
+ sentiment_scores=vader_sentiment.tolist(), dataset=dataset.input_id
82
+ )
@@ -173,4 +173,4 @@ def TextDescription(
173
173
  )
174
174
  )
175
175
 
176
- return (*figures, RawData(metrics_dataframe=metrics_df))
176
+ return (*figures, RawData(metrics_dataframe=metrics_df, dataset=dataset.input_id))
@@ -73,4 +73,4 @@ def Toxicity(dataset):
73
73
 
74
74
  plt.close()
75
75
 
76
- return fig, RawData(toxicity_scores=toxicity_scores)
76
+ return fig, RawData(toxicity_scores=toxicity_scores, dataset=dataset.input_id)
@@ -131,4 +131,10 @@ def BertScore(
131
131
  # Create a DataFrame from all collected statistics
132
132
  result_df = pd.DataFrame(stats_df).reset_index().rename(columns={"index": "Metric"})
133
133
 
134
- return (result_df, *figures, RawData(bert_scores_df=metrics_df))
134
+ return (
135
+ result_df,
136
+ *figures,
137
+ RawData(
138
+ bert_scores_df=metrics_df, model=model.input_id, dataset=dataset.input_id
139
+ ),
140
+ )