SuperModelingFactory 0.5.7__tar.gz → 0.5.8__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.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/Parallel_ODPS_Manager.py +23 -2
  2. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/__init__.py +1 -1
  3. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/PKG-INFO +2 -2
  4. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/README.md +1 -1
  5. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/SuperModelingFactory.egg-info/PKG-INFO +2 -2
  6. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/pyproject.toml +1 -1
  7. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/setup.py +1 -1
  8. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/ExcelMaster/ExcelFormatTool.py +0 -0
  9. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/ExcelMaster/ExcelMaster.py +0 -0
  10. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/ExcelMaster/Template.py +0 -0
  11. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/ExcelMaster/Utility.py +0 -0
  12. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/ExcelMaster/__init__.py +0 -0
  13. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/LICENSE +0 -0
  14. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/MANIFEST.in +0 -0
  15. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/Binning_Tool.py +0 -0
  16. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/Binning_Tool.pyi +0 -0
  17. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/Check_DuckDB_Compatibility.py +0 -0
  18. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/Json_Data_Converter.py +0 -0
  19. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/Model_Registry_Tool.py +0 -0
  20. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/ODPS_Tool.py +0 -0
  21. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/Parallel_Engine.py +0 -0
  22. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/Proc_Compare.py +0 -0
  23. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/Slope_Tool.py +0 -0
  24. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/Slope_Tool.pyi +0 -0
  25. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/XOR_Encryptor.py +0 -0
  26. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/XOR_Encryptor.pyi +0 -0
  27. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/__init__.py +0 -0
  28. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/kDataFrame.py +0 -0
  29. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/kDataFrame.pyi +0 -0
  30. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/sample_weight_utils.py +0 -0
  31. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Core/utils.py +0 -0
  32. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Eval/Evaluation_Tool.py +0 -0
  33. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Eval/Evaluation_Tool.pyi +0 -0
  34. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Eval/Model_Eval_Tool.py +0 -0
  35. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Eval/Model_Eval_Tool.pyi +0 -0
  36. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Eval/__init__.py +0 -0
  37. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Eval/evaluate_model.py +0 -0
  38. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Eval/evaluate_model.pyi +0 -0
  39. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Eval/weighted_eval_utils.py +0 -0
  40. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Explainability/Coalition_Structure.py +0 -0
  41. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Explainability/Model_Explainer.py +0 -0
  42. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Explainability/__init__.py +0 -0
  43. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Feature/Distribution_Tool.py +0 -0
  44. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Feature/Distribution_Tool.pyi +0 -0
  45. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Feature/Feature_Insights.py +0 -0
  46. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Feature/Feature_Insights.pyi +0 -0
  47. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Feature/Feature_Screen.py +0 -0
  48. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Feature/PSI_Tool.py +0 -0
  49. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Feature/PSI_Tool.pyi +0 -0
  50. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Feature/WOE_Engine_Feature_Patch.py +0 -0
  51. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Feature/Weighted_Screen.py +0 -0
  52. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Feature/__init__.py +0 -0
  53. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Model/Backward_Tool.py +0 -0
  54. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Model/Backward_Tool.pyi +0 -0
  55. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Model/GBM_Search_Tool.py +0 -0
  56. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Model/GBM_Tool.py +0 -0
  57. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Model/GBM_Tool.pyi +0 -0
  58. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Model/LRM_Tool.py +0 -0
  59. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Model/LRM_Tool.pyi +0 -0
  60. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Model/__init__.py +0 -0
  61. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Pipeline/__init__.py +0 -0
  62. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Pipeline/_common.py +0 -0
  63. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Pipeline/credit_model.py +0 -0
  64. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Pipeline/feature_validation.py +0 -0
  65. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Pipeline/field_meta.py +0 -0
  66. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Pipeline/mock_sample.py +0 -0
  67. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Pipeline/orchestrator.py +0 -0
  68. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Pipeline/reject_inference.py +0 -0
  69. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Pipeline/sample_analysis.py +0 -0
  70. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Pipeline/score_comparison.py +0 -0
  71. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Pipeline/score_consistency_uat.py +0 -0
  72. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Pipeline/screening_artifact.py +0 -0
  73. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Sample/Distribution_Adaptation.py +0 -0
  74. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Sample/Distribution_Adaptation.pyi +0 -0
  75. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Sample/Reject_Infer.py +0 -0
  76. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Sample/Reject_Infer.pyi +0 -0
  77. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Sample/Sample_Split.py +0 -0
  78. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Sample/Sample_Split.pyi +0 -0
  79. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/Sample/__init__.py +0 -0
  80. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/UAT/UAT_Consistency_Checker.py +0 -0
  81. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/UAT/__init__.py +0 -0
  82. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/WOE/WOE_Adapter.py +0 -0
  83. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/WOE/WOE_Adapter.pyi +0 -0
  84. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/WOE/WOE_Master.py +0 -0
  85. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/WOE/WOE_Master.pyi +0 -0
  86. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/WOE/WOE_Monotone_Binner.py +0 -0
  87. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/WOE/WOE_Monotone_Binner.pyi +0 -0
  88. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/WOE/WOE_Plot_Tool.py +0 -0
  89. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/WOE/WOE_Plot_Tool.pyi +0 -0
  90. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/WOE/WOE_Report_Builder.py +0 -0
  91. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/WOE/WOE_Report_Builder.pyi +0 -0
  92. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/WOE/WOE_Tool.py +0 -0
  93. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/WOE/WOE_Tool.pyi +0 -0
  94. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/WOE/__init__.py +0 -0
  95. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/WOE/plot_woe_tool.py +0 -0
  96. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/WOE/plot_woe_tool.pyi +0 -0
  97. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/_utils/__init__.py +0 -0
  98. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/_utils/nan_guard.py +0 -0
  99. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/_utils/robust.py +0 -0
  100. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/_utils/sentinels.py +0 -0
  101. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/ref_font/KaiTi.ttf +0 -0
  102. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/ref_font/WeiRuanYaHei.ttf +0 -0
  103. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/ref_font/__init__.py +0 -0
  104. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Modeling_Tool/ref_font/simsun.ttc +0 -0
  105. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Report/Report_Tool.py +0 -0
  106. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/Report/__init__.py +0 -0
  107. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/SuperModelingFactory.egg-info/SOURCES.txt +0 -0
  108. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/SuperModelingFactory.egg-info/dependency_links.txt +0 -0
  109. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/SuperModelingFactory.egg-info/not-zip-safe +0 -0
  110. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/SuperModelingFactory.egg-info/requires.txt +0 -0
  111. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/SuperModelingFactory.egg-info/top_level.txt +0 -0
  112. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/requirements.txt +0 -0
  113. {supermodelingfactory-0.5.7 → supermodelingfactory-0.5.8}/setup.cfg +0 -0
@@ -64,6 +64,26 @@ def _strip_trailing_semicolon(sql: str) -> str:
64
64
  return sql.strip().rstrip(";").strip()
65
65
 
66
66
 
67
+ def _first_error_line(exc: BaseException, limit: int = 200) -> str:
68
+ """Return ``ExcType: first non-empty message line`` for embedding in a
69
+ re-raised error message, truncated to ``limit`` chars.
70
+
71
+ ODPS errors carry the actionable ``ODPS-XXXXXXX: ...`` description on
72
+ their first line followed by long instance/traceback detail; only the
73
+ first line is worth surfacing inline.
74
+ """
75
+ for line in str(exc).splitlines():
76
+ line = line.strip()
77
+ if line:
78
+ break
79
+ else:
80
+ line = ""
81
+ text = f"{type(exc).__name__}: {line}" if line else type(exc).__name__
82
+ if len(text) > limit:
83
+ return text[:limit] + "..."
84
+ return text
85
+
86
+
67
87
  def _pull_one_chunk(
68
88
  chunk_spec: dict[str, Any],
69
89
  runner: ODPSRunner | None,
@@ -218,8 +238,9 @@ class ParallelODPSManager:
218
238
  self.odps_runner.run_sql(probe_sql, to_df=True, n_process=1)
219
239
  except Exception as exc:
220
240
  raise ValueError(
221
- f"unique_key validation failed for pull SQL. "
222
- f"Check that unique_key={self.config.unique_key!r} is visible in the SQL scope."
241
+ f"unique_key validation failed for pull SQL: {_first_error_line(exc)}. "
242
+ f"Common cause: unique_key={self.config.unique_key!r} not visible in "
243
+ f"the SQL scope; see the chained exception for the full ODPS error."
223
244
  ) from exc
224
245
 
225
246
  def _build_hash_pull_chunks(
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  __author__ = "Jingkai Sun"
4
- __version__ = "0.5.7"
4
+ __version__ = "0.5.8"
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.5.7
3
+ Version: 0.5.8
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.5.7
268
+ - **Version**: 0.5.8
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.5.7
211
+ - **Version**: 0.5.8
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.5.7
3
+ Version: 0.5.8
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.5.7
268
+ - **Version**: 0.5.8
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.5.7"
15
+ version = "0.5.8"
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.5.7"),
18
+ version=os.environ.get("SMF_VERSION", "0.5.8"),
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",