dragon-ml-toolbox 4.1.0__py3-none-any.whl → 4.2.1__py3-none-any.whl

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.

Potentially problematic release.


This version of dragon-ml-toolbox might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dragon-ml-toolbox
3
- Version: 4.1.0
3
+ Version: 4.2.1
4
4
  Summary: A collection of tools for data science and machine learning projects.
5
5
  Author-email: Karl Loza <luigiloza@gmail.com>
6
6
  License-Expression: MIT
@@ -62,16 +62,20 @@ Provides-Extra: gui-boost
62
62
  Requires-Dist: numpy; extra == "gui-boost"
63
63
  Requires-Dist: joblib; extra == "gui-boost"
64
64
  Requires-Dist: FreeSimpleGUI>=5.2; extra == "gui-boost"
65
- Requires-Dist: pyinstaller; extra == "gui-boost"
66
65
  Requires-Dist: xgboost; extra == "gui-boost"
67
66
  Requires-Dist: lightgbm; extra == "gui-boost"
68
67
  Provides-Extra: gui-torch
69
68
  Requires-Dist: numpy; extra == "gui-torch"
70
69
  Requires-Dist: FreeSimpleGUI>=5.2; extra == "gui-torch"
71
- Requires-Dist: pyinstaller; extra == "gui-torch"
72
70
  Provides-Extra: plot
73
71
  Requires-Dist: matplotlib; extra == "plot"
74
72
  Requires-Dist: seaborn; extra == "plot"
73
+ Provides-Extra: pyinstaller
74
+ Requires-Dist: pyinstaller; extra == "pyinstaller"
75
+ Provides-Extra: nuitka
76
+ Requires-Dist: nuitka; extra == "nuitka"
77
+ Requires-Dist: zstandard; extra == "nuitka"
78
+ Requires-Dist: ordered-set; extra == "nuitka"
75
79
  Dynamic: license-file
76
80
 
77
81
  # dragon-ml-toolbox
@@ -161,7 +165,7 @@ pip install "dragon-ml-toolbox[mice]"
161
165
 
162
166
  #### Modules:
163
167
 
164
- ```bash
168
+ ```Bash
165
169
  custom_logger
166
170
  MICE_imputation
167
171
  VIF_factor
@@ -179,7 +183,7 @@ pip install "dragon-ml-toolbox[excel]"
179
183
 
180
184
  #### Modules:
181
185
 
182
- ```bash
186
+ ```Bash
183
187
  custom_logger
184
188
  handle_excel
185
189
  path_manager
@@ -199,7 +203,7 @@ pip install "dragon-ml-toolbox[gui-boost,plot]"
199
203
 
200
204
  #### Modules:
201
205
 
202
- ```bash
206
+ ```Bash
203
207
  GUI_tools
204
208
  ensemble_inference
205
209
  path_manager
@@ -219,7 +223,7 @@ pip install "dragon-ml-toolbox[gui-torch,plot]"
219
223
 
220
224
  #### Modules:
221
225
 
222
- ```bash
226
+ ```Bash
223
227
  GUI_tools
224
228
  ML_inference
225
229
  path_manager
@@ -235,7 +239,7 @@ pip install "dragon-ml-toolbox[base]"
235
239
 
236
240
  #### Modules:
237
241
 
238
- ```bash
242
+ ```Bash
239
243
  ETL_Engineering
240
244
  custom_logger
241
245
  SQL
@@ -243,6 +247,18 @@ utilities
243
247
  path_manager
244
248
  ```
245
249
 
250
+ ### ⚒️ APP bundlers
251
+
252
+ Choose one if needed.
253
+
254
+ ```Bash
255
+ pip install "dragon-ml-toolbox[pyinstaller]"
256
+ ```
257
+
258
+ ```Bash
259
+ pip install "dragon-ml-toolbox[nuitka]"
260
+ ```
261
+
246
262
  ## Usage
247
263
 
248
264
  After installation, import modules like this:
@@ -1,6 +1,6 @@
1
- dragon_ml_toolbox-4.1.0.dist-info/licenses/LICENSE,sha256=2uUFNy7D0TLgHim1K5s3DIJ4q_KvxEXVilnU20cWliY,1066
2
- dragon_ml_toolbox-4.1.0.dist-info/licenses/LICENSE-THIRD-PARTY.md,sha256=lY4_rJPnLnMu7YBQaY-_iz1JRDcLdQzNCyeLAF1glJY,1837
3
- ml_tools/ETL_engineering.py,sha256=m_IY-4hSp5X5TfJbWQ-MJNRxkxl4fcsxOnsivMs8tiM,39506
1
+ dragon_ml_toolbox-4.2.1.dist-info/licenses/LICENSE,sha256=2uUFNy7D0TLgHim1K5s3DIJ4q_KvxEXVilnU20cWliY,1066
2
+ dragon_ml_toolbox-4.2.1.dist-info/licenses/LICENSE-THIRD-PARTY.md,sha256=lY4_rJPnLnMu7YBQaY-_iz1JRDcLdQzNCyeLAF1glJY,1837
3
+ ml_tools/ETL_engineering.py,sha256=rlu0bUekdKREcTR0x1jn_TSEqhxgfq3QU71hy6ZyaD8,39503
4
4
  ml_tools/GUI_tools.py,sha256=n4ZZ5kEjwK5rkOCFJE41HeLFfjhpJVLUSzk9Kd9Kr_0,45410
5
5
  ml_tools/MICE_imputation.py,sha256=b6ZTs8RedXFifOpuMCzr68xM16mCBVh1Ua6kcGfiVtg,11462
6
6
  ml_tools/ML_callbacks.py,sha256=0a-Rbr0Xp_B1FNopOKBBmuJ4MqazS5JgDiT7wx1dHvE,13161
@@ -22,9 +22,9 @@ ml_tools/ensemble_inference.py,sha256=0SNX3YAz5bpvtwYmqEwqyWeIJP2Pb-v-bemENRSO7q
22
22
  ml_tools/ensemble_learning.py,sha256=Zi1oy6G2FWnTI5hBwjlexwF3JKALFS2FN6F8HAlVi_s,35391
23
23
  ml_tools/handle_excel.py,sha256=J9iwIqMZemoxK49J5osSwp9Ge0h9YTKyYGbOm53hcno,13007
24
24
  ml_tools/keys.py,sha256=kK9UF-hek2VcPGFILCKl5geoN6flmMOu7IzhdEA6z5Y,1068
25
- ml_tools/path_manager.py,sha256=ElDa25bntANujTjY7xN4ZfCDiZp-9Ud3x0aJSJptZBY,13419
25
+ ml_tools/path_manager.py,sha256=Z8e7w3MPqQaN8xmTnKuXZS6CIW59BFwwqGhGc00sdp4,13692
26
26
  ml_tools/utilities.py,sha256=mz-M351DzxWxnYVcLX-7ZQ6c-RGoCV9g4VTS9Qif2Es,18348
27
- dragon_ml_toolbox-4.1.0.dist-info/METADATA,sha256=eJQwYS8B7RMy4H8DveKsDVmj4ikBSJb_hkuTSzmObz4,6278
28
- dragon_ml_toolbox-4.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
29
- dragon_ml_toolbox-4.1.0.dist-info/top_level.txt,sha256=wm-oxax3ciyez6VoO4zsFd-gSok2VipYXnbg3TH9PtU,9
30
- dragon_ml_toolbox-4.1.0.dist-info/RECORD,,
27
+ dragon_ml_toolbox-4.2.1.dist-info/METADATA,sha256=mzW1BLOxrCKZAoZgqzYRcNhHpO4fTNxDGvUwuF5wG88,6572
28
+ dragon_ml_toolbox-4.2.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
29
+ dragon_ml_toolbox-4.2.1.dist-info/top_level.txt,sha256=wm-oxax3ciyez6VoO4zsFd-gSok2VipYXnbg3TH9PtU,9
30
+ dragon_ml_toolbox-4.2.1.dist-info/RECORD,,
@@ -543,7 +543,7 @@ class KeywordDummifier:
543
543
  # If a group had no matches, create a column of zeros
544
544
  final_columns.append(pl.lit(0, dtype=pl.UInt8).alias(name))
545
545
 
546
- return pl.DataFrame(final_columns)
546
+ return pl.select(final_columns)
547
547
 
548
548
 
549
549
  class NumberExtractor:
ml_tools/path_manager.py CHANGED
@@ -49,18 +49,26 @@ class PathManager:
49
49
  for dir_name in base_directories:
50
50
  # This logic works for both dev mode and bundled mode
51
51
  self._paths[dir_name] = package_root / dir_name
52
-
52
+
53
53
  def _get_bundle_root(self) -> tuple[bool, Optional[str]]:
54
54
  """
55
- Checks if the app is running in a PyInstaller bundle and returns the root path.
55
+ Checks if the app is running in a PyInstaller or Nuitka bundle and returns the root path.
56
56
 
57
57
  Returns:
58
- A tuple (is_bundled, bundle_root_path). `bundle_root_path` is the
59
- path to the temporary directory `_MEIPASS` if bundled, otherwise None.
58
+ A tuple (is_bundled, bundle_root_path).
60
59
  """
60
+ # --- PyInstaller Check ---
61
61
  if getattr(sys, 'frozen', False) and hasattr(sys, '_MEIPASS'):
62
- # This is the standard way to check for a PyInstaller bundle
62
+ # The bundle root for PyInstaller is the temporary _MEIPASS directory
63
63
  return True, sys._MEIPASS # type: ignore
64
+
65
+ # --- Nuitka Check ---
66
+ elif '__nuitka_binary_dir' in sys.__dict__:
67
+ # For Nuitka, the root is the directory of the binary.
68
+ # Unlike PyInstaller's _MEIPASS, this is the final install location.
69
+ return True, sys.__dict__['__nuitka_binary_dir']
70
+
71
+ # --- Not Bundled ---
64
72
  else:
65
73
  return False, None
66
74