SuperModelingFactory 0.8.2__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.2 → supermodelingfactory-0.9.1}/ExcelMaster/ExcelFormatTool.py +55 -9
  2. supermodelingfactory-0.9.1/ExcelMaster/ExcelMaster.py +1692 -0
  3. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/ExcelMaster/Template.py +422 -10
  4. supermodelingfactory-0.9.1/ExcelMaster/Utility.py +591 -0
  5. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Binning_Tool.py +409 -348
  6. {supermodelingfactory-0.8.2 → 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.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Json_Data_Converter.py +176 -134
  9. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Model_Registry_Tool.py +64 -1
  10. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/ODPS_Tool.py +106 -61
  11. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Parallel_Engine.py +140 -2
  12. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Parallel_ODPS_Manager.py +117 -1
  13. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Proc_Compare.py +137 -2
  14. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Slope_Tool.py +75 -75
  15. {supermodelingfactory-0.8.2 → 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.2 → 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.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/utils.py +960 -607
  21. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/Evaluation_Tool.py +388 -92
  22. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/Evaluation_Tool.pyi +14 -3
  23. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/Model_Eval_Tool.py +660 -408
  24. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/Model_Eval_Tool.pyi +15 -4
  25. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/evaluate_model.py +561 -329
  26. {supermodelingfactory-0.8.2 → 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.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Explainability/Coalition_Structure.py +226 -3
  29. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Explainability/Model_Explainer.py +817 -18
  30. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Distribution_Tool.py +167 -116
  31. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Distribution_Tool.pyi +4 -0
  32. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Feature_Insights.py +163 -155
  33. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Feature_Insights.pyi +12 -4
  34. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Feature_Screen.py +429 -12
  35. {supermodelingfactory-0.8.2 → 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.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/PSI_Tool.py +139 -45
  38. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/PSI_Tool.pyi +15 -6
  39. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Screen_Gates.py +224 -9
  40. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/WOE_Engine_Feature_Patch.py +379 -0
  41. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Weighted_Screen.py +287 -36
  42. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Model/Backward_Tool.py +245 -128
  43. supermodelingfactory-0.9.1/Modeling_Tool/Model/Backward_Tool.pyi +44 -0
  44. {supermodelingfactory-0.8.2 → 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.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Model/GBM_Tool.pyi +20 -13
  47. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Model/LRM_Tool.py +293 -34
  48. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Model/LRM_Tool.pyi +25 -13
  49. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/_common.py +294 -13
  50. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/credit_model.py +851 -75
  51. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/feature_validation.py +912 -108
  52. supermodelingfactory-0.9.1/Modeling_Tool/Pipeline/field_meta.py +1518 -0
  53. {supermodelingfactory-0.8.2 → 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.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/reject_inference.py +363 -13
  56. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/sample_analysis.py +164 -1
  57. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/score_comparison.py +266 -14
  58. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/score_consistency_uat.py +175 -1
  59. {supermodelingfactory-0.8.2 → 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.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/Reject_Infer.py +222 -41
  62. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/Reject_Infer.pyi +9 -1
  63. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/Sample_Split.py +75 -12
  64. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/Sample_Split.pyi +1 -0
  65. {supermodelingfactory-0.8.2 → 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.2 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Master.pyi +8 -3
  70. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Monotone_Binner.py +1167 -777
  71. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Monotone_Binner.pyi +53 -2
  72. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Plot_Tool.py +166 -166
  73. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Report_Builder.py +89 -33
  74. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Tool.py +360 -334
  75. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Tool.pyi +9 -3
  76. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/plot_woe_tool.py +43 -43
  77. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/__init__.py +1 -1
  78. supermodelingfactory-0.9.1/PKG-INFO +376 -0
  79. supermodelingfactory-0.9.1/README.md +319 -0
  80. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Report/Report_Tool.py +337 -16
  81. supermodelingfactory-0.9.1/SuperModelingFactory.egg-info/PKG-INFO +376 -0
  82. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/pyproject.toml +1 -1
  83. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/requirements.txt +15 -15
  84. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/setup.py +1 -1
  85. supermodelingfactory-0.8.2/ExcelMaster/ExcelMaster.py +0 -922
  86. supermodelingfactory-0.8.2/ExcelMaster/Utility.py +0 -233
  87. supermodelingfactory-0.8.2/Modeling_Tool/Core/Check_DuckDB_Compatibility.py +0 -835
  88. supermodelingfactory-0.8.2/Modeling_Tool/Core/XOR_Encryptor.py +0 -207
  89. supermodelingfactory-0.8.2/Modeling_Tool/Core/kDataFrame.py +0 -214
  90. supermodelingfactory-0.8.2/Modeling_Tool/Core/sample_weight_utils.py +0 -83
  91. supermodelingfactory-0.8.2/Modeling_Tool/Eval/weighted_eval_utils.py +0 -429
  92. supermodelingfactory-0.8.2/Modeling_Tool/Feature/ODPS_Distribution_Tool.pyi +0 -23
  93. supermodelingfactory-0.8.2/Modeling_Tool/Model/Backward_Tool.pyi +0 -45
  94. supermodelingfactory-0.8.2/Modeling_Tool/Model/GBM_Tool.py +0 -1614
  95. supermodelingfactory-0.8.2/Modeling_Tool/Pipeline/field_meta.py +0 -1220
  96. supermodelingfactory-0.8.2/Modeling_Tool/Pipeline/orchestrator.py +0 -50
  97. supermodelingfactory-0.8.2/Modeling_Tool/Sample/Distribution_Adaptation.py +0 -131
  98. supermodelingfactory-0.8.2/Modeling_Tool/WOE/WOE_Adapter.py +0 -277
  99. supermodelingfactory-0.8.2/Modeling_Tool/WOE/WOE_Adapter.pyi +0 -22
  100. supermodelingfactory-0.8.2/Modeling_Tool/WOE/WOE_Master.py +0 -587
  101. supermodelingfactory-0.8.2/PKG-INFO +0 -273
  102. supermodelingfactory-0.8.2/README.md +0 -216
  103. supermodelingfactory-0.8.2/SuperModelingFactory.egg-info/PKG-INFO +0 -273
  104. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/ExcelMaster/__init__.py +0 -0
  105. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/LICENSE +0 -0
  106. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/MANIFEST.in +0 -0
  107. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/XOR_Encryptor.pyi +0 -0
  108. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/__init__.py +0 -0
  109. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/__init__.py +0 -0
  110. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Explainability/__init__.py +0 -0
  111. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/__init__.py +0 -0
  112. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Model/__init__.py +0 -0
  113. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/__init__.py +0 -0
  114. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/Distribution_Adaptation.pyi +0 -0
  115. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/__init__.py +0 -0
  116. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/UAT/__init__.py +0 -0
  117. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Plot_Tool.pyi +0 -0
  118. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Report_Builder.pyi +0 -0
  119. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/__init__.py +0 -0
  120. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/plot_woe_tool.pyi +0 -0
  121. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/_utils/__init__.py +0 -0
  122. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/_utils/frames.py +0 -0
  123. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/_utils/nan_guard.py +0 -0
  124. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/_utils/robust.py +0 -0
  125. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/_utils/sentinels.py +0 -0
  126. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/ref_font/KaiTi.ttf +0 -0
  127. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/ref_font/WeiRuanYaHei.ttf +0 -0
  128. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/ref_font/__init__.py +0 -0
  129. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Modeling_Tool/ref_font/simsun.ttc +0 -0
  130. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/Report/__init__.py +0 -0
  131. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/SuperModelingFactory.egg-info/SOURCES.txt +0 -0
  132. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/SuperModelingFactory.egg-info/dependency_links.txt +0 -0
  133. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/SuperModelingFactory.egg-info/not-zip-safe +0 -0
  134. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/SuperModelingFactory.egg-info/requires.txt +0 -0
  135. {supermodelingfactory-0.8.2 → supermodelingfactory-0.9.1}/SuperModelingFactory.egg-info/top_level.txt +0 -0
  136. {supermodelingfactory-0.8.2 → 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