validmind 2.12.1__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.
- {validmind-2.12.1 → validmind-2.12.4}/PKG-INFO +38 -9
- {validmind-2.12.1 → validmind-2.12.4}/pyproject.toml +41 -10
- {validmind-2.12.1 → validmind-2.12.4}/validmind/__init__.py +1 -1
- validmind-2.12.4/validmind/__version__.py +1 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/api_client.py +2 -4
- {validmind-2.12.1 → validmind-2.12.4}/validmind/client.py +16 -18
- {validmind-2.12.1 → validmind-2.12.4}/validmind/models/r_model.py +14 -9
- {validmind-2.12.1 → validmind-2.12.4}/validmind/template.py +22 -5
- {validmind-2.12.1 → validmind-2.12.4}/validmind/utils.py +15 -1
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/dataset/dataset.py +15 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/html_progress.py +23 -5
- validmind-2.12.1/validmind/__version__.py +0 -1
- {validmind-2.12.1 → validmind-2.12.4}/LICENSE +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/README.pypi.md +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/ai/test_descriptions.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/ai/utils.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/client_config.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/classification/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/classification/customer_churn.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/classification/datasets/bank_customer_churn.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/classification/datasets/taiwan_credit.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/classification/taiwan_credit.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/cluster/digits.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/credit_risk/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/credit_risk/datasets/lending_club_biased.csv.gz +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/credit_risk/datasets/lending_club_loan_data_2007_2014_clean.csv.gz +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/credit_risk/lending_club.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/credit_risk/lending_club_bias.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/llm/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/llm/agent_dataset.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/llm/rag/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_1.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_2.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_3.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_4.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/llm/rag/datasets/rfp_existing_questions_client_5.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/llm/rag/rfp.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/nlp/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/nlp/cnn_dailymail.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/nlp/datasets/Covid_19.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/nlp/datasets/cnn_dailymail_100_with_predictions.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/nlp/datasets/cnn_dailymail_500_with_predictions.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/nlp/datasets/sentiments_with_predictions.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/nlp/twitter_covid_19.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/california_housing.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/california_housing.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/CPIAUCSL.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/CSUSHPISA.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/DRSFRMACBS.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/FEDFUNDS.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/GDP.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/GDPC1.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/GS10.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/GS3.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/GS5.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/MORTGAGE30US.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred/UNRATE.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred_loan_rates.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred_loan_rates_test_1.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred_loan_rates_test_2.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred_loan_rates_test_3.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred_loan_rates_test_4.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/fred_loan_rates_test_5.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/datasets/leanding_club_loan_rates.csv +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/fred.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/fred_timeseries.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/generate_california_housing_csv.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/lending_club.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/models/fred_loan_rates_model_1.pkl +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/models/fred_loan_rates_model_2.pkl +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/models/fred_loan_rates_model_3.pkl +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/models/fred_loan_rates_model_4.pkl +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/regression/models/fred_loan_rates_model_5.pkl +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/errors.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/experimental/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/experimental/agents.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/html_templates/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/html_templates/content_blocks.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/input_registry.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/logging.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/models/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/models/foundation.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/models/function.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/models/huggingface.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/models/metadata.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/models/pipeline.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/models/pytorch.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/models/sklearn.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/classification/AbsoluteError.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/classification/BrierScore.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/classification/CalibrationError.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/classification/ClassBalance.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/classification/Confidence.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/classification/Correctness.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/classification/LogLoss.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/classification/OutlierScore.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/classification/ProbabilityError.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/classification/Uncertainty.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/classification/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/llm/deepeval/AnswerRelevancy.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/llm/deepeval/ArgumentCorrectness.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/llm/deepeval/Bias.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/llm/deepeval/ContextualPrecision.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/llm/deepeval/ContextualRecall.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/llm/deepeval/ContextualRelevancy.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/llm/deepeval/Faithfulness.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/llm/deepeval/GEval.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/llm/deepeval/Hallucination.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/llm/deepeval/PlanAdherence.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/llm/deepeval/PlanQuality.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/llm/deepeval/Summarization.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/llm/deepeval/TaskCompletion.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/llm/deepeval/ToolCorrectness.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/scorers/llm/deepeval/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/test_suites/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/test_suites/classifier.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/test_suites/cluster.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/test_suites/embeddings.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/test_suites/llm.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/test_suites/nlp.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/test_suites/parameters_optimization.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/test_suites/regression.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/test_suites/statsmodels_timeseries.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/test_suites/summarization.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/test_suites/tabular_datasets.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/test_suites/text_data.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/test_suites/time_series.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/__types__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/_store.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/comparison.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/ACFandPACFPlot.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/ADF.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/AutoAR.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/AutoMA.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/AutoStationarity.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/BivariateScatterPlots.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/BoxPierce.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/ChiSquaredFeaturesTable.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/ClassImbalance.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/DatasetDescription.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/DatasetSplit.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/DescriptiveStatistics.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/DickeyFullerGLS.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/Duplicates.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/EngleGrangerCoint.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/FeatureTargetCorrelationPlot.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/HighCardinality.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/HighPearsonCorrelation.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/IQROutliersBarPlot.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/IQROutliersTable.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/IsolationForestOutliers.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/JarqueBera.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/KPSS.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/LJungBox.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/LaggedCorrelationHeatmap.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/MissingValues.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/MissingValuesBarPlot.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/MutualInformation.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/PearsonCorrelationMatrix.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/PhillipsPerronArch.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/ProtectedClassesCombination.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/ProtectedClassesDescription.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/ProtectedClassesDisparity.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/ProtectedClassesThresholdOptimizer.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/RollingStatsPlot.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/RunsTest.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/ScatterPlot.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/ScoreBandDefaultRates.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/SeasonalDecompose.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/ShapiroWilk.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/Skewness.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/SpreadPlot.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/TabularCategoricalBarPlots.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/TabularDateTimeHistograms.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/TabularDescriptionTables.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/TabularNumericalHistograms.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/TargetRateBarPlots.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/TimeSeriesDescription.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/TimeSeriesDescriptiveStatistics.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/TimeSeriesFrequency.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/TimeSeriesHistogram.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/TimeSeriesLinePlot.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/TimeSeriesMissingValues.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/TimeSeriesOutliers.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/TooManyZeroValues.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/UniqueRows.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/WOEBinPlots.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/WOEBinTable.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/ZivotAndrewsArch.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/nlp/CommonWords.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/nlp/Hashtags.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/nlp/LanguageDetection.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/nlp/Mentions.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/nlp/PolarityAndSubjectivity.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/nlp/Punctuations.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/nlp/Sentiment.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/nlp/StopWords.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/nlp/TextDescription.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/nlp/Toxicity.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/data_validation/nlp/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/decorator.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/load.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/BertScore.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/BleuScore.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/ClusterSizeDistribution.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/ContextualRecall.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/FeaturesAUC.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/MeteorScore.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/ModelMetadata.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/ModelPredictionResiduals.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/RegardScore.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/RegressionResidualsPlot.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/RougeScore.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/TimeSeriesPredictionWithCI.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/TimeSeriesPredictionsPlot.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/TimeSeriesR2SquareBySegments.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/TokenDisparity.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/ToxicityScore.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/ClusterDistribution.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/CosineSimilarityComparison.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/CosineSimilarityDistribution.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/CosineSimilarityHeatmap.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/DescriptiveAnalytics.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/EmbeddingsVisualization2D.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/EuclideanDistanceComparison.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/EuclideanDistanceHeatmap.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/PCAComponentsPairwisePlots.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/StabilityAnalysisKeyword.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/StabilityAnalysisRandomNoise.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/StabilityAnalysisSynonyms.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/StabilityAnalysisTranslation.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/TSNEComponentsPairwisePlots.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/embeddings/utils.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/ragas/AnswerCorrectness.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/ragas/AspectCritic.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/ragas/ContextEntityRecall.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/ragas/ContextPrecision.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/ragas/ContextPrecisionWithoutReference.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/ragas/ContextRecall.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/ragas/Faithfulness.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/ragas/NoiseSensitivity.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/ragas/ResponseRelevancy.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/ragas/SemanticSimilarity.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/ragas/utils.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/AdjustedMutualInformation.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/AdjustedRandIndex.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/CalibrationCurve.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ClassifierPerformance.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ClassifierThresholdOptimization.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ClusterCosineSimilarity.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ClusterPerformanceMetrics.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/CompletenessScore.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ConfusionMatrix.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/FeatureImportance.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/FowlkesMallowsScore.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/HomogeneityScore.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/HyperParametersTuning.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/KMeansClustersOptimization.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/MinimumAccuracy.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/MinimumF1Score.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/MinimumROCAUCScore.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ModelParameters.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ModelsPerformanceComparison.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/OverfitDiagnosis.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/PermutationFeatureImportance.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/PopulationStabilityIndex.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/PrecisionRecallCurve.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ROCCurve.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/RegressionErrors.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/RegressionErrorsComparison.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/RegressionPerformance.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/RegressionR2Square.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/RegressionR2SquareComparison.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/RobustnessDiagnosis.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/SHAPGlobalImportance.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/ScoreProbabilityAlignment.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/SilhouettePlot.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/TrainingTestDegradation.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/VMeasure.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/WeakspotsDiagnosis.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/sklearn/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/AutoARIMA.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/CumulativePredictionProbabilities.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/DurbinWatsonTest.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/GINITable.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/KolmogorovSmirnov.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/Lilliefors.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/PredictionProbabilitiesHistogram.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/RegressionCoeffs.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/RegressionFeatureSignificance.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlot.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/RegressionModelForecastPlotLevels.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/RegressionModelSensitivityPlot.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/RegressionModelSummary.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/RegressionPermutationFeatureImportance.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/ScorecardHistogram.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/model_validation/statsmodels/statsutils.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/CalibrationCurveDrift.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/ClassDiscriminationDrift.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/ClassImbalanceDrift.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/ClassificationAccuracyDrift.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/ConfusionMatrixDrift.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/CumulativePredictionProbabilitiesDrift.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/FeatureDrift.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/PredictionAcrossEachFeature.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/PredictionCorrelation.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/PredictionProbabilitiesHistogramDrift.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/PredictionQuantilesAcrossFeatures.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/ROCCurveDrift.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/ScoreBandsDrift.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/ScorecardHistogramDrift.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/ongoing_monitoring/TargetPredictionDistributionPlot.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/output.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/plots/BoxPlot.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/plots/CorrelationHeatmap.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/plots/HistogramPlot.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/plots/ViolinPlot.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/plots/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/prompt_validation/Bias.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/prompt_validation/Clarity.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/prompt_validation/Conciseness.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/prompt_validation/Delimitation.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/prompt_validation/NegativeInstruction.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/prompt_validation/Robustness.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/prompt_validation/Specificity.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/prompt_validation/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/prompt_validation/ai_powered_test.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/run.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/stats/CorrelationAnalysis.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/stats/DescriptiveStats.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/stats/NormalityTests.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/stats/OutlierDetection.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/stats/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/test_providers.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/tests/utils.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/unit_metrics/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/unit_metrics/classification/Accuracy.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/unit_metrics/classification/F1.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/unit_metrics/classification/Precision.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/unit_metrics/classification/ROC_AUC.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/unit_metrics/classification/Recall.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/unit_metrics/regression/AdjustedRSquaredScore.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/unit_metrics/regression/GiniCoefficient.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/unit_metrics/regression/HuberLoss.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/unit_metrics/regression/KolmogorovSmirnovStatistic.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/unit_metrics/regression/MeanAbsoluteError.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/unit_metrics/regression/MeanAbsolutePercentageError.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/unit_metrics/regression/MeanBiasDeviation.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/unit_metrics/regression/MeanSquaredError.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/unit_metrics/regression/QuantileLoss.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/unit_metrics/regression/RSquaredScore.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/unit_metrics/regression/RootMeanSquaredError.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/dataset/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/dataset/utils.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/figure.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/html_renderer.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/input.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/model.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/result/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/result/pii_filter.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/result/result.jinja +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/result/result.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/result/utils.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/test_suite/__init__.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/test_suite/runner.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/test_suite/summary.py +0 -0
- {validmind-2.12.1 → validmind-2.12.4}/validmind/vm_models/test_suite/test.py +0 -0
- {validmind-2.12.1 → 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.
|
|
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.
|
|
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 == "
|
|
721
|
-
Requires-Dist:
|
|
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 == "
|
|
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.
|
|
3
|
+
version = "2.12.4"
|
|
4
4
|
description = "ValidMind Library"
|
|
5
5
|
readme = "README.pypi.md"
|
|
6
|
-
requires-python = ">=3.9,<3.
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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 = [
|
|
86
|
-
|
|
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"
|
|
@@ -24,7 +24,7 @@ vm.init(
|
|
|
24
24
|
api_host = "https://app.prod.validmind.ai/api/v1/tracking/tracking",
|
|
25
25
|
api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
|
26
26
|
api_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
|
27
|
-
|
|
27
|
+
model = "<model-identifier>"
|
|
28
28
|
)
|
|
29
29
|
```
|
|
30
30
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.12.4"
|
|
@@ -193,7 +193,6 @@ def _ping() -> Dict[str, Any]:
|
|
|
193
193
|
|
|
194
194
|
|
|
195
195
|
def init(
|
|
196
|
-
project: Optional[str] = None,
|
|
197
196
|
api_key: Optional[str] = None,
|
|
198
197
|
api_secret: Optional[str] = None,
|
|
199
198
|
api_host: Optional[str] = None,
|
|
@@ -210,7 +209,6 @@ def init(
|
|
|
210
209
|
retrieve them from the environment variables `VM_API_KEY` and `VM_API_SECRET`.
|
|
211
210
|
|
|
212
211
|
Args:
|
|
213
|
-
project (str, optional): The project CUID. Alias for model. Defaults to None. [DEPRECATED]
|
|
214
212
|
model (str, optional): The model CUID. Defaults to None.
|
|
215
213
|
api_key (str, optional): The API key. Defaults to None.
|
|
216
214
|
api_secret (str, optional): The API secret. Defaults to None.
|
|
@@ -226,9 +224,9 @@ def init(
|
|
|
226
224
|
if api_key == "...":
|
|
227
225
|
# special case to detect when running a notebook placeholder (...)
|
|
228
226
|
# will override with environment variables for easier local development
|
|
229
|
-
api_host = api_key = api_secret =
|
|
227
|
+
api_host = api_key = api_secret = model = None
|
|
230
228
|
|
|
231
|
-
_model_cuid =
|
|
229
|
+
_model_cuid = model or os.getenv("VM_API_MODEL")
|
|
232
230
|
if _model_cuid is None:
|
|
233
231
|
raise MissingModelIdError()
|
|
234
232
|
|
|
@@ -282,33 +282,23 @@ def init_r_model(
|
|
|
282
282
|
"""
|
|
283
283
|
Initialize a VM Model from an R model.
|
|
284
284
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
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
|
|
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
|
|
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
|
-
#
|
|
141
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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))
|
|
@@ -564,6 +574,10 @@ def md_to_html(md: str, mathml=False) -> str:
|
|
|
564
574
|
plugins=["math", "table", "strikethrough", "footnotes"]
|
|
565
575
|
)(md)
|
|
566
576
|
|
|
577
|
+
# Wrap <table> elements in <figure class="table"> for CKEditor compatibility
|
|
578
|
+
html = re.sub(r"<table>", '<figure class="table"><table>', html)
|
|
579
|
+
html = re.sub(r"</table>", "</table></figure>", html)
|
|
580
|
+
|
|
567
581
|
if not mathml:
|
|
568
582
|
return html
|
|
569
583
|
|
|
@@ -885,6 +885,21 @@ class VMDataset(VMInput):
|
|
|
885
885
|
else:
|
|
886
886
|
return as_df(self._df[columns]).copy()
|
|
887
887
|
|
|
888
|
+
def get_numeric_columns(self) -> List[str]:
|
|
889
|
+
"""
|
|
890
|
+
Returns the names of all columns in the dataset that have numeric dtype.
|
|
891
|
+
|
|
892
|
+
Unlike feature_columns_numeric, this includes every column in the dataset
|
|
893
|
+
(target, extra columns, prediction columns, etc.) that is numeric.
|
|
894
|
+
|
|
895
|
+
Returns:
|
|
896
|
+
List[str]: The names of all numeric columns in the dataset.
|
|
897
|
+
"""
|
|
898
|
+
dtypes = self._df.dtypes
|
|
899
|
+
return dtypes[
|
|
900
|
+
dtypes.apply(lambda x: pd.api.types.is_numeric_dtype(x))
|
|
901
|
+
].index.tolist()
|
|
902
|
+
|
|
888
903
|
@property
|
|
889
904
|
def x(self) -> np.ndarray:
|
|
890
905
|
"""
|
|
@@ -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
|
-
|
|
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.1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{validmind-2.12.1 → validmind-2.12.4}/validmind/datasets/classification/datasets/taiwan_credit.csv
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|