SuperModelingFactory 0.6.2__tar.gz → 0.6.3__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 (113) hide show
  1. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/WOE/WOE_Master.py +10 -5
  2. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/WOE/WOE_Plot_Tool.py +18 -8
  3. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/__init__.py +1 -1
  4. {supermodelingfactory-0.6.2/SuperModelingFactory.egg-info → supermodelingfactory-0.6.3}/PKG-INFO +2 -2
  5. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/README.md +1 -1
  6. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3/SuperModelingFactory.egg-info}/PKG-INFO +2 -2
  7. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/pyproject.toml +1 -1
  8. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/setup.py +1 -1
  9. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/ExcelMaster/ExcelFormatTool.py +0 -0
  10. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/ExcelMaster/ExcelMaster.py +0 -0
  11. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/ExcelMaster/Template.py +0 -0
  12. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/ExcelMaster/Utility.py +0 -0
  13. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/ExcelMaster/__init__.py +0 -0
  14. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/LICENSE +0 -0
  15. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/MANIFEST.in +0 -0
  16. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/Binning_Tool.py +0 -0
  17. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/Binning_Tool.pyi +0 -0
  18. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/Check_DuckDB_Compatibility.py +0 -0
  19. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/Json_Data_Converter.py +0 -0
  20. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/Model_Registry_Tool.py +0 -0
  21. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/ODPS_Tool.py +0 -0
  22. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/Parallel_Engine.py +0 -0
  23. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/Parallel_ODPS_Manager.py +0 -0
  24. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/Proc_Compare.py +0 -0
  25. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/Slope_Tool.py +0 -0
  26. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/Slope_Tool.pyi +0 -0
  27. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/XOR_Encryptor.py +0 -0
  28. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/XOR_Encryptor.pyi +0 -0
  29. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/__init__.py +0 -0
  30. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/kDataFrame.py +0 -0
  31. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/kDataFrame.pyi +0 -0
  32. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/sample_weight_utils.py +0 -0
  33. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Core/utils.py +0 -0
  34. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Eval/Evaluation_Tool.py +0 -0
  35. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Eval/Evaluation_Tool.pyi +0 -0
  36. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Eval/Model_Eval_Tool.py +0 -0
  37. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Eval/Model_Eval_Tool.pyi +0 -0
  38. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Eval/__init__.py +0 -0
  39. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Eval/evaluate_model.py +0 -0
  40. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Eval/evaluate_model.pyi +0 -0
  41. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Eval/weighted_eval_utils.py +0 -0
  42. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Explainability/Coalition_Structure.py +0 -0
  43. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Explainability/Model_Explainer.py +0 -0
  44. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Explainability/__init__.py +0 -0
  45. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Feature/Distribution_Tool.py +0 -0
  46. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Feature/Distribution_Tool.pyi +0 -0
  47. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Feature/Feature_Insights.py +0 -0
  48. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Feature/Feature_Insights.pyi +0 -0
  49. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Feature/Feature_Screen.py +0 -0
  50. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Feature/PSI_Tool.py +0 -0
  51. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Feature/PSI_Tool.pyi +0 -0
  52. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Feature/WOE_Engine_Feature_Patch.py +0 -0
  53. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Feature/Weighted_Screen.py +0 -0
  54. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Feature/__init__.py +0 -0
  55. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Model/Backward_Tool.py +0 -0
  56. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Model/Backward_Tool.pyi +0 -0
  57. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Model/GBM_Search_Tool.py +0 -0
  58. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Model/GBM_Tool.py +0 -0
  59. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Model/GBM_Tool.pyi +0 -0
  60. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Model/LRM_Tool.py +0 -0
  61. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Model/LRM_Tool.pyi +0 -0
  62. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Model/__init__.py +0 -0
  63. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Pipeline/__init__.py +0 -0
  64. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Pipeline/_common.py +0 -0
  65. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Pipeline/credit_model.py +0 -0
  66. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Pipeline/feature_validation.py +0 -0
  67. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Pipeline/field_meta.py +0 -0
  68. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Pipeline/mock_sample.py +0 -0
  69. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Pipeline/orchestrator.py +0 -0
  70. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Pipeline/reject_inference.py +0 -0
  71. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Pipeline/sample_analysis.py +0 -0
  72. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Pipeline/score_comparison.py +0 -0
  73. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Pipeline/score_consistency_uat.py +0 -0
  74. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Pipeline/screening_artifact.py +0 -0
  75. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Sample/Distribution_Adaptation.py +0 -0
  76. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Sample/Distribution_Adaptation.pyi +0 -0
  77. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Sample/Reject_Infer.py +0 -0
  78. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Sample/Reject_Infer.pyi +0 -0
  79. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Sample/Sample_Split.py +0 -0
  80. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Sample/Sample_Split.pyi +0 -0
  81. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/Sample/__init__.py +0 -0
  82. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/UAT/UAT_Consistency_Checker.py +0 -0
  83. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/UAT/__init__.py +0 -0
  84. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/WOE/WOE_Adapter.py +0 -0
  85. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/WOE/WOE_Adapter.pyi +0 -0
  86. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/WOE/WOE_Master.pyi +0 -0
  87. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/WOE/WOE_Monotone_Binner.py +0 -0
  88. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/WOE/WOE_Monotone_Binner.pyi +0 -0
  89. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/WOE/WOE_Plot_Tool.pyi +0 -0
  90. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/WOE/WOE_Report_Builder.py +0 -0
  91. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/WOE/WOE_Report_Builder.pyi +0 -0
  92. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/WOE/WOE_Tool.py +0 -0
  93. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/WOE/WOE_Tool.pyi +0 -0
  94. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/WOE/__init__.py +0 -0
  95. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/WOE/plot_woe_tool.py +0 -0
  96. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/WOE/plot_woe_tool.pyi +0 -0
  97. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/_utils/__init__.py +0 -0
  98. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/_utils/nan_guard.py +0 -0
  99. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/_utils/robust.py +0 -0
  100. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/_utils/sentinels.py +0 -0
  101. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/ref_font/KaiTi.ttf +0 -0
  102. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/ref_font/WeiRuanYaHei.ttf +0 -0
  103. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/ref_font/__init__.py +0 -0
  104. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Modeling_Tool/ref_font/simsun.ttc +0 -0
  105. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Report/Report_Tool.py +0 -0
  106. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/Report/__init__.py +0 -0
  107. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/SuperModelingFactory.egg-info/SOURCES.txt +0 -0
  108. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/SuperModelingFactory.egg-info/dependency_links.txt +0 -0
  109. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/SuperModelingFactory.egg-info/not-zip-safe +0 -0
  110. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/SuperModelingFactory.egg-info/requires.txt +0 -0
  111. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/SuperModelingFactory.egg-info/top_level.txt +0 -0
  112. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/requirements.txt +0 -0
  113. {supermodelingfactory-0.6.2 → supermodelingfactory-0.6.3}/setup.cfg +0 -0
@@ -432,11 +432,16 @@ class WOE_Master(object):
432
432
  Args:
433
433
  data: pandas.DataFrame, data for plotting
434
434
  group: str or None, grouping variable name for distinguishing curves.
435
- When ``None`` a single ungrouped curve per variable is drawn.
436
- Prior to 0.6.2 this was a required positional argument, which
437
- silently broke ungrouped callers (see `_plot_woe` in
438
- `Modeling_Tool.Pipeline.feature_validation`). The underlying
439
- ``get_bivar_graph`` primitive has always accepted ``group=None``.
435
+ When ``None`` a single ungrouped curve per variable is drawn
436
+ and no ``by_<group>`` output is produced. Prior to 0.6.2 this
437
+ was a required positional argument, which silently broke
438
+ ungrouped callers (see `_plot_woe` in
439
+ `Modeling_Tool.Pipeline.feature_validation`). 0.6.3 also
440
+ fixes ``WOE_Plot_Tool.get_bivar_graph``: the ``if group:``
441
+ guard there was moved up to wrap the summary/align/plot
442
+ triplet — the guard used to sit *after* an unconditional
443
+ ``data.groupby([None])`` that raised TypeError on ungrouped
444
+ calls.
440
445
  dirname: str, subdirectory name for saving (under graph_save_dir).
441
446
  Required in practice; kept keyword-only-in-practice by keeping
442
447
  the ``group`` slot second for backward compatibility with any
@@ -548,15 +548,25 @@ def get_bivar_graph(data, varlist, sep, ref_woe_table, save_dir, group=None, woe
548
548
  plot_woe(woe_df, to_show=False, save_dir=save_dir, fig_name = f"{var}.png")
549
549
 
550
550
  ################ Group WOE Table Plot ##########################
551
- grp_woe_res = get_mapped_woe_summary(data = data,
552
- ref_woe_table = ref_woe_table,
553
- tgt_name = sep,
554
- varlist = varlist,
555
- grp_name=[group])
556
-
557
- grp_woe_res = align_bin_num(woe_table = ref_woe_table, grp_woe_df = grp_woe_res, grp_name = [group])
558
-
551
+ # 0.6.3: the `if group:` guard was moved UP to wrap the summary + align
552
+ # + plot triplet. Pre-0.6.3 the get_mapped_woe_summary / align_bin_num
553
+ # calls executed unconditionally with grp_name=[None], causing
554
+ # data.groupby([None]) → TypeError: 'NoneType' object is not callable
555
+ # inside get_mapped_woe_summary. The old `if group:` guard only wrapped
556
+ # the plot loop, so it never got a chance to gate the crash.
557
+ #
558
+ # Symptom in 0.6.2 pipelines: equal_freq WOE plot base-call raised
559
+ # TypeError, the caller's try/except turned it into a logger.warning,
560
+ # and the subsequent `for group in cfg.woe_plot_groups` loop was
561
+ # skipped — so by_<group>/*.png was never emitted for equal_freq.
559
562
  if group:
563
+ grp_woe_res = get_mapped_woe_summary(data = data,
564
+ ref_woe_table = ref_woe_table,
565
+ tgt_name = sep,
566
+ varlist = varlist,
567
+ grp_name=[group])
568
+
569
+ grp_woe_res = align_bin_num(woe_table = ref_woe_table, grp_woe_df = grp_woe_res, grp_name = [group])
560
570
 
561
571
  for var in varlist:
562
572
  var = var.replace(woe_suffix, "")
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  __author__ = "Jingkai Sun"
4
- __version__ = "0.6.2"
4
+ __version__ = "0.6.3"
5
5
 
6
6
  from ._utils import SMF_MISSING_BIN
7
7
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: SuperModelingFactory
3
- Version: 0.6.2
3
+ Version: 0.6.3
4
4
  Summary: Credit risk modeling factory: WOE binning, scorecards, LightGBM, Excel reporting.
5
5
  Home-page: https://github.com/Kyle-J-Sun/SuperModelingFactory
6
6
  Author: Kyle Sun
@@ -265,7 +265,7 @@ em.close_workbook()
265
265
 
266
266
  ## 版本
267
267
 
268
- - **Version**: 0.6.2
268
+ - **Version**: 0.6.3
269
269
  - **Author**: Jingkai Sun
270
270
 
271
271
  ## 许可证
@@ -208,7 +208,7 @@ em.close_workbook()
208
208
 
209
209
  ## 版本
210
210
 
211
- - **Version**: 0.6.2
211
+ - **Version**: 0.6.3
212
212
  - **Author**: Jingkai Sun
213
213
 
214
214
  ## 许可证
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: SuperModelingFactory
3
- Version: 0.6.2
3
+ Version: 0.6.3
4
4
  Summary: Credit risk modeling factory: WOE binning, scorecards, LightGBM, Excel reporting.
5
5
  Home-page: https://github.com/Kyle-J-Sun/SuperModelingFactory
6
6
  Author: Kyle Sun
@@ -265,7 +265,7 @@ em.close_workbook()
265
265
 
266
266
  ## 版本
267
267
 
268
- - **Version**: 0.6.2
268
+ - **Version**: 0.6.3
269
269
  - **Author**: Jingkai Sun
270
270
 
271
271
  ## 许可证
@@ -12,7 +12,7 @@ build-backend = "setuptools.build_meta"
12
12
 
13
13
  [project]
14
14
  name = "SuperModelingFactory"
15
- version = "0.6.2"
15
+ version = "0.6.3"
16
16
  description = "Credit risk modeling factory: WOE binning, scorecards, LightGBM, Excel reporting."
17
17
  readme = "README.md"
18
18
  requires-python = ">=3.10"
@@ -15,7 +15,7 @@ def _read(path: str) -> str:
15
15
 
16
16
  setup(
17
17
  name="SuperModelingFactory",
18
- version=os.environ.get("SMF_VERSION", "0.6.2"),
18
+ version=os.environ.get("SMF_VERSION", "0.6.3"),
19
19
  description="Credit risk modeling factory: WOE binning, scorecards, LightGBM, Excel reporting.",
20
20
  long_description=_read("README.md"),
21
21
  long_description_content_type="text/markdown",