validmind 2.3.5__tar.gz → 2.4.1__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 (315) hide show
  1. {validmind-2.3.5 → validmind-2.4.1}/PKG-INFO +1 -1
  2. {validmind-2.3.5 → validmind-2.4.1}/pyproject.toml +1 -1
  3. validmind-2.4.1/validmind/__version__.py +1 -0
  4. {validmind-2.3.5 → validmind-2.4.1}/validmind/ai/test_descriptions.py +8 -1
  5. {validmind-2.3.5 → validmind-2.4.1}/validmind/ai/utils.py +2 -1
  6. {validmind-2.3.5 → validmind-2.4.1}/validmind/client.py +1 -0
  7. {validmind-2.3.5 → validmind-2.4.1}/validmind/template.py +2 -0
  8. validmind-2.4.1/validmind/tests/__init__.py +39 -0
  9. validmind-2.4.1/validmind/tests/_store.py +102 -0
  10. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/ACFandPACFPlot.py +7 -9
  11. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/ADF.py +8 -10
  12. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/ANOVAOneWayTable.py +8 -10
  13. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/AutoAR.py +2 -4
  14. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/AutoMA.py +2 -4
  15. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/AutoSeasonality.py +8 -10
  16. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/AutoStationarity.py +8 -10
  17. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/BivariateFeaturesBarPlots.py +8 -10
  18. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/BivariateHistograms.py +8 -10
  19. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/BivariateScatterPlots.py +8 -10
  20. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/ChiSquaredFeaturesTable.py +8 -10
  21. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/ClassImbalance.py +2 -4
  22. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/DFGLSArch.py +2 -4
  23. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/DatasetDescription.py +7 -9
  24. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/DatasetSplit.py +8 -9
  25. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/DescriptiveStatistics.py +2 -4
  26. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/Duplicates.py +2 -4
  27. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/EngleGrangerCoint.py +2 -4
  28. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/FeatureTargetCorrelationPlot.py +2 -4
  29. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/HeatmapFeatureCorrelations.py +2 -4
  30. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/HighCardinality.py +2 -4
  31. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/HighPearsonCorrelation.py +2 -4
  32. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/IQROutliersBarPlot.py +2 -4
  33. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/IQROutliersTable.py +2 -4
  34. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/IsolationForestOutliers.py +2 -4
  35. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/KPSS.py +8 -10
  36. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/LaggedCorrelationHeatmap.py +2 -4
  37. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/MissingValues.py +2 -4
  38. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/MissingValuesBarPlot.py +2 -4
  39. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/MissingValuesRisk.py +2 -4
  40. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/PearsonCorrelationMatrix.py +2 -4
  41. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/PhillipsPerronArch.py +7 -9
  42. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/RollingStatsPlot.py +2 -4
  43. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/ScatterPlot.py +2 -4
  44. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/SeasonalDecompose.py +2 -4
  45. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/Skewness.py +2 -4
  46. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/SpreadPlot.py +2 -4
  47. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TabularCategoricalBarPlots.py +2 -4
  48. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TabularDateTimeHistograms.py +2 -4
  49. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TabularDescriptionTables.py +2 -4
  50. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TabularNumericalHistograms.py +2 -4
  51. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TargetRateBarPlots.py +2 -4
  52. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TimeSeriesFrequency.py +2 -4
  53. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TimeSeriesLinePlot.py +2 -4
  54. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TimeSeriesMissingValues.py +2 -4
  55. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TimeSeriesOutliers.py +2 -4
  56. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TooManyZeroValues.py +2 -4
  57. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/UniqueRows.py +2 -4
  58. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/WOEBinPlots.py +2 -4
  59. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/WOEBinTable.py +2 -4
  60. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/ZivotAndrewsArch.py +2 -4
  61. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/CommonWords.py +2 -4
  62. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/Hashtags.py +2 -4
  63. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/Mentions.py +2 -4
  64. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/Punctuations.py +2 -4
  65. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/StopWords.py +2 -4
  66. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/TextDescription.py +2 -4
  67. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/decorator.py +10 -8
  68. validmind-2.4.1/validmind/tests/load.py +264 -0
  69. validmind-2.4.1/validmind/tests/metadata.py +59 -0
  70. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ClusterSizeDistribution.py +5 -7
  71. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/FeaturesAUC.py +6 -8
  72. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ModelMetadata.py +8 -9
  73. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/RegressionResidualsPlot.py +2 -6
  74. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/ClusterDistribution.py +2 -4
  75. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/CosineSimilarityDistribution.py +2 -4
  76. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/DescriptiveAnalytics.py +2 -4
  77. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/EmbeddingsVisualization2D.py +2 -4
  78. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/StabilityAnalysis.py +2 -4
  79. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/AdjustedMutualInformation.py +5 -7
  80. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/AdjustedRandIndex.py +5 -7
  81. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/ClassifierPerformance.py +7 -9
  82. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/ClusterCosineSimilarity.py +5 -7
  83. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/ClusterPerformance.py +5 -7
  84. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/ClusterPerformanceMetrics.py +2 -7
  85. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/CompletenessScore.py +5 -7
  86. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/ConfusionMatrix.py +19 -10
  87. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/FowlkesMallowsScore.py +5 -7
  88. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/HomogeneityScore.py +5 -7
  89. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/HyperParametersTuning.py +2 -7
  90. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/KMeansClustersOptimization.py +4 -7
  91. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/MinimumAccuracy.py +7 -9
  92. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/MinimumF1Score.py +7 -9
  93. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/MinimumROCAUCScore.py +7 -9
  94. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py +8 -10
  95. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/OverfitDiagnosis.py +7 -9
  96. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/PermutationFeatureImportance.py +8 -10
  97. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/PopulationStabilityIndex.py +7 -9
  98. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/PrecisionRecallCurve.py +8 -10
  99. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/ROCCurve.py +10 -11
  100. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/RegressionErrors.py +5 -7
  101. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/RegressionModelsPerformanceComparison.py +5 -7
  102. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/RegressionR2Square.py +5 -7
  103. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/RobustnessDiagnosis.py +10 -14
  104. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py +8 -10
  105. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/SilhouettePlot.py +5 -7
  106. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/TrainingTestDegradation.py +8 -10
  107. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/VMeasure.py +5 -7
  108. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/WeakspotsDiagnosis.py +8 -10
  109. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/AutoARIMA.py +2 -4
  110. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/BoxPierce.py +2 -4
  111. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/CumulativePredictionProbabilities.py +3 -4
  112. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py +2 -4
  113. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/GINITable.py +2 -4
  114. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/JarqueBera.py +7 -9
  115. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/KolmogorovSmirnov.py +7 -9
  116. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/LJungBox.py +2 -4
  117. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/Lilliefors.py +7 -9
  118. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/PredictionProbabilitiesHistogram.py +2 -4
  119. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RegressionCoeffsPlot.py +2 -4
  120. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RegressionFeatureSignificance.py +7 -9
  121. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlot.py +2 -4
  122. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlotLevels.py +2 -4
  123. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RegressionModelSensitivityPlot.py +2 -4
  124. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RegressionModelSummary.py +2 -4
  125. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RegressionModelsCoeffs.py +2 -4
  126. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RegressionPermutationFeatureImportance.py +6 -8
  127. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/RunsTest.py +2 -4
  128. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/ScorecardHistogram.py +3 -4
  129. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/ShapiroWilk.py +2 -4
  130. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/Bias.py +2 -4
  131. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/Clarity.py +2 -4
  132. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/Conciseness.py +2 -4
  133. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/Delimitation.py +2 -4
  134. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/NegativeInstruction.py +2 -4
  135. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/Robustness.py +2 -4
  136. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/Specificity.py +2 -4
  137. validmind-2.4.1/validmind/tests/run.py +394 -0
  138. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/test_providers.py +12 -0
  139. validmind-2.4.1/validmind/tests/utils.py +16 -0
  140. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/__init__.py +12 -4
  141. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/composite.py +3 -0
  142. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test/metric.py +8 -5
  143. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test/result_wrapper.py +2 -1
  144. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test/test.py +14 -11
  145. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test/threshold_test.py +1 -0
  146. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test_suite/runner.py +1 -0
  147. validmind-2.3.5/validmind/__version__.py +0 -1
  148. validmind-2.3.5/validmind/tests/__init__.py +0 -493
  149. {validmind-2.3.5 → validmind-2.4.1}/LICENSE +0 -0
  150. {validmind-2.3.5 → validmind-2.4.1}/README.pypi.md +0 -0
  151. {validmind-2.3.5 → validmind-2.4.1}/validmind/__init__.py +0 -0
  152. {validmind-2.3.5 → validmind-2.4.1}/validmind/api_client.py +0 -0
  153. {validmind-2.3.5 → validmind-2.4.1}/validmind/client_config.py +0 -0
  154. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/__init__.py +0 -0
  155. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/classification/__init__.py +0 -0
  156. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/classification/customer_churn.py +0 -0
  157. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/classification/datasets/bank_customer_churn.csv +0 -0
  158. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/classification/datasets/taiwan_credit.csv +0 -0
  159. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/classification/taiwan_credit.py +0 -0
  160. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/cluster/digits.py +0 -0
  161. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/credit_risk/__init__.py +0 -0
  162. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/credit_risk/datasets/lending_club_loan_data_2007_2014_clean.csv.gz +0 -0
  163. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/credit_risk/lending_club.py +0 -0
  164. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/llm/rag/__init__.py +0 -0
  165. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_1.csv +0 -0
  166. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_2.csv +0 -0
  167. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_3.csv +0 -0
  168. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_4.csv +0 -0
  169. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_5.csv +0 -0
  170. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/llm/rag/rfp.py +0 -0
  171. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/nlp/__init__.py +0 -0
  172. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/nlp/cnn_dailymail.py +0 -0
  173. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/nlp/datasets/Covid_19.csv +0 -0
  174. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/nlp/datasets/cnn_dailymail_100_with_predictions.csv +0 -0
  175. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/nlp/datasets/cnn_dailymail_500_with_predictions.csv +0 -0
  176. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/nlp/datasets/sentiments_with_predictions.csv +0 -0
  177. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/nlp/twitter_covid_19.py +0 -0
  178. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/__init__.py +0 -0
  179. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/california_housing.py +0 -0
  180. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/CPIAUCSL.csv +0 -0
  181. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/CSUSHPISA.csv +0 -0
  182. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/DRSFRMACBS.csv +0 -0
  183. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/FEDFUNDS.csv +0 -0
  184. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/GDP.csv +0 -0
  185. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/GDPC1.csv +0 -0
  186. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/GS10.csv +0 -0
  187. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/GS3.csv +0 -0
  188. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/GS5.csv +0 -0
  189. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/MORTGAGE30US.csv +0 -0
  190. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred/UNRATE.csv +0 -0
  191. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred_loan_rates.csv +0 -0
  192. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred_loan_rates_test_1.csv +0 -0
  193. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred_loan_rates_test_2.csv +0 -0
  194. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred_loan_rates_test_3.csv +0 -0
  195. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred_loan_rates_test_4.csv +0 -0
  196. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/fred_loan_rates_test_5.csv +0 -0
  197. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/datasets/leanding_club_loan_rates.csv +0 -0
  198. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/fred.py +0 -0
  199. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/fred_timeseries.py +0 -0
  200. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/lending_club.py +0 -0
  201. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/models/fred_loan_rates_model_1.pkl +0 -0
  202. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/models/fred_loan_rates_model_2.pkl +0 -0
  203. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/models/fred_loan_rates_model_3.pkl +0 -0
  204. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/models/fred_loan_rates_model_4.pkl +0 -0
  205. {validmind-2.3.5 → validmind-2.4.1}/validmind/datasets/regression/models/fred_loan_rates_model_5.pkl +0 -0
  206. {validmind-2.3.5 → validmind-2.4.1}/validmind/errors.py +0 -0
  207. {validmind-2.3.5 → validmind-2.4.1}/validmind/html_templates/__init__.py +0 -0
  208. {validmind-2.3.5 → validmind-2.4.1}/validmind/html_templates/content_blocks.py +0 -0
  209. {validmind-2.3.5 → validmind-2.4.1}/validmind/input_registry.py +0 -0
  210. {validmind-2.3.5 → validmind-2.4.1}/validmind/logging.py +0 -0
  211. {validmind-2.3.5 → validmind-2.4.1}/validmind/models/__init__.py +0 -0
  212. {validmind-2.3.5 → validmind-2.4.1}/validmind/models/foundation.py +0 -0
  213. {validmind-2.3.5 → validmind-2.4.1}/validmind/models/function.py +0 -0
  214. {validmind-2.3.5 → validmind-2.4.1}/validmind/models/huggingface.py +0 -0
  215. {validmind-2.3.5 → validmind-2.4.1}/validmind/models/metadata.py +0 -0
  216. {validmind-2.3.5 → validmind-2.4.1}/validmind/models/pipeline.py +0 -0
  217. {validmind-2.3.5 → validmind-2.4.1}/validmind/models/pytorch.py +0 -0
  218. {validmind-2.3.5 → validmind-2.4.1}/validmind/models/r_model.py +0 -0
  219. {validmind-2.3.5 → validmind-2.4.1}/validmind/models/sklearn.py +0 -0
  220. {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/__init__.py +0 -0
  221. {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/classifier.py +0 -0
  222. {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/cluster.py +0 -0
  223. {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/embeddings.py +0 -0
  224. {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/llm.py +0 -0
  225. {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/nlp.py +0 -0
  226. {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/parameters_optimization.py +0 -0
  227. {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/regression.py +0 -0
  228. {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/statsmodels_timeseries.py +0 -0
  229. {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/summarization.py +0 -0
  230. {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/tabular_datasets.py +0 -0
  231. {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/text_data.py +0 -0
  232. {validmind-2.3.5 → validmind-2.4.1}/validmind/test_suites/time_series.py +0 -0
  233. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/__types__.py +0 -0
  234. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TimeSeriesDescription.py +0 -0
  235. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TimeSeriesDescriptiveStatistics.py +0 -0
  236. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/TimeSeriesHistogram.py +0 -0
  237. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/__init__.py +0 -0
  238. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/LanguageDetection.py +0 -0
  239. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/PolarityAndSubjectivity.py +0 -0
  240. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/Sentiment.py +0 -0
  241. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/Toxicity.py +0 -0
  242. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/data_validation/nlp/__init__.py +0 -0
  243. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/BertScore.py +0 -0
  244. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/BleuScore.py +0 -0
  245. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ContextualRecall.py +0 -0
  246. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/MeteorScore.py +0 -0
  247. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ModelMetadataComparison.py +0 -0
  248. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ModelPredictionResiduals.py +0 -0
  249. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/RegardScore.py +0 -0
  250. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/RougeScore.py +0 -0
  251. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/TimeSeriesPredictionWithCI.py +0 -0
  252. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/TimeSeriesPredictionsPlot.py +0 -0
  253. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/TimeSeriesR2SquareBySegments.py +0 -0
  254. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/TokenDisparity.py +0 -0
  255. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ToxicityScore.py +0 -0
  256. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/__init__.py +0 -0
  257. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/CosineSimilarityComparison.py +0 -0
  258. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/CosineSimilarityHeatmap.py +0 -0
  259. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/EuclideanDistanceComparison.py +0 -0
  260. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/EuclideanDistanceHeatmap.py +0 -0
  261. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/PCAComponentsPairwisePlots.py +0 -0
  262. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/StabilityAnalysisKeyword.py +0 -0
  263. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/StabilityAnalysisRandomNoise.py +0 -0
  264. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/StabilityAnalysisSynonyms.py +0 -0
  265. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/StabilityAnalysisTranslation.py +0 -0
  266. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/embeddings/TSNEComponentsPairwisePlots.py +0 -0
  267. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/AnswerCorrectness.py +0 -0
  268. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/AnswerRelevance.py +0 -0
  269. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/AnswerSimilarity.py +0 -0
  270. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/AspectCritique.py +0 -0
  271. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/ContextEntityRecall.py +0 -0
  272. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/ContextPrecision.py +0 -0
  273. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/ContextRecall.py +0 -0
  274. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/ContextRelevancy.py +0 -0
  275. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/Faithfulness.py +0 -0
  276. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/ragas/utils.py +0 -0
  277. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/FeatureImportanceComparison.py +0 -0
  278. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/RegressionErrorsComparison.py +0 -0
  279. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/RegressionR2SquareComparison.py +0 -0
  280. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/sklearn/__init__.py +0 -0
  281. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/__init__.py +0 -0
  282. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/model_validation/statsmodels/statsutils.py +0 -0
  283. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/__init__.py +0 -0
  284. {validmind-2.3.5 → validmind-2.4.1}/validmind/tests/prompt_validation/ai_powered_test.py +0 -0
  285. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/classification/sklearn/Accuracy.py +0 -0
  286. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/classification/sklearn/F1.py +0 -0
  287. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/classification/sklearn/Precision.py +0 -0
  288. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/classification/sklearn/ROC_AUC.py +0 -0
  289. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/classification/sklearn/Recall.py +0 -0
  290. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/GiniCoefficient.py +0 -0
  291. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/HuberLoss.py +0 -0
  292. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/KolmogorovSmirnovStatistic.py +0 -0
  293. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/MeanAbsolutePercentageError.py +0 -0
  294. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/MeanBiasDeviation.py +0 -0
  295. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/QuantileLoss.py +0 -0
  296. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/sklearn/AdjustedRSquaredScore.py +0 -0
  297. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/sklearn/MeanAbsoluteError.py +0 -0
  298. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/sklearn/MeanSquaredError.py +0 -0
  299. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/sklearn/RSquaredScore.py +0 -0
  300. {validmind-2.3.5 → validmind-2.4.1}/validmind/unit_metrics/regression/sklearn/RootMeanSquaredError.py +0 -0
  301. {validmind-2.3.5 → validmind-2.4.1}/validmind/utils.py +0 -0
  302. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/__init__.py +0 -0
  303. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/dataset/__init__.py +0 -0
  304. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/dataset/dataset.py +0 -0
  305. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/dataset/utils.py +0 -0
  306. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/figure.py +0 -0
  307. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/model.py +0 -0
  308. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test/metric_result.py +0 -0
  309. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test/output_template.py +0 -0
  310. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test/result_summary.py +0 -0
  311. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test/threshold_test_result.py +0 -0
  312. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test_context.py +0 -0
  313. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test_suite/summary.py +0 -0
  314. {validmind-2.3.5 → validmind-2.4.1}/validmind/vm_models/test_suite/test.py +0 -0
  315. {validmind-2.3.5 → validmind-2.4.1}/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.5
3
+ Version: 2.4.1
4
4
  Summary: ValidMind Developer Framework
5
5
  License: Commercial License
6
6
  Author: Andres Rodriguez
@@ -10,7 +10,7 @@ description = "ValidMind Developer Framework"
10
10
  license = "Commercial License"
11
11
  name = "validmind"
12
12
  readme = "README.pypi.md"
13
- version = "2.3.5"
13
+ version = "2.4.1"
14
14
 
15
15
  [tool.poetry.dependencies]
16
16
  python = ">=3.8.1,<3.12"
@@ -0,0 +1 @@
1
+ __version__ = "2.4.1"
@@ -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,
@@ -22,6 +22,8 @@ CONTENT_TYPE_MAP = {
22
22
  "dynamic": "Dynamic Content",
23
23
  "text": "Text",
24
24
  "risk_assessment": "Risk Assessment",
25
+ "assessment_summary": "Assessment Summary",
26
+ "guideline": "Guideline Assessment",
25
27
  }
26
28
 
27
29
 
@@ -0,0 +1,39 @@
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
+ """ValidMind Tests Module"""
6
+
7
+ from ..errors import LoadTestError
8
+ from ..logging import get_logger
9
+ from .decorator import metric, tags, tasks, test
10
+ from .load import describe_test, list_tests, load_test
11
+ from .metadata import list_tags, list_tasks, list_tasks_and_tags
12
+ from .run import run_test
13
+ from .test_providers import LocalTestProvider, TestProvider, register_test_provider
14
+
15
+ logger = get_logger(__name__)
16
+
17
+
18
+ __all__ = [
19
+ "data_validation",
20
+ "model_validation",
21
+ "prompt_validation",
22
+ "list_tests",
23
+ "load_test",
24
+ "describe_test",
25
+ "run_test",
26
+ "register_test_provider",
27
+ "LoadTestError",
28
+ "LocalTestProvider",
29
+ "TestProvider",
30
+ # Metadata
31
+ "list_tags",
32
+ "list_tasks",
33
+ "list_tasks_and_tags",
34
+ # Decorators for functional metrics
35
+ "test",
36
+ "metric", # DEPRECATED
37
+ "tags",
38
+ "tasks",
39
+ ]
@@ -0,0 +1,102 @@
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
+ """Module for storing loaded tests and test providers"""
6
+
7
+
8
+ def singleton(cls):
9
+ """Decorator to make a class a singleton"""
10
+ instances = {}
11
+
12
+ def get_instance(*args, **kwargs):
13
+ if cls not in instances:
14
+ instances[cls] = cls(*args, **kwargs)
15
+ return instances[cls]
16
+
17
+ return get_instance
18
+
19
+
20
+ @singleton
21
+ class TestProviderStore:
22
+ """Singleton class for storing test providers"""
23
+
24
+ def __init__(self):
25
+ self.test_providers = {}
26
+
27
+ def has_test_provider(self, namespace: str) -> bool:
28
+ """Check if a test provider exists by namespace
29
+
30
+ Args:
31
+ namespace (str): The namespace of the test provider
32
+
33
+ Returns:
34
+ bool: True if the test provider exists
35
+ """
36
+ return namespace in self.test_providers
37
+
38
+ def get_test_provider(self, namespace: str):
39
+ """Get a test provider by namespace
40
+
41
+ Args:
42
+ namespace (str): The namespace of the test provider
43
+
44
+ Returns:
45
+ TestProvider: The test provider
46
+ """
47
+ return self.test_providers.get(namespace)
48
+
49
+ def register_test_provider(self, namespace: str, test_provider) -> None:
50
+ """Register an external test provider
51
+
52
+ Args:
53
+ namespace (str): The namespace of the test provider
54
+ test_provider (TestProvider): The test provider
55
+ """
56
+ self.test_providers[namespace] = test_provider
57
+
58
+
59
+ class TestStore:
60
+ """Singleton class for storing loaded tests"""
61
+
62
+ def __init__(self):
63
+ self.tests = {}
64
+ self.custom_tests = {}
65
+
66
+ def get_test(self, test_id: str):
67
+ """Get a test by test ID
68
+
69
+ Args:
70
+ test_id (str): The test ID
71
+
72
+ Returns:
73
+ object: The test class or function
74
+ """
75
+ return self.tests.get(test_id)
76
+
77
+ def get_custom_test(self, test_id: str):
78
+ """Get a custom test by test ID
79
+
80
+ Args:
81
+ test_id (str): The test ID
82
+
83
+ Returns:
84
+ object: The test class or function
85
+ """
86
+ return self.custom_tests.get(test_id)
87
+
88
+ def get_test_ids(self) -> list:
89
+ """Get all registered test IDs"""
90
+ return list(self.tests.keys())
91
+
92
+ def register_test(self, test_id: str, test: object = None):
93
+ """Register a test"""
94
+ self.tests[test_id] = test
95
+
96
+ def register_custom_test(self, test_id: str, test: object):
97
+ """Register a single one-off custom test"""
98
+ self.custom_tests[test_id] = test
99
+
100
+
101
+ test_store = TestStore()
102
+ test_provider_store = TestProviderStore()
@@ -50,15 +50,13 @@ class ACFandPACFPlot(Metric):
50
50
 
51
51
  name = "acf_pacf_plot"
52
52
  required_inputs = ["dataset"]
53
- metadata = {
54
- "task_types": ["regression"],
55
- "tags": [
56
- "time_series_data",
57
- "forecasting",
58
- "statistical_test",
59
- "visualization",
60
- ],
61
- }
53
+ tasks = ["regression"]
54
+ tags = [
55
+ "time_series_data",
56
+ "forecasting",
57
+ "statistical_test",
58
+ "visualization",
59
+ ]
62
60
 
63
61
  def run(self):
64
62
  # Check if index is datetime
@@ -47,16 +47,14 @@ class ADF(Metric):
47
47
 
48
48
  name = "adf"
49
49
  required_inputs = ["dataset"]
50
- metadata = {
51
- "task_types": ["regression"],
52
- "tags": [
53
- "time_series_data",
54
- "statsmodels",
55
- "forecasting",
56
- "statistical_test",
57
- "stationarity",
58
- ],
59
- }
50
+ tasks = ["regression"]
51
+ tags = [
52
+ "time_series_data",
53
+ "statsmodels",
54
+ "forecasting",
55
+ "statistical_test",
56
+ "stationarity",
57
+ ]
60
58
 
61
59
  def summary(self, metric_value: dict):
62
60
  table = pd.DataFrame.from_dict(metric_value, orient="index")
@@ -57,16 +57,14 @@ class ANOVAOneWayTable(Metric):
57
57
  name = "anova_one_way_table"
58
58
  required_inputs = ["dataset"]
59
59
  default_params = {"features": None, "p_threshold": 0.05}
60
- metadata = {
61
- "task_types": ["classification"],
62
- "tags": [
63
- "tabular_data",
64
- "statistical_test",
65
- "multiclass_classification",
66
- "binary_classification",
67
- "numerical_data",
68
- ],
69
- }
60
+ tasks = ["classification"]
61
+ tags = [
62
+ "tabular_data",
63
+ "statistical_test",
64
+ "multiclass_classification",
65
+ "binary_classification",
66
+ "numerical_data",
67
+ ]
70
68
 
71
69
  def run(self):
72
70
  features = self.params["features"]
@@ -61,10 +61,8 @@ class AutoAR(Metric):
61
61
  name = "auto_ar"
62
62
  required_inputs = ["dataset"]
63
63
  default_params = {"max_ar_order": 3}
64
- metadata = {
65
- "task_types": ["regression"],
66
- "tags": ["time_series_data", "statsmodels", "forecasting", "statistical_test"],
67
- }
64
+ tasks = ["regression"]
65
+ tags = ["time_series_data", "statsmodels", "forecasting", "statistical_test"]
68
66
 
69
67
  def run(self):
70
68
  if "max_ar_order" not in self.params:
@@ -57,10 +57,8 @@ class AutoMA(Metric):
57
57
  name = "auto_ma"
58
58
  required_inputs = ["dataset"]
59
59
  default_params = {"max_ma_order": 3}
60
- metadata = {
61
- "task_types": ["regression"],
62
- "tags": ["time_series_data", "statsmodels", "forecasting", "statistical_test"],
63
- }
60
+ tasks = ["regression"]
61
+ tags = ["time_series_data", "statsmodels", "forecasting", "statistical_test"]
64
62
 
65
63
  def run(self):
66
64
  if "max_ma_order" not in self.params:
@@ -61,16 +61,14 @@ class AutoSeasonality(Metric):
61
61
  name = "auto_seasonality"
62
62
  required_inputs = ["dataset"]
63
63
  default_params = {"min_period": 1, "max_period": 4}
64
- metadata = {
65
- "task_types": ["regression"],
66
- "tags": [
67
- "time_series_data",
68
- "forecasting",
69
- "statistical_test",
70
- "statsmodels",
71
- "seasonality",
72
- ],
73
- }
64
+ tasks = ["regression"]
65
+ tags = [
66
+ "time_series_data",
67
+ "forecasting",
68
+ "statistical_test",
69
+ "statsmodels",
70
+ "seasonality",
71
+ ]
74
72
 
75
73
  def evaluate_seasonal_periods(self, series, min_period, max_period):
76
74
  seasonal_periods = []
@@ -54,16 +54,14 @@ class AutoStationarity(Metric):
54
54
  name = "auto_stationarity"
55
55
  required_inputs = ["dataset"]
56
56
  default_params = {"max_order": 5, "threshold": 0.05}
57
- metadata = {
58
- "task_types": ["regression"],
59
- "tags": [
60
- "time_series_data",
61
- "statsmodels",
62
- "forecasting",
63
- "statistical_test",
64
- "stationarity",
65
- ],
66
- }
57
+ tasks = ["regression"]
58
+ tags = [
59
+ "time_series_data",
60
+ "statsmodels",
61
+ "forecasting",
62
+ "statistical_test",
63
+ "stationarity",
64
+ ]
67
65
 
68
66
  def run(self):
69
67
  if "max_order" not in self.params:
@@ -56,16 +56,14 @@ class BivariateFeaturesBarPlots(Metric):
56
56
  name = "bivariate_features_bar_plots"
57
57
  required_inputs = ["dataset"]
58
58
  default_params = {"features_pairs": None}
59
- metadata = {
60
- "task_types": ["classification"],
61
- "tags": [
62
- "tabular_data",
63
- "categorical_data",
64
- "binary_classification",
65
- "multiclass_classification",
66
- "visualization",
67
- ],
68
- }
59
+ tasks = ["classification"]
60
+ tags = [
61
+ "tabular_data",
62
+ "categorical_data",
63
+ "binary_classification",
64
+ "multiclass_classification",
65
+ "visualization",
66
+ ]
69
67
 
70
68
  def run(self):
71
69
  features_pairs = self.params["features_pairs"]
@@ -55,16 +55,14 @@ class BivariateHistograms(Metric):
55
55
  name = "bivariate_histograms"
56
56
  required_inputs = ["dataset"]
57
57
  default_params = {"features_pairs": None, "target_filter": None}
58
- metadata = {
59
- "task_types": ["classification"],
60
- "tags": [
61
- "tabular_data",
62
- "categorical_data",
63
- "binary_classification",
64
- "multiclass_classification",
65
- "visualization",
66
- ],
67
- }
58
+ tasks = ["classification"]
59
+ tags = [
60
+ "tabular_data",
61
+ "categorical_data",
62
+ "binary_classification",
63
+ "multiclass_classification",
64
+ "visualization",
65
+ ]
68
66
 
69
67
  def plot_bivariate_histogram(self, features_pairs, target_filter):
70
68
  status_var = self.inputs.dataset.target_column
@@ -54,16 +54,14 @@ class BivariateScatterPlots(Metric):
54
54
  name = "bivariate_scatter_plots"
55
55
  required_inputs = ["dataset"]
56
56
  default_params = {"selected_columns": None}
57
- metadata = {
58
- "task_types": ["classification"],
59
- "tags": [
60
- "tabular_data",
61
- "categorical_data",
62
- "binary_classification",
63
- "multiclass_classification",
64
- "visualization",
65
- ],
66
- }
57
+ tasks = ["classification"]
58
+ tags = [
59
+ "tabular_data",
60
+ "categorical_data",
61
+ "binary_classification",
62
+ "multiclass_classification",
63
+ "visualization",
64
+ ]
67
65
 
68
66
  def plot_bivariate_scatter(self, columns):
69
67
  figures = []
@@ -54,16 +54,14 @@ class ChiSquaredFeaturesTable(Metric):
54
54
  name = "chi_squared_features_table"
55
55
  required_inputs = ["dataset"]
56
56
  default_params = {"cat_features": None, "p_threshold": 0.05}
57
- metadata = {
58
- "task_types": ["classification"],
59
- "tags": [
60
- "tabular_data",
61
- "categorical_data",
62
- "statistical_test",
63
- "binary_classification",
64
- "multiclass_classification",
65
- ],
66
- }
57
+ tasks = ["classification"]
58
+ tags = [
59
+ "tabular_data",
60
+ "categorical_data",
61
+ "statistical_test",
62
+ "binary_classification",
63
+ "multiclass_classification",
64
+ ]
67
65
 
68
66
  def run(self):
69
67
  target_column = self.inputs.dataset.target_column
@@ -73,10 +73,8 @@ class ClassImbalance(ThresholdTest):
73
73
  name = "class_imbalance"
74
74
  required_inputs = ["dataset"]
75
75
  default_params = {"min_percent_threshold": 10}
76
- metadata = {
77
- "task_types": ["classification"],
78
- "tags": ["tabular_data", "binary_classification", "multiclass_classification"],
79
- }
76
+ tasks = ["classification"]
77
+ tags = ["tabular_data", "binary_classification", "multiclass_classification"]
80
78
 
81
79
  def summary(self, results: List[ThresholdTestResult], all_passed: bool):
82
80
  return ResultSummary(
@@ -53,10 +53,8 @@ class DFGLSArch(Metric):
53
53
 
54
54
  name = "dickey_fuller_gls"
55
55
  required_inputs = ["dataset"]
56
- metadata = {
57
- "task_types": ["regression"],
58
- "tags": ["time_series_data", "forecasting", "unit_root_test"],
59
- }
56
+ tasks = ["regression"]
57
+ tags = ["time_series_data", "forecasting", "unit_root_test"]
60
58
 
61
59
  def run(self):
62
60
  """
@@ -69,15 +69,13 @@ class DatasetDescription(Metric):
69
69
 
70
70
  name = "dataset_description"
71
71
  required_inputs = ["dataset"]
72
- metadata = {
73
- "task_types": [
74
- "classification",
75
- "regression",
76
- "text_classification",
77
- "text_summarization",
78
- ],
79
- "tags": ["tabular_data", "time_series_data", "text_data"],
80
- }
72
+ tasks = [
73
+ "classification",
74
+ "regression",
75
+ "text_classification",
76
+ "text_summarization",
77
+ ]
78
+ tags = ["tabular_data", "time_series_data", "text_data"]
81
79
 
82
80
  def summary(self, metric_value):
83
81
  """
@@ -48,15 +48,14 @@ class DatasetSplit(Metric):
48
48
 
49
49
  name = "dataset_split"
50
50
  required_inputs = ["datasets"]
51
- metadata = {
52
- "task_types": [
53
- "classification",
54
- "regression",
55
- "text_classification",
56
- "text_summarization",
57
- ],
58
- "tags": ["tabular_data", "time_series_data", "text_data"],
59
- }
51
+ tasks = [
52
+ "classification",
53
+ "regression",
54
+ "text_classification",
55
+ "text_summarization",
56
+ ]
57
+
58
+ tags = ["tabular_data", "time_series_data", "text_data"]
60
59
 
61
60
  dataset_labels = {
62
61
  "train_ds": "Training",
@@ -53,10 +53,8 @@ class DescriptiveStatistics(Metric):
53
53
 
54
54
  name = "descriptive_statistics"
55
55
  required_inputs = ["dataset"]
56
- metadata = {
57
- "task_types": ["classification", "regression"],
58
- "tags": ["tabular_data", "time_series_data"],
59
- }
56
+ tasks = ["classification", "regression"]
57
+ tags = ["tabular_data", "time_series_data"]
60
58
 
61
59
  def get_summary_statistics_numerical(self, df, numerical_fields):
62
60
  percentiles = [0.25, 0.5, 0.75, 0.90, 0.95]
@@ -55,10 +55,8 @@ class Duplicates(ThresholdTest):
55
55
  name = "duplicates"
56
56
  required_inputs = ["dataset"]
57
57
  default_params = {"min_threshold": 1}
58
- metadata = {
59
- "task_types": ["classification", "regression"],
60
- "tags": ["tabular_data", "data_quality", "text_data"],
61
- }
58
+ tasks = ["classification", "regression"]
59
+ tags = ["tabular_data", "data_quality", "text_data"]
62
60
 
63
61
  def summary(self, results: List[ThresholdTestResult], all_passed: bool):
64
62
  """
@@ -51,10 +51,8 @@ class EngleGrangerCoint(Metric):
51
51
  name = "engle_granger_coint"
52
52
  required_inputs = ["dataset"]
53
53
  default_params = {"threshold": 0.05}
54
- metadata = {
55
- "task_types": ["regression"],
56
- "tags": ["time_series_data", "statistical_test", "forecasting"],
57
- }
54
+ tasks = ["regression"]
55
+ tags = ["time_series_data", "statistical_test", "forecasting"]
58
56
 
59
57
  def run(self):
60
58
  threshold = self.params["threshold"]
@@ -48,10 +48,8 @@ class FeatureTargetCorrelationPlot(Metric):
48
48
  name = "feature_target_correlation_plot"
49
49
  required_inputs = ["dataset"]
50
50
  default_params = {"features": None, "fig_height": 600}
51
- metadata = {
52
- "task_types": ["classification", "regression"],
53
- "tags": ["tabular_data", "visualization", "feature_importance", "correlation"],
54
- }
51
+ tasks = ["classification", "regression"]
52
+ tags = ["tabular_data", "visualization", "feature_importance", "correlation"]
55
53
 
56
54
  def run(self):
57
55
  fig_height = self.params["fig_height"]
@@ -56,10 +56,8 @@ class HeatmapFeatureCorrelations(Metric):
56
56
  name = "heatmap_feature_correlations"
57
57
  required_inputs = ["dataset"]
58
58
  default_params = {"declutter": None, "fontsize": None, "num_features": None}
59
- metadata = {
60
- "task_types": ["classification", "regression"],
61
- "tags": ["tabular_data", "visualization", "correlation"],
62
- }
59
+ tasks = ["classification", "regression"]
60
+ tags = ["tabular_data", "visualization", "correlation"]
63
61
 
64
62
  def run(self):
65
63
  features = self.params.get("features")