SuperModelingFactory 0.8.1__tar.gz → 0.9.1__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 (136) hide show
  1. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/ExcelMaster/ExcelFormatTool.py +55 -9
  2. supermodelingfactory-0.9.1/ExcelMaster/ExcelMaster.py +1692 -0
  3. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/ExcelMaster/Template.py +422 -11
  4. supermodelingfactory-0.9.1/ExcelMaster/Utility.py +591 -0
  5. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Binning_Tool.py +429 -363
  6. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Binning_Tool.pyi +7 -0
  7. supermodelingfactory-0.9.1/Modeling_Tool/Core/Check_DuckDB_Compatibility.py +902 -0
  8. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Json_Data_Converter.py +176 -134
  9. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Model_Registry_Tool.py +64 -1
  10. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/ODPS_Tool.py +111 -68
  11. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Parallel_Engine.py +140 -2
  12. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Parallel_ODPS_Manager.py +117 -1
  13. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Proc_Compare.py +137 -2
  14. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Slope_Tool.py +75 -81
  15. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Slope_Tool.pyi +1 -0
  16. supermodelingfactory-0.9.1/Modeling_Tool/Core/XOR_Encryptor.py +236 -0
  17. supermodelingfactory-0.9.1/Modeling_Tool/Core/kDataFrame.py +441 -0
  18. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/kDataFrame.pyi +4 -0
  19. supermodelingfactory-0.9.1/Modeling_Tool/Core/sample_weight_utils.py +169 -0
  20. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/utils.py +963 -608
  21. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/Evaluation_Tool.py +388 -92
  22. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/Evaluation_Tool.pyi +14 -3
  23. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/Model_Eval_Tool.py +666 -408
  24. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/Model_Eval_Tool.pyi +15 -4
  25. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/evaluate_model.py +609 -335
  26. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/evaluate_model.pyi +42 -2
  27. supermodelingfactory-0.9.1/Modeling_Tool/Eval/weighted_eval_utils.py +1159 -0
  28. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Explainability/Coalition_Structure.py +226 -3
  29. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Explainability/Model_Explainer.py +827 -20
  30. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Distribution_Tool.py +167 -116
  31. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Distribution_Tool.pyi +4 -0
  32. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Feature_Insights.py +163 -155
  33. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Feature_Insights.pyi +12 -4
  34. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Feature_Screen.py +430 -12
  35. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/ODPS_Distribution_Tool.py +75 -0
  36. supermodelingfactory-0.9.1/Modeling_Tool/Feature/ODPS_Distribution_Tool.pyi +37 -0
  37. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/PSI_Tool.py +139 -45
  38. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/PSI_Tool.pyi +15 -6
  39. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Screen_Gates.py +224 -9
  40. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/WOE_Engine_Feature_Patch.py +379 -0
  41. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Weighted_Screen.py +287 -36
  42. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Model/Backward_Tool.py +245 -132
  43. supermodelingfactory-0.9.1/Modeling_Tool/Model/Backward_Tool.pyi +44 -0
  44. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Model/GBM_Search_Tool.py +32 -10
  45. supermodelingfactory-0.9.1/Modeling_Tool/Model/GBM_Tool.py +1938 -0
  46. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Model/GBM_Tool.pyi +20 -13
  47. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Model/LRM_Tool.py +321 -46
  48. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Model/LRM_Tool.pyi +25 -13
  49. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/_common.py +294 -13
  50. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/credit_model.py +855 -60
  51. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/feature_validation.py +939 -108
  52. supermodelingfactory-0.9.1/Modeling_Tool/Pipeline/field_meta.py +1518 -0
  53. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/mock_sample.py +96 -1
  54. supermodelingfactory-0.9.1/Modeling_Tool/Pipeline/orchestrator.py +89 -0
  55. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/reject_inference.py +365 -13
  56. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/sample_analysis.py +164 -1
  57. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/score_comparison.py +266 -14
  58. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/score_consistency_uat.py +175 -1
  59. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/screening_artifact.py +119 -5
  60. supermodelingfactory-0.9.1/Modeling_Tool/Sample/Distribution_Adaptation.py +285 -0
  61. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/Reject_Infer.py +222 -41
  62. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/Reject_Infer.pyi +9 -1
  63. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/Sample_Split.py +76 -13
  64. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/Sample_Split.pyi +1 -0
  65. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/UAT/UAT_Consistency_Checker.py +375 -190
  66. supermodelingfactory-0.9.1/Modeling_Tool/WOE/WOE_Adapter.py +549 -0
  67. supermodelingfactory-0.9.1/Modeling_Tool/WOE/WOE_Adapter.pyi +39 -0
  68. supermodelingfactory-0.9.1/Modeling_Tool/WOE/WOE_Master.py +942 -0
  69. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Master.pyi +8 -3
  70. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Monotone_Binner.py +1400 -739
  71. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Monotone_Binner.pyi +58 -2
  72. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Plot_Tool.py +170 -168
  73. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Report_Builder.py +89 -33
  74. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Tool.py +360 -334
  75. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Tool.pyi +9 -3
  76. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/plot_woe_tool.py +45 -45
  77. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/__init__.py +1 -1
  78. supermodelingfactory-0.9.1/Modeling_Tool/_utils/frames.py +54 -0
  79. supermodelingfactory-0.9.1/PKG-INFO +376 -0
  80. supermodelingfactory-0.9.1/README.md +319 -0
  81. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Report/Report_Tool.py +337 -17
  82. supermodelingfactory-0.9.1/SuperModelingFactory.egg-info/PKG-INFO +376 -0
  83. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/SuperModelingFactory.egg-info/SOURCES.txt +1 -0
  84. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/pyproject.toml +1 -1
  85. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/requirements.txt +15 -15
  86. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/setup.py +1 -1
  87. supermodelingfactory-0.8.1/ExcelMaster/ExcelMaster.py +0 -917
  88. supermodelingfactory-0.8.1/ExcelMaster/Utility.py +0 -233
  89. supermodelingfactory-0.8.1/Modeling_Tool/Core/Check_DuckDB_Compatibility.py +0 -835
  90. supermodelingfactory-0.8.1/Modeling_Tool/Core/XOR_Encryptor.py +0 -207
  91. supermodelingfactory-0.8.1/Modeling_Tool/Core/kDataFrame.py +0 -220
  92. supermodelingfactory-0.8.1/Modeling_Tool/Core/sample_weight_utils.py +0 -83
  93. supermodelingfactory-0.8.1/Modeling_Tool/Eval/weighted_eval_utils.py +0 -429
  94. supermodelingfactory-0.8.1/Modeling_Tool/Feature/ODPS_Distribution_Tool.pyi +0 -23
  95. supermodelingfactory-0.8.1/Modeling_Tool/Model/Backward_Tool.pyi +0 -45
  96. supermodelingfactory-0.8.1/Modeling_Tool/Model/GBM_Tool.py +0 -1614
  97. supermodelingfactory-0.8.1/Modeling_Tool/Pipeline/field_meta.py +0 -1220
  98. supermodelingfactory-0.8.1/Modeling_Tool/Pipeline/orchestrator.py +0 -50
  99. supermodelingfactory-0.8.1/Modeling_Tool/Sample/Distribution_Adaptation.py +0 -131
  100. supermodelingfactory-0.8.1/Modeling_Tool/WOE/WOE_Adapter.py +0 -277
  101. supermodelingfactory-0.8.1/Modeling_Tool/WOE/WOE_Adapter.pyi +0 -22
  102. supermodelingfactory-0.8.1/Modeling_Tool/WOE/WOE_Master.py +0 -587
  103. supermodelingfactory-0.8.1/PKG-INFO +0 -273
  104. supermodelingfactory-0.8.1/README.md +0 -216
  105. supermodelingfactory-0.8.1/SuperModelingFactory.egg-info/PKG-INFO +0 -273
  106. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/ExcelMaster/__init__.py +0 -0
  107. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/LICENSE +0 -0
  108. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/MANIFEST.in +0 -0
  109. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/XOR_Encryptor.pyi +0 -0
  110. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/__init__.py +0 -0
  111. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/__init__.py +0 -0
  112. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Explainability/__init__.py +0 -0
  113. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/__init__.py +0 -0
  114. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Model/__init__.py +0 -0
  115. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/__init__.py +0 -0
  116. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/Distribution_Adaptation.pyi +0 -0
  117. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/__init__.py +0 -0
  118. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/UAT/__init__.py +0 -0
  119. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Plot_Tool.pyi +0 -0
  120. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Report_Builder.pyi +0 -0
  121. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/__init__.py +0 -0
  122. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/plot_woe_tool.pyi +0 -0
  123. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/_utils/__init__.py +0 -0
  124. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/_utils/nan_guard.py +0 -0
  125. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/_utils/robust.py +0 -0
  126. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/_utils/sentinels.py +0 -0
  127. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/ref_font/KaiTi.ttf +0 -0
  128. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/ref_font/WeiRuanYaHei.ttf +0 -0
  129. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/ref_font/__init__.py +0 -0
  130. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/ref_font/simsun.ttc +0 -0
  131. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Report/__init__.py +0 -0
  132. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/SuperModelingFactory.egg-info/dependency_links.txt +0 -0
  133. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/SuperModelingFactory.egg-info/not-zip-safe +0 -0
  134. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/SuperModelingFactory.egg-info/requires.txt +0 -0
  135. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/SuperModelingFactory.egg-info/top_level.txt +0 -0
  136. {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/setup.cfg +0 -0
@@ -6,22 +6,52 @@ import logging
6
6
  logger = logging.getLogger(__name__)
7
7
 
8
8
  class ExcelFormat:
9
- '''
10
- Initialize excel format.
11
-
9
+ '''Initialize excel format.
10
+
11
+ Opens the output workbook and registers the library of preset cell formats (``dict_cell_format``) that the writer
12
+ classes ``ExcelWorkbook`` and ``ExcelMaster`` refer to by name.
13
+
14
+ Parameters
15
+ ----------
16
+ filepath : str
17
+ Path of the ``.xlsx`` file to create. The file is opened when the object is created (through ``pandas.ExcelWriter``
18
+ with the xlsxwriter engine) and receives its content only when the workbook is closed, so a workbook that is never
19
+ closed stays an empty file.
20
+
21
+ Attributes
22
+ ----------
23
+ engine : pandas.ExcelWriter
24
+ Writer (xlsxwriter engine) through which DataFrames are written.
25
+ workbook : xlsxwriter.workbook.Workbook
26
+ The underlying xlsxwriter workbook (``engine.book``).
27
+ basename : str
28
+ File name part of ``filepath``.
29
+ base_filepath : str
30
+ Directory part of ``filepath`` including the trailing separator (``"out/"`` for ``"out/report.xlsx"``), or an
31
+ empty string for a bare file name.
32
+ dict_cell_format : dict
33
+ Maps format names to xlsxwriter ``Format`` objects. It holds 87 preset names, several of which are aliases of the
34
+ same format (for example ``HEADER_1`` and ``#``), plus the names added with ``add_new_format``. Examples of
35
+ presets: ``BLUE_H4``, ``ORANGE_H3``, ``TABLE_HEADER``, ``----``, ``NUM%.2``, ``B``, ``YELLOW_BG``; list all of them
36
+ with ``sorted(dict_cell_format)``. Every method that takes a format name looks it up here and raises ``KeyError``
37
+ for an unknown name. The presets are also set as attributes named after their long names (for example
38
+ ``HEADER_1``).
39
+
40
+ Notes
41
+ -----
42
+ Register your own formats with ``add_new_format``; presets cannot be overridden.
12
43
  '''
13
44
 
14
45
  def __init__(self, filepath):
15
- '''
16
- This creates the workbook using the filename specified in
17
- filename_workbook.
18
-
46
+ '''Create the workbook for ``filepath`` and register the preset cell formats.
47
+
48
+ The parameters and attributes are described in the class docstring.
19
49
  '''
20
50
 
21
51
  self.engine = pd.ExcelWriter(filepath, engine='xlsxwriter')
22
52
  self.workbook = self.engine.book
23
53
  self.basename = os.path.basename(filepath)
24
- self.base_filepath = filepath.strip(self.basename)
54
+ self.base_filepath = filepath[:len(filepath) - len(self.basename)]
25
55
 
26
56
 
27
57
  ######### Basic Text-related Formatting ###############
@@ -479,7 +509,23 @@ class ExcelFormat:
479
509
  self.dict_cell_format['YELLOW_BG'] = self.BG_LIGHT_YELLOW
480
510
 
481
511
  def add_new_format(self, format_dict, format_name):
482
- """ Add a new user-defined format. """
512
+ """Add a new user-defined format.
513
+
514
+ Parameters
515
+ ----------
516
+ format_dict : dict
517
+ xlsxwriter format properties, for example ``{"bold": True, "bg_color": "#FFE699"}``; passed to
518
+ ``workbook.add_format``.
519
+ format_name : str
520
+ Name under which the format is registered in ``dict_cell_format``. Use it wherever a format name is accepted
521
+ (``cformat``, ``titleformat``, ``headerformat``, ``valueformat``, ...).
522
+
523
+ Returns
524
+ -------
525
+ int
526
+ 0 when the format was added; 1 when ``format_name`` is already registered (every preset name counts): the existing
527
+ format is kept, nothing is overwritten, and an INFO message is logged instead of raising an exception.
528
+ """
483
529
  if format_name not in self.dict_cell_format.keys():
484
530
  self.dict_cell_format[format_name] = self.workbook.add_format(format_dict)
485
531
  return 0