|
1 | | -diff --git a/UTILS/dfextensions/groupby_regression/__init__.py b/UTILS/dfextensions/groupby_regression/__init__.py |
2 | | -index 7181efbc..7e38ab19 100644 |
3 | | ---- a/UTILS/dfextensions/groupby_regression/__init__.py |
4 | | -+++ b/UTILS/dfextensions/groupby_regression/__init__.py |
5 | | -@@ -18,23 +18,23 @@ See docs/README.md for choosing between implementations. |
6 | | - """ |
7 | | - |
8 | | - # Import main classes from modules (will add after files are moved) |
9 | | --# from .groupby_regression import GroupByRegressor |
10 | | --# from .groupby_regression_optimized import ( |
11 | | --# make_parallel_fit_v2, |
12 | | --# make_parallel_fit_v3, |
13 | | --# make_parallel_fit_v4, |
14 | | --# GroupByRegressorOptimized, |
15 | | --# ) |
16 | | -+from .groupby_regression import GroupByRegressor |
17 | | -+from .groupby_regression_optimized import ( |
18 | | -+ make_parallel_fit_v2, |
19 | | -+ make_parallel_fit_v3, |
20 | | -+ make_parallel_fit_v4, |
21 | | -+ GroupByRegressorOptimized, |
22 | | -+) |
23 | | - |
24 | | - # Version info |
25 | | - __version__ = '2.0.0' |
26 | | - __author__ = 'Marian Ivanov' |
27 | | - |
28 | | - # Expose at package level (will uncomment after files are moved) |
29 | | --# __all__ = [ |
30 | | --# 'GroupByRegressor', |
31 | | --# 'make_parallel_fit_v2', |
32 | | --# 'make_parallel_fit_v3', |
33 | | --# 'make_parallel_fit_v4', |
34 | | --# 'GroupByRegressorOptimized', |
35 | | --# ] |
36 | | -+__all__ = [ |
37 | | -+ 'GroupByRegressor', |
38 | | -+ 'make_parallel_fit_v2', |
39 | | -+ 'make_parallel_fit_v3', |
40 | | -+ 'make_parallel_fit_v4', |
41 | | -+ 'GroupByRegressorOptimized', |
42 | | -+] |
43 | | -diff --git a/UTILS/dfextensions/groupby_regression/benchmarks/bench_groupby_regression.py b/UTILS/dfextensions/groupby_regression/benchmarks/bench_groupby_regression.py |
44 | | -index e412c781..48c8ecb5 100644 |
45 | | ---- a/UTILS/dfextensions/groupby_regression/benchmarks/bench_groupby_regression.py |
46 | | -+++ b/UTILS/dfextensions/groupby_regression/benchmarks/bench_groupby_regression.py |
47 | | -@@ -35,8 +35,8 @@ import pandas as pd |
48 | | - |
49 | | - # --- Import the project module --- |
50 | | - try: |
51 | | -- import groupby_regression as gr |
52 | | -- from groupby_regression import GroupByRegressor |
53 | | -+ from .. import groupby_regression as gr |
54 | | -+ from ..groupby_regression import GroupByRegressor |
55 | | - except Exception as e: |
56 | | - print("[ERROR] Failed to import groupby_regression.py:", e, file=sys.stderr) |
57 | | - raise |
58 | | -diff --git a/UTILS/dfextensions/groupby_regression/groupby_regression.py b/UTILS/dfextensions/groupby_regression/groupby_regression.py |
59 | | -index cd4d10c3..b930c69d 100644 |
60 | | ---- a/UTILS/dfextensions/groupby_regression/groupby_regression.py |
61 | | -+++ b/UTILS/dfextensions/groupby_regression/groupby_regression.py |
62 | | -@@ -670,3 +670,14 @@ class GroupByRegressor: |
63 | | - ) |
64 | | - return lines[0] |
65 | | - |
66 | | -+ |
67 | | -+# ============================================================================ |
68 | | -+# Aliases for clarity |
69 | | -+# ============================================================================ |
70 | | -+ |
71 | | -+# Export both "robust" (preferred) and "legacy" (compatibility) names |
72 | | -+#make_parallel_fit_robust = make_parallel_fit |
73 | | -+#make_parallel_fit_legacy = make_parallel_fit |
74 | | -+ |
75 | | -+# Note: "legacy" doesn't mean deprecated - this is production-proven code! |
76 | | -+# We use this name to distinguish from "optimized" fast implementations. |
77 | | -diff --git a/UTILS/dfextensions/groupby_regression/tests/test_groupby_regression.py b/UTILS/dfextensions/groupby_regression/tests/test_groupby_regression.py |
78 | | -index 6765cbea..58ca80e9 100644 |
79 | | ---- a/UTILS/dfextensions/groupby_regression/tests/test_groupby_regression.py |
80 | | -+++ b/UTILS/dfextensions/groupby_regression/tests/test_groupby_regression.py |
81 | | -@@ -2,7 +2,7 @@ import pytest |
82 | | - import pandas as pd |
83 | | - import numpy as np |
84 | | - #from groupby_regression import GroupByRegressor |
85 | | --from .groupby_regression import GroupByRegressor |
86 | | -+from ..groupby_regression import GroupByRegressor |
87 | | - |
88 | | - @pytest.fixture |
89 | | - def sample_data(): |
90 | | -diff --git a/UTILS/dfextensions/groupby_regression/tests/test_groupby_regression_optimized.py b/UTILS/dfextensions/groupby_regression/tests/test_groupby_regression_optimized.py |
91 | | -index 7a5c536c..e7ebd715 100644 |
92 | | ---- a/UTILS/dfextensions/groupby_regression/tests/test_groupby_regression_optimized.py |
93 | | -+++ b/UTILS/dfextensions/groupby_regression/tests/test_groupby_regression_optimized.py |
94 | | -@@ -13,7 +13,7 @@ from pathlib import Path |
95 | | - |
96 | | - # Import the optimized implementation |
97 | | - sys.path.insert(0, str(Path(__file__).parent)) |
98 | | --from groupby_regression_optimized import GroupByRegressorOptimized, make_parallel_fit_v2 |
99 | | -+from ..groupby_regression_optimized import GroupByRegressorOptimized, make_parallel_fit_v2 |
100 | | - |
101 | | - |
102 | | - @pytest.fixture |
103 | | -@@ -814,7 +814,7 @@ def test_fast_backend_consistency(): |
104 | | - """ |
105 | | - import numpy as np |
106 | | - import pandas as pd |
107 | | -- from groupby_regression_optimized import make_parallel_fit_v2, make_parallel_fit_v3 |
108 | | -+ from ..groupby_regression_optimized import make_parallel_fit_v2, make_parallel_fit_v3 |
109 | | - |
110 | | - rng = np.random.default_rng(42) |
111 | | - n_groups, rows = 20, 8 |
112 | | -@@ -877,7 +877,7 @@ def test_numba_backend_consistency(): |
113 | | - """ |
114 | | - import numpy as np |
115 | | - import pandas as pd |
116 | | -- from groupby_regression_optimized import ( |
117 | | -+ from ..groupby_regression_optimized import ( |
118 | | - make_parallel_fit_v3, |
119 | | - make_parallel_fit_v4, |
120 | | - ) |
121 | | -@@ -945,7 +945,7 @@ def test_numba_multicol_groupby_v4_matches_v2(): |
122 | | - """ |
123 | | - import numpy as np |
124 | | - import pandas as pd |
125 | | -- from groupby_regression_optimized import ( |
126 | | -+ from ..groupby_regression_optimized import ( |
127 | | - make_parallel_fit_v2, |
128 | | - make_parallel_fit_v4, |
129 | | - ) |
130 | | -@@ -1061,7 +1061,7 @@ def test_numba_multicol_weighted_v4_matches_v2(): |
131 | | - """ |
132 | | - import numpy as np |
133 | | - import pandas as pd |
134 | | -- from groupby_regression_optimized import make_parallel_fit_v2, make_parallel_fit_v4 |
135 | | -+ from ..groupby_regression_optimized import make_parallel_fit_v2, make_parallel_fit_v4 |
136 | | - |
137 | | - rng = np.random.default_rng(123) |
138 | | - |
139 | | -@@ -1173,7 +1173,7 @@ def test_numba_diagnostics_v4(): |
140 | | - """ |
141 | | - import numpy as np |
142 | | - import pandas as pd |
143 | | -- from groupby_regression_optimized import make_parallel_fit_v2, make_parallel_fit_v4 |
144 | | -+ from ..groupby_regression_optimized import make_parallel_fit_v2, make_parallel_fit_v4 |
145 | | - |
146 | | - print("\n" + "=" * 70) |
147 | | - print("TEST: Diagnostics (diag=True) - RMS and MAD Computation, v4 vs v2 reference") |
148 | | -@@ -1317,7 +1317,7 @@ def test_numba_diagnostics_v4(): |
149 | | - |
150 | | - def test_v2_group_rows_not_multiplied_by_targets(): |
151 | | - import numpy as np, pandas as pd |
152 | | -- from groupby_regression_optimized import make_parallel_fit_v2 |
153 | | -+ from ..groupby_regression_optimized import make_parallel_fit_v2 |
154 | | - |
155 | | - rng = np.random.default_rng(123) |
156 | | - # 8×7×6 = 336 groups, 5 rows/group |
157 | | -@@ -1370,7 +1370,7 @@ def test_v2_group_rows_not_multiplied_by_targets(): |
158 | | - |
159 | | - def test_v2_v3_v4_identical_groups_3col(): |
160 | | - import numpy as np, pandas as pd |
161 | | -- from groupby_regression_optimized import make_parallel_fit_v2, make_parallel_fit_v3, make_parallel_fit_v4 |
162 | | -+ from ..groupby_regression_optimized import make_parallel_fit_v2, make_parallel_fit_v3, make_parallel_fit_v4 |
163 | | - |
164 | | - rng = np.random.default_rng(321) |
165 | | - xV,yV,zV,rpg = 5,4,3,4 |
| 1 | +diff --git a/UTILS/dfextensions/groupby_regression/diff.txt b/UTILS/dfextensions/groupby_regression/diff.txt |
| 2 | +index 873810c5..e69de29b 100644 |
| 3 | +--- a/UTILS/dfextensions/groupby_regression/diff.txt |
| 4 | ++++ b/UTILS/dfextensions/groupby_regression/diff.txt |
| 5 | +@@ -1,165 +0,0 @@ |
| 6 | +-diff --git a/UTILS/dfextensions/groupby_regression/__init__.py b/UTILS/dfextensions/groupby_regression/__init__.py |
| 7 | +-index 7181efbc..7e38ab19 100644 |
| 8 | +---- a/UTILS/dfextensions/groupby_regression/__init__.py |
| 9 | +-+++ b/UTILS/dfextensions/groupby_regression/__init__.py |
| 10 | +-@@ -18,23 +18,23 @@ See docs/README.md for choosing between implementations. |
| 11 | +- """ |
| 12 | +- |
| 13 | +- # Import main classes from modules (will add after files are moved) |
| 14 | +--# from .groupby_regression import GroupByRegressor |
| 15 | +--# from .groupby_regression_optimized import ( |
| 16 | +--# make_parallel_fit_v2, |
| 17 | +--# make_parallel_fit_v3, |
| 18 | +--# make_parallel_fit_v4, |
| 19 | +--# GroupByRegressorOptimized, |
| 20 | +--# ) |
| 21 | +-+from .groupby_regression import GroupByRegressor |
| 22 | +-+from .groupby_regression_optimized import ( |
| 23 | +-+ make_parallel_fit_v2, |
| 24 | +-+ make_parallel_fit_v3, |
| 25 | +-+ make_parallel_fit_v4, |
| 26 | +-+ GroupByRegressorOptimized, |
| 27 | +-+) |
| 28 | +- |
| 29 | +- # Version info |
| 30 | +- __version__ = '2.0.0' |
| 31 | +- __author__ = 'Marian Ivanov' |
| 32 | +- |
| 33 | +- # Expose at package level (will uncomment after files are moved) |
| 34 | +--# __all__ = [ |
| 35 | +--# 'GroupByRegressor', |
| 36 | +--# 'make_parallel_fit_v2', |
| 37 | +--# 'make_parallel_fit_v3', |
| 38 | +--# 'make_parallel_fit_v4', |
| 39 | +--# 'GroupByRegressorOptimized', |
| 40 | +--# ] |
| 41 | +-+__all__ = [ |
| 42 | +-+ 'GroupByRegressor', |
| 43 | +-+ 'make_parallel_fit_v2', |
| 44 | +-+ 'make_parallel_fit_v3', |
| 45 | +-+ 'make_parallel_fit_v4', |
| 46 | +-+ 'GroupByRegressorOptimized', |
| 47 | +-+] |
| 48 | +-diff --git a/UTILS/dfextensions/groupby_regression/benchmarks/bench_groupby_regression.py b/UTILS/dfextensions/groupby_regression/benchmarks/bench_groupby_regression.py |
| 49 | +-index e412c781..48c8ecb5 100644 |
| 50 | +---- a/UTILS/dfextensions/groupby_regression/benchmarks/bench_groupby_regression.py |
| 51 | +-+++ b/UTILS/dfextensions/groupby_regression/benchmarks/bench_groupby_regression.py |
| 52 | +-@@ -35,8 +35,8 @@ import pandas as pd |
| 53 | +- |
| 54 | +- # --- Import the project module --- |
| 55 | +- try: |
| 56 | +-- import groupby_regression as gr |
| 57 | +-- from groupby_regression import GroupByRegressor |
| 58 | +-+ from .. import groupby_regression as gr |
| 59 | +-+ from ..groupby_regression import GroupByRegressor |
| 60 | +- except Exception as e: |
| 61 | +- print("[ERROR] Failed to import groupby_regression.py:", e, file=sys.stderr) |
| 62 | +- raise |
| 63 | +-diff --git a/UTILS/dfextensions/groupby_regression/groupby_regression.py b/UTILS/dfextensions/groupby_regression/groupby_regression.py |
| 64 | +-index cd4d10c3..b930c69d 100644 |
| 65 | +---- a/UTILS/dfextensions/groupby_regression/groupby_regression.py |
| 66 | +-+++ b/UTILS/dfextensions/groupby_regression/groupby_regression.py |
| 67 | +-@@ -670,3 +670,14 @@ class GroupByRegressor: |
| 68 | +- ) |
| 69 | +- return lines[0] |
| 70 | +- |
| 71 | +-+ |
| 72 | +-+# ============================================================================ |
| 73 | +-+# Aliases for clarity |
| 74 | +-+# ============================================================================ |
| 75 | +-+ |
| 76 | +-+# Export both "robust" (preferred) and "legacy" (compatibility) names |
| 77 | +-+#make_parallel_fit_robust = make_parallel_fit |
| 78 | +-+#make_parallel_fit_legacy = make_parallel_fit |
| 79 | +-+ |
| 80 | +-+# Note: "legacy" doesn't mean deprecated - this is production-proven code! |
| 81 | +-+# We use this name to distinguish from "optimized" fast implementations. |
| 82 | +-diff --git a/UTILS/dfextensions/groupby_regression/tests/test_groupby_regression.py b/UTILS/dfextensions/groupby_regression/tests/test_groupby_regression.py |
| 83 | +-index 6765cbea..58ca80e9 100644 |
| 84 | +---- a/UTILS/dfextensions/groupby_regression/tests/test_groupby_regression.py |
| 85 | +-+++ b/UTILS/dfextensions/groupby_regression/tests/test_groupby_regression.py |
| 86 | +-@@ -2,7 +2,7 @@ import pytest |
| 87 | +- import pandas as pd |
| 88 | +- import numpy as np |
| 89 | +- #from groupby_regression import GroupByRegressor |
| 90 | +--from .groupby_regression import GroupByRegressor |
| 91 | +-+from ..groupby_regression import GroupByRegressor |
| 92 | +- |
| 93 | +- @pytest.fixture |
| 94 | +- def sample_data(): |
| 95 | +-diff --git a/UTILS/dfextensions/groupby_regression/tests/test_groupby_regression_optimized.py b/UTILS/dfextensions/groupby_regression/tests/test_groupby_regression_optimized.py |
| 96 | +-index 7a5c536c..e7ebd715 100644 |
| 97 | +---- a/UTILS/dfextensions/groupby_regression/tests/test_groupby_regression_optimized.py |
| 98 | +-+++ b/UTILS/dfextensions/groupby_regression/tests/test_groupby_regression_optimized.py |
| 99 | +-@@ -13,7 +13,7 @@ from pathlib import Path |
| 100 | +- |
| 101 | +- # Import the optimized implementation |
| 102 | +- sys.path.insert(0, str(Path(__file__).parent)) |
| 103 | +--from groupby_regression_optimized import GroupByRegressorOptimized, make_parallel_fit_v2 |
| 104 | +-+from ..groupby_regression_optimized import GroupByRegressorOptimized, make_parallel_fit_v2 |
| 105 | +- |
| 106 | +- |
| 107 | +- @pytest.fixture |
| 108 | +-@@ -814,7 +814,7 @@ def test_fast_backend_consistency(): |
| 109 | +- """ |
| 110 | +- import numpy as np |
| 111 | +- import pandas as pd |
| 112 | +-- from groupby_regression_optimized import make_parallel_fit_v2, make_parallel_fit_v3 |
| 113 | +-+ from ..groupby_regression_optimized import make_parallel_fit_v2, make_parallel_fit_v3 |
| 114 | +- |
| 115 | +- rng = np.random.default_rng(42) |
| 116 | +- n_groups, rows = 20, 8 |
| 117 | +-@@ -877,7 +877,7 @@ def test_numba_backend_consistency(): |
| 118 | +- """ |
| 119 | +- import numpy as np |
| 120 | +- import pandas as pd |
| 121 | +-- from groupby_regression_optimized import ( |
| 122 | +-+ from ..groupby_regression_optimized import ( |
| 123 | +- make_parallel_fit_v3, |
| 124 | +- make_parallel_fit_v4, |
| 125 | +- ) |
| 126 | +-@@ -945,7 +945,7 @@ def test_numba_multicol_groupby_v4_matches_v2(): |
| 127 | +- """ |
| 128 | +- import numpy as np |
| 129 | +- import pandas as pd |
| 130 | +-- from groupby_regression_optimized import ( |
| 131 | +-+ from ..groupby_regression_optimized import ( |
| 132 | +- make_parallel_fit_v2, |
| 133 | +- make_parallel_fit_v4, |
| 134 | +- ) |
| 135 | +-@@ -1061,7 +1061,7 @@ def test_numba_multicol_weighted_v4_matches_v2(): |
| 136 | +- """ |
| 137 | +- import numpy as np |
| 138 | +- import pandas as pd |
| 139 | +-- from groupby_regression_optimized import make_parallel_fit_v2, make_parallel_fit_v4 |
| 140 | +-+ from ..groupby_regression_optimized import make_parallel_fit_v2, make_parallel_fit_v4 |
| 141 | +- |
| 142 | +- rng = np.random.default_rng(123) |
| 143 | +- |
| 144 | +-@@ -1173,7 +1173,7 @@ def test_numba_diagnostics_v4(): |
| 145 | +- """ |
| 146 | +- import numpy as np |
| 147 | +- import pandas as pd |
| 148 | +-- from groupby_regression_optimized import make_parallel_fit_v2, make_parallel_fit_v4 |
| 149 | +-+ from ..groupby_regression_optimized import make_parallel_fit_v2, make_parallel_fit_v4 |
| 150 | +- |
| 151 | +- print("\n" + "=" * 70) |
| 152 | +- print("TEST: Diagnostics (diag=True) - RMS and MAD Computation, v4 vs v2 reference") |
| 153 | +-@@ -1317,7 +1317,7 @@ def test_numba_diagnostics_v4(): |
| 154 | +- |
| 155 | +- def test_v2_group_rows_not_multiplied_by_targets(): |
| 156 | +- import numpy as np, pandas as pd |
| 157 | +-- from groupby_regression_optimized import make_parallel_fit_v2 |
| 158 | +-+ from ..groupby_regression_optimized import make_parallel_fit_v2 |
| 159 | +- |
| 160 | +- rng = np.random.default_rng(123) |
| 161 | +- # 8×7×6 = 336 groups, 5 rows/group |
| 162 | +-@@ -1370,7 +1370,7 @@ def test_v2_group_rows_not_multiplied_by_targets(): |
| 163 | +- |
| 164 | +- def test_v2_v3_v4_identical_groups_3col(): |
| 165 | +- import numpy as np, pandas as pd |
| 166 | +-- from groupby_regression_optimized import make_parallel_fit_v2, make_parallel_fit_v3, make_parallel_fit_v4 |
| 167 | +-+ from ..groupby_regression_optimized import make_parallel_fit_v2, make_parallel_fit_v3, make_parallel_fit_v4 |
| 168 | +- |
| 169 | +- rng = np.random.default_rng(321) |
| 170 | +- xV,yV,zV,rpg = 5,4,3,4 |
0 commit comments