validmind 2.3.3__tar.gz → 2.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. {validmind-2.3.3 → validmind-2.4.0}/PKG-INFO +70 -36
  2. validmind-2.4.0/README.pypi.md +54 -0
  3. {validmind-2.3.3 → validmind-2.4.0}/pyproject.toml +33 -49
  4. validmind-2.4.0/validmind/__version__.py +1 -0
  5. {validmind-2.3.3 → validmind-2.4.0}/validmind/ai/test_descriptions.py +8 -1
  6. {validmind-2.3.3 → validmind-2.4.0}/validmind/ai/utils.py +2 -1
  7. {validmind-2.3.3 → validmind-2.4.0}/validmind/client.py +1 -0
  8. validmind-2.4.0/validmind/datasets/regression/fred_timeseries.py +272 -0
  9. validmind-2.4.0/validmind/tests/__init__.py +39 -0
  10. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/__types__.py +10 -0
  11. validmind-2.4.0/validmind/tests/_store.py +102 -0
  12. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/ACFandPACFPlot.py +7 -9
  13. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/ADF.py +8 -10
  14. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/ANOVAOneWayTable.py +8 -10
  15. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/AutoAR.py +2 -4
  16. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/AutoMA.py +2 -4
  17. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/AutoSeasonality.py +8 -10
  18. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/AutoStationarity.py +8 -10
  19. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/BivariateFeaturesBarPlots.py +8 -10
  20. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/BivariateHistograms.py +8 -10
  21. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/BivariateScatterPlots.py +8 -10
  22. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/ChiSquaredFeaturesTable.py +8 -10
  23. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/ClassImbalance.py +2 -4
  24. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/DFGLSArch.py +2 -4
  25. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/DatasetDescription.py +7 -9
  26. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/DatasetSplit.py +8 -9
  27. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/DescriptiveStatistics.py +2 -4
  28. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/Duplicates.py +2 -4
  29. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/EngleGrangerCoint.py +2 -4
  30. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/FeatureTargetCorrelationPlot.py +2 -4
  31. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/HeatmapFeatureCorrelations.py +2 -4
  32. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/HighCardinality.py +2 -4
  33. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/HighPearsonCorrelation.py +2 -4
  34. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/IQROutliersBarPlot.py +2 -4
  35. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/IQROutliersTable.py +2 -4
  36. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/IsolationForestOutliers.py +2 -4
  37. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/KPSS.py +8 -10
  38. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/LaggedCorrelationHeatmap.py +2 -4
  39. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/MissingValues.py +2 -4
  40. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/MissingValuesBarPlot.py +2 -4
  41. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/MissingValuesRisk.py +2 -4
  42. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/PearsonCorrelationMatrix.py +2 -4
  43. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/PhillipsPerronArch.py +7 -9
  44. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/RollingStatsPlot.py +2 -4
  45. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/ScatterPlot.py +2 -4
  46. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/SeasonalDecompose.py +70 -44
  47. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/Skewness.py +2 -4
  48. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/SpreadPlot.py +2 -4
  49. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/TabularCategoricalBarPlots.py +2 -4
  50. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/TabularDateTimeHistograms.py +2 -4
  51. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/TabularDescriptionTables.py +2 -4
  52. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/TabularNumericalHistograms.py +2 -4
  53. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/TargetRateBarPlots.py +2 -4
  54. validmind-2.4.0/validmind/tests/data_validation/TimeSeriesDescription.py +74 -0
  55. validmind-2.4.0/validmind/tests/data_validation/TimeSeriesDescriptiveStatistics.py +76 -0
  56. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/TimeSeriesFrequency.py +2 -4
  57. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/TimeSeriesHistogram.py +29 -45
  58. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/TimeSeriesLinePlot.py +2 -4
  59. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/TimeSeriesMissingValues.py +2 -4
  60. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/TimeSeriesOutliers.py +32 -45
  61. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/TooManyZeroValues.py +2 -4
  62. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/UniqueRows.py +2 -4
  63. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/WOEBinPlots.py +2 -4
  64. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/WOEBinTable.py +2 -4
  65. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/ZivotAndrewsArch.py +2 -4
  66. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/nlp/CommonWords.py +2 -4
  67. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/nlp/Hashtags.py +2 -4
  68. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/nlp/Mentions.py +2 -4
  69. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/nlp/Punctuations.py +2 -4
  70. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/nlp/StopWords.py +2 -4
  71. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/nlp/TextDescription.py +2 -4
  72. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/decorator.py +10 -8
  73. validmind-2.4.0/validmind/tests/load.py +264 -0
  74. validmind-2.4.0/validmind/tests/metadata.py +59 -0
  75. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/ClusterSizeDistribution.py +5 -7
  76. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/FeaturesAUC.py +6 -8
  77. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/ModelMetadata.py +8 -9
  78. validmind-2.4.0/validmind/tests/model_validation/ModelMetadataComparison.py +59 -0
  79. validmind-2.4.0/validmind/tests/model_validation/ModelPredictionResiduals.py +103 -0
  80. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/RegressionResidualsPlot.py +2 -6
  81. validmind-2.4.0/validmind/tests/model_validation/TimeSeriesPredictionWithCI.py +131 -0
  82. validmind-2.4.0/validmind/tests/model_validation/TimeSeriesPredictionsPlot.py +76 -0
  83. validmind-2.4.0/validmind/tests/model_validation/TimeSeriesR2SquareBySegments.py +103 -0
  84. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/embeddings/ClusterDistribution.py +2 -4
  85. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/embeddings/CosineSimilarityDistribution.py +2 -4
  86. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/embeddings/DescriptiveAnalytics.py +2 -4
  87. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/embeddings/EmbeddingsVisualization2D.py +2 -4
  88. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/embeddings/StabilityAnalysis.py +2 -4
  89. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/AdjustedMutualInformation.py +5 -7
  90. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/AdjustedRandIndex.py +5 -7
  91. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/ClassifierPerformance.py +7 -9
  92. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/ClusterCosineSimilarity.py +5 -7
  93. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/ClusterPerformance.py +5 -7
  94. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/ClusterPerformanceMetrics.py +2 -7
  95. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/CompletenessScore.py +5 -7
  96. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/ConfusionMatrix.py +19 -10
  97. validmind-2.4.0/validmind/tests/model_validation/sklearn/FeatureImportanceComparison.py +83 -0
  98. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/FowlkesMallowsScore.py +5 -7
  99. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/HomogeneityScore.py +5 -7
  100. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/HyperParametersTuning.py +2 -7
  101. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/KMeansClustersOptimization.py +4 -7
  102. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/MinimumAccuracy.py +7 -9
  103. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/MinimumF1Score.py +7 -9
  104. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/MinimumROCAUCScore.py +7 -9
  105. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py +8 -10
  106. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/OverfitDiagnosis.py +7 -9
  107. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/PermutationFeatureImportance.py +9 -11
  108. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/PopulationStabilityIndex.py +7 -9
  109. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/PrecisionRecallCurve.py +8 -10
  110. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/ROCCurve.py +10 -11
  111. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/RegressionErrors.py +5 -7
  112. validmind-2.4.0/validmind/tests/model_validation/sklearn/RegressionErrorsComparison.py +76 -0
  113. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/RegressionModelsPerformanceComparison.py +5 -7
  114. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/RegressionR2Square.py +5 -7
  115. validmind-2.4.0/validmind/tests/model_validation/sklearn/RegressionR2SquareComparison.py +63 -0
  116. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/RobustnessDiagnosis.py +10 -14
  117. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py +8 -10
  118. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/SilhouettePlot.py +5 -7
  119. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/TrainingTestDegradation.py +8 -10
  120. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/VMeasure.py +5 -7
  121. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/WeakspotsDiagnosis.py +8 -10
  122. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/AutoARIMA.py +2 -4
  123. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/BoxPierce.py +2 -4
  124. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/CumulativePredictionProbabilities.py +3 -4
  125. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py +2 -4
  126. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/GINITable.py +2 -4
  127. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/JarqueBera.py +7 -9
  128. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/KolmogorovSmirnov.py +7 -9
  129. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/LJungBox.py +2 -4
  130. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/Lilliefors.py +7 -9
  131. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/PredictionProbabilitiesHistogram.py +2 -4
  132. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/RegressionCoeffsPlot.py +2 -4
  133. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/RegressionFeatureSignificance.py +7 -9
  134. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlot.py +2 -4
  135. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlotLevels.py +2 -4
  136. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/RegressionModelSensitivityPlot.py +2 -4
  137. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/RegressionModelSummary.py +2 -4
  138. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/RegressionModelsCoeffs.py +2 -4
  139. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/RegressionPermutationFeatureImportance.py +6 -8
  140. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/RunsTest.py +2 -4
  141. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/ScorecardHistogram.py +3 -4
  142. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/ShapiroWilk.py +2 -4
  143. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/prompt_validation/Bias.py +2 -4
  144. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/prompt_validation/Clarity.py +2 -4
  145. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/prompt_validation/Conciseness.py +2 -4
  146. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/prompt_validation/Delimitation.py +2 -4
  147. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/prompt_validation/NegativeInstruction.py +2 -4
  148. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/prompt_validation/Robustness.py +2 -4
  149. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/prompt_validation/Specificity.py +2 -4
  150. validmind-2.4.0/validmind/tests/run.py +394 -0
  151. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/test_providers.py +12 -0
  152. validmind-2.4.0/validmind/tests/utils.py +16 -0
  153. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/__init__.py +12 -4
  154. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/composite.py +3 -0
  155. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/test/metric.py +8 -5
  156. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/test/result_wrapper.py +2 -1
  157. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/test/test.py +14 -11
  158. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/test/threshold_test.py +1 -0
  159. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/test_suite/runner.py +1 -0
  160. validmind-2.3.3/README.pypi.md +0 -12
  161. validmind-2.3.3/validmind/__version__.py +0 -1
  162. validmind-2.3.3/validmind/tests/__init__.py +0 -493
  163. {validmind-2.3.3 → validmind-2.4.0}/LICENSE +0 -0
  164. {validmind-2.3.3 → validmind-2.4.0}/validmind/__init__.py +0 -0
  165. {validmind-2.3.3 → validmind-2.4.0}/validmind/api_client.py +0 -0
  166. {validmind-2.3.3 → validmind-2.4.0}/validmind/client_config.py +0 -0
  167. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/__init__.py +0 -0
  168. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/classification/__init__.py +0 -0
  169. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/classification/customer_churn.py +0 -0
  170. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/classification/datasets/bank_customer_churn.csv +0 -0
  171. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/classification/datasets/taiwan_credit.csv +0 -0
  172. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/classification/taiwan_credit.py +0 -0
  173. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/cluster/digits.py +0 -0
  174. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/credit_risk/__init__.py +0 -0
  175. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/credit_risk/datasets/lending_club_loan_data_2007_2014_clean.csv.gz +0 -0
  176. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/credit_risk/lending_club.py +0 -0
  177. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/llm/rag/__init__.py +0 -0
  178. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_1.csv +0 -0
  179. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_2.csv +0 -0
  180. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_3.csv +0 -0
  181. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_4.csv +0 -0
  182. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_5.csv +0 -0
  183. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/llm/rag/rfp.py +0 -0
  184. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/nlp/__init__.py +0 -0
  185. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/nlp/cnn_dailymail.py +0 -0
  186. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/nlp/datasets/Covid_19.csv +0 -0
  187. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/nlp/datasets/cnn_dailymail_100_with_predictions.csv +0 -0
  188. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/nlp/datasets/cnn_dailymail_500_with_predictions.csv +0 -0
  189. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/nlp/datasets/sentiments_with_predictions.csv +0 -0
  190. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/nlp/twitter_covid_19.py +0 -0
  191. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/__init__.py +0 -0
  192. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/california_housing.py +0 -0
  193. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/datasets/fred/CPIAUCSL.csv +0 -0
  194. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/datasets/fred/CSUSHPISA.csv +0 -0
  195. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/datasets/fred/DRSFRMACBS.csv +0 -0
  196. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/datasets/fred/FEDFUNDS.csv +0 -0
  197. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/datasets/fred/GDP.csv +0 -0
  198. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/datasets/fred/GDPC1.csv +0 -0
  199. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/datasets/fred/GS10.csv +0 -0
  200. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/datasets/fred/GS3.csv +0 -0
  201. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/datasets/fred/GS5.csv +0 -0
  202. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/datasets/fred/MORTGAGE30US.csv +0 -0
  203. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/datasets/fred/UNRATE.csv +0 -0
  204. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/datasets/fred_loan_rates.csv +0 -0
  205. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/datasets/fred_loan_rates_test_1.csv +0 -0
  206. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/datasets/fred_loan_rates_test_2.csv +0 -0
  207. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/datasets/fred_loan_rates_test_3.csv +0 -0
  208. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/datasets/fred_loan_rates_test_4.csv +0 -0
  209. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/datasets/fred_loan_rates_test_5.csv +0 -0
  210. /validmind-2.3.3/validmind/datasets/regression/datasets/lending_club_loan_rates.csv → /validmind-2.4.0/validmind/datasets/regression/datasets/leanding_club_loan_rates.csv +0 -0
  211. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/fred.py +0 -0
  212. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/lending_club.py +0 -0
  213. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/models/fred_loan_rates_model_1.pkl +0 -0
  214. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/models/fred_loan_rates_model_2.pkl +0 -0
  215. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/models/fred_loan_rates_model_3.pkl +0 -0
  216. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/models/fred_loan_rates_model_4.pkl +0 -0
  217. {validmind-2.3.3 → validmind-2.4.0}/validmind/datasets/regression/models/fred_loan_rates_model_5.pkl +0 -0
  218. {validmind-2.3.3 → validmind-2.4.0}/validmind/errors.py +0 -0
  219. {validmind-2.3.3 → validmind-2.4.0}/validmind/html_templates/__init__.py +0 -0
  220. {validmind-2.3.3 → validmind-2.4.0}/validmind/html_templates/content_blocks.py +0 -0
  221. {validmind-2.3.3 → validmind-2.4.0}/validmind/input_registry.py +0 -0
  222. {validmind-2.3.3 → validmind-2.4.0}/validmind/logging.py +0 -0
  223. {validmind-2.3.3 → validmind-2.4.0}/validmind/models/__init__.py +0 -0
  224. {validmind-2.3.3 → validmind-2.4.0}/validmind/models/foundation.py +0 -0
  225. {validmind-2.3.3 → validmind-2.4.0}/validmind/models/function.py +0 -0
  226. {validmind-2.3.3 → validmind-2.4.0}/validmind/models/huggingface.py +0 -0
  227. {validmind-2.3.3 → validmind-2.4.0}/validmind/models/metadata.py +0 -0
  228. {validmind-2.3.3 → validmind-2.4.0}/validmind/models/pipeline.py +0 -0
  229. {validmind-2.3.3 → validmind-2.4.0}/validmind/models/pytorch.py +0 -0
  230. {validmind-2.3.3 → validmind-2.4.0}/validmind/models/r_model.py +0 -0
  231. {validmind-2.3.3 → validmind-2.4.0}/validmind/models/sklearn.py +0 -0
  232. {validmind-2.3.3 → validmind-2.4.0}/validmind/template.py +0 -0
  233. {validmind-2.3.3 → validmind-2.4.0}/validmind/test_suites/__init__.py +0 -0
  234. {validmind-2.3.3 → validmind-2.4.0}/validmind/test_suites/classifier.py +0 -0
  235. {validmind-2.3.3 → validmind-2.4.0}/validmind/test_suites/cluster.py +0 -0
  236. {validmind-2.3.3 → validmind-2.4.0}/validmind/test_suites/embeddings.py +0 -0
  237. {validmind-2.3.3 → validmind-2.4.0}/validmind/test_suites/llm.py +0 -0
  238. {validmind-2.3.3 → validmind-2.4.0}/validmind/test_suites/nlp.py +0 -0
  239. {validmind-2.3.3 → validmind-2.4.0}/validmind/test_suites/parameters_optimization.py +0 -0
  240. {validmind-2.3.3 → validmind-2.4.0}/validmind/test_suites/regression.py +0 -0
  241. {validmind-2.3.3 → validmind-2.4.0}/validmind/test_suites/statsmodels_timeseries.py +0 -0
  242. {validmind-2.3.3 → validmind-2.4.0}/validmind/test_suites/summarization.py +0 -0
  243. {validmind-2.3.3 → validmind-2.4.0}/validmind/test_suites/tabular_datasets.py +0 -0
  244. {validmind-2.3.3 → validmind-2.4.0}/validmind/test_suites/text_data.py +0 -0
  245. {validmind-2.3.3 → validmind-2.4.0}/validmind/test_suites/time_series.py +0 -0
  246. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/__init__.py +0 -0
  247. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/nlp/LanguageDetection.py +0 -0
  248. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/nlp/PolarityAndSubjectivity.py +0 -0
  249. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/nlp/Sentiment.py +0 -0
  250. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/nlp/Toxicity.py +0 -0
  251. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/data_validation/nlp/__init__.py +0 -0
  252. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/BertScore.py +0 -0
  253. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/BleuScore.py +0 -0
  254. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/ContextualRecall.py +0 -0
  255. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/MeteorScore.py +0 -0
  256. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/RegardScore.py +0 -0
  257. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/RougeScore.py +0 -0
  258. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/TokenDisparity.py +0 -0
  259. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/ToxicityScore.py +0 -0
  260. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/__init__.py +0 -0
  261. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/embeddings/CosineSimilarityComparison.py +0 -0
  262. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/embeddings/CosineSimilarityHeatmap.py +0 -0
  263. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/embeddings/EuclideanDistanceComparison.py +0 -0
  264. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/embeddings/EuclideanDistanceHeatmap.py +0 -0
  265. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/embeddings/PCAComponentsPairwisePlots.py +0 -0
  266. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/embeddings/StabilityAnalysisKeyword.py +0 -0
  267. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/embeddings/StabilityAnalysisRandomNoise.py +0 -0
  268. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/embeddings/StabilityAnalysisSynonyms.py +0 -0
  269. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/embeddings/StabilityAnalysisTranslation.py +0 -0
  270. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/embeddings/TSNEComponentsPairwisePlots.py +0 -0
  271. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/ragas/AnswerCorrectness.py +0 -0
  272. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/ragas/AnswerRelevance.py +0 -0
  273. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/ragas/AnswerSimilarity.py +0 -0
  274. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/ragas/AspectCritique.py +0 -0
  275. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/ragas/ContextEntityRecall.py +0 -0
  276. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/ragas/ContextPrecision.py +0 -0
  277. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/ragas/ContextRecall.py +0 -0
  278. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/ragas/ContextRelevancy.py +0 -0
  279. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/ragas/Faithfulness.py +0 -0
  280. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/ragas/utils.py +0 -0
  281. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/sklearn/__init__.py +0 -0
  282. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/__init__.py +0 -0
  283. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/model_validation/statsmodels/statsutils.py +0 -0
  284. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/prompt_validation/__init__.py +0 -0
  285. {validmind-2.3.3 → validmind-2.4.0}/validmind/tests/prompt_validation/ai_powered_test.py +0 -0
  286. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/classification/sklearn/Accuracy.py +0 -0
  287. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/classification/sklearn/F1.py +0 -0
  288. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/classification/sklearn/Precision.py +0 -0
  289. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/classification/sklearn/ROC_AUC.py +0 -0
  290. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/classification/sklearn/Recall.py +0 -0
  291. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/regression/GiniCoefficient.py +0 -0
  292. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/regression/HuberLoss.py +0 -0
  293. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/regression/KolmogorovSmirnovStatistic.py +0 -0
  294. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/regression/MeanAbsolutePercentageError.py +0 -0
  295. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/regression/MeanBiasDeviation.py +0 -0
  296. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/regression/QuantileLoss.py +0 -0
  297. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/regression/sklearn/AdjustedRSquaredScore.py +0 -0
  298. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/regression/sklearn/MeanAbsoluteError.py +0 -0
  299. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/regression/sklearn/MeanSquaredError.py +0 -0
  300. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/regression/sklearn/RSquaredScore.py +0 -0
  301. {validmind-2.3.3 → validmind-2.4.0}/validmind/unit_metrics/regression/sklearn/RootMeanSquaredError.py +0 -0
  302. {validmind-2.3.3 → validmind-2.4.0}/validmind/utils.py +0 -0
  303. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/__init__.py +0 -0
  304. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/dataset/__init__.py +0 -0
  305. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/dataset/dataset.py +0 -0
  306. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/dataset/utils.py +0 -0
  307. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/figure.py +0 -0
  308. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/model.py +0 -0
  309. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/test/metric_result.py +0 -0
  310. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/test/output_template.py +0 -0
  311. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/test/result_summary.py +0 -0
  312. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/test/threshold_test_result.py +0 -0
  313. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/test_context.py +0 -0
  314. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/test_suite/summary.py +0 -0
  315. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/test_suite/test.py +0 -0
  316. {validmind-2.3.3 → validmind-2.4.0}/validmind/vm_models/test_suite/test_suite.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: validmind
3
- Version: 2.3.3
3
+ Version: 2.4.0
4
4
  Summary: ValidMind Developer Framework
5
5
  License: Commercial License
6
6
  Author: Andres Rodriguez
@@ -12,58 +12,50 @@ Classifier: Programming Language :: Python :: 3.9
12
12
  Classifier: Programming Language :: Python :: 3.10
13
13
  Classifier: Programming Language :: Python :: 3.11
14
14
  Provides-Extra: all
15
+ Provides-Extra: huggingface
15
16
  Provides-Extra: llm
16
17
  Provides-Extra: pytorch
17
18
  Provides-Extra: r-support
18
- Provides-Extra: transformers
19
- Requires-Dist: aiohttp[speedups] (>=3.8.4,<4.0.0)
20
- Requires-Dist: arch (>=5.4.0,<6.0.0)
21
- Requires-Dist: bert-score (>=0.3.13,<0.4.0)
22
- Requires-Dist: catboost (>=1.2,<2.0)
23
- Requires-Dist: click (>=8.0.4,<9.0.0)
24
- Requires-Dist: evaluate (>=0.4.0,<0.5.0)
25
- Requires-Dist: ipywidgets (>=8.0.6,<9.0.0)
26
- Requires-Dist: kaleido (>=0.2.1,<0.3.0,!=0.2.1.post1)
27
- Requires-Dist: langdetect (>=1.0.9,<2.0.0)
28
- Requires-Dist: latex2mathml (>=3.77.0,<4.0.0)
29
- Requires-Dist: levenshtein (>=0.21.1,<0.22.0) ; extra == "all" or extra == "llm"
30
- Requires-Dist: llvmlite (>=0.42.0) ; python_version >= "3.12"
19
+ Requires-Dist: aiohttp[speedups]
20
+ Requires-Dist: arch
21
+ Requires-Dist: bert-score (>=0.3.13)
22
+ Requires-Dist: catboost
23
+ Requires-Dist: evaluate
24
+ Requires-Dist: ipywidgets
25
+ Requires-Dist: kaleido (>=0.2.1,!=0.2.1.post1)
26
+ Requires-Dist: langchain-openai (>=0.1.8) ; extra == "all" or extra == "llm"
27
+ Requires-Dist: langdetect
28
+ Requires-Dist: latex2mathml (>=3.77.0)
31
29
  Requires-Dist: llvmlite ; python_version >= "3.8" and python_full_version <= "3.11.0"
32
- Requires-Dist: matplotlib (<3.8.3)
30
+ Requires-Dist: matplotlib
33
31
  Requires-Dist: mistune (>=3.0.2,<4.0.0)
34
32
  Requires-Dist: nltk (>=3.8.1,<4.0.0)
35
33
  Requires-Dist: numba (<0.59.0)
36
- Requires-Dist: numpy (>=1.23.3,<2.0.0) ; python_version >= "3.8" and python_full_version <= "3.11.0"
37
- Requires-Dist: numpy (>=1.26.0) ; python_version >= "3.12"
38
- Requires-Dist: openai (>=1.3.7,<2.0.0) ; extra == "all" or extra == "llm"
34
+ Requires-Dist: numpy
35
+ Requires-Dist: openai (>=1) ; extra == "all" or extra == "llm"
39
36
  Requires-Dist: pandas (>=1.1,<2)
40
- Requires-Dist: plotly (>=5.14.1,<6.0.0)
41
- Requires-Dist: plotly-express (>=0.4.1,<0.5.0)
42
- Requires-Dist: polars (>=0.20.15,<0.21.0)
37
+ Requires-Dist: plotly
38
+ Requires-Dist: plotly-express
39
+ Requires-Dist: polars
43
40
  Requires-Dist: pycocoevalcap (>=1.2,<2.0) ; extra == "all" or extra == "llm"
44
- Requires-Dist: pypmml (>=0.9.17,<0.10.0)
45
- Requires-Dist: python-dotenv (>=0.20.0,<0.21.0)
46
- Requires-Dist: ragas (>=0.1.7,<0.2.0)
47
- Requires-Dist: rouge (>=1.0.1,<2.0.0)
41
+ Requires-Dist: python-dotenv
42
+ Requires-Dist: ragas (>=0.1.7) ; extra == "all" or extra == "llm"
43
+ Requires-Dist: rouge (>=1)
48
44
  Requires-Dist: rpy2 (>=3.5.10,<4.0.0) ; extra == "all" or extra == "r-support"
49
- Requires-Dist: scikit-learn (>=1.0.2,<2.0.0)
50
- Requires-Dist: scipy (>=1.12) ; python_version >= "3.12"
51
- Requires-Dist: scipy ; python_version >= "3.8" and python_full_version <= "3.11.0"
45
+ Requires-Dist: scikit-learn
46
+ Requires-Dist: scipy
52
47
  Requires-Dist: scorecardpy (>=0.1.9.6,<0.2.0.0)
53
- Requires-Dist: seaborn (>=0.11.2,<0.12.0)
54
- Requires-Dist: selfcheckgpt (>=0.1.7,<0.2.0)
48
+ Requires-Dist: seaborn
55
49
  Requires-Dist: sentry-sdk (>=1.24.0,<2.0.0)
56
50
  Requires-Dist: shap (>=0.42.0,<0.43.0)
57
- Requires-Dist: statsmodels (>=0.13.5,<0.14.0)
51
+ Requires-Dist: statsmodels
58
52
  Requires-Dist: tabulate (>=0.8.9,<0.9.0)
59
53
  Requires-Dist: textblob (>=0.18.0.post0,<0.19.0)
60
- Requires-Dist: textstat (>=0.7.3,<0.8.0)
61
54
  Requires-Dist: torch (>=1.10.0) ; extra == "all" or extra == "llm" or extra == "pytorch"
62
- Requires-Dist: torchmetrics (>=1.1.1,<2.0.0) ; extra == "all" or extra == "llm"
63
- Requires-Dist: tqdm (>=4.64.0,<5.0.0)
64
- Requires-Dist: transformers (>=4.32.0,<5.0.0) ; extra == "all" or extra == "llm" or extra == "transformers"
55
+ Requires-Dist: tqdm
56
+ Requires-Dist: transformers (>=4.32.0,<5.0.0) ; extra == "all" or extra == "llm" or extra == "huggingface"
65
57
  Requires-Dist: xgboost (>=1.5.2,<3)
66
- Requires-Dist: ydata-profiling (>=4.7.0,<5.0.0)
58
+ Requires-Dist: ydata-profiling
67
59
  Description-Content-Type: text/markdown
68
60
 
69
61
  # ValidMind Developer Framework
@@ -79,3 +71,45 @@ descriptions of your dataset to testing your models for weak spots and overfit a
79
71
  Framework helps you automate the generation of model documentation by feeding the ValidMind platform with
80
72
  documentation artifacts and test results to the ValidMind platform.
81
73
 
74
+ ## Installation
75
+
76
+ To install the ValidMind Developer Framework and all optional dependencies, run:
77
+
78
+ ```bash
79
+ pip install validmind[all]
80
+ ```
81
+
82
+ To install the Developer Framework without optional dependencies (core functionality only), run:
83
+
84
+ ```bash
85
+ pip install validmind
86
+ ```
87
+
88
+ ### Extra dependencies
89
+
90
+ The Developer Framework has optional dependencies that can be installed separately to support additional model types and tests.
91
+
92
+ - **LLM Support**: To be able to run tests for Large Language Models (LLMs), install the `llm` extra:
93
+
94
+ ```bash
95
+ pip install validmind[llm]
96
+ ```
97
+
98
+ - **PyTorch Models**: To use pytorch models with the Developer Framework, install the `torch` extra:
99
+
100
+ ```bash
101
+ pip install validmind[torch]
102
+ ```
103
+
104
+ - **Hugging Face Transformers**: To use Hugging Face Transformers models with the Developer Framework, install the `transformers` extra:
105
+
106
+ ```bash
107
+ pip install validmind[transformers]
108
+ ```
109
+
110
+ - **R Models**: To use R models with the Developer Framework, install the `r` extra:
111
+
112
+ ```bash
113
+ pip install validmind[r-support]
114
+ ```
115
+
@@ -0,0 +1,54 @@
1
+ # ValidMind Developer Framework
2
+
3
+ ValidMind’s Python Developer Framework is a library of developer tools and methods designed to automate
4
+ the documentation and validation of your models.
5
+
6
+ The Developer Framework is designed to be model agnostic. If your model is built in Python, ValidMind's
7
+ Python library will provide all the standard functionality without requiring your developers to rewrite any functions.
8
+
9
+ The Developer Framework provides a rich suite of documentation tools and test suites, from documenting
10
+ descriptions of your dataset to testing your models for weak spots and overfit areas. The Developer
11
+ Framework helps you automate the generation of model documentation by feeding the ValidMind platform with
12
+ documentation artifacts and test results to the ValidMind platform.
13
+
14
+ ## Installation
15
+
16
+ To install the ValidMind Developer Framework and all optional dependencies, run:
17
+
18
+ ```bash
19
+ pip install validmind[all]
20
+ ```
21
+
22
+ To install the Developer Framework without optional dependencies (core functionality only), run:
23
+
24
+ ```bash
25
+ pip install validmind
26
+ ```
27
+
28
+ ### Extra dependencies
29
+
30
+ The Developer Framework has optional dependencies that can be installed separately to support additional model types and tests.
31
+
32
+ - **LLM Support**: To be able to run tests for Large Language Models (LLMs), install the `llm` extra:
33
+
34
+ ```bash
35
+ pip install validmind[llm]
36
+ ```
37
+
38
+ - **PyTorch Models**: To use pytorch models with the Developer Framework, install the `torch` extra:
39
+
40
+ ```bash
41
+ pip install validmind[torch]
42
+ ```
43
+
44
+ - **Hugging Face Transformers**: To use Hugging Face Transformers models with the Developer Framework, install the `transformers` extra:
45
+
46
+ ```bash
47
+ pip install validmind[transformers]
48
+ ```
49
+
50
+ - **R Models**: To use R models with the Developer Framework, install the `r` extra:
51
+
52
+ ```bash
53
+ pip install validmind[r-support]
54
+ ```
@@ -10,71 +10,56 @@ description = "ValidMind Developer Framework"
10
10
  license = "Commercial License"
11
11
  name = "validmind"
12
12
  readme = "README.pypi.md"
13
- version = "2.3.3"
13
+ version = "2.4.0"
14
14
 
15
15
  [tool.poetry.dependencies]
16
16
  python = ">=3.8.1,<3.12"
17
- aiohttp = {extras = ["speedups"], version = "^3.8.4"}
18
- arch = "^5.4.0"
19
- bert-score = "^0.3.13"
20
- catboost = "^1.2"
21
- click = "^8.0.4"
22
- evaluate = "^0.4.0"
23
- ipywidgets = "^8.0.6"
24
- kaleido = "^0.2.1,!=0.2.1.post1"
25
- langdetect = "^1.0.9"
26
- latex2mathml = "^3.77.0"
27
- levenshtein = {version = "^0.21.1", optional = true}
28
- llvmlite = [
29
- {version = "*", python = ">=3.8,<=3.11"},
30
- {version = ">=0.42.0", python = ">=3.12"},
31
- ]
32
- matplotlib = "<3.8.3"
17
+ aiohttp = {extras = ["speedups"], version = "*"}
18
+ arch = "*"
19
+ bert-score = ">=0.3.13"
20
+ catboost = "*"
21
+ evaluate = "*"
22
+ ipywidgets = "*"
23
+ kaleido = ">=0.2.1,!=0.2.1.post1"
24
+ langchain-openai = { version = ">=0.1.8", optional = true }
25
+ langdetect = "*"
26
+ latex2mathml = ">=3.77.0"
27
+ llvmlite = {version = "*", python = ">=3.8,<=3.11"}
28
+ matplotlib = "*"
33
29
  mistune = "^3.0.2"
34
30
  nltk = "^3.8.1"
35
31
  numba = "<0.59.0" # TODO: https://github.com/validmind/developer-framework/pull/28
36
- numpy = [
37
- {version = "^1.23.3", python = ">=3.8,<=3.11"},
38
- {version = ">=1.26.0", python = ">=3.12"},
39
- ]
40
- openai = {version = "^1.3.7", optional = true}
32
+ numpy = "*"
33
+ openai = {version = ">=1", optional = true}
41
34
  pandas = ">=1.1,<2" # TODO small issues blocking 2.0 but it would speed things up to use arrow backend
42
- plotly = "^5.14.1"
43
- plotly-express = "^0.4.1"
44
- polars = "^0.20.15"
35
+ plotly = "*"
36
+ plotly-express = "*"
37
+ polars = "*"
45
38
  pycocoevalcap = {version = "^1.2", optional = true}
46
- pypmml = "^0.9.17"
47
- python-dotenv = "^0.20.0"
48
- ragas = "^0.1.7"
49
- rouge = "^1.0.1"
39
+ python-dotenv = "*"
40
+ ragas = {version = ">=0.1.7", optional = true}
41
+ rouge = ">=1"
50
42
  rpy2 = {version = "^3.5.10", optional = true}
51
- scikit-learn = "^1.0.2"
52
- scipy = [
53
- {version = "*", python = ">=3.8,<=3.11"},
54
- {version = ">=1.12", python = ">=3.12"},
55
- ]
43
+ scikit-learn = "*"
44
+ scipy = "*"
56
45
  scorecardpy = "^0.1.9.6"
57
- seaborn = "^0.11.2"
58
- selfcheckgpt = "^0.1.7"
46
+ seaborn = "*"
59
47
  sentry-sdk = "^1.24.0"
60
48
  shap = "^0.42.0"
61
- statsmodels = "^0.13.5"
49
+ statsmodels = "*"
62
50
  tabulate = "^0.8.9"
63
51
  textblob = "^0.18.0.post0"
64
- textstat = "^0.7.3"
65
52
  torch = {version = ">=1.10.0", optional = true}
66
- torchmetrics = {version = "^1.1.1", optional = true}
67
- tqdm = "^4.64.0"
53
+ tqdm = "*"
68
54
  transformers = {version = "^4.32.0", optional = true}
69
55
  xgboost = ">=1.5.2,<3"
70
- ydata-profiling = "^4.7.0"
56
+ ydata-profiling = "*"
71
57
 
72
58
  [tool.poetry.group.dev.dependencies]
73
59
  black = "^22.1.0"
74
- click = "^8.1.3"
60
+ click = "*"
75
61
  cython = "^0.29.34"
76
62
  flake8 = "^4.0.1"
77
- gradio = "^3.43.2"
78
63
  ipykernel = "^6.22.0"
79
64
  isort = "^5.12.0"
80
65
  jupyter = "^1.0.0"
@@ -82,7 +67,6 @@ openai = "^1.3.7"
82
67
  papermill = "^2.4.0"
83
68
  pdoc = "^14.4.0"
84
69
  pre-commit = "^3.3.3"
85
- pytest = "^5.2"
86
70
  sphinx = "^6.1.3"
87
71
  sphinx-markdown-builder = "^0.5.5"
88
72
  sphinx-rtd-theme = "^1.2.0"
@@ -95,20 +79,20 @@ all = [
95
79
  "torch",
96
80
  "transformers",
97
81
  "pycocoevalcap",
98
- "torchmetrics",
99
- "levenshtein",
82
+ "ragas",
83
+ "langchain-openai",
100
84
  ]
101
85
  llm = [
102
86
  "torch",
103
87
  "transformers",
104
88
  "openai",
105
89
  "pycocoevalcap",
106
- "torchmetrics",
107
- "levenshtein",
90
+ "ragas",
91
+ "langchain-openai",
108
92
  ]
109
93
  pytorch = ["torch"]
110
94
  r-support = ["rpy2"]
111
- transformers = ["transformers"]
95
+ huggingface = ["transformers"]
112
96
 
113
97
  [build-system]
114
98
  build-backend = "poetry.core.masonry.api"
@@ -0,0 +1 @@
1
+ __version__ = "2.4.0"
@@ -218,6 +218,7 @@ def get_description_metadata(
218
218
  summary=None,
219
219
  figures=None,
220
220
  prefix="metric_description",
221
+ should_generate=True,
221
222
  ):
222
223
  """Get Metadata Dictionary for a Test or Metric Result
223
224
 
@@ -238,6 +239,7 @@ def get_description_metadata(
238
239
  summary (Any): The test summary or results to interpret
239
240
  figures (List[Figure]): The figures to attach to the test suite result
240
241
  prefix (str): The prefix to use for the content ID (Default: "metric_description")
242
+ should_generate (bool): Whether to generate the description or not (Default: True)
241
243
 
242
244
  Returns:
243
245
  dict: The metadata object to be logged with the test results
@@ -250,7 +252,12 @@ def get_description_metadata(
250
252
  # TODO: fix circular import
251
253
  from validmind.ai.utils import is_configured
252
254
 
253
- if (summary or figures) and not env_disabled and is_configured():
255
+ if (
256
+ should_generate
257
+ and (summary or figures)
258
+ and not env_disabled
259
+ and is_configured()
260
+ ):
254
261
  revision_name = AI_REVISION_NAME
255
262
 
256
263
  # get description future and set it as the description in the metadata
@@ -3,6 +3,7 @@
3
3
  # SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial
4
4
 
5
5
  import os
6
+ from urllib.parse import urljoin
6
7
 
7
8
  from openai import AzureOpenAI, Client, OpenAI
8
9
 
@@ -63,7 +64,7 @@ def get_client_and_model():
63
64
  # TODO: improve this to be a bit more dynamic
64
65
  "http://localhost:4000/genai"
65
66
  if "localhost" in get_api_host()
66
- else f"{get_api_host()}/genai"
67
+ else urljoin(get_api_host(), "/genai")
67
68
  ),
68
69
  api_key=response["key"],
69
70
  )
@@ -162,6 +162,7 @@ def init_dataset(
162
162
  raise UnsupportedDatasetError(
163
163
  "Only Pandas datasets and Tensor Datasets are supported at the moment."
164
164
  )
165
+
165
166
  if __log:
166
167
  log_input(
167
168
  name=input_id,
@@ -0,0 +1,272 @@
1
+ # Copyright © 2023-2024 ValidMind Inc. All rights reserved.
2
+ # See the LICENSE file in the root of this repository for details.
3
+ # SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial
4
+
5
+ import os
6
+
7
+ import pandas as pd
8
+
9
+ current_path = os.path.dirname(os.path.abspath(__file__))
10
+ mortgage30us_path = os.path.join(current_path, "datasets", "fred", "MORTGAGE30US.csv")
11
+ fedfunds_path = os.path.join(current_path, "datasets", "fred", "FEDFUNDS.csv")
12
+ gs10_path = os.path.join(current_path, "datasets", "fred", "GS10.csv")
13
+ unrate_path = os.path.join(current_path, "datasets", "fred", "UNRATE.csv")
14
+
15
+ target_column = "MORTGAGE30US"
16
+ feature_columns = ["FEDFUNDS", "GS10", "UNRATE"]
17
+
18
+
19
+ def get_common_date_range(dfs):
20
+ start_dates = [df.index.min() for df in dfs]
21
+ end_dates = [df.index.max() for df in dfs]
22
+
23
+ common_start_date = max(start_dates)
24
+ common_end_date = min(end_dates)
25
+
26
+ return common_start_date, common_end_date
27
+
28
+
29
+ def align_date_range(dfs, start_date, end_date):
30
+ return [df.loc[start_date:end_date] for df in dfs]
31
+
32
+
33
+ def load_data():
34
+ mortgage30us = pd.read_csv(
35
+ mortgage30us_path, parse_dates=["DATE"], index_col="DATE"
36
+ )
37
+ fedfunds = pd.read_csv(fedfunds_path, parse_dates=["DATE"], index_col="DATE")
38
+ gs10 = pd.read_csv(gs10_path, parse_dates=["DATE"], index_col="DATE")
39
+ unrate = pd.read_csv(unrate_path, parse_dates=["DATE"], index_col="DATE")
40
+
41
+ # Resample mortgage30us to monthly frequency
42
+ mortgage30us = mortgage30us.resample("MS").last()
43
+
44
+ # Get the common date range
45
+ common_start_date, common_end_date = get_common_date_range(
46
+ [mortgage30us, fedfunds, gs10, unrate]
47
+ )
48
+
49
+ # Align the date range for all dataframes
50
+ mortgage30us, fedfunds, gs10, unrate = align_date_range(
51
+ [mortgage30us, fedfunds, gs10, unrate], common_start_date, common_end_date
52
+ )
53
+
54
+ # Combine into a single DataFrame
55
+ df = pd.concat([mortgage30us, fedfunds, gs10, unrate], axis=1, join="inner")
56
+ df.columns = [target_column] + feature_columns
57
+
58
+ return df
59
+
60
+
61
+ # Convert data back to levels
62
+ def convert_to_levels(diff_df, original_df, target_column):
63
+ """
64
+ Convert differenced data back to original levels.
65
+ """
66
+ previous_values = original_df[target_column].shift(1).dropna()
67
+ levels_df = diff_df.add(previous_values, axis=0)
68
+ return levels_df
69
+
70
+
71
+ def get_demo_test_config(test_suite=None):
72
+
73
+ default_config = {}
74
+
75
+ default_config["validmind.data_validation.TimeSeriesDescription"] = {
76
+ "inputs": {
77
+ "dataset": "raw_ds",
78
+ }
79
+ }
80
+ default_config["validmind.data_validation.TimeSeriesLinePlot"] = {
81
+ "inputs": {
82
+ "dataset": "raw_ds",
83
+ }
84
+ }
85
+ default_config["validmind.data_validation.TimeSeriesMissingValues"] = {
86
+ "inputs": {
87
+ "dataset": "raw_ds",
88
+ }
89
+ }
90
+ default_config["validmind.data_validation.SeasonalDecompose"] = {
91
+ "inputs": {
92
+ "dataset": "raw_ds",
93
+ }
94
+ }
95
+ default_config[
96
+ "validmind.data_validation.TimeSeriesDescriptiveStatistics:train_diff_data"
97
+ ] = {
98
+ "inputs": {
99
+ "dataset": "train_diff_ds",
100
+ }
101
+ }
102
+ default_config[
103
+ "validmind.data_validation.TimeSeriesDescriptiveStatistics:test_diff_data"
104
+ ] = {
105
+ "inputs": {
106
+ "dataset": "test_diff_ds",
107
+ }
108
+ }
109
+ default_config["validmind.data_validation.TimeSeriesOutliers:train_diff_data"] = {
110
+ "inputs": {
111
+ "dataset": "train_diff_ds",
112
+ },
113
+ "params": {"zscore_threshold": 4},
114
+ }
115
+ default_config["validmind.data_validation.TimeSeriesOutliers:test_diff_data"] = {
116
+ "inputs": {
117
+ "dataset": "test_diff_ds",
118
+ },
119
+ "params": {"zscore_threshold": 4},
120
+ }
121
+ default_config["validmind.data_validation.TimeSeriesHistogram:train_diff_data"] = {
122
+ "inputs": {
123
+ "dataset": "train_diff_ds",
124
+ },
125
+ "params": {"nbins": 100},
126
+ }
127
+ default_config["validmind.data_validation.TimeSeriesHistogram:test_diff_data"] = {
128
+ "inputs": {
129
+ "dataset": "test_diff_ds",
130
+ },
131
+ "params": {"nbins": 100},
132
+ }
133
+ default_config["validmind.data_validation.DatasetSplit"] = {
134
+ "inputs": {
135
+ "datasets": ["train_diff_ds", "test_diff_ds"],
136
+ }
137
+ }
138
+ default_config["validmind.model_validation.ModelMetadataComparison"] = {
139
+ "inputs": {
140
+ "models": ["random_forests_model", "gradient_boosting_model"],
141
+ }
142
+ }
143
+ default_config[
144
+ "validmind.model_validation.sklearn.RegressionErrorsComparison:train_data"
145
+ ] = {
146
+ "inputs": {
147
+ "datasets": ["train_ds", "train_ds"],
148
+ "models": ["random_forests_model", "gradient_boosting_model"],
149
+ }
150
+ }
151
+ default_config[
152
+ "validmind.model_validation.sklearn.RegressionErrorsComparison:test_data"
153
+ ] = {
154
+ "inputs": {
155
+ "datasets": ["test_ds", "test_ds"],
156
+ "models": ["random_forests_model", "gradient_boosting_model"],
157
+ }
158
+ }
159
+ default_config[
160
+ "validmind.model_validation.sklearn.RegressionR2SquareComparison:train_data"
161
+ ] = {
162
+ "inputs": {
163
+ "datasets": ["train_ds", "train_ds"],
164
+ "models": ["random_forests_model", "gradient_boosting_model"],
165
+ }
166
+ }
167
+ default_config[
168
+ "validmind.model_validation.sklearn.RegressionR2SquareComparison:test_data"
169
+ ] = {
170
+ "inputs": {
171
+ "datasets": ["test_ds", "test_ds"],
172
+ "models": ["random_forests_model", "gradient_boosting_model"],
173
+ }
174
+ }
175
+ default_config[
176
+ "validmind.model_validation.TimeSeriesR2SquareBySegments:train_data"
177
+ ] = {
178
+ "inputs": {
179
+ "datasets": ["train_ds", "train_ds"],
180
+ "models": ["random_forests_model", "gradient_boosting_model"],
181
+ }
182
+ }
183
+ default_config[
184
+ "validmind.model_validation.TimeSeriesR2SquareBySegments:test_data"
185
+ ] = {
186
+ "inputs": {
187
+ "datasets": ["test_ds", "test_ds"],
188
+ "models": ["random_forests_model", "gradient_boosting_model"],
189
+ },
190
+ "params": {
191
+ "segments": {
192
+ "start_date": ["2012-11-01", "2018-02-01"],
193
+ "end_date": ["2018-01-01", "2023-03-01"],
194
+ }
195
+ },
196
+ }
197
+ default_config[
198
+ "validmind.model_validation.TimeSeriesPredictionsPlot:train_data"
199
+ ] = {
200
+ "inputs": {
201
+ "datasets": ["train_ds", "train_ds"],
202
+ "models": ["random_forests_model", "gradient_boosting_model"],
203
+ }
204
+ }
205
+ default_config["validmind.model_validation.TimeSeriesPredictionsPlot:test_data"] = {
206
+ "inputs": {
207
+ "datasets": ["test_ds", "test_ds"],
208
+ "models": ["random_forests_model", "gradient_boosting_model"],
209
+ }
210
+ }
211
+ default_config[
212
+ "validmind.model_validation.TimeSeriesPredictionWithCI:random_forests_model"
213
+ ] = {
214
+ "inputs": {
215
+ "dataset": "test_ds",
216
+ "model": "random_forests_model",
217
+ }
218
+ }
219
+ default_config[
220
+ "validmind.model_validation.TimeSeriesPredictionWithCI:gradient_boosting_model"
221
+ ] = {
222
+ "inputs": {
223
+ "dataset": "test_ds",
224
+ "model": "gradient_boosting_model",
225
+ }
226
+ }
227
+ default_config["validmind.model_validation.ModelPredictionResiduals:train_data"] = {
228
+ "inputs": {
229
+ "datasets": ["train_ds", "train_ds"],
230
+ "models": ["random_forests_model", "gradient_boosting_model"],
231
+ }
232
+ }
233
+ default_config["validmind.model_validation.ModelPredictionResiduals:test_data"] = {
234
+ "inputs": {
235
+ "datasets": ["test_ds", "test_ds"],
236
+ "models": ["random_forests_model", "gradient_boosting_model"],
237
+ }
238
+ }
239
+ default_config[
240
+ "validmind.model_validation.sklearn.FeatureImportanceComparison:train_data"
241
+ ] = {
242
+ "inputs": {
243
+ "datasets": ["train_ds", "train_ds"],
244
+ "models": ["random_forests_model", "gradient_boosting_model"],
245
+ }
246
+ }
247
+ default_config[
248
+ "validmind.model_validation.sklearn.FeatureImportanceComparison:test_data"
249
+ ] = {
250
+ "inputs": {
251
+ "datasets": ["test_ds", "test_ds"],
252
+ "models": ["random_forests_model", "gradient_boosting_model"],
253
+ }
254
+ }
255
+ default_config[
256
+ "validmind.model_validation.sklearn.PermutationFeatureImportance:random_forests_model"
257
+ ] = {
258
+ "inputs": {
259
+ "dataset": "test_ds",
260
+ "model": "random_forests_model",
261
+ }
262
+ }
263
+ default_config[
264
+ "validmind.model_validation.sklearn.PermutationFeatureImportance:gradient_boosting_model"
265
+ ] = {
266
+ "inputs": {
267
+ "dataset": "test_ds",
268
+ "model": "gradient_boosting_model",
269
+ }
270
+ }
271
+
272
+ return default_config