validmind 2.12.2__tar.gz → 2.12.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. {validmind-2.12.2 → validmind-2.12.4}/PKG-INFO +38 -9
  2. {validmind-2.12.2 → validmind-2.12.4}/pyproject.toml +41 -10
  3. validmind-2.12.4/validmind/__version__.py +1 -0
  4. {validmind-2.12.2 → validmind-2.12.4}/validmind/client.py +16 -18
  5. {validmind-2.12.2 → validmind-2.12.4}/validmind/models/r_model.py +14 -9
  6. {validmind-2.12.2 → validmind-2.12.4}/validmind/template.py +22 -5
  7. {validmind-2.12.2 → validmind-2.12.4}/validmind/utils.py +11 -1
  8. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/html_progress.py +23 -5
  9. validmind-2.12.2/validmind/__version__.py +0 -1
  10. {validmind-2.12.2 → validmind-2.12.4}/LICENSE +0 -0
  11. {validmind-2.12.2 → validmind-2.12.4}/README.pypi.md +0 -0
  12. {validmind-2.12.2 → validmind-2.12.4}/validmind/__init__.py +0 -0
  13. {validmind-2.12.2 → validmind-2.12.4}/validmind/ai/test_descriptions.py +0 -0
  14. {validmind-2.12.2 → validmind-2.12.4}/validmind/ai/utils.py +0 -0
  15. {validmind-2.12.2 → validmind-2.12.4}/validmind/api_client.py +0 -0
  16. {validmind-2.12.2 → validmind-2.12.4}/validmind/client_config.py +0 -0
  17. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/__init__.py +0 -0
  18. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/classification/__init__.py +0 -0
  19. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/classification/customer_churn.py +0 -0
  20. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/classification/datasets/bank_customer_churn.csv +0 -0
  21. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/classification/datasets/taiwan_credit.csv +0 -0
  22. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/classification/taiwan_credit.py +0 -0
  23. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/cluster/digits.py +0 -0
  24. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/credit_risk/__init__.py +0 -0
  25. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/credit_risk/datasets/lending_club_biased.csv.gz +0 -0
  26. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/credit_risk/datasets/lending_club_loan_data_2007_2014_clean.csv.gz +0 -0
  27. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/credit_risk/lending_club.py +0 -0
  28. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/credit_risk/lending_club_bias.py +0 -0
  29. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/llm/__init__.py +0 -0
  30. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/llm/agent_dataset.py +0 -0
  31. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/llm/rag/__init__.py +0 -0
  32. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_1.csv +0 -0
  33. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_2.csv +0 -0
  34. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_3.csv +0 -0
  35. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_4.csv +0 -0
  36. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_5.csv +0 -0
  37. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/llm/rag/rfp.py +0 -0
  38. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/nlp/__init__.py +0 -0
  39. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/nlp/cnn_dailymail.py +0 -0
  40. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/nlp/datasets/Covid_19.csv +0 -0
  41. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/nlp/datasets/cnn_dailymail_100_with_predictions.csv +0 -0
  42. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/nlp/datasets/cnn_dailymail_500_with_predictions.csv +0 -0
  43. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/nlp/datasets/sentiments_with_predictions.csv +0 -0
  44. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/nlp/twitter_covid_19.py +0 -0
  45. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/__init__.py +0 -0
  46. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/california_housing.py +0 -0
  47. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/california_housing.csv +0 -0
  48. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/CPIAUCSL.csv +0 -0
  49. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/CSUSHPISA.csv +0 -0
  50. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/DRSFRMACBS.csv +0 -0
  51. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/FEDFUNDS.csv +0 -0
  52. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/GDP.csv +0 -0
  53. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/GDPC1.csv +0 -0
  54. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/GS10.csv +0 -0
  55. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/GS3.csv +0 -0
  56. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/GS5.csv +0 -0
  57. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/MORTGAGE30US.csv +0 -0
  58. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/UNRATE.csv +0 -0
  59. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred_loan_rates.csv +0 -0
  60. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred_loan_rates_test_1.csv +0 -0
  61. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred_loan_rates_test_2.csv +0 -0
  62. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred_loan_rates_test_3.csv +0 -0
  63. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred_loan_rates_test_4.csv +0 -0
  64. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred_loan_rates_test_5.csv +0 -0
  65. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/datasets/leanding_club_loan_rates.csv +0 -0
  66. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/fred.py +0 -0
  67. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/fred_timeseries.py +0 -0
  68. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/generate_california_housing_csv.py +0 -0
  69. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/lending_club.py +0 -0
  70. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/models/fred_loan_rates_model_1.pkl +0 -0
  71. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/models/fred_loan_rates_model_2.pkl +0 -0
  72. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/models/fred_loan_rates_model_3.pkl +0 -0
  73. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/models/fred_loan_rates_model_4.pkl +0 -0
  74. {validmind-2.12.2 → validmind-2.12.4}/validmind/datasets/regression/models/fred_loan_rates_model_5.pkl +0 -0
  75. {validmind-2.12.2 → validmind-2.12.4}/validmind/errors.py +0 -0
  76. {validmind-2.12.2 → validmind-2.12.4}/validmind/experimental/__init__.py +0 -0
  77. {validmind-2.12.2 → validmind-2.12.4}/validmind/experimental/agents.py +0 -0
  78. {validmind-2.12.2 → validmind-2.12.4}/validmind/html_templates/__init__.py +0 -0
  79. {validmind-2.12.2 → validmind-2.12.4}/validmind/html_templates/content_blocks.py +0 -0
  80. {validmind-2.12.2 → validmind-2.12.4}/validmind/input_registry.py +0 -0
  81. {validmind-2.12.2 → validmind-2.12.4}/validmind/logging.py +0 -0
  82. {validmind-2.12.2 → validmind-2.12.4}/validmind/models/__init__.py +0 -0
  83. {validmind-2.12.2 → validmind-2.12.4}/validmind/models/foundation.py +0 -0
  84. {validmind-2.12.2 → validmind-2.12.4}/validmind/models/function.py +0 -0
  85. {validmind-2.12.2 → validmind-2.12.4}/validmind/models/huggingface.py +0 -0
  86. {validmind-2.12.2 → validmind-2.12.4}/validmind/models/metadata.py +0 -0
  87. {validmind-2.12.2 → validmind-2.12.4}/validmind/models/pipeline.py +0 -0
  88. {validmind-2.12.2 → validmind-2.12.4}/validmind/models/pytorch.py +0 -0
  89. {validmind-2.12.2 → validmind-2.12.4}/validmind/models/sklearn.py +0 -0
  90. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/__init__.py +0 -0
  91. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/classification/AbsoluteError.py +0 -0
  92. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/classification/BrierScore.py +0 -0
  93. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/classification/CalibrationError.py +0 -0
  94. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/classification/ClassBalance.py +0 -0
  95. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/classification/Confidence.py +0 -0
  96. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/classification/Correctness.py +0 -0
  97. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/classification/LogLoss.py +0 -0
  98. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/classification/OutlierScore.py +0 -0
  99. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/classification/ProbabilityError.py +0 -0
  100. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/classification/Uncertainty.py +0 -0
  101. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/classification/__init__.py +0 -0
  102. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/llm/deepeval/AnswerRelevancy.py +0 -0
  103. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/llm/deepeval/ArgumentCorrectness.py +0 -0
  104. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/llm/deepeval/Bias.py +0 -0
  105. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/llm/deepeval/ContextualPrecision.py +0 -0
  106. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/llm/deepeval/ContextualRecall.py +0 -0
  107. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/llm/deepeval/ContextualRelevancy.py +0 -0
  108. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/llm/deepeval/Faithfulness.py +0 -0
  109. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/llm/deepeval/GEval.py +0 -0
  110. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/llm/deepeval/Hallucination.py +0 -0
  111. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/llm/deepeval/PlanAdherence.py +0 -0
  112. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/llm/deepeval/PlanQuality.py +0 -0
  113. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/llm/deepeval/Summarization.py +0 -0
  114. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/llm/deepeval/TaskCompletion.py +0 -0
  115. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/llm/deepeval/ToolCorrectness.py +0 -0
  116. {validmind-2.12.2 → validmind-2.12.4}/validmind/scorers/llm/deepeval/__init__.py +0 -0
  117. {validmind-2.12.2 → validmind-2.12.4}/validmind/test_suites/__init__.py +0 -0
  118. {validmind-2.12.2 → validmind-2.12.4}/validmind/test_suites/classifier.py +0 -0
  119. {validmind-2.12.2 → validmind-2.12.4}/validmind/test_suites/cluster.py +0 -0
  120. {validmind-2.12.2 → validmind-2.12.4}/validmind/test_suites/embeddings.py +0 -0
  121. {validmind-2.12.2 → validmind-2.12.4}/validmind/test_suites/llm.py +0 -0
  122. {validmind-2.12.2 → validmind-2.12.4}/validmind/test_suites/nlp.py +0 -0
  123. {validmind-2.12.2 → validmind-2.12.4}/validmind/test_suites/parameters_optimization.py +0 -0
  124. {validmind-2.12.2 → validmind-2.12.4}/validmind/test_suites/regression.py +0 -0
  125. {validmind-2.12.2 → validmind-2.12.4}/validmind/test_suites/statsmodels_timeseries.py +0 -0
  126. {validmind-2.12.2 → validmind-2.12.4}/validmind/test_suites/summarization.py +0 -0
  127. {validmind-2.12.2 → validmind-2.12.4}/validmind/test_suites/tabular_datasets.py +0 -0
  128. {validmind-2.12.2 → validmind-2.12.4}/validmind/test_suites/text_data.py +0 -0
  129. {validmind-2.12.2 → validmind-2.12.4}/validmind/test_suites/time_series.py +0 -0
  130. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/__init__.py +0 -0
  131. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/__types__.py +0 -0
  132. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/_store.py +0 -0
  133. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/comparison.py +0 -0
  134. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/ACFandPACFPlot.py +0 -0
  135. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/ADF.py +0 -0
  136. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/AutoAR.py +0 -0
  137. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/AutoMA.py +0 -0
  138. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/AutoStationarity.py +0 -0
  139. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/BivariateScatterPlots.py +0 -0
  140. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/BoxPierce.py +0 -0
  141. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/ChiSquaredFeaturesTable.py +0 -0
  142. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/ClassImbalance.py +0 -0
  143. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/DatasetDescription.py +0 -0
  144. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/DatasetSplit.py +0 -0
  145. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/DescriptiveStatistics.py +0 -0
  146. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/DickeyFullerGLS.py +0 -0
  147. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/Duplicates.py +0 -0
  148. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/EngleGrangerCoint.py +0 -0
  149. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/FeatureTargetCorrelationPlot.py +0 -0
  150. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/HighCardinality.py +0 -0
  151. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/HighPearsonCorrelation.py +0 -0
  152. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/IQROutliersBarPlot.py +0 -0
  153. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/IQROutliersTable.py +0 -0
  154. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/IsolationForestOutliers.py +0 -0
  155. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/JarqueBera.py +0 -0
  156. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/KPSS.py +0 -0
  157. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/LJungBox.py +0 -0
  158. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/LaggedCorrelationHeatmap.py +0 -0
  159. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/MissingValues.py +0 -0
  160. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/MissingValuesBarPlot.py +0 -0
  161. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/MutualInformation.py +0 -0
  162. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/PearsonCorrelationMatrix.py +0 -0
  163. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/PhillipsPerronArch.py +0 -0
  164. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/ProtectedClassesCombination.py +0 -0
  165. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/ProtectedClassesDescription.py +0 -0
  166. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/ProtectedClassesDisparity.py +0 -0
  167. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/ProtectedClassesThresholdOptimizer.py +0 -0
  168. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/RollingStatsPlot.py +0 -0
  169. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/RunsTest.py +0 -0
  170. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/ScatterPlot.py +0 -0
  171. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/ScoreBandDefaultRates.py +0 -0
  172. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/SeasonalDecompose.py +0 -0
  173. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/ShapiroWilk.py +0 -0
  174. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/Skewness.py +0 -0
  175. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/SpreadPlot.py +0 -0
  176. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/TabularCategoricalBarPlots.py +0 -0
  177. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/TabularDateTimeHistograms.py +0 -0
  178. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/TabularDescriptionTables.py +0 -0
  179. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/TabularNumericalHistograms.py +0 -0
  180. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/TargetRateBarPlots.py +0 -0
  181. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/TimeSeriesDescription.py +0 -0
  182. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/TimeSeriesDescriptiveStatistics.py +0 -0
  183. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/TimeSeriesFrequency.py +0 -0
  184. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/TimeSeriesHistogram.py +0 -0
  185. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/TimeSeriesLinePlot.py +0 -0
  186. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/TimeSeriesMissingValues.py +0 -0
  187. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/TimeSeriesOutliers.py +0 -0
  188. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/TooManyZeroValues.py +0 -0
  189. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/UniqueRows.py +0 -0
  190. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/WOEBinPlots.py +0 -0
  191. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/WOEBinTable.py +0 -0
  192. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/ZivotAndrewsArch.py +0 -0
  193. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/__init__.py +0 -0
  194. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/nlp/CommonWords.py +0 -0
  195. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/nlp/Hashtags.py +0 -0
  196. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/nlp/LanguageDetection.py +0 -0
  197. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/nlp/Mentions.py +0 -0
  198. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/nlp/PolarityAndSubjectivity.py +0 -0
  199. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/nlp/Punctuations.py +0 -0
  200. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/nlp/Sentiment.py +0 -0
  201. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/nlp/StopWords.py +0 -0
  202. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/nlp/TextDescription.py +0 -0
  203. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/nlp/Toxicity.py +0 -0
  204. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/data_validation/nlp/__init__.py +0 -0
  205. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/decorator.py +0 -0
  206. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/load.py +0 -0
  207. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/BertScore.py +0 -0
  208. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/BleuScore.py +0 -0
  209. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/ClusterSizeDistribution.py +0 -0
  210. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/ContextualRecall.py +0 -0
  211. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/FeaturesAUC.py +0 -0
  212. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/MeteorScore.py +0 -0
  213. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/ModelMetadata.py +0 -0
  214. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/ModelPredictionResiduals.py +0 -0
  215. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/RegardScore.py +0 -0
  216. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/RegressionResidualsPlot.py +0 -0
  217. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/RougeScore.py +0 -0
  218. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/TimeSeriesPredictionWithCI.py +0 -0
  219. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/TimeSeriesPredictionsPlot.py +0 -0
  220. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/TimeSeriesR2SquareBySegments.py +0 -0
  221. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/TokenDisparity.py +0 -0
  222. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/ToxicityScore.py +0 -0
  223. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/__init__.py +0 -0
  224. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/ClusterDistribution.py +0 -0
  225. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/CosineSimilarityComparison.py +0 -0
  226. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/CosineSimilarityDistribution.py +0 -0
  227. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/CosineSimilarityHeatmap.py +0 -0
  228. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/DescriptiveAnalytics.py +0 -0
  229. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/EmbeddingsVisualization2D.py +0 -0
  230. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/EuclideanDistanceComparison.py +0 -0
  231. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/EuclideanDistanceHeatmap.py +0 -0
  232. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/PCAComponentsPairwisePlots.py +0 -0
  233. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/StabilityAnalysisKeyword.py +0 -0
  234. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/StabilityAnalysisRandomNoise.py +0 -0
  235. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/StabilityAnalysisSynonyms.py +0 -0
  236. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/StabilityAnalysisTranslation.py +0 -0
  237. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/TSNEComponentsPairwisePlots.py +0 -0
  238. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/utils.py +0 -0
  239. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/ragas/AnswerCorrectness.py +0 -0
  240. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/ragas/AspectCritic.py +0 -0
  241. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/ragas/ContextEntityRecall.py +0 -0
  242. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/ragas/ContextPrecision.py +0 -0
  243. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/ragas/ContextPrecisionWithoutReference.py +0 -0
  244. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/ragas/ContextRecall.py +0 -0
  245. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/ragas/Faithfulness.py +0 -0
  246. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/ragas/NoiseSensitivity.py +0 -0
  247. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/ragas/ResponseRelevancy.py +0 -0
  248. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/ragas/SemanticSimilarity.py +0 -0
  249. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/ragas/utils.py +0 -0
  250. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/AdjustedMutualInformation.py +0 -0
  251. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/AdjustedRandIndex.py +0 -0
  252. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/CalibrationCurve.py +0 -0
  253. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ClassifierPerformance.py +0 -0
  254. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ClassifierThresholdOptimization.py +0 -0
  255. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ClusterCosineSimilarity.py +0 -0
  256. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ClusterPerformanceMetrics.py +0 -0
  257. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/CompletenessScore.py +0 -0
  258. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ConfusionMatrix.py +0 -0
  259. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/FeatureImportance.py +0 -0
  260. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/FowlkesMallowsScore.py +0 -0
  261. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/HomogeneityScore.py +0 -0
  262. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/HyperParametersTuning.py +0 -0
  263. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/KMeansClustersOptimization.py +0 -0
  264. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/MinimumAccuracy.py +0 -0
  265. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/MinimumF1Score.py +0 -0
  266. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/MinimumROCAUCScore.py +0 -0
  267. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ModelParameters.py +0 -0
  268. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py +0 -0
  269. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/OverfitDiagnosis.py +0 -0
  270. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/PermutationFeatureImportance.py +0 -0
  271. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/PopulationStabilityIndex.py +0 -0
  272. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/PrecisionRecallCurve.py +0 -0
  273. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ROCCurve.py +0 -0
  274. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/RegressionErrors.py +0 -0
  275. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/RegressionErrorsComparison.py +0 -0
  276. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/RegressionPerformance.py +0 -0
  277. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/RegressionR2Square.py +0 -0
  278. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/RegressionR2SquareComparison.py +0 -0
  279. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/RobustnessDiagnosis.py +0 -0
  280. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py +0 -0
  281. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ScoreProbabilityAlignment.py +0 -0
  282. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/SilhouettePlot.py +0 -0
  283. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/TrainingTestDegradation.py +0 -0
  284. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/VMeasure.py +0 -0
  285. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/WeakspotsDiagnosis.py +0 -0
  286. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/__init__.py +0 -0
  287. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/AutoARIMA.py +0 -0
  288. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/CumulativePredictionProbabilities.py +0 -0
  289. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py +0 -0
  290. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/GINITable.py +0 -0
  291. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/KolmogorovSmirnov.py +0 -0
  292. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/Lilliefors.py +0 -0
  293. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/PredictionProbabilitiesHistogram.py +0 -0
  294. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/RegressionCoeffs.py +0 -0
  295. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/RegressionFeatureSignificance.py +0 -0
  296. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlot.py +0 -0
  297. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlotLevels.py +0 -0
  298. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/RegressionModelSensitivityPlot.py +0 -0
  299. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/RegressionModelSummary.py +0 -0
  300. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/RegressionPermutationFeatureImportance.py +0 -0
  301. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/ScorecardHistogram.py +0 -0
  302. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/__init__.py +0 -0
  303. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/statsutils.py +0 -0
  304. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/CalibrationCurveDrift.py +0 -0
  305. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/ClassDiscriminationDrift.py +0 -0
  306. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/ClassImbalanceDrift.py +0 -0
  307. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/ClassificationAccuracyDrift.py +0 -0
  308. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/ConfusionMatrixDrift.py +0 -0
  309. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/CumulativePredictionProbabilitiesDrift.py +0 -0
  310. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/FeatureDrift.py +0 -0
  311. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/PredictionAcrossEachFeature.py +0 -0
  312. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/PredictionCorrelation.py +0 -0
  313. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/PredictionProbabilitiesHistogramDrift.py +0 -0
  314. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/PredictionQuantilesAcrossFeatures.py +0 -0
  315. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/ROCCurveDrift.py +0 -0
  316. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/ScoreBandsDrift.py +0 -0
  317. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/ScorecardHistogramDrift.py +0 -0
  318. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/TargetPredictionDistributionPlot.py +0 -0
  319. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/output.py +0 -0
  320. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/plots/BoxPlot.py +0 -0
  321. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/plots/CorrelationHeatmap.py +0 -0
  322. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/plots/HistogramPlot.py +0 -0
  323. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/plots/ViolinPlot.py +0 -0
  324. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/plots/__init__.py +0 -0
  325. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/prompt_validation/Bias.py +0 -0
  326. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/prompt_validation/Clarity.py +0 -0
  327. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/prompt_validation/Conciseness.py +0 -0
  328. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/prompt_validation/Delimitation.py +0 -0
  329. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/prompt_validation/NegativeInstruction.py +0 -0
  330. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/prompt_validation/Robustness.py +0 -0
  331. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/prompt_validation/Specificity.py +0 -0
  332. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/prompt_validation/__init__.py +0 -0
  333. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/prompt_validation/ai_powered_test.py +0 -0
  334. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/run.py +0 -0
  335. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/stats/CorrelationAnalysis.py +0 -0
  336. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/stats/DescriptiveStats.py +0 -0
  337. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/stats/NormalityTests.py +0 -0
  338. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/stats/OutlierDetection.py +0 -0
  339. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/stats/__init__.py +0 -0
  340. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/test_providers.py +0 -0
  341. {validmind-2.12.2 → validmind-2.12.4}/validmind/tests/utils.py +0 -0
  342. {validmind-2.12.2 → validmind-2.12.4}/validmind/unit_metrics/__init__.py +0 -0
  343. {validmind-2.12.2 → validmind-2.12.4}/validmind/unit_metrics/classification/Accuracy.py +0 -0
  344. {validmind-2.12.2 → validmind-2.12.4}/validmind/unit_metrics/classification/F1.py +0 -0
  345. {validmind-2.12.2 → validmind-2.12.4}/validmind/unit_metrics/classification/Precision.py +0 -0
  346. {validmind-2.12.2 → validmind-2.12.4}/validmind/unit_metrics/classification/ROC_AUC.py +0 -0
  347. {validmind-2.12.2 → validmind-2.12.4}/validmind/unit_metrics/classification/Recall.py +0 -0
  348. {validmind-2.12.2 → validmind-2.12.4}/validmind/unit_metrics/regression/AdjustedRSquaredScore.py +0 -0
  349. {validmind-2.12.2 → validmind-2.12.4}/validmind/unit_metrics/regression/GiniCoefficient.py +0 -0
  350. {validmind-2.12.2 → validmind-2.12.4}/validmind/unit_metrics/regression/HuberLoss.py +0 -0
  351. {validmind-2.12.2 → validmind-2.12.4}/validmind/unit_metrics/regression/KolmogorovSmirnovStatistic.py +0 -0
  352. {validmind-2.12.2 → validmind-2.12.4}/validmind/unit_metrics/regression/MeanAbsoluteError.py +0 -0
  353. {validmind-2.12.2 → validmind-2.12.4}/validmind/unit_metrics/regression/MeanAbsolutePercentageError.py +0 -0
  354. {validmind-2.12.2 → validmind-2.12.4}/validmind/unit_metrics/regression/MeanBiasDeviation.py +0 -0
  355. {validmind-2.12.2 → validmind-2.12.4}/validmind/unit_metrics/regression/MeanSquaredError.py +0 -0
  356. {validmind-2.12.2 → validmind-2.12.4}/validmind/unit_metrics/regression/QuantileLoss.py +0 -0
  357. {validmind-2.12.2 → validmind-2.12.4}/validmind/unit_metrics/regression/RSquaredScore.py +0 -0
  358. {validmind-2.12.2 → validmind-2.12.4}/validmind/unit_metrics/regression/RootMeanSquaredError.py +0 -0
  359. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/__init__.py +0 -0
  360. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/dataset/__init__.py +0 -0
  361. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/dataset/dataset.py +0 -0
  362. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/dataset/utils.py +0 -0
  363. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/figure.py +0 -0
  364. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/html_renderer.py +0 -0
  365. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/input.py +0 -0
  366. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/model.py +0 -0
  367. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/result/__init__.py +0 -0
  368. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/result/pii_filter.py +0 -0
  369. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/result/result.jinja +0 -0
  370. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/result/result.py +0 -0
  371. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/result/utils.py +0 -0
  372. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/test_suite/__init__.py +0 -0
  373. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/test_suite/runner.py +0 -0
  374. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/test_suite/summary.py +0 -0
  375. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/test_suite/test.py +0 -0
  376. {validmind-2.12.2 → validmind-2.12.4}/validmind/vm_models/test_suite/test_suite.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: validmind
3
- Version: 2.12.2
3
+ Version: 2.12.4
4
4
  Summary: ValidMind Library
5
5
  License: DUAL LICENSE NOTICE
6
6
 
@@ -692,13 +692,15 @@ License: DUAL LICENSE NOTICE
692
692
  License-File: LICENSE
693
693
  Author: Andres Rodriguez
694
694
  Author-email: andres@validmind.ai
695
- Requires-Python: >=3.9,<3.13
695
+ Requires-Python: >=3.9,<3.15
696
696
  Classifier: License :: Other/Proprietary License
697
697
  Classifier: Programming Language :: Python :: 3
698
698
  Classifier: Programming Language :: Python :: 3.9
699
699
  Classifier: Programming Language :: Python :: 3.10
700
700
  Classifier: Programming Language :: Python :: 3.11
701
701
  Classifier: Programming Language :: Python :: 3.12
702
+ Classifier: Programming Language :: Python :: 3.13
703
+ Classifier: Programming Language :: Python :: 3.14
702
704
  Provides-Extra: all
703
705
  Provides-Extra: credit-risk
704
706
  Provides-Extra: datasets
@@ -712,17 +714,28 @@ Provides-Extra: stats
712
714
  Provides-Extra: xgboost
713
715
  Requires-Dist: aiohttp[speedups] (<3.13.1)
714
716
  Requires-Dist: anywidget
715
- Requires-Dist: arch ; extra == "all"
716
- Requires-Dist: arch ; extra == "stats"
717
+ Requires-Dist: arch (>=7.0.0) ; extra == "all"
718
+ Requires-Dist: arch (>=7.0.0) ; extra == "stats"
717
719
  Requires-Dist: beautifulsoup4
718
720
  Requires-Dist: bert-score (>=0.3.13) ; extra == "all"
719
721
  Requires-Dist: bert-score (>=0.3.13) ; extra == "nlp"
720
- Requires-Dist: datasets (>=2.10.0,<3.0.0) ; extra == "datasets"
721
- Requires-Dist: deepeval (>=3.7.0) ; extra == "llm"
722
+ Requires-Dist: datasets (>=2.10.0,<3.0.0) ; (python_version < "3.14") and (extra == "all")
723
+ Requires-Dist: datasets (>=2.10.0,<3.0.0) ; (python_version < "3.14") and (extra == "datasets")
724
+ Requires-Dist: datasets (>=2.10.0,<3.0.0) ; (python_version < "3.14") and (extra == "llm")
725
+ Requires-Dist: datasets (>=2.10.0,<3.0.0) ; (python_version < "3.14") and (extra == "nlp")
726
+ Requires-Dist: datasets (>=4.4,<5.0.0) ; (python_version >= "3.14") and (extra == "all")
727
+ Requires-Dist: datasets (>=4.4,<5.0.0) ; (python_version >= "3.14") and (extra == "datasets")
728
+ Requires-Dist: datasets (>=4.4,<5.0.0) ; (python_version >= "3.14") and (extra == "llm")
729
+ Requires-Dist: datasets (>=4.4,<5.0.0) ; (python_version >= "3.14") and (extra == "nlp")
730
+ Requires-Dist: deepeval (>=3.7.0,<=3.7.5) ; extra == "llm"
722
731
  Requires-Dist: evaluate ; extra == "all"
723
732
  Requires-Dist: evaluate ; extra == "nlp"
724
733
  Requires-Dist: ipywidgets
725
734
  Requires-Dist: kaleido (>=0.2.1,!=0.2.1.post1,<1.0.0)
735
+ Requires-Dist: langchain (>=0.2.0,<0.4.0) ; extra == "all"
736
+ Requires-Dist: langchain (>=0.2.0,<0.4.0) ; extra == "llm"
737
+ Requires-Dist: langchain-community (>=0.2.0,<0.4.0) ; extra == "all"
738
+ Requires-Dist: langchain-community (>=0.2.0,<0.4.0) ; extra == "llm"
726
739
  Requires-Dist: langchain-openai (>=0.1.8) ; extra == "all"
727
740
  Requires-Dist: langchain-openai (>=0.1.8) ; extra == "llm"
728
741
  Requires-Dist: langdetect ; extra == "all"
@@ -732,14 +745,27 @@ Requires-Dist: mistune (>=3.0.2,<4.0.0)
732
745
  Requires-Dist: nest-asyncio (>=1.6.0,<2.0.0)
733
746
  Requires-Dist: nltk (>=3.8.1,<4.0.0) ; extra == "all"
734
747
  Requires-Dist: nltk (>=3.8.1,<4.0.0) ; extra == "nlp"
735
- Requires-Dist: numpy (>=1.23,<2.0.0)
748
+ Requires-Dist: numpy (>=1.23,<2.0.0) ; python_version < "3.14"
749
+ Requires-Dist: numpy (>=2.3,<3.0.0) ; python_version >= "3.14"
736
750
  Requires-Dist: openai (>=1)
737
751
  Requires-Dist: pandas (>=2.0.3,<3.0.0)
738
752
  Requires-Dist: plotly (>=6.0.0)
739
753
  Requires-Dist: polars
740
- Requires-Dist: presidio-analyzer ; extra == "pii-detection"
754
+ Requires-Dist: presidio-analyzer (<2.2.360) ; (python_version >= "3.14") and (extra == "pii-detection")
755
+ Requires-Dist: presidio-analyzer ; (python_version < "3.14") and (extra == "pii-detection")
741
756
  Requires-Dist: presidio-structured ; extra == "pii-detection"
742
- Requires-Dist: pyarrow (<16) ; extra == "nlp"
757
+ Requires-Dist: pyarrow (<16) ; (python_version < "3.13") and (extra == "all")
758
+ Requires-Dist: pyarrow (<16) ; (python_version < "3.13") and (extra == "datasets")
759
+ Requires-Dist: pyarrow (<16) ; (python_version < "3.13") and (extra == "llm")
760
+ Requires-Dist: pyarrow (<16) ; (python_version < "3.13") and (extra == "nlp")
761
+ Requires-Dist: pyarrow (>=20,<21) ; (python_version == "3.13") and (extra == "all")
762
+ Requires-Dist: pyarrow (>=20,<21) ; (python_version == "3.13") and (extra == "datasets")
763
+ Requires-Dist: pyarrow (>=20,<21) ; (python_version == "3.13") and (extra == "llm")
764
+ Requires-Dist: pyarrow (>=20,<21) ; (python_version == "3.13") and (extra == "nlp")
765
+ Requires-Dist: pyarrow (>=22,<23) ; (python_version >= "3.14") and (extra == "all")
766
+ Requires-Dist: pyarrow (>=22,<23) ; (python_version >= "3.14") and (extra == "datasets")
767
+ Requires-Dist: pyarrow (>=22,<23) ; (python_version >= "3.14") and (extra == "llm")
768
+ Requires-Dist: pyarrow (>=22,<23) ; (python_version >= "3.14") and (extra == "nlp")
743
769
  Requires-Dist: pycocoevalcap ; extra == "all"
744
770
  Requires-Dist: pycocoevalcap ; extra == "llm"
745
771
  Requires-Dist: python-dotenv
@@ -756,6 +782,8 @@ Requires-Dist: seaborn
756
782
  Requires-Dist: sentencepiece (>=0.2.0,<0.3.0) ; extra == "all"
757
783
  Requires-Dist: sentencepiece (>=0.2.0,<0.3.0) ; extra == "huggingface"
758
784
  Requires-Dist: sentencepiece (>=0.2.0,<0.3.0) ; extra == "llm"
785
+ Requires-Dist: setuptools (<82) ; extra == "all"
786
+ Requires-Dist: setuptools (<82) ; extra == "credit-risk"
759
787
  Requires-Dist: shap (>=0.46.0) ; extra == "all"
760
788
  Requires-Dist: shap (>=0.46.0) ; extra == "explainability"
761
789
  Requires-Dist: statsmodels (>=0.14.2,<0.15.0) ; extra == "all"
@@ -771,6 +799,7 @@ Requires-Dist: tqdm
771
799
  Requires-Dist: transformers (>=4.32.0,<5.0.0) ; extra == "all"
772
800
  Requires-Dist: transformers (>=4.32.0,<5.0.0) ; extra == "huggingface"
773
801
  Requires-Dist: transformers (>=4.32.0,<5.0.0) ; extra == "llm"
802
+ Requires-Dist: transformers (>=4.32.0,<5.0.0) ; extra == "nlp"
774
803
  Requires-Dist: xgboost (>=1.5.2,<3) ; extra == "all"
775
804
  Requires-Dist: xgboost (>=1.5.2,<3) ; extra == "xgboost"
776
805
  Description-Content-Type: text/markdown
@@ -1,9 +1,9 @@
1
1
  [project]
2
2
  name = "validmind"
3
- version = "2.12.2"
3
+ version = "2.12.4"
4
4
  description = "ValidMind Library"
5
5
  readme = "README.pypi.md"
6
- requires-python = ">=3.9,<3.13"
6
+ requires-python = ">=3.9,<3.15"
7
7
  license = { file = "LICENSE" }
8
8
  authors = [
9
9
  { name = "Andres Rodriguez", email = "andres@validmind.ai" },
@@ -19,7 +19,8 @@ dependencies = [
19
19
  "matplotlib",
20
20
  "mistune (>=3.0.2,<4.0.0)",
21
21
  "nest-asyncio (>=1.6.0,<2.0.0)",
22
- "numpy (>=1.23,<2.0.0)",
22
+ "numpy (>=1.23,<2.0.0) ; python_version < '3.14'",
23
+ "numpy (>=2.3,<3.0.0) ; python_version >= '3.14'",
23
24
  "openai (>=1)",
24
25
  "pandas (>=2.0.3,<3.0.0)",
25
26
  "plotly (>=6.0.0)",
@@ -41,6 +42,8 @@ all = [
41
42
  "transformers (>=4.32.0,<5.0.0)",
42
43
  "pycocoevalcap",
43
44
  "ragas (>=0.2.3,<=0.2.7)",
45
+ "langchain (>=0.2.0,<0.4.0)",
46
+ "langchain-community (>=0.2.0,<0.4.0)",
44
47
  "sentencepiece (>=0.2.0,<0.3.0)",
45
48
  "langchain-openai (>=0.1.8)",
46
49
  "scipy",
@@ -48,12 +51,18 @@ all = [
48
51
  "langdetect",
49
52
  "nltk (>=3.8.1,<4.0.0)",
50
53
  "textblob (>=0.18.0.post0,<0.19.0)",
54
+ "datasets (>=2.10.0,<3.0.0) ; python_version < '3.14'",
55
+ "datasets (>=4.4,<5.0.0) ; python_version >= '3.14'",
51
56
  "evaluate",
52
57
  "rouge (>=1)",
53
58
  "bert-score (>=0.3.13)",
54
- "arch",
59
+ "pyarrow (<16) ; python_version < '3.13'",
60
+ "pyarrow (>=20,<21) ; python_version == '3.13'",
61
+ "pyarrow (>=22,<23) ; python_version >= '3.14'",
62
+ "arch (>=7.0.0)",
55
63
  "shap (>=0.46.0)",
56
64
  "scorecardpy==0.1.9.6",
65
+ "setuptools (<82)",
57
66
  ]
58
67
  huggingface = [
59
68
  "transformers (>=4.32.0,<5.0.0)",
@@ -64,26 +73,48 @@ llm = [
64
73
  "transformers (>=4.32.0,<5.0.0)",
65
74
  "pycocoevalcap",
66
75
  "ragas (>=0.2.3,<=0.2.7)",
76
+ "langchain (>=0.2.0,<0.4.0)",
77
+ "langchain-community (>=0.2.0,<0.4.0)",
78
+ "datasets (>=2.10.0,<3.0.0) ; python_version < '3.14'",
79
+ "datasets (>=4.4,<5.0.0) ; python_version >= '3.14'",
67
80
  "sentencepiece (>=0.2.0,<0.3.0)",
68
81
  "langchain-openai (>=0.1.8)",
69
- "deepeval (>=3.7.0)",
82
+ "pyarrow (<16) ; python_version < '3.13'",
83
+ "pyarrow (>=20,<21) ; python_version == '3.13'",
84
+ "pyarrow (>=22,<23) ; python_version >= '3.14'",
85
+ "deepeval (>=3.7.0,<=3.7.5)",
70
86
  ]
71
87
  nlp = [
72
88
  "langdetect",
73
89
  "nltk (>=3.8.1,<4.0.0)",
74
90
  "textblob (>=0.18.0.post0,<0.19.0)",
91
+ "datasets (>=2.10.0,<3.0.0) ; python_version < '3.14'",
92
+ "datasets (>=4.4,<5.0.0) ; python_version >= '3.14'",
93
+ "transformers (>=4.32.0,<5.0.0)",
75
94
  "evaluate",
76
95
  "rouge (>=1)",
77
96
  "bert-score (>=0.3.13)",
78
- "pyarrow (<16)",
97
+ "pyarrow (<16) ; python_version < '3.13'",
98
+ "pyarrow (>=20,<21) ; python_version == '3.13'",
99
+ "pyarrow (>=22,<23) ; python_version >= '3.14'",
79
100
  ]
80
101
  pytorch = ["torch (>=2.0.0)"]
81
- stats = ["scipy", "statsmodels (>=0.14.2,<0.15.0)", "arch"]
102
+ stats = ["scipy", "statsmodels (>=0.14.2,<0.15.0)", "arch (>=7.0.0)"]
82
103
  xgboost = ["xgboost (>=1.5.2,<3)"]
83
104
  explainability = ["shap (>=0.46.0)"]
84
- credit_risk = ["scorecardpy==0.1.9.6"]
85
- datasets = ["datasets (>=2.10.0,<3.0.0)"]
86
- pii-detection = ["presidio-analyzer", "presidio-structured"]
105
+ credit_risk = ["scorecardpy==0.1.9.6", "setuptools (<82)"]
106
+ datasets = [
107
+ "datasets (>=2.10.0,<3.0.0) ; python_version < '3.14'",
108
+ "datasets (>=4.4,<5.0.0) ; python_version >= '3.14'",
109
+ "pyarrow (<16) ; python_version < '3.13'",
110
+ "pyarrow (>=20,<21) ; python_version == '3.13'",
111
+ "pyarrow (>=22,<23) ; python_version >= '3.14'",
112
+ ]
113
+ pii-detection = [
114
+ "presidio-analyzer ; python_version < '3.14'",
115
+ "presidio-analyzer (<2.2.360) ; python_version >= '3.14'",
116
+ "presidio-structured",
117
+ ]
87
118
 
88
119
  [tool.poetry.group.dev.dependencies]
89
120
  black = "^22.1.0"
@@ -0,0 +1 @@
1
+ __version__ = "2.12.4"
@@ -282,33 +282,23 @@ def init_r_model(
282
282
  """
283
283
  Initialize a VM Model from an R model.
284
284
 
285
- LogisticRegression and LinearRegression models are converted to sklearn models by extracting
286
- the coefficients and intercept from the R model. XGB models are loaded using the xgboost
287
- since xgb models saved in .json or .bin format can be loaded directly with either Python or R.
285
+ The model must first be saved to an .RData file using the R package's
286
+ ``save_model()`` function. This function then uses rpy2 to load the model
287
+ into Python for testing and validation.
288
288
 
289
289
  Args:
290
- model_path (str): The path to the R model saved as an RDS or XGB file.
290
+ model_path (str): The path to the R model saved as an .RData file.
291
291
  input_id (str): The input ID for the model. Defaults to "model".
292
292
 
293
293
  Returns:
294
294
  VMModel: A VM Model instance.
295
295
  """
296
-
297
- # TODO: proper check for supported models
298
- #
299
- # if model.get("method") not in R_MODEL_METHODS:
300
- # raise UnsupportedRModelError(
301
- # "R model method must be one of {}. Got {}".format(
302
- # R_MODEL_METHODS, model.get("method")
303
- # )
304
- # )
305
-
306
- # first we need to load the model using rpy2
307
- # since rpy2 is an extra we need to conditionally import it
308
296
  try:
309
297
  import rpy2.robjects as robjects
310
- except ImportError:
311
- raise MissingRExtrasError()
298
+ except Exception as e:
299
+ raise MissingRExtrasError(
300
+ f"`rpy2` is required to use R models. Import failed: {e}"
301
+ )
312
302
 
313
303
  r = robjects.r
314
304
  loaded_objects = r.load(model_path)
@@ -321,6 +311,14 @@ def init_r_model(
321
311
  input_id=input_id,
322
312
  )
323
313
 
314
+ metadata = get_model_info(vm_model)
315
+ log_input(
316
+ input_id=input_id,
317
+ type="model",
318
+ metadata=metadata,
319
+ )
320
+ input_registry.add(key=input_id, obj=vm_model)
321
+
324
322
  return vm_model
325
323
 
326
324
 
@@ -98,11 +98,10 @@ class RModel(VMModel):
98
98
  Instead, there is a global predict() method that returns the predicted
99
99
  values according to the model type.
100
100
  """
101
- # Use the predict method on the loaded model (assuming the model's name in R is 'model')
102
101
  predicted_probs = self.r.predict(
103
102
  self.model, newdata=new_data_r, type="response"
104
103
  )
105
- return predicted_probs
104
+ return np.array(predicted_probs)
106
105
 
107
106
  def r_xgb_predict(self, new_data_r):
108
107
  """
@@ -114,7 +113,7 @@ class RModel(VMModel):
114
113
  predicted_probs = self.r.predict(
115
114
  self.model, newdata=new_data_r, type="response"
116
115
  )
117
- return predicted_probs
116
+ return np.array(predicted_probs)
118
117
 
119
118
  def predict_proba(self, new_data):
120
119
  """
@@ -127,24 +126,30 @@ class RModel(VMModel):
127
126
  Converts the predicted probabilities to classes
128
127
  """
129
128
  try:
129
+ from rpy2.robjects import conversion, default_converter
130
130
  from rpy2.robjects import pandas2ri
131
131
  except ImportError:
132
132
  raise MissingRExtrasError()
133
133
 
134
- # Activate the pandas conversion for rpy2
135
- pandas2ri.activate()
136
-
137
134
  new_data_class = get_full_class_name(new_data)
138
135
 
139
136
  if new_data_class == "numpy.ndarray":
140
- # We need to reconstruct the DataFrame from the ndarray using the column names
141
- new_data = pd.DataFrame(new_data, columns=self.test_ds.feature_columns)
137
+ # Reconstruct a DataFrame from the ndarray using column names
138
+ # from the model's training data
139
+ try:
140
+ model_terms = list(self.r.attr(self.model.rx2["terms"], "term.labels"))
141
+ new_data = pd.DataFrame(new_data, columns=model_terms)
142
+ except Exception:
143
+ # Fallback: use generic column names
144
+ new_data = pd.DataFrame(new_data)
142
145
  elif new_data_class != "pandas.core.frame.DataFrame":
143
146
  raise ValueError(
144
147
  f"new_data must be a DataFrame or ndarray. Got {new_data_class}"
145
148
  )
146
149
 
147
- new_data_r = pandas2ri.py2rpy(new_data)
150
+ # Use context manager for pandas conversion (activate/deactivate is deprecated)
151
+ with conversion.localconverter(default_converter + pandas2ri.converter):
152
+ new_data_r = conversion.get_conversion().py2rpy(new_data)
148
153
 
149
154
  if self.__model_class() == "xgb.Booster":
150
155
  predicted_probs = self.r_xgb_predict(new_data_r)
@@ -190,20 +190,37 @@ def _create_section_html(tree: List[Dict[str, Any]]) -> str:
190
190
  return StatefulHTMLRenderer.render_accordion(accordion_items, accordion_titles)
191
191
 
192
192
 
193
+ def _print_section_tree(sections: List[Dict[str, Any]], indent: int = 0) -> None:
194
+ """Print a plain-text representation of the template section tree."""
195
+ prefix = " " * indent
196
+ for i, section in enumerate(sections):
197
+ number = f"{i + 1}." if indent == 0 else ""
198
+ print(f"{prefix}{number} {section['title']} ('{section['id']}')")
199
+
200
+ for content in section.get("contents", []):
201
+ content_type = CONTENT_TYPE_MAP.get(
202
+ content["content_type"], content["content_type"]
203
+ )
204
+ print(f"{prefix} - [{content_type}] {content['content_id']}")
205
+
206
+ if section.get("sections"):
207
+ _print_section_tree(section["sections"], indent + 1)
208
+
209
+
193
210
  def preview_template(template: str) -> None:
194
- """Preview a template in Jupyter Notebook.
211
+ """Preview a template in Jupyter Notebook or plain text.
195
212
 
196
213
  Args:
197
214
  template (dict): The template to preview.
198
215
  """
216
+ section_tree = _convert_sections_to_section_tree(template["sections"])
217
+
199
218
  if not is_notebook():
200
- logger.warning("preview_template() only works in Jupyter Notebook")
219
+ _print_section_tree(section_tree)
201
220
  return
202
221
 
203
222
  html_content = StatefulHTMLRenderer.get_base_css()
204
- html_content += _create_section_html(
205
- _convert_sections_to_section_tree(template["sections"])
206
- )
223
+ html_content += _create_section_html(section_tree)
207
224
  display(html_content)
208
225
 
209
226
 
@@ -359,6 +359,9 @@ def format_number(number):
359
359
 
360
360
  def format_dataframe(df: pd.DataFrame) -> pd.DataFrame:
361
361
  """Format a pandas DataFrame for display purposes."""
362
+ if not is_notebook():
363
+ return df
364
+
362
365
  df = df.style.set_properties(**{"text-align": "left"}).hide(axis="index")
363
366
  return df.set_table_styles([dict(selector="th", props=[("text-align", "left")])])
364
367
 
@@ -509,7 +512,7 @@ def get_dataset_info(dataset):
509
512
 
510
513
 
511
514
  def preview_test_config(config):
512
- """Preview test configuration in a collapsible HTML section.
515
+ """Preview test configuration in a collapsible HTML section or plain text.
513
516
 
514
517
  Args:
515
518
  config (dict): Test configuration dictionary.
@@ -521,6 +524,10 @@ def preview_test_config(config):
521
524
  logger.error(f"JSON serialization failed: {e}")
522
525
  return
523
526
 
527
+ if not is_notebook():
528
+ print(formatted_json)
529
+ return
530
+
524
531
  collapsible_html = f"""
525
532
  <script>
526
533
  function toggleOutput() {{
@@ -537,6 +544,9 @@ def preview_test_config(config):
537
544
 
538
545
  def display(widget_or_html, syntax_highlighting=True, mathjax=True):
539
546
  """Display HTML content with extra goodies (syntax highlighting, MathJax, etc.)."""
547
+ if not is_notebook():
548
+ return
549
+
540
550
  if hasattr(widget_or_html, "to_html"):
541
551
  html_content = widget_or_html.to_html()
542
552
  ipy_display(HTML(html_content))
@@ -10,6 +10,7 @@ import uuid
10
10
 
11
11
  from IPython.display import HTML, display, update_display
12
12
 
13
+ from ..utils import is_notebook
13
14
  from .html_renderer import StatefulHTMLRenderer
14
15
 
15
16
 
@@ -33,6 +34,10 @@ class HTMLProgressBar:
33
34
  def display(self):
34
35
  """Display the progress bar."""
35
36
  if not self._displayed:
37
+ if not is_notebook():
38
+ self._displayed = True
39
+ return
40
+
36
41
  html_content = StatefulHTMLRenderer.render_live_progress_bar(
37
42
  max_value=self.max_value,
38
43
  description=self.description,
@@ -57,6 +62,9 @@ class HTMLProgressBar:
57
62
 
58
63
  def _update_fallback(self):
59
64
  """Fallback method to update progress bar by replacing the entire HTML."""
65
+ if not is_notebook():
66
+ return
67
+
60
68
  html_content = StatefulHTMLRenderer.render_progress_bar(
61
69
  value=self.value,
62
70
  max_value=self.max_value,
@@ -74,7 +82,7 @@ class HTMLProgressBar:
74
82
 
75
83
  def close(self):
76
84
  """Close/hide the progress bar."""
77
- if self._displayed:
85
+ if self._displayed and is_notebook():
78
86
  final_html = StatefulHTMLRenderer.render_progress_bar(
79
87
  value=self.value,
80
88
  max_value=self.max_value,
@@ -101,13 +109,17 @@ class HTMLLabel:
101
109
  def display(self):
102
110
  """Display the label."""
103
111
  if not self._displayed:
112
+ self._displayed = True
113
+
114
+ if not is_notebook():
115
+ return
116
+
104
117
  html_content = f"""
105
118
  <div class="vm-label" id="{self.label_id}" style="font-weight: bold; margin: 5px 0;">
106
119
  {self.value}
107
120
  </div>
108
121
  """
109
122
  display(HTML(html_content), display_id=self._display_id)
110
- self._displayed = True
111
123
 
112
124
  def update(self, value: str):
113
125
  """Update the label text.
@@ -117,7 +129,7 @@ class HTMLLabel:
117
129
  """
118
130
  self.value = value
119
131
 
120
- if self._displayed:
132
+ if self._displayed and is_notebook():
121
133
  update_script = f"""
122
134
  <script>
123
135
  var labelElement = document.getElementById('{self.label_id}');
@@ -152,10 +164,17 @@ class HTMLBox:
152
164
  def display(self):
153
165
  """Display the box and its children."""
154
166
  if not self._displayed:
155
- child_html_parts = []
167
+ self._displayed = True
168
+
156
169
  for child in self.children:
157
170
  if hasattr(child, "display"):
158
171
  child.display()
172
+
173
+ if not is_notebook():
174
+ return
175
+
176
+ child_html_parts = []
177
+ for child in self.children:
159
178
  if hasattr(child, "bar_id"):
160
179
  child_html_parts.append(f'<div id="{child.bar_id}"></div>')
161
180
  elif hasattr(child, "label_id"):
@@ -167,4 +186,3 @@ class HTMLBox:
167
186
  </div>
168
187
  """
169
188
  display(HTML(html_content), display_id=self._display_id)
170
- self._displayed = True
@@ -1 +0,0 @@
1
- __version__ = "2.12.2"
File without changes
File without changes