churnkit 0.75.0a3__tar.gz → 0.75.1a1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/PKG-INFO +2 -2
  2. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/00_start_here.ipynb +72 -72
  3. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/01_data_discovery.ipynb +134 -134
  4. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/01a_temporal_deep_dive.ipynb +207 -207
  5. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/01b_temporal_quality.ipynb +109 -109
  6. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/01c_temporal_patterns.ipynb +283 -283
  7. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/01d_event_aggregation.ipynb +145 -145
  8. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/02_column_deep_dive.ipynb +126 -126
  9. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/03_quality_assessment.ipynb +149 -149
  10. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/04_relationship_analysis.ipynb +172 -172
  11. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/05_multi_dataset.ipynb +130 -130
  12. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/06_feature_opportunities.ipynb +163 -163
  13. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/07_modeling_readiness.ipynb +99 -99
  14. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/08_baseline_experiments.ipynb +126 -126
  15. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/09_business_alignment.ipynb +89 -89
  16. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/10_spec_generation.ipynb +132 -132
  17. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/11_scoring_validation.ipynb +197 -197
  18. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/12_view_documentation.ipynb +27 -27
  19. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/pyproject.toml +2 -2
  20. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/__init__.py +1 -1
  21. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/business/fairness_analyzer.py +2 -2
  22. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/diagnostics/segment_analyzer.py +3 -3
  23. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/interpretability/cohort_analyzer.py +4 -4
  24. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/compat/__init__.py +20 -0
  25. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/features/behavioral_features.py +3 -3
  26. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/features/customer_segmentation.py +10 -10
  27. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/features/feature_selector.py +2 -2
  28. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/relationship_recommender.py +2 -2
  29. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/temporal_feature_analyzer.py +3 -3
  30. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/temporal_pattern_analyzer.py +10 -10
  31. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/temporal_quality_checks.py +6 -6
  32. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/time_series_profiler.py +13 -7
  33. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/time_window_aggregator.py +22 -15
  34. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/transformation/categorical_encoder.py +2 -2
  35. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/transformation/pipeline.py +2 -2
  36. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/validation/data_quality_gate.py +5 -5
  37. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/validation/data_validators.py +3 -3
  38. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/validation/leakage_gate.py +4 -4
  39. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/validation/timeseries_detector.py +6 -6
  40. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/transforms/ops.py +2 -2
  41. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/.gitignore +0 -0
  42. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/LICENSE +0 -0
  43. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/README.md +0 -0
  44. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/constraints/.gitkeep +0 -0
  45. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/01a_a_temporal_text_deep_dive.ipynb +0 -0
  46. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/exploration_notebooks/02a_text_columns_deep_dive.ipynb +0 -0
  47. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/README.md +0 -0
  48. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/data/create_snapshot.py +0 -0
  49. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/data/generate_retail_dataset.py +0 -0
  50. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/data/generate_test_data.py +0 -0
  51. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/data/migrate_parquet_to_delta.py +0 -0
  52. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/data/migrate_to_temporal.py +0 -0
  53. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/databricks/build_wheel.sh +0 -0
  54. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/databricks/capture_runtime.py +0 -0
  55. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/databricks/dbr_init.sh +0 -0
  56. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/databricks/generate_constraints.py +0 -0
  57. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/databricks/notebook_setup.py +0 -0
  58. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/notebooks/clean_notebook_outputs.py +0 -0
  59. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/notebooks/export_tutorial_html.py +0 -0
  60. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/notebooks/init_project.py +0 -0
  61. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/notebooks/plotly_image_preprocessor.py +0 -0
  62. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/notebooks/run_exploration.py +0 -0
  63. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/notebooks/test_notebooks.py +0 -0
  64. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/templates/tutorial_html/conf.json +0 -0
  65. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/templates/tutorial_html/index.html.j2 +0 -0
  66. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/scripts/update_notebook_paths.py +0 -0
  67. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/__init__.py +0 -0
  68. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/auto_explorer/__init__.py +0 -0
  69. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/auto_explorer/exploration_manager.py +0 -0
  70. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/auto_explorer/explorer.py +0 -0
  71. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/auto_explorer/findings.py +0 -0
  72. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/auto_explorer/layered_recommendations.py +0 -0
  73. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/auto_explorer/recommendation_builder.py +0 -0
  74. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/auto_explorer/recommendations.py +0 -0
  75. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/business/__init__.py +0 -0
  76. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/business/ab_test_designer.py +0 -0
  77. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/business/intervention_matcher.py +0 -0
  78. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/business/report_generator.py +0 -0
  79. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/business/risk_profile.py +0 -0
  80. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/business/roi_analyzer.py +0 -0
  81. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/diagnostics/__init__.py +0 -0
  82. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/diagnostics/calibration_analyzer.py +0 -0
  83. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/diagnostics/cv_analyzer.py +0 -0
  84. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/diagnostics/error_analyzer.py +0 -0
  85. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/diagnostics/leakage_detector.py +0 -0
  86. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/diagnostics/noise_tester.py +0 -0
  87. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/diagnostics/overfitting_analyzer.py +0 -0
  88. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/discovery/__init__.py +0 -0
  89. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/discovery/config_generator.py +0 -0
  90. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/discovery/discovery_flow.py +0 -0
  91. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/discovery/type_inferencer.py +0 -0
  92. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/interpretability/__init__.py +0 -0
  93. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/interpretability/counterfactual.py +0 -0
  94. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/interpretability/individual_explainer.py +0 -0
  95. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/interpretability/pdp_generator.py +0 -0
  96. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/interpretability/shap_explainer.py +0 -0
  97. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/jupyter_save_hook.py +0 -0
  98. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/notebook_html_exporter.py +0 -0
  99. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/notebook_progress.py +0 -0
  100. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/plotly_preprocessor.py +0 -0
  101. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/__init__.py +0 -0
  102. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/base.py +0 -0
  103. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/cleaning/__init__.py +0 -0
  104. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/cleaning/consistency.py +0 -0
  105. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/cleaning/deduplicate.py +0 -0
  106. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/cleaning/impute.py +0 -0
  107. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/cleaning/outlier.py +0 -0
  108. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/datetime/__init__.py +0 -0
  109. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/datetime/extract.py +0 -0
  110. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/encoding/__init__.py +0 -0
  111. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/encoding/categorical.py +0 -0
  112. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/pipeline.py +0 -0
  113. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/registry.py +0 -0
  114. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/selection/__init__.py +0 -0
  115. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/selection/drop_column.py +0 -0
  116. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/transform/__init__.py +0 -0
  117. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/transform/power.py +0 -0
  118. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/recommendations/transform/scale.py +0 -0
  119. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/visualization/__init__.py +0 -0
  120. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/visualization/chart_builder.py +0 -0
  121. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/visualization/console.py +0 -0
  122. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/visualization/display.py +0 -0
  123. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/analysis/visualization/number_formatter.py +0 -0
  124. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/artifacts/__init__.py +0 -0
  125. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/artifacts/fit_artifact_registry.py +0 -0
  126. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/cli.py +0 -0
  127. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/__init__.py +0 -0
  128. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/compat/detection.py +0 -0
  129. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/compat/ops.py +0 -0
  130. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/compat/pandas_backend.py +0 -0
  131. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/compat/spark_backend.py +0 -0
  132. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/components/__init__.py +0 -0
  133. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/components/base.py +0 -0
  134. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/components/components/__init__.py +0 -0
  135. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/components/components/deployer.py +0 -0
  136. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/components/components/explainer.py +0 -0
  137. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/components/components/feature_eng.py +0 -0
  138. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/components/components/ingester.py +0 -0
  139. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/components/components/profiler.py +0 -0
  140. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/components/components/trainer.py +0 -0
  141. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/components/components/transformer.py +0 -0
  142. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/components/components/validator.py +0 -0
  143. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/components/enums.py +0 -0
  144. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/components/orchestrator.py +0 -0
  145. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/components/registry.py +0 -0
  146. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/config/__init__.py +0 -0
  147. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/config/column_config.py +0 -0
  148. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/config/experiments.py +0 -0
  149. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/config/pipeline_config.py +0 -0
  150. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/config/source_config.py +0 -0
  151. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/utils/__init__.py +0 -0
  152. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/utils/leakage.py +0 -0
  153. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/utils/severity.py +0 -0
  154. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/core/utils/statistics.py +0 -0
  155. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/__init__.py +0 -0
  156. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/__init__.py +0 -0
  157. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/base.py +0 -0
  158. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/cell_builder.py +0 -0
  159. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/config.py +0 -0
  160. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/databricks_generator.py +0 -0
  161. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/local_generator.py +0 -0
  162. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/project_init.py +0 -0
  163. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/runner.py +0 -0
  164. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/script_generator.py +0 -0
  165. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/stages/__init__.py +0 -0
  166. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/stages/base_stage.py +0 -0
  167. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/stages/s01_ingestion.py +0 -0
  168. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/stages/s02_profiling.py +0 -0
  169. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/stages/s03_cleaning.py +0 -0
  170. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/stages/s04_transformation.py +0 -0
  171. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/stages/s05_feature_engineering.py +0 -0
  172. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/stages/s06_feature_selection.py +0 -0
  173. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/stages/s07_model_training.py +0 -0
  174. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/stages/s08_deployment.py +0 -0
  175. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/stages/s09_monitoring.py +0 -0
  176. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/stages/s10_batch_inference.py +0 -0
  177. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/notebook_generator/stages/s11_feature_store.py +0 -0
  178. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/orchestration/__init__.py +0 -0
  179. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/orchestration/code_generator.py +0 -0
  180. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/orchestration/context.py +0 -0
  181. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/orchestration/data_materializer.py +0 -0
  182. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/orchestration/databricks_exporter.py +0 -0
  183. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/orchestration/doc_generator.py +0 -0
  184. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/pipeline_generator/__init__.py +0 -0
  185. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/pipeline_generator/findings_parser.py +0 -0
  186. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/pipeline_generator/generator.py +0 -0
  187. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/pipeline_generator/models.py +0 -0
  188. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/pipeline_generator/renderer.py +0 -0
  189. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/spec_generator/__init__.py +0 -0
  190. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/spec_generator/databricks_generator.py +0 -0
  191. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/spec_generator/generic_generator.py +0 -0
  192. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/spec_generator/mlflow_pipeline_generator.py +0 -0
  193. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/generators/spec_generator/pipeline_spec.py +0 -0
  194. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/__init__.py +0 -0
  195. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/adapters/__init__.py +0 -0
  196. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/adapters/base.py +0 -0
  197. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/adapters/factory.py +0 -0
  198. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/adapters/feature_store/__init__.py +0 -0
  199. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/adapters/feature_store/base.py +0 -0
  200. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/adapters/feature_store/databricks.py +0 -0
  201. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/adapters/feature_store/feast_adapter.py +0 -0
  202. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/adapters/feature_store/local.py +0 -0
  203. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/adapters/mlflow/__init__.py +0 -0
  204. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/adapters/mlflow/base.py +0 -0
  205. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/adapters/mlflow/databricks.py +0 -0
  206. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/adapters/mlflow/experiment_tracker.py +0 -0
  207. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/adapters/mlflow/local.py +0 -0
  208. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/adapters/storage/__init__.py +0 -0
  209. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/adapters/storage/base.py +0 -0
  210. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/adapters/storage/databricks.py +0 -0
  211. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/adapters/storage/local.py +0 -0
  212. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/feature_store/__init__.py +0 -0
  213. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/feature_store/definitions.py +0 -0
  214. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/feature_store/manager.py +0 -0
  215. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/feature_store/registry.py +0 -0
  216. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/iteration/__init__.py +0 -0
  217. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/iteration/context.py +0 -0
  218. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/iteration/feedback_collector.py +0 -0
  219. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/iteration/orchestrator.py +0 -0
  220. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/iteration/recommendation_tracker.py +0 -0
  221. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/iteration/signals.py +0 -0
  222. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/llm_context/__init__.py +0 -0
  223. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/llm_context/context_builder.py +0 -0
  224. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/llm_context/prompts.py +0 -0
  225. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/streaming/__init__.py +0 -0
  226. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/streaming/batch_integration.py +0 -0
  227. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/streaming/early_warning_model.py +0 -0
  228. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/streaming/event_schema.py +0 -0
  229. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/streaming/online_store_writer.py +0 -0
  230. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/streaming/realtime_scorer.py +0 -0
  231. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/streaming/trigger_engine.py +0 -0
  232. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/integrations/streaming/window_aggregator.py +0 -0
  233. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/__init__.py +0 -0
  234. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/cleaning/__init__.py +0 -0
  235. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/cleaning/base.py +0 -0
  236. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/cleaning/missing_handler.py +0 -0
  237. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/cleaning/outlier_handler.py +0 -0
  238. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/deployment/__init__.py +0 -0
  239. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/deployment/batch_scorer.py +0 -0
  240. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/deployment/champion_challenger.py +0 -0
  241. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/deployment/model_registry.py +0 -0
  242. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/deployment/retraining_trigger.py +0 -0
  243. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/features/__init__.py +0 -0
  244. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/features/feature_definitions.py +0 -0
  245. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/features/feature_engineer.py +0 -0
  246. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/features/feature_manifest.py +0 -0
  247. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/features/interaction_features.py +0 -0
  248. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/features/temporal_features.py +0 -0
  249. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/ingestion/__init__.py +0 -0
  250. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/ingestion/load_result.py +0 -0
  251. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/ingestion/loaders.py +0 -0
  252. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/ingestion/source_registry.py +0 -0
  253. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/modeling/__init__.py +0 -0
  254. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/modeling/baseline_trainer.py +0 -0
  255. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/modeling/cross_validator.py +0 -0
  256. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/modeling/data_splitter.py +0 -0
  257. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/modeling/feature_scaler.py +0 -0
  258. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/modeling/hyperparameter_tuner.py +0 -0
  259. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/modeling/imbalance_handler.py +0 -0
  260. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/modeling/mlflow_logger.py +0 -0
  261. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/modeling/model_comparator.py +0 -0
  262. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/modeling/model_evaluator.py +0 -0
  263. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/modeling/threshold_optimizer.py +0 -0
  264. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/monitoring/__init__.py +0 -0
  265. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/monitoring/alert_manager.py +0 -0
  266. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/monitoring/drift_detector.py +0 -0
  267. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/monitoring/performance_monitor.py +0 -0
  268. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/preprocessing/__init__.py +0 -0
  269. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/preprocessing/transformer_manager.py +0 -0
  270. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/__init__.py +0 -0
  271. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/categorical_distribution.py +0 -0
  272. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/categorical_target_analyzer.py +0 -0
  273. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/column_profiler.py +0 -0
  274. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/distribution_analysis.py +0 -0
  275. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/drift_detector.py +0 -0
  276. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/feature_capacity.py +0 -0
  277. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/pattern_analysis_config.py +0 -0
  278. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/profile_result.py +0 -0
  279. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/quality_checks.py +0 -0
  280. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/relationship_detector.py +0 -0
  281. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/report_generator.py +0 -0
  282. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/scd_analyzer.py +0 -0
  283. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/segment_analyzer.py +0 -0
  284. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/segment_aware_outlier.py +0 -0
  285. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/target_level_analyzer.py +0 -0
  286. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/temporal_analyzer.py +0 -0
  287. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/temporal_coverage.py +0 -0
  288. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/temporal_feature_engineer.py +0 -0
  289. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/temporal_target_analyzer.py +0 -0
  290. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/text_embedder.py +0 -0
  291. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/text_processor.py +0 -0
  292. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/text_reducer.py +0 -0
  293. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/type_detector.py +0 -0
  294. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/profiling/window_recommendation.py +0 -0
  295. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/temporal/__init__.py +0 -0
  296. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/temporal/access_guard.py +0 -0
  297. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/temporal/cutoff_analyzer.py +0 -0
  298. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/temporal/data_preparer.py +0 -0
  299. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/temporal/point_in_time_join.py +0 -0
  300. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/temporal/point_in_time_registry.py +0 -0
  301. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/temporal/scenario_detector.py +0 -0
  302. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/temporal/snapshot_manager.py +0 -0
  303. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/temporal/synthetic_coordinator.py +0 -0
  304. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/temporal/timestamp_discovery.py +0 -0
  305. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/temporal/timestamp_manager.py +0 -0
  306. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/transformation/__init__.py +0 -0
  307. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/transformation/binary_handler.py +0 -0
  308. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/transformation/datetime_transformer.py +0 -0
  309. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/transformation/numeric_transformer.py +0 -0
  310. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/validation/__init__.py +0 -0
  311. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/validation/adversarial_scoring_validator.py +0 -0
  312. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/validation/business_sense_gate.py +0 -0
  313. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/validation/feature_quality_gate.py +0 -0
  314. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/validation/gates.py +0 -0
  315. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/validation/model_validity_gate.py +0 -0
  316. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/validation/pipeline_validation_runner.py +0 -0
  317. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/validation/quality_scorer.py +0 -0
  318. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/validation/rule_generator.py +0 -0
  319. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/stages/validation/scoring_pipeline_validator.py +0 -0
  320. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/transforms/__init__.py +0 -0
  321. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/transforms/artifact_store.py +0 -0
  322. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/transforms/executor.py +0 -0
  323. {churnkit-0.75.0a3 → churnkit-0.75.1a1}/src/customer_retention/transforms/fitted.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: churnkit
3
- Version: 0.75.0a3
3
+ Version: 0.75.1a1
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
@@ -27,7 +27,7 @@ Requires-Dist: kaleido>=0.2.1
27
27
  Requires-Dist: matplotlib>=3.7.0
28
28
  Requires-Dist: pandas>=2.0.0
29
29
  Requires-Dist: papermill>=2.4.0
30
- Requires-Dist: plotly>=5.15.0
30
+ Requires-Dist: plotly>=6.1.1
31
31
  Requires-Dist: pyarrow>=12.0.0
32
32
  Requires-Dist: pydantic>=2.0.0
33
33
  Requires-Dist: pyyaml>=6.0.0
@@ -5,10 +5,10 @@
5
5
  "id": "cell-0",
6
6
  "metadata": {
7
7
  "papermill": {
8
- "duration": 0.002321,
9
- "end_time": "2026-02-02T13:00:34.189136",
8
+ "duration": 0.006297,
9
+ "end_time": "2026-02-03T01:43:17.455187",
10
10
  "exception": false,
11
- "start_time": "2026-02-02T13:00:34.186815",
11
+ "start_time": "2026-02-03T01:43:17.448890",
12
12
  "status": "completed"
13
13
  },
14
14
  "tags": []
@@ -33,10 +33,10 @@
33
33
  "id": "cell-1",
34
34
  "metadata": {
35
35
  "papermill": {
36
- "duration": 0.001561,
37
- "end_time": "2026-02-02T13:00:34.192541",
36
+ "duration": 0.005497,
37
+ "end_time": "2026-02-03T01:43:17.466612",
38
38
  "exception": false,
39
- "start_time": "2026-02-02T13:00:34.190980",
39
+ "start_time": "2026-02-03T01:43:17.461115",
40
40
  "status": "completed"
41
41
  },
42
42
  "tags": []
@@ -53,16 +53,16 @@
53
53
  "id": "cell-2",
54
54
  "metadata": {
55
55
  "execution": {
56
- "iopub.execute_input": "2026-02-02T13:00:34.196468Z",
57
- "iopub.status.busy": "2026-02-02T13:00:34.196335Z",
58
- "iopub.status.idle": "2026-02-02T13:00:35.320889Z",
59
- "shell.execute_reply": "2026-02-02T13:00:35.320316Z"
56
+ "iopub.execute_input": "2026-02-03T01:43:17.478551Z",
57
+ "iopub.status.busy": "2026-02-03T01:43:17.478403Z",
58
+ "iopub.status.idle": "2026-02-03T01:43:18.650240Z",
59
+ "shell.execute_reply": "2026-02-03T01:43:18.649686Z"
60
60
  },
61
61
  "papermill": {
62
- "duration": 1.127344,
63
- "end_time": "2026-02-02T13:00:35.321623",
62
+ "duration": 1.178849,
63
+ "end_time": "2026-02-03T01:43:18.651261",
64
64
  "exception": false,
65
- "start_time": "2026-02-02T13:00:34.194279",
65
+ "start_time": "2026-02-03T01:43:17.472412",
66
66
  "status": "completed"
67
67
  },
68
68
  "tags": []
@@ -88,10 +88,10 @@
88
88
  "id": "cell-3",
89
89
  "metadata": {
90
90
  "papermill": {
91
- "duration": 0.0013,
92
- "end_time": "2026-02-02T13:00:35.324448",
91
+ "duration": 0.003775,
92
+ "end_time": "2026-02-03T01:43:18.659257",
93
93
  "exception": false,
94
- "start_time": "2026-02-02T13:00:35.323148",
94
+ "start_time": "2026-02-03T01:43:18.655482",
95
95
  "status": "completed"
96
96
  },
97
97
  "tags": []
@@ -125,16 +125,16 @@
125
125
  "id": "cell-4",
126
126
  "metadata": {
127
127
  "execution": {
128
- "iopub.execute_input": "2026-02-02T13:00:35.327665Z",
129
- "iopub.status.busy": "2026-02-02T13:00:35.327501Z",
130
- "iopub.status.idle": "2026-02-02T13:00:35.331134Z",
131
- "shell.execute_reply": "2026-02-02T13:00:35.330708Z"
128
+ "iopub.execute_input": "2026-02-03T01:43:18.669006Z",
129
+ "iopub.status.busy": "2026-02-03T01:43:18.668779Z",
130
+ "iopub.status.idle": "2026-02-03T01:43:18.673476Z",
131
+ "shell.execute_reply": "2026-02-03T01:43:18.672755Z"
132
132
  },
133
133
  "papermill": {
134
- "duration": 0.005895,
135
- "end_time": "2026-02-02T13:00:35.331579",
134
+ "duration": 0.010931,
135
+ "end_time": "2026-02-03T01:43:18.674251",
136
136
  "exception": false,
137
- "start_time": "2026-02-02T13:00:35.325684",
137
+ "start_time": "2026-02-03T01:43:18.663320",
138
138
  "status": "completed"
139
139
  },
140
140
  "tags": []
@@ -184,10 +184,10 @@
184
184
  "id": "cell-5",
185
185
  "metadata": {
186
186
  "papermill": {
187
- "duration": 0.001471,
188
- "end_time": "2026-02-02T13:00:35.334367",
187
+ "duration": 0.004041,
188
+ "end_time": "2026-02-03T01:43:18.682278",
189
189
  "exception": false,
190
- "start_time": "2026-02-02T13:00:35.332896",
190
+ "start_time": "2026-02-03T01:43:18.678237",
191
191
  "status": "completed"
192
192
  },
193
193
  "tags": []
@@ -209,16 +209,16 @@
209
209
  "id": "cell-6",
210
210
  "metadata": {
211
211
  "execution": {
212
- "iopub.execute_input": "2026-02-02T13:00:35.337782Z",
213
- "iopub.status.busy": "2026-02-02T13:00:35.337684Z",
214
- "iopub.status.idle": "2026-02-02T13:00:35.340233Z",
215
- "shell.execute_reply": "2026-02-02T13:00:35.339622Z"
212
+ "iopub.execute_input": "2026-02-03T01:43:18.690490Z",
213
+ "iopub.status.busy": "2026-02-03T01:43:18.690354Z",
214
+ "iopub.status.idle": "2026-02-03T01:43:18.693008Z",
215
+ "shell.execute_reply": "2026-02-03T01:43:18.692386Z"
216
216
  },
217
217
  "papermill": {
218
- "duration": 0.005057,
219
- "end_time": "2026-02-02T13:00:35.340826",
218
+ "duration": 0.007536,
219
+ "end_time": "2026-02-03T01:43:18.693594",
220
220
  "exception": false,
221
- "start_time": "2026-02-02T13:00:35.335769",
221
+ "start_time": "2026-02-03T01:43:18.686058",
222
222
  "status": "completed"
223
223
  },
224
224
  "tags": []
@@ -244,10 +244,10 @@
244
244
  "id": "cell-7",
245
245
  "metadata": {
246
246
  "papermill": {
247
- "duration": 0.001181,
248
- "end_time": "2026-02-02T13:00:35.343523",
247
+ "duration": 0.004441,
248
+ "end_time": "2026-02-03T01:43:18.701934",
249
249
  "exception": false,
250
- "start_time": "2026-02-02T13:00:35.342342",
250
+ "start_time": "2026-02-03T01:43:18.697493",
251
251
  "status": "completed"
252
252
  },
253
253
  "tags": []
@@ -267,16 +267,16 @@
267
267
  "id": "cell-8",
268
268
  "metadata": {
269
269
  "execution": {
270
- "iopub.execute_input": "2026-02-02T13:00:35.346825Z",
271
- "iopub.status.busy": "2026-02-02T13:00:35.346711Z",
272
- "iopub.status.idle": "2026-02-02T13:00:35.349664Z",
273
- "shell.execute_reply": "2026-02-02T13:00:35.349348Z"
270
+ "iopub.execute_input": "2026-02-03T01:43:18.709942Z",
271
+ "iopub.status.busy": "2026-02-03T01:43:18.709827Z",
272
+ "iopub.status.idle": "2026-02-03T01:43:18.713252Z",
273
+ "shell.execute_reply": "2026-02-03T01:43:18.712664Z"
274
274
  },
275
275
  "papermill": {
276
- "duration": 0.005532,
277
- "end_time": "2026-02-02T13:00:35.350238",
276
+ "duration": 0.00855,
277
+ "end_time": "2026-02-03T01:43:18.714037",
278
278
  "exception": false,
279
- "start_time": "2026-02-02T13:00:35.344706",
279
+ "start_time": "2026-02-03T01:43:18.705487",
280
280
  "status": "completed"
281
281
  },
282
282
  "tags": []
@@ -315,10 +315,10 @@
315
315
  "id": "cell-9",
316
316
  "metadata": {
317
317
  "papermill": {
318
- "duration": 0.001147,
319
- "end_time": "2026-02-02T13:00:35.352728",
318
+ "duration": 0.003592,
319
+ "end_time": "2026-02-03T01:43:18.721625",
320
320
  "exception": false,
321
- "start_time": "2026-02-02T13:00:35.351581",
321
+ "start_time": "2026-02-03T01:43:18.718033",
322
322
  "status": "completed"
323
323
  },
324
324
  "tags": []
@@ -334,16 +334,16 @@
334
334
  "id": "cell-10",
335
335
  "metadata": {
336
336
  "execution": {
337
- "iopub.execute_input": "2026-02-02T13:00:35.355581Z",
338
- "iopub.status.busy": "2026-02-02T13:00:35.355499Z",
339
- "iopub.status.idle": "2026-02-02T13:00:35.357855Z",
340
- "shell.execute_reply": "2026-02-02T13:00:35.357514Z"
337
+ "iopub.execute_input": "2026-02-03T01:43:18.729843Z",
338
+ "iopub.status.busy": "2026-02-03T01:43:18.729732Z",
339
+ "iopub.status.idle": "2026-02-03T01:43:18.732430Z",
340
+ "shell.execute_reply": "2026-02-03T01:43:18.731952Z"
341
341
  },
342
342
  "papermill": {
343
- "duration": 0.004551,
344
- "end_time": "2026-02-02T13:00:35.358370",
343
+ "duration": 0.007586,
344
+ "end_time": "2026-02-03T01:43:18.733043",
345
345
  "exception": false,
346
- "start_time": "2026-02-02T13:00:35.353819",
346
+ "start_time": "2026-02-03T01:43:18.725457",
347
347
  "status": "completed"
348
348
  },
349
349
  "tags": []
@@ -374,10 +374,10 @@
374
374
  "id": "cell-11",
375
375
  "metadata": {
376
376
  "papermill": {
377
- "duration": 0.001208,
378
- "end_time": "2026-02-02T13:00:35.360994",
377
+ "duration": 0.003812,
378
+ "end_time": "2026-02-03T01:43:18.740948",
379
379
  "exception": false,
380
- "start_time": "2026-02-02T13:00:35.359786",
380
+ "start_time": "2026-02-03T01:43:18.737136",
381
381
  "status": "completed"
382
382
  },
383
383
  "tags": []
@@ -392,16 +392,16 @@
392
392
  "id": "cell-12",
393
393
  "metadata": {
394
394
  "execution": {
395
- "iopub.execute_input": "2026-02-02T13:00:35.363924Z",
396
- "iopub.status.busy": "2026-02-02T13:00:35.363841Z",
397
- "iopub.status.idle": "2026-02-02T13:00:35.529859Z",
398
- "shell.execute_reply": "2026-02-02T13:00:35.529268Z"
395
+ "iopub.execute_input": "2026-02-03T01:43:18.749733Z",
396
+ "iopub.status.busy": "2026-02-03T01:43:18.749570Z",
397
+ "iopub.status.idle": "2026-02-03T01:43:18.945326Z",
398
+ "shell.execute_reply": "2026-02-03T01:43:18.944780Z"
399
399
  },
400
400
  "papermill": {
401
- "duration": 0.168363,
402
- "end_time": "2026-02-02T13:00:35.530489",
401
+ "duration": 0.202174,
402
+ "end_time": "2026-02-03T01:43:18.947173",
403
403
  "exception": false,
404
- "start_time": "2026-02-02T13:00:35.362126",
404
+ "start_time": "2026-02-03T01:43:18.744999",
405
405
  "status": "completed"
406
406
  },
407
407
  "tags": []
@@ -432,10 +432,10 @@
432
432
  "id": "597wey6ay6f",
433
433
  "metadata": {
434
434
  "papermill": {
435
- "duration": 0.001513,
436
- "end_time": "2026-02-02T13:00:35.534172",
435
+ "duration": 0.003833,
436
+ "end_time": "2026-02-03T01:43:18.955432",
437
437
  "exception": false,
438
- "start_time": "2026-02-02T13:00:35.532659",
438
+ "start_time": "2026-02-03T01:43:18.951599",
439
439
  "status": "completed"
440
440
  },
441
441
  "tags": []
@@ -597,10 +597,10 @@
597
597
  "id": "ubychqgwi4f",
598
598
  "metadata": {
599
599
  "papermill": {
600
- "duration": 0.00124,
601
- "end_time": "2026-02-02T13:00:35.536689",
600
+ "duration": 0.003804,
601
+ "end_time": "2026-02-03T01:43:18.963775",
602
602
  "exception": false,
603
- "start_time": "2026-02-02T13:00:35.535449",
603
+ "start_time": "2026-02-03T01:43:18.959971",
604
604
  "status": "completed"
605
605
  },
606
606
  "tags": []
@@ -631,14 +631,14 @@
631
631
  },
632
632
  "papermill": {
633
633
  "default_parameters": {},
634
- "duration": 2.413615,
635
- "end_time": "2026-02-02T13:00:35.753031",
634
+ "duration": 3.535261,
635
+ "end_time": "2026-02-03T01:43:19.791342",
636
636
  "environment_variables": {},
637
637
  "exception": null,
638
638
  "input_path": "/Users/Vital/python/CustomerRetention/exploration_notebooks/00_start_here.ipynb",
639
639
  "output_path": "/Users/Vital/python/CustomerRetention/exploration_notebooks/00_start_here.ipynb",
640
640
  "parameters": {},
641
- "start_time": "2026-02-02T13:00:33.339416",
641
+ "start_time": "2026-02-03T01:43:16.256081",
642
642
  "version": "2.6.0"
643
643
  }
644
644
  },