Open
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #63 +/- ##
==========================================
- Coverage 89.19% 84.04% -5.16%
==========================================
Files 106 149 +43
Lines 11152 14237 +3085
==========================================
+ Hits 9947 11965 +2018
- Misses 1205 2272 +1067
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
ThomasMeissnerDS
approved these changes
Mar 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
BlueCast 3.0 — Major Release
Summary
This is a comprehensive release that adds 7 new modules, fixes 15+ bugs, improves code quality across the entire codebase, and introduces 11 example scripts with synthetic data. The core library remains lightweight — all new heavy features (AI agents, model serving) are optional extras.
New Features
1. Unified Interface (
BlueCastAuto)A single entry point replaces the need to choose between 4 blueprint classes. Set
class_problemanduse_cross_validation— the right backend is selected automatically.2. Ensemble Strategies (
bluecast/ensemble/)CV pipelines now support three ensemble strategies via
EnsembleConfig:3. Group-Conditional Conformal Prediction
Conformal prediction now supports per-group calibration. Different subgroups (e.g., product categories, regions) get uncertainty intervals tailored to their specific error distributions.
Includes new evaluation functions:
prediction_interval_coverage_by_group(),prediction_interval_spans_by_group(),conformal_fairness_check().4. Fairness Evaluation (
bluecast/evaluation/fairness.py)FairnessAuditorcomputes demographic parity, equalized odds, equal opportunity, predictive parity, and AUC parity for classification; MAE/RMSE ratios for regression. Integrates intofit_evalviaTrainingConfig.fairness_sensitive_columns.5. BlueCastAI — Multi-Agent LLM-Powered AutoML (
bluecast/ai/, optional)An optional module (
pip install bluecast[ai]) that uses a multi-agent system to analyze data, engineer features, and build optimized pipelines — guided by natural language prompts. Supports Gemini, OpenAI, and Anthropic.6. Model Serving (
bluecast/serve/, optional)One-command API deployment (
pip install bluecast[serve]). Auto-generates request schemas from the pipeline's column metadata.7. Improved Linear/Logistic Regression
LogisticRegressionModelnow searches L1, L2, and ElasticNet with wider C rangeRegularizedRegressionModelauto-selects between Ridge, Lasso, ElasticNetPreprocessingForLinearModelsgains configurable scaler, imputation strategy, collinearity threshold, and optional polynomial features viaLinearModelPreprocessingConfigLinearRegressionModel.predict()return type fixed to matchBaseClassMlModelBug Fixes
_apply_pandas_query_filter:replace("=", "==")was corrupting>=,<=,!=operators. Fixed with regex.detect_categorical_leakage: was mutating the caller's DataFrame in-place.adversarial_validation: was mutating input DataFrames. Now copies first.InFrequentCategoryEncoder.transform: was mutating input. Now copies.XgboostModel.fit:params.pop("steps")was mutating config permanently. Now uses.get().FeatureTypeDetector.fit_transform_feature_types: datetime casting useddfinstead ofdf_clean.eval_metrics.py: error message referencedprobas_best_classinstead ofprobas_target_class.plot_theil_u_heatmap: return type declared asgo.Figurebut actually returnsTuple[go.Figure, np.ndarray].detect_leakage_via_correlation: docstring said "returns True/False" but returns a list.RegressionEvalWrapper: docstring said "classification metrics".eval_regressor: usedprint()instead oflogging.info().univariate_plots/plot_ecdf: crashed on columns with NaN values due tonp.arangewith NaN bounds.shap_explanations: added compatibility guard for shap + xgboost >= 3.0 segfault, with fallback to KernelExplainer.correlation_heatmap/correlation_to_target: addednumeric_only=Trueto prevent pandas deprecation warnings.EDA Improvements
univariate_plots,bi_variate_plots,plot_count_pairs,plot_classification_target_distribution_within_categories,plot_error_distributions) now return figures and acceptshow=Trueparameter instead of always callingfig.show()find_bind_with_with_freedman_diaconisrenamed tofind_bin_width_with_freedman_diaconis(old name kept as deprecated alias)conditional_entropyandtheil_u— added type hints and docstringsplot_tsne— added NaN handling (was crashing), type hints forperplexity/random_stateplot_benfords_law— now reports chi-square p-value when scipy is availablefunctools.wrapsto preserve function metadata_create_benford_plot_classificationand_create_category_frequency_plot_classificationnow delegate to shared implementations)bluecast/eda/__init__.pywith curated exports for all 27 public functionsprint()withwarnings.warn()for optional import failuresCode Quality
bluecast/__init__.pywith__all__exports for clean public APITrainingConfig.fairness_sensitive_columnswith docstringExamples
Replaced 10 outdated Jupyter notebooks (requiring external Kaggle datasets) with 11 self-contained Python scripts using synthetic data:
00_full_showcase.py01_quick_start.py02_cross_validation_and_ensembles.py03_conformal_prediction.py04_linear_models.py05_unified_interface.py06_advanced_customization.py07_fairness.py08_eda.py09_bluecast_ai.py10_serving.pyTests
Added 105+ new tests across 7 test files:
test_fairness.py— 16 tests for FairnessAuditortest_ensemble.py— 20 tests for hill climbing, stacking, mean blendingtest_unified.py— 12 tests for BlueCastAutotest_conformal_group.py— 11 tests for group-conditional conformal predictiontest_ai_module.py— 30 tests for AI config, context, tools, resulttest_serve.py— 16 tests for schemas, app factory, exportertest_custom_model_recipes.pyandtest_preprocessing_recipes.pyfor new APIsDependencies
No new mandatory dependencies. All new features use optional extras: