churnkit 0.76.0a1__tar.gz → 0.76.0a2__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.
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/PKG-INFO +1 -1
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/pyproject.toml +1 -1
- churnkit-0.76.0a2/scripts/.claude/settings.local.json +9 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/__init__.py +1 -1
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/databricks_init.py +12 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/temporal_pattern_analyzer.py +0 -1
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/time_series_profiler.py +0 -1
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/time_window_aggregator.py +0 -1
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/.gitignore +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/LICENSE +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/README.md +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/constraints/.gitkeep +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/00_start_here.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/01_data_discovery.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/01a_a_temporal_text_deep_dive.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/01a_temporal_deep_dive.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/01b_temporal_quality.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/01c_temporal_patterns.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/01d_event_aggregation.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/02_column_deep_dive.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/02a_text_columns_deep_dive.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/03_quality_assessment.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/04_relationship_analysis.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/05_multi_dataset.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/06_feature_opportunities.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/07_modeling_readiness.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/08_baseline_experiments.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/09_business_alignment.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/10_spec_generation.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/11_scoring_validation.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/12_view_documentation.ipynb +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/README.md +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/data/create_snapshot.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/data/generate_retail_dataset.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/data/generate_test_data.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/data/migrate_parquet_to_delta.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/data/migrate_to_temporal.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/databricks/build_wheel.sh +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/databricks/capture_runtime.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/databricks/dbr_init.sh +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/databricks/generate_constraints.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/databricks/notebook_setup.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/notebooks/clean_notebook_outputs.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/notebooks/export_tutorial_html.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/notebooks/init_project.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/notebooks/plotly_image_preprocessor.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/notebooks/run_exploration.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/notebooks/test_notebooks.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/release.sh +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/templates/tutorial_html/conf.json +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/templates/tutorial_html/index.html.j2 +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/scripts/update_notebook_paths.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/auto_explorer/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/auto_explorer/exploration_manager.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/auto_explorer/explorer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/auto_explorer/findings.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/auto_explorer/layered_recommendations.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/auto_explorer/recommendation_builder.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/auto_explorer/recommendations.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/business/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/business/ab_test_designer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/business/fairness_analyzer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/business/intervention_matcher.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/business/report_generator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/business/risk_profile.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/business/roi_analyzer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/diagnostics/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/diagnostics/calibration_analyzer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/diagnostics/cv_analyzer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/diagnostics/error_analyzer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/diagnostics/leakage_detector.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/diagnostics/noise_tester.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/diagnostics/overfitting_analyzer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/diagnostics/segment_analyzer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/discovery/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/discovery/config_generator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/discovery/discovery_flow.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/discovery/type_inferencer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/interpretability/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/interpretability/cohort_analyzer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/interpretability/counterfactual.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/interpretability/individual_explainer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/interpretability/pdp_generator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/interpretability/shap_explainer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/jupyter_save_hook.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/notebook_html_exporter.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/notebook_progress.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/plotly_preprocessor.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/base.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/cleaning/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/cleaning/consistency.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/cleaning/deduplicate.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/cleaning/impute.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/cleaning/outlier.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/datetime/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/datetime/extract.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/encoding/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/encoding/categorical.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/pipeline.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/registry.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/selection/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/selection/drop_column.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/transform/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/transform/power.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/transform/scale.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/visualization/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/visualization/chart_builder.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/visualization/console.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/visualization/display.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/visualization/number_formatter.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/artifacts/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/artifacts/fit_artifact_registry.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/cli.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/compat/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/compat/detection.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/compat/ops.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/compat/pandas_backend.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/compat/spark_backend.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/components/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/components/base.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/components/components/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/components/components/deployer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/components/components/explainer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/components/components/feature_eng.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/components/components/ingester.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/components/components/profiler.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/components/components/trainer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/components/components/transformer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/components/components/validator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/components/enums.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/components/orchestrator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/components/registry.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/config/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/config/column_config.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/config/experiments.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/config/pipeline_config.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/config/source_config.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/utils/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/utils/leakage.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/utils/severity.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/utils/statistics.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/base.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/cell_builder.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/config.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/databricks_generator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/local_generator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/project_init.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/runner.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/script_generator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/stages/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/stages/base_stage.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/stages/s01_ingestion.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/stages/s02_profiling.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/stages/s03_cleaning.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/stages/s04_transformation.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/stages/s05_feature_engineering.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/stages/s06_feature_selection.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/stages/s07_model_training.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/stages/s08_deployment.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/stages/s09_monitoring.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/stages/s10_batch_inference.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/stages/s11_feature_store.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/orchestration/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/orchestration/code_generator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/orchestration/context.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/orchestration/data_materializer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/orchestration/databricks_exporter.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/orchestration/doc_generator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/pipeline_generator/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/pipeline_generator/findings_parser.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/pipeline_generator/generator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/pipeline_generator/models.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/pipeline_generator/renderer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/spec_generator/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/spec_generator/databricks_generator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/spec_generator/generic_generator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/spec_generator/mlflow_pipeline_generator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/spec_generator/pipeline_spec.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/base.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/factory.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/feature_store/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/feature_store/base.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/feature_store/databricks.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/feature_store/feast_adapter.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/feature_store/local.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/mlflow/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/mlflow/base.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/mlflow/databricks.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/mlflow/experiment_tracker.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/mlflow/local.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/storage/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/storage/base.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/storage/databricks.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/storage/local.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/feature_store/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/feature_store/definitions.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/feature_store/manager.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/feature_store/registry.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/iteration/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/iteration/context.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/iteration/feedback_collector.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/iteration/orchestrator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/iteration/recommendation_tracker.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/iteration/signals.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/llm_context/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/llm_context/context_builder.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/llm_context/prompts.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/streaming/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/streaming/batch_integration.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/streaming/early_warning_model.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/streaming/event_schema.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/streaming/online_store_writer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/streaming/realtime_scorer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/streaming/trigger_engine.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/streaming/window_aggregator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/cleaning/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/cleaning/base.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/cleaning/missing_handler.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/cleaning/outlier_handler.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/deployment/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/deployment/batch_scorer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/deployment/champion_challenger.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/deployment/model_registry.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/deployment/retraining_trigger.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/features/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/features/behavioral_features.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/features/customer_segmentation.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/features/feature_definitions.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/features/feature_engineer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/features/feature_manifest.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/features/feature_selector.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/features/interaction_features.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/features/temporal_features.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/ingestion/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/ingestion/load_result.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/ingestion/loaders.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/ingestion/source_registry.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/modeling/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/modeling/baseline_trainer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/modeling/cross_validator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/modeling/data_splitter.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/modeling/feature_scaler.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/modeling/hyperparameter_tuner.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/modeling/imbalance_handler.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/modeling/mlflow_logger.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/modeling/model_comparator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/modeling/model_evaluator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/modeling/threshold_optimizer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/monitoring/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/monitoring/alert_manager.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/monitoring/drift_detector.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/monitoring/performance_monitor.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/preprocessing/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/preprocessing/transformer_manager.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/categorical_distribution.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/categorical_target_analyzer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/column_profiler.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/distribution_analysis.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/drift_detector.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/feature_capacity.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/pattern_analysis_config.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/profile_result.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/quality_checks.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/relationship_detector.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/relationship_recommender.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/report_generator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/scd_analyzer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/segment_analyzer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/segment_aware_outlier.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/target_level_analyzer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/temporal_analyzer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/temporal_coverage.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/temporal_feature_analyzer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/temporal_feature_engineer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/temporal_quality_checks.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/temporal_target_analyzer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/text_embedder.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/text_processor.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/text_reducer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/type_detector.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/profiling/window_recommendation.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/temporal/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/temporal/access_guard.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/temporal/cutoff_analyzer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/temporal/data_preparer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/temporal/point_in_time_join.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/temporal/point_in_time_registry.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/temporal/scenario_detector.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/temporal/snapshot_manager.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/temporal/synthetic_coordinator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/temporal/timestamp_discovery.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/temporal/timestamp_manager.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/transformation/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/transformation/binary_handler.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/transformation/categorical_encoder.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/transformation/datetime_transformer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/transformation/numeric_transformer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/transformation/pipeline.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/validation/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/validation/adversarial_scoring_validator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/validation/business_sense_gate.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/validation/data_quality_gate.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/validation/data_validators.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/validation/feature_quality_gate.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/validation/gates.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/validation/leakage_gate.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/validation/model_validity_gate.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/validation/pipeline_validation_runner.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/validation/quality_scorer.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/validation/rule_generator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/validation/scoring_pipeline_validator.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/stages/validation/timeseries_detector.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/transforms/__init__.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/transforms/artifact_store.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/transforms/executor.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/transforms/fitted.py +0 -0
- {churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/transforms/ops.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: churnkit
|
|
3
|
-
Version: 0.76.
|
|
3
|
+
Version: 0.76.0a2
|
|
4
4
|
Summary: Structured ML framework for customer churn prediction -- from exploration notebooks to production pipelines, locally or on Databricks.
|
|
5
5
|
Project-URL: Homepage, https://github.com/aladjov/CR
|
|
6
6
|
Project-URL: Documentation, https://github.com/aladjov/CR/wiki
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "churnkit"
|
|
3
|
-
version = "0.76.
|
|
3
|
+
version = "0.76.0a2"
|
|
4
4
|
description = "Structured ML framework for customer churn prediction -- from exploration notebooks to production pipelines, locally or on Databricks."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = {text = "Apache-2.0"}
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/databricks_init.py
RENAMED
|
@@ -40,6 +40,7 @@ def databricks_init(
|
|
|
40
40
|
_validate_databricks_environment()
|
|
41
41
|
_set_environment_variables(catalog, schema, workspace_path)
|
|
42
42
|
resolved_experiment_name = experiment_name or _resolve_experiment_name_from_notebook_path()
|
|
43
|
+
resolved_experiment_name = _make_absolute_experiment_path(resolved_experiment_name, workspace_path)
|
|
43
44
|
_set_experiment_name_env_var(resolved_experiment_name)
|
|
44
45
|
_configure_mlflow_experiment(resolved_experiment_name)
|
|
45
46
|
notebooks_copied: list[str] = []
|
|
@@ -97,6 +98,17 @@ def _get_dbutils() -> Any | None:
|
|
|
97
98
|
return None
|
|
98
99
|
|
|
99
100
|
|
|
101
|
+
def _make_absolute_experiment_path(experiment_name: str, workspace_path: str | None) -> str:
|
|
102
|
+
if experiment_name.startswith("/"):
|
|
103
|
+
return experiment_name
|
|
104
|
+
if not workspace_path:
|
|
105
|
+
return experiment_name
|
|
106
|
+
base = workspace_path.removeprefix("/Workspace")
|
|
107
|
+
if not base.startswith("/"):
|
|
108
|
+
base = f"/{base}"
|
|
109
|
+
return f"{base}/{experiment_name}"
|
|
110
|
+
|
|
111
|
+
|
|
100
112
|
def _configure_mlflow_experiment(experiment_name: str) -> None:
|
|
101
113
|
try:
|
|
102
114
|
import mlflow
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/01a_a_temporal_text_deep_dive.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/02a_text_columns_deep_dive.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/04_relationship_analysis.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/exploration_notebooks/06_feature_opportunities.ipynb
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/auto_explorer/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/auto_explorer/explorer.py
RENAMED
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/auto_explorer/findings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/business/__init__.py
RENAMED
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/business/ab_test_designer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/business/report_generator.py
RENAMED
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/business/risk_profile.py
RENAMED
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/business/roi_analyzer.py
RENAMED
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/diagnostics/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/diagnostics/cv_analyzer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/diagnostics/noise_tester.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/discovery/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/discovery/discovery_flow.py
RENAMED
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/discovery/type_inferencer.py
RENAMED
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/interpretability/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/jupyter_save_hook.py
RENAMED
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/notebook_html_exporter.py
RENAMED
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/notebook_progress.py
RENAMED
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/plotly_preprocessor.py
RENAMED
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/__init__.py
RENAMED
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/base.py
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
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/pipeline.py
RENAMED
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/recommendations/registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/visualization/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/visualization/console.py
RENAMED
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/analysis/visualization/display.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/artifacts/fit_artifact_registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/compat/pandas_backend.py
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
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/components/components/trainer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/components/orchestrator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/core/config/pipeline_config.py
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
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/notebook_generator/base.py
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
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/orchestration/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/orchestration/context.py
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
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/generators/spec_generator/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/__init__.py
RENAMED
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/base.py
RENAMED
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/factory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{churnkit-0.76.0a1 → churnkit-0.76.0a2}/src/customer_retention/integrations/adapters/mlflow/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|