validmind 2.3.1__tar.gz → 2.3.5__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 (310) hide show
  1. {validmind-2.3.1 → validmind-2.3.5}/PKG-INFO +70 -36
  2. validmind-2.3.5/README.pypi.md +54 -0
  3. {validmind-2.3.1 → validmind-2.3.5}/pyproject.toml +33 -49
  4. {validmind-2.3.1 → validmind-2.3.5}/validmind/__init__.py +2 -1
  5. validmind-2.3.5/validmind/__version__.py +1 -0
  6. validmind-2.3.5/validmind/datasets/regression/fred_timeseries.py +272 -0
  7. {validmind-2.3.1 → validmind-2.3.5}/validmind/test_suites/__init__.py +0 -2
  8. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/__init__.py +7 -7
  9. validmind-2.3.5/validmind/tests/__types__.py +180 -0
  10. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/SeasonalDecompose.py +68 -40
  11. validmind-2.3.5/validmind/tests/data_validation/TimeSeriesDescription.py +74 -0
  12. validmind-2.3.5/validmind/tests/data_validation/TimeSeriesDescriptiveStatistics.py +76 -0
  13. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/TimeSeriesHistogram.py +29 -45
  14. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/TimeSeriesOutliers.py +30 -41
  15. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/decorator.py +12 -0
  16. validmind-2.3.5/validmind/tests/model_validation/ModelMetadataComparison.py +59 -0
  17. validmind-2.3.5/validmind/tests/model_validation/ModelPredictionResiduals.py +103 -0
  18. validmind-2.3.5/validmind/tests/model_validation/TimeSeriesPredictionWithCI.py +131 -0
  19. validmind-2.3.5/validmind/tests/model_validation/TimeSeriesPredictionsPlot.py +76 -0
  20. validmind-2.3.5/validmind/tests/model_validation/TimeSeriesR2SquareBySegments.py +103 -0
  21. validmind-2.3.5/validmind/tests/model_validation/sklearn/FeatureImportanceComparison.py +83 -0
  22. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/PermutationFeatureImportance.py +1 -1
  23. validmind-2.3.5/validmind/tests/model_validation/sklearn/RegressionErrorsComparison.py +76 -0
  24. validmind-2.3.5/validmind/tests/model_validation/sklearn/RegressionR2SquareComparison.py +63 -0
  25. {validmind-2.3.1 → validmind-2.3.5}/validmind/utils.py +34 -0
  26. validmind-2.3.1/README.pypi.md +0 -12
  27. validmind-2.3.1/validmind/__version__.py +0 -1
  28. {validmind-2.3.1 → validmind-2.3.5}/LICENSE +0 -0
  29. {validmind-2.3.1 → validmind-2.3.5}/validmind/ai/test_descriptions.py +0 -0
  30. {validmind-2.3.1 → validmind-2.3.5}/validmind/ai/utils.py +0 -0
  31. {validmind-2.3.1 → validmind-2.3.5}/validmind/api_client.py +0 -0
  32. {validmind-2.3.1 → validmind-2.3.5}/validmind/client.py +0 -0
  33. {validmind-2.3.1 → validmind-2.3.5}/validmind/client_config.py +0 -0
  34. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/__init__.py +0 -0
  35. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/classification/__init__.py +0 -0
  36. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/classification/customer_churn.py +0 -0
  37. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/classification/datasets/bank_customer_churn.csv +0 -0
  38. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/classification/datasets/taiwan_credit.csv +0 -0
  39. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/classification/taiwan_credit.py +0 -0
  40. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/cluster/digits.py +0 -0
  41. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/credit_risk/__init__.py +0 -0
  42. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/credit_risk/datasets/lending_club_loan_data_2007_2014_clean.csv.gz +0 -0
  43. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/credit_risk/lending_club.py +0 -0
  44. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/llm/rag/__init__.py +0 -0
  45. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_1.csv +0 -0
  46. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_2.csv +0 -0
  47. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_3.csv +0 -0
  48. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_4.csv +0 -0
  49. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_5.csv +0 -0
  50. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/llm/rag/rfp.py +0 -0
  51. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/nlp/__init__.py +0 -0
  52. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/nlp/cnn_dailymail.py +0 -0
  53. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/nlp/datasets/Covid_19.csv +0 -0
  54. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/nlp/datasets/cnn_dailymail_100_with_predictions.csv +0 -0
  55. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/nlp/datasets/cnn_dailymail_500_with_predictions.csv +0 -0
  56. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/nlp/datasets/sentiments_with_predictions.csv +0 -0
  57. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/nlp/twitter_covid_19.py +0 -0
  58. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/__init__.py +0 -0
  59. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/california_housing.py +0 -0
  60. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/datasets/fred/CPIAUCSL.csv +0 -0
  61. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/datasets/fred/CSUSHPISA.csv +0 -0
  62. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/datasets/fred/DRSFRMACBS.csv +0 -0
  63. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/datasets/fred/FEDFUNDS.csv +0 -0
  64. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/datasets/fred/GDP.csv +0 -0
  65. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/datasets/fred/GDPC1.csv +0 -0
  66. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/datasets/fred/GS10.csv +0 -0
  67. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/datasets/fred/GS3.csv +0 -0
  68. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/datasets/fred/GS5.csv +0 -0
  69. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/datasets/fred/MORTGAGE30US.csv +0 -0
  70. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/datasets/fred/UNRATE.csv +0 -0
  71. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/datasets/fred_loan_rates.csv +0 -0
  72. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/datasets/fred_loan_rates_test_1.csv +0 -0
  73. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/datasets/fred_loan_rates_test_2.csv +0 -0
  74. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/datasets/fred_loan_rates_test_3.csv +0 -0
  75. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/datasets/fred_loan_rates_test_4.csv +0 -0
  76. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/datasets/fred_loan_rates_test_5.csv +0 -0
  77. /validmind-2.3.1/validmind/datasets/regression/datasets/lending_club_loan_rates.csv → /validmind-2.3.5/validmind/datasets/regression/datasets/leanding_club_loan_rates.csv +0 -0
  78. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/fred.py +0 -0
  79. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/lending_club.py +0 -0
  80. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/models/fred_loan_rates_model_1.pkl +0 -0
  81. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/models/fred_loan_rates_model_2.pkl +0 -0
  82. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/models/fred_loan_rates_model_3.pkl +0 -0
  83. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/models/fred_loan_rates_model_4.pkl +0 -0
  84. {validmind-2.3.1 → validmind-2.3.5}/validmind/datasets/regression/models/fred_loan_rates_model_5.pkl +0 -0
  85. {validmind-2.3.1 → validmind-2.3.5}/validmind/errors.py +0 -0
  86. {validmind-2.3.1 → validmind-2.3.5}/validmind/html_templates/__init__.py +0 -0
  87. {validmind-2.3.1 → validmind-2.3.5}/validmind/html_templates/content_blocks.py +0 -0
  88. {validmind-2.3.1 → validmind-2.3.5}/validmind/input_registry.py +0 -0
  89. {validmind-2.3.1 → validmind-2.3.5}/validmind/logging.py +0 -0
  90. {validmind-2.3.1 → validmind-2.3.5}/validmind/models/__init__.py +0 -0
  91. {validmind-2.3.1 → validmind-2.3.5}/validmind/models/foundation.py +0 -0
  92. {validmind-2.3.1 → validmind-2.3.5}/validmind/models/function.py +0 -0
  93. {validmind-2.3.1 → validmind-2.3.5}/validmind/models/huggingface.py +0 -0
  94. {validmind-2.3.1 → validmind-2.3.5}/validmind/models/metadata.py +0 -0
  95. {validmind-2.3.1 → validmind-2.3.5}/validmind/models/pipeline.py +0 -0
  96. {validmind-2.3.1 → validmind-2.3.5}/validmind/models/pytorch.py +0 -0
  97. {validmind-2.3.1 → validmind-2.3.5}/validmind/models/r_model.py +0 -0
  98. {validmind-2.3.1 → validmind-2.3.5}/validmind/models/sklearn.py +0 -0
  99. {validmind-2.3.1 → validmind-2.3.5}/validmind/template.py +0 -0
  100. {validmind-2.3.1 → validmind-2.3.5}/validmind/test_suites/classifier.py +0 -0
  101. {validmind-2.3.1 → validmind-2.3.5}/validmind/test_suites/cluster.py +0 -0
  102. {validmind-2.3.1 → validmind-2.3.5}/validmind/test_suites/embeddings.py +0 -0
  103. {validmind-2.3.1 → validmind-2.3.5}/validmind/test_suites/llm.py +0 -0
  104. {validmind-2.3.1 → validmind-2.3.5}/validmind/test_suites/nlp.py +0 -0
  105. {validmind-2.3.1 → validmind-2.3.5}/validmind/test_suites/parameters_optimization.py +0 -0
  106. {validmind-2.3.1 → validmind-2.3.5}/validmind/test_suites/regression.py +0 -0
  107. {validmind-2.3.1 → validmind-2.3.5}/validmind/test_suites/statsmodels_timeseries.py +0 -0
  108. {validmind-2.3.1 → validmind-2.3.5}/validmind/test_suites/summarization.py +0 -0
  109. {validmind-2.3.1 → validmind-2.3.5}/validmind/test_suites/tabular_datasets.py +0 -0
  110. {validmind-2.3.1 → validmind-2.3.5}/validmind/test_suites/text_data.py +0 -0
  111. {validmind-2.3.1 → validmind-2.3.5}/validmind/test_suites/time_series.py +0 -0
  112. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/ACFandPACFPlot.py +0 -0
  113. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/ADF.py +0 -0
  114. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/ANOVAOneWayTable.py +0 -0
  115. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/AutoAR.py +0 -0
  116. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/AutoMA.py +0 -0
  117. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/AutoSeasonality.py +0 -0
  118. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/AutoStationarity.py +0 -0
  119. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/BivariateFeaturesBarPlots.py +0 -0
  120. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/BivariateHistograms.py +0 -0
  121. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/BivariateScatterPlots.py +0 -0
  122. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/ChiSquaredFeaturesTable.py +0 -0
  123. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/ClassImbalance.py +0 -0
  124. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/DFGLSArch.py +0 -0
  125. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/DatasetDescription.py +0 -0
  126. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/DatasetSplit.py +0 -0
  127. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/DescriptiveStatistics.py +0 -0
  128. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/Duplicates.py +0 -0
  129. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/EngleGrangerCoint.py +0 -0
  130. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/FeatureTargetCorrelationPlot.py +0 -0
  131. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/HeatmapFeatureCorrelations.py +0 -0
  132. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/HighCardinality.py +0 -0
  133. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/HighPearsonCorrelation.py +0 -0
  134. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/IQROutliersBarPlot.py +0 -0
  135. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/IQROutliersTable.py +0 -0
  136. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/IsolationForestOutliers.py +0 -0
  137. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/KPSS.py +0 -0
  138. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/LaggedCorrelationHeatmap.py +0 -0
  139. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/MissingValues.py +0 -0
  140. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/MissingValuesBarPlot.py +0 -0
  141. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/MissingValuesRisk.py +0 -0
  142. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/PearsonCorrelationMatrix.py +0 -0
  143. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/PhillipsPerronArch.py +0 -0
  144. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/RollingStatsPlot.py +0 -0
  145. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/ScatterPlot.py +0 -0
  146. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/Skewness.py +0 -0
  147. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/SpreadPlot.py +0 -0
  148. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/TabularCategoricalBarPlots.py +0 -0
  149. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/TabularDateTimeHistograms.py +0 -0
  150. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/TabularDescriptionTables.py +0 -0
  151. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/TabularNumericalHistograms.py +0 -0
  152. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/TargetRateBarPlots.py +0 -0
  153. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/TimeSeriesFrequency.py +0 -0
  154. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/TimeSeriesLinePlot.py +0 -0
  155. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/TimeSeriesMissingValues.py +0 -0
  156. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/TooManyZeroValues.py +0 -0
  157. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/UniqueRows.py +0 -0
  158. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/WOEBinPlots.py +0 -0
  159. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/WOEBinTable.py +0 -0
  160. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/ZivotAndrewsArch.py +0 -0
  161. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/__init__.py +0 -0
  162. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/nlp/CommonWords.py +0 -0
  163. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/nlp/Hashtags.py +0 -0
  164. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/nlp/LanguageDetection.py +0 -0
  165. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/nlp/Mentions.py +0 -0
  166. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/nlp/PolarityAndSubjectivity.py +0 -0
  167. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/nlp/Punctuations.py +0 -0
  168. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/nlp/Sentiment.py +0 -0
  169. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/nlp/StopWords.py +0 -0
  170. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/nlp/TextDescription.py +0 -0
  171. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/nlp/Toxicity.py +0 -0
  172. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/data_validation/nlp/__init__.py +0 -0
  173. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/BertScore.py +0 -0
  174. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/BleuScore.py +0 -0
  175. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/ClusterSizeDistribution.py +0 -0
  176. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/ContextualRecall.py +0 -0
  177. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/FeaturesAUC.py +0 -0
  178. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/MeteorScore.py +0 -0
  179. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/ModelMetadata.py +0 -0
  180. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/RegardScore.py +0 -0
  181. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/RegressionResidualsPlot.py +0 -0
  182. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/RougeScore.py +0 -0
  183. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/TokenDisparity.py +0 -0
  184. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/ToxicityScore.py +0 -0
  185. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/__init__.py +0 -0
  186. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/embeddings/ClusterDistribution.py +0 -0
  187. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/embeddings/CosineSimilarityComparison.py +0 -0
  188. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/embeddings/CosineSimilarityDistribution.py +0 -0
  189. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/embeddings/CosineSimilarityHeatmap.py +0 -0
  190. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/embeddings/DescriptiveAnalytics.py +0 -0
  191. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/embeddings/EmbeddingsVisualization2D.py +0 -0
  192. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/embeddings/EuclideanDistanceComparison.py +0 -0
  193. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/embeddings/EuclideanDistanceHeatmap.py +0 -0
  194. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/embeddings/PCAComponentsPairwisePlots.py +0 -0
  195. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/embeddings/StabilityAnalysis.py +0 -0
  196. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/embeddings/StabilityAnalysisKeyword.py +0 -0
  197. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/embeddings/StabilityAnalysisRandomNoise.py +0 -0
  198. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/embeddings/StabilityAnalysisSynonyms.py +0 -0
  199. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/embeddings/StabilityAnalysisTranslation.py +0 -0
  200. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/embeddings/TSNEComponentsPairwisePlots.py +0 -0
  201. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/ragas/AnswerCorrectness.py +0 -0
  202. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/ragas/AnswerRelevance.py +0 -0
  203. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/ragas/AnswerSimilarity.py +0 -0
  204. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/ragas/AspectCritique.py +0 -0
  205. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/ragas/ContextEntityRecall.py +0 -0
  206. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/ragas/ContextPrecision.py +0 -0
  207. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/ragas/ContextRecall.py +0 -0
  208. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/ragas/ContextRelevancy.py +0 -0
  209. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/ragas/Faithfulness.py +0 -0
  210. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/ragas/utils.py +0 -0
  211. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/AdjustedMutualInformation.py +0 -0
  212. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/AdjustedRandIndex.py +0 -0
  213. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/ClassifierPerformance.py +0 -0
  214. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/ClusterCosineSimilarity.py +0 -0
  215. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/ClusterPerformance.py +0 -0
  216. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/ClusterPerformanceMetrics.py +0 -0
  217. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/CompletenessScore.py +0 -0
  218. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/ConfusionMatrix.py +0 -0
  219. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/FowlkesMallowsScore.py +0 -0
  220. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/HomogeneityScore.py +0 -0
  221. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/HyperParametersTuning.py +0 -0
  222. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/KMeansClustersOptimization.py +0 -0
  223. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/MinimumAccuracy.py +0 -0
  224. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/MinimumF1Score.py +0 -0
  225. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/MinimumROCAUCScore.py +0 -0
  226. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py +0 -0
  227. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/OverfitDiagnosis.py +0 -0
  228. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/PopulationStabilityIndex.py +0 -0
  229. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/PrecisionRecallCurve.py +0 -0
  230. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/ROCCurve.py +0 -0
  231. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/RegressionErrors.py +0 -0
  232. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/RegressionModelsPerformanceComparison.py +0 -0
  233. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/RegressionR2Square.py +0 -0
  234. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/RobustnessDiagnosis.py +0 -0
  235. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py +0 -0
  236. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/SilhouettePlot.py +0 -0
  237. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/TrainingTestDegradation.py +0 -0
  238. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/VMeasure.py +0 -0
  239. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/WeakspotsDiagnosis.py +0 -0
  240. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/sklearn/__init__.py +0 -0
  241. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/AutoARIMA.py +0 -0
  242. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/BoxPierce.py +0 -0
  243. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/CumulativePredictionProbabilities.py +0 -0
  244. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py +0 -0
  245. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/GINITable.py +0 -0
  246. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/JarqueBera.py +0 -0
  247. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/KolmogorovSmirnov.py +0 -0
  248. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/LJungBox.py +0 -0
  249. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/Lilliefors.py +0 -0
  250. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/PredictionProbabilitiesHistogram.py +0 -0
  251. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/RegressionCoeffsPlot.py +0 -0
  252. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/RegressionFeatureSignificance.py +0 -0
  253. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlot.py +0 -0
  254. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlotLevels.py +0 -0
  255. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/RegressionModelSensitivityPlot.py +0 -0
  256. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/RegressionModelSummary.py +0 -0
  257. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/RegressionModelsCoeffs.py +0 -0
  258. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/RegressionPermutationFeatureImportance.py +0 -0
  259. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/RunsTest.py +0 -0
  260. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/ScorecardHistogram.py +0 -0
  261. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/ShapiroWilk.py +0 -0
  262. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/__init__.py +0 -0
  263. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/model_validation/statsmodels/statsutils.py +0 -0
  264. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/prompt_validation/Bias.py +0 -0
  265. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/prompt_validation/Clarity.py +0 -0
  266. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/prompt_validation/Conciseness.py +0 -0
  267. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/prompt_validation/Delimitation.py +0 -0
  268. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/prompt_validation/NegativeInstruction.py +0 -0
  269. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/prompt_validation/Robustness.py +0 -0
  270. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/prompt_validation/Specificity.py +0 -0
  271. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/prompt_validation/__init__.py +0 -0
  272. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/prompt_validation/ai_powered_test.py +0 -0
  273. {validmind-2.3.1 → validmind-2.3.5}/validmind/tests/test_providers.py +0 -0
  274. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/__init__.py +0 -0
  275. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/classification/sklearn/Accuracy.py +0 -0
  276. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/classification/sklearn/F1.py +0 -0
  277. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/classification/sklearn/Precision.py +0 -0
  278. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/classification/sklearn/ROC_AUC.py +0 -0
  279. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/classification/sklearn/Recall.py +0 -0
  280. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/composite.py +0 -0
  281. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/regression/GiniCoefficient.py +0 -0
  282. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/regression/HuberLoss.py +0 -0
  283. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/regression/KolmogorovSmirnovStatistic.py +0 -0
  284. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/regression/MeanAbsolutePercentageError.py +0 -0
  285. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/regression/MeanBiasDeviation.py +0 -0
  286. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/regression/QuantileLoss.py +0 -0
  287. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/regression/sklearn/AdjustedRSquaredScore.py +0 -0
  288. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/regression/sklearn/MeanAbsoluteError.py +0 -0
  289. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/regression/sklearn/MeanSquaredError.py +0 -0
  290. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/regression/sklearn/RSquaredScore.py +0 -0
  291. {validmind-2.3.1 → validmind-2.3.5}/validmind/unit_metrics/regression/sklearn/RootMeanSquaredError.py +0 -0
  292. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/__init__.py +0 -0
  293. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/dataset/__init__.py +0 -0
  294. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/dataset/dataset.py +0 -0
  295. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/dataset/utils.py +0 -0
  296. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/figure.py +0 -0
  297. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/model.py +0 -0
  298. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/test/metric.py +0 -0
  299. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/test/metric_result.py +0 -0
  300. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/test/output_template.py +0 -0
  301. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/test/result_summary.py +0 -0
  302. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/test/result_wrapper.py +0 -0
  303. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/test/test.py +0 -0
  304. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/test/threshold_test.py +0 -0
  305. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/test/threshold_test_result.py +0 -0
  306. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/test_context.py +0 -0
  307. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/test_suite/runner.py +0 -0
  308. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/test_suite/summary.py +0 -0
  309. {validmind-2.3.1 → validmind-2.3.5}/validmind/vm_models/test_suite/test.py +0 -0
  310. {validmind-2.3.1 → validmind-2.3.5}/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.1
3
+ Version: 2.3.5
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.1"
13
+ version = "2.3.5"
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"
@@ -60,7 +60,7 @@ from .client import ( # noqa: E402
60
60
  run_documentation_tests,
61
61
  run_test_suite,
62
62
  )
63
- from .tests.decorator import metric, tags, tasks
63
+ from .tests.decorator import metric, tags, tasks, test
64
64
  from .utils import run_async # noqa: E402
65
65
 
66
66
 
@@ -112,6 +112,7 @@ __all__ = [ # noqa
112
112
  "run_test_suite",
113
113
  "tags",
114
114
  "tasks",
115
+ "test",
115
116
  "tests",
116
117
  "test_suites",
117
118
  "vm_models",
@@ -0,0 +1 @@
1
+ __version__ = "2.3.5"
@@ -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
@@ -182,7 +182,6 @@ def describe_suite(test_suite_id: str, verbose=False):
182
182
  "Test Suite Section": "",
183
183
  "Test ID": item,
184
184
  "Test Name": test.__name__,
185
- "Test Type": test.test_type,
186
185
  }
187
186
  )
188
187
  elif isinstance(item, dict):
@@ -195,7 +194,6 @@ def describe_suite(test_suite_id: str, verbose=False):
195
194
  "Test Suite Section": item["section_id"],
196
195
  "Test ID": test_id,
197
196
  "Test Name": test_id_to_name(test_id),
198
- "Test Type": test.test_type,
199
197
  }
200
198
  )
201
199
  else: