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.
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/ExcelMaster/ExcelFormatTool.py +55 -9
- supermodelingfactory-0.9.1/ExcelMaster/ExcelMaster.py +1692 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/ExcelMaster/Template.py +422 -11
- supermodelingfactory-0.9.1/ExcelMaster/Utility.py +591 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Binning_Tool.py +429 -363
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Binning_Tool.pyi +7 -0
- supermodelingfactory-0.9.1/Modeling_Tool/Core/Check_DuckDB_Compatibility.py +902 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Json_Data_Converter.py +176 -134
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Model_Registry_Tool.py +64 -1
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/ODPS_Tool.py +111 -68
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Parallel_Engine.py +140 -2
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Parallel_ODPS_Manager.py +117 -1
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Proc_Compare.py +137 -2
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Slope_Tool.py +75 -81
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/Slope_Tool.pyi +1 -0
- supermodelingfactory-0.9.1/Modeling_Tool/Core/XOR_Encryptor.py +236 -0
- supermodelingfactory-0.9.1/Modeling_Tool/Core/kDataFrame.py +441 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/kDataFrame.pyi +4 -0
- supermodelingfactory-0.9.1/Modeling_Tool/Core/sample_weight_utils.py +169 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/utils.py +963 -608
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/Evaluation_Tool.py +388 -92
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/Evaluation_Tool.pyi +14 -3
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/Model_Eval_Tool.py +666 -408
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/Model_Eval_Tool.pyi +15 -4
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/evaluate_model.py +609 -335
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/evaluate_model.pyi +42 -2
- supermodelingfactory-0.9.1/Modeling_Tool/Eval/weighted_eval_utils.py +1159 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Explainability/Coalition_Structure.py +226 -3
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Explainability/Model_Explainer.py +827 -20
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Distribution_Tool.py +167 -116
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Distribution_Tool.pyi +4 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Feature_Insights.py +163 -155
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Feature_Insights.pyi +12 -4
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Feature_Screen.py +430 -12
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/ODPS_Distribution_Tool.py +75 -0
- supermodelingfactory-0.9.1/Modeling_Tool/Feature/ODPS_Distribution_Tool.pyi +37 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/PSI_Tool.py +139 -45
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/PSI_Tool.pyi +15 -6
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Screen_Gates.py +224 -9
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/WOE_Engine_Feature_Patch.py +379 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/Weighted_Screen.py +287 -36
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Model/Backward_Tool.py +245 -132
- supermodelingfactory-0.9.1/Modeling_Tool/Model/Backward_Tool.pyi +44 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Model/GBM_Search_Tool.py +32 -10
- supermodelingfactory-0.9.1/Modeling_Tool/Model/GBM_Tool.py +1938 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Model/GBM_Tool.pyi +20 -13
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Model/LRM_Tool.py +321 -46
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Model/LRM_Tool.pyi +25 -13
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/_common.py +294 -13
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/credit_model.py +855 -60
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/feature_validation.py +939 -108
- supermodelingfactory-0.9.1/Modeling_Tool/Pipeline/field_meta.py +1518 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/mock_sample.py +96 -1
- supermodelingfactory-0.9.1/Modeling_Tool/Pipeline/orchestrator.py +89 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/reject_inference.py +365 -13
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/sample_analysis.py +164 -1
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/score_comparison.py +266 -14
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/score_consistency_uat.py +175 -1
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/screening_artifact.py +119 -5
- supermodelingfactory-0.9.1/Modeling_Tool/Sample/Distribution_Adaptation.py +285 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/Reject_Infer.py +222 -41
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/Reject_Infer.pyi +9 -1
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/Sample_Split.py +76 -13
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/Sample_Split.pyi +1 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/UAT/UAT_Consistency_Checker.py +375 -190
- supermodelingfactory-0.9.1/Modeling_Tool/WOE/WOE_Adapter.py +549 -0
- supermodelingfactory-0.9.1/Modeling_Tool/WOE/WOE_Adapter.pyi +39 -0
- supermodelingfactory-0.9.1/Modeling_Tool/WOE/WOE_Master.py +942 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Master.pyi +8 -3
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Monotone_Binner.py +1400 -739
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Monotone_Binner.pyi +58 -2
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Plot_Tool.py +170 -168
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Report_Builder.py +89 -33
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Tool.py +360 -334
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Tool.pyi +9 -3
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/plot_woe_tool.py +45 -45
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/__init__.py +1 -1
- supermodelingfactory-0.9.1/Modeling_Tool/_utils/frames.py +54 -0
- supermodelingfactory-0.9.1/PKG-INFO +376 -0
- supermodelingfactory-0.9.1/README.md +319 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Report/Report_Tool.py +337 -17
- supermodelingfactory-0.9.1/SuperModelingFactory.egg-info/PKG-INFO +376 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/SuperModelingFactory.egg-info/SOURCES.txt +1 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/pyproject.toml +1 -1
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/requirements.txt +15 -15
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/setup.py +1 -1
- supermodelingfactory-0.8.1/ExcelMaster/ExcelMaster.py +0 -917
- supermodelingfactory-0.8.1/ExcelMaster/Utility.py +0 -233
- supermodelingfactory-0.8.1/Modeling_Tool/Core/Check_DuckDB_Compatibility.py +0 -835
- supermodelingfactory-0.8.1/Modeling_Tool/Core/XOR_Encryptor.py +0 -207
- supermodelingfactory-0.8.1/Modeling_Tool/Core/kDataFrame.py +0 -220
- supermodelingfactory-0.8.1/Modeling_Tool/Core/sample_weight_utils.py +0 -83
- supermodelingfactory-0.8.1/Modeling_Tool/Eval/weighted_eval_utils.py +0 -429
- supermodelingfactory-0.8.1/Modeling_Tool/Feature/ODPS_Distribution_Tool.pyi +0 -23
- supermodelingfactory-0.8.1/Modeling_Tool/Model/Backward_Tool.pyi +0 -45
- supermodelingfactory-0.8.1/Modeling_Tool/Model/GBM_Tool.py +0 -1614
- supermodelingfactory-0.8.1/Modeling_Tool/Pipeline/field_meta.py +0 -1220
- supermodelingfactory-0.8.1/Modeling_Tool/Pipeline/orchestrator.py +0 -50
- supermodelingfactory-0.8.1/Modeling_Tool/Sample/Distribution_Adaptation.py +0 -131
- supermodelingfactory-0.8.1/Modeling_Tool/WOE/WOE_Adapter.py +0 -277
- supermodelingfactory-0.8.1/Modeling_Tool/WOE/WOE_Adapter.pyi +0 -22
- supermodelingfactory-0.8.1/Modeling_Tool/WOE/WOE_Master.py +0 -587
- supermodelingfactory-0.8.1/PKG-INFO +0 -273
- supermodelingfactory-0.8.1/README.md +0 -216
- supermodelingfactory-0.8.1/SuperModelingFactory.egg-info/PKG-INFO +0 -273
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/ExcelMaster/__init__.py +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/LICENSE +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/MANIFEST.in +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/XOR_Encryptor.pyi +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Core/__init__.py +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Eval/__init__.py +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Explainability/__init__.py +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Feature/__init__.py +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Model/__init__.py +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Pipeline/__init__.py +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/Distribution_Adaptation.pyi +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/Sample/__init__.py +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/UAT/__init__.py +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Plot_Tool.pyi +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/WOE_Report_Builder.pyi +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/__init__.py +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/WOE/plot_woe_tool.pyi +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/_utils/__init__.py +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/_utils/nan_guard.py +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/_utils/robust.py +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/_utils/sentinels.py +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/ref_font/KaiTi.ttf +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/ref_font/WeiRuanYaHei.ttf +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/ref_font/__init__.py +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Modeling_Tool/ref_font/simsun.ttc +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/Report/__init__.py +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/SuperModelingFactory.egg-info/dependency_links.txt +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/SuperModelingFactory.egg-info/not-zip-safe +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/SuperModelingFactory.egg-info/requires.txt +0 -0
- {supermodelingfactory-0.8.1 → supermodelingfactory-0.9.1}/SuperModelingFactory.egg-info/top_level.txt +0 -0
- {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
|
-
|
|
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
|
-
|
|
17
|
-
|
|
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
|
|
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
|
-
"""
|
|
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
|