scitex 2.1.1__py3-none-any.whl → 2.1.2__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.
Files changed (34) hide show
  1. scitex/__version__.py +1 -1
  2. scitex/ai/classification/examples/timeseries_cv_demo.py +5 -5
  3. scitex/ai/classification/reporters/_SingleClassificationReporter.py +8 -8
  4. scitex/ai/classification/reporters/reporter_utils/_Plotter.py +5 -5
  5. scitex/ai/classification/reporters/reporter_utils/__init__.py +1 -1
  6. scitex/ai/classification/timeseries/README.md +7 -7
  7. scitex/ai/classification/timeseries/_TimeSeriesBlockingSplit.py +1 -1
  8. scitex/ai/classification/timeseries/_TimeSeriesCalendarSplit.py +1 -1
  9. scitex/ai/classification/timeseries/_TimeSeriesMetadata.py +1 -1
  10. scitex/ai/classification/timeseries/_TimeSeriesSlidingWindowSplit.py +1 -1
  11. scitex/ai/classification/timeseries/_TimeSeriesSlidingWindowSplit_v01-not-using-n_splits.py +1 -1
  12. scitex/ai/classification/timeseries/_TimeSeriesStratifiedSplit.py +1 -1
  13. scitex/ai/classification/timeseries/run_all.sh +6 -6
  14. scitex/ai/plt/__init__.py +3 -3
  15. scitex/ai/plt/_plot_conf_mat.py +4 -4
  16. scitex/ai/training/_EarlyStopping.py +1 -1
  17. scitex/ai/training/_LearningCurveLogger.py +4 -4
  18. scitex/ai/utils/grid_search.py +1 -1
  19. scitex/ai/viewed-ai.md +13 -13
  20. scitex/browser/ARCHITECTURE_PROPOSAL.md +4 -4
  21. scitex/ml/__init__.py +30 -0
  22. scitex/nn/_Filters.py +1 -1
  23. scitex/pd/_merge_columns.py +1 -1
  24. scitex/plt/KNOWN_ISSUES.md +4 -4
  25. scitex/utils/_grid.py +1 -1
  26. {scitex-2.1.1.dist-info → scitex-2.1.2.dist-info}/METADATA +2 -2
  27. {scitex-2.1.1.dist-info → scitex-2.1.2.dist-info}/RECORD +34 -33
  28. /scitex/{repro_rng → rng}/README.md +0 -0
  29. /scitex/{repro_rng → rng}/_RandomStateManager.py +0 -0
  30. /scitex/{repro_rng → rng}/_RandomStateManager_v01-no-verbose-options.py +0 -0
  31. /scitex/{repro_rng → rng}/__init__.py +0 -0
  32. {scitex-2.1.1.dist-info → scitex-2.1.2.dist-info}/WHEEL +0 -0
  33. {scitex-2.1.1.dist-info → scitex-2.1.2.dist-info}/entry_points.txt +0 -0
  34. {scitex-2.1.1.dist-info → scitex-2.1.2.dist-info}/licenses/LICENSE +0 -0
scitex/__version__.py CHANGED
@@ -9,6 +9,6 @@ __FILE__ = "./src/scitex/__version__.py"
9
9
  __DIR__ = os.path.dirname(__FILE__)
10
10
  # ----------------------------------------
11
11
 
12
- __version__ = "2.1.1"
12
+ __version__ = "2.1.2"
13
13
 
14
14
  # EOF
@@ -86,7 +86,7 @@ def demo_basic_splitters():
86
86
  print("DEMO: Basic Time Series CV Splitters")
87
87
  print("=" * 70)
88
88
 
89
- from scitex.ml.classification import (
89
+ from scitex.ai.classification import (
90
90
  StratifiedTimeSeriesSplit,
91
91
  BlockingTimeSeriesSplit,
92
92
  SlidingWindowSplit
@@ -147,7 +147,7 @@ def demo_coordinator():
147
147
  print("DEMO: TimeSeriesCVCoordinator (Automatic Strategy Selection)")
148
148
  print("=" * 70)
149
149
 
150
- from scitex.ml.classification import TimeSeriesCVCoordinator
150
+ from scitex.ai.classification import TimeSeriesCVCoordinator
151
151
 
152
152
  scenarios = [
153
153
  ("Small dataset", 50, 5, None),
@@ -204,7 +204,7 @@ def demo_with_classifier():
204
204
  print("DEMO: Integration with Classification")
205
205
  print("=" * 70)
206
206
 
207
- from scitex.ml.classification import (
207
+ from scitex.ai.classification import (
208
208
  TimeSeriesCVCoordinator,
209
209
  SingleTaskClassificationReporter
210
210
  )
@@ -263,7 +263,7 @@ def demo_train_val_test_split():
263
263
  print("DEMO: Train/Validation/Test Splitting")
264
264
  print("=" * 70)
265
265
 
266
- from scitex.ml.classification import TimeSeriesCVCoordinator
266
+ from scitex.ai.classification import TimeSeriesCVCoordinator
267
267
 
268
268
  # Generate data
269
269
  X, y, timestamps, _ = generate_synthetic_timeseries(n_samples=1000)
@@ -309,7 +309,7 @@ def visualize_cv_splits():
309
309
  print("VISUALIZATION: CV Split Strategies")
310
310
  print("=" * 70)
311
311
 
312
- from scitex.ml.classification import (
312
+ from scitex.ai.classification import (
313
313
  StratifiedTimeSeriesSplit,
314
314
  SlidingWindowSplit,
315
315
  TimeSeriesCVCoordinator
@@ -297,7 +297,7 @@ class SingleTaskClassificationReporter(BaseClassificationReporter):
297
297
  # AUC metrics (only if probabilities available)
298
298
  if y_proba is not None:
299
299
  try:
300
- from scitex.ml.metrics import calc_pre_rec_auc, calc_roc_auc
300
+ from scitex.ai.metrics import calc_pre_rec_auc, calc_roc_auc
301
301
 
302
302
  metrics["roc-auc"] = calc_roc_auc(
303
303
  y_true,
@@ -348,7 +348,7 @@ class SingleTaskClassificationReporter(BaseClassificationReporter):
348
348
  # Handle feature importance automatically if model provided
349
349
  if model is not None and feature_names is not None:
350
350
  try:
351
- from scitex.ml.feature_selection import \
351
+ from scitex.ai.feature_selection import \
352
352
  extract_feature_importance
353
353
 
354
354
  importance_dict = extract_feature_importance(
@@ -620,7 +620,7 @@ class SingleTaskClassificationReporter(BaseClassificationReporter):
620
620
  y_proba_pos = y_proba
621
621
 
622
622
  # Normalize labels to integers for sklearn curve functions
623
- from scitex.ml.metrics import _normalize_labels
623
+ from scitex.ai.metrics import _normalize_labels
624
624
 
625
625
  y_true_norm, _, _, _ = _normalize_labels(y_true, y_true)
626
626
 
@@ -838,7 +838,7 @@ class SingleTaskClassificationReporter(BaseClassificationReporter):
838
838
  )
839
839
 
840
840
  if feature_importances_list:
841
- from scitex.ml.feature_selection import (
841
+ from scitex.ai.feature_selection import (
842
842
  aggregate_feature_importances,
843
843
  create_feature_importance_dataframe)
844
844
 
@@ -934,7 +934,7 @@ class SingleTaskClassificationReporter(BaseClassificationReporter):
934
934
  Dictionary of feature importances {feature_name: importance}
935
935
  """
936
936
  # Use centralized metric calculation
937
- from scitex.ml.metrics import calc_feature_importance
937
+ from scitex.ai.metrics import calc_feature_importance
938
938
 
939
939
  try:
940
940
  importance_dict, importances = calc_feature_importance(
@@ -1031,7 +1031,7 @@ class SingleTaskClassificationReporter(BaseClassificationReporter):
1031
1031
  )
1032
1032
 
1033
1033
  # Create visualization using centralized plotting function
1034
- from scitex.ml.plt import plot_feature_importance_cv_summary
1034
+ from scitex.ai.plt import plot_feature_importance_cv_summary
1035
1035
 
1036
1036
  jpg_filename = FILENAME_PATTERNS[
1037
1037
  "cv_summary_feature_importance_jpg"
@@ -1117,7 +1117,7 @@ class SingleTaskClassificationReporter(BaseClassificationReporter):
1117
1117
  )
1118
1118
 
1119
1119
  # Normalize labels to integers for sklearn curve functions in plotter
1120
- from scitex.ml.metrics import _normalize_labels
1120
+ from scitex.ai.metrics import _normalize_labels
1121
1121
 
1122
1122
  all_y_true_norm, _, label_names, _ = _normalize_labels(
1123
1123
  all_y_true, all_y_true
@@ -1187,7 +1187,7 @@ class SingleTaskClassificationReporter(BaseClassificationReporter):
1187
1187
  y_proba_pos = y_proba
1188
1188
 
1189
1189
  # Normalize labels to integers for sklearn curve functions
1190
- from scitex.ml.metrics import _normalize_labels
1190
+ from scitex.ai.metrics import _normalize_labels
1191
1191
 
1192
1192
  y_true_norm, _, _, _ = _normalize_labels(y_true, y_true)
1193
1193
 
@@ -13,7 +13,7 @@ __DIR__ = os.path.dirname(__FILE__)
13
13
  Classification Plotter - Delegates to stx.ml.plt functions.
14
14
 
15
15
  This module provides a Plotter class that delegates to centralized
16
- plotting functions in scitex.ml.plt to maintain DRY principle.
16
+ plotting functions in scitex.ai.plt to maintain DRY principle.
17
17
 
18
18
  Features:
19
19
  - Graceful error handling
@@ -44,9 +44,9 @@ try:
44
44
 
45
45
  # Import scitex plotting functions
46
46
  import scitex as stx
47
- from scitex.ml.plt.plot_conf_mat import plot_conf_mat as conf_mat
48
- from scitex.ml.plt.plot_roc_curve import plot_roc_curve as roc_auc
49
- from scitex.ml.plt.plot_pre_rec_curve import plot_pre_rec_curve as pre_rec_auc
47
+ from scitex.ai.plt.plot_conf_mat import plot_conf_mat as conf_mat
48
+ from scitex.ai.plt.plot_roc_curve import plot_roc_curve as roc_auc
49
+ from scitex.ai.plt.plot_pre_rec_curve import plot_pre_rec_curve as pre_rec_auc
50
50
 
51
51
  PLOTTING_AVAILABLE = True
52
52
  except ImportError:
@@ -787,7 +787,7 @@ class Plotter:
787
787
  importance = feature_importance
788
788
 
789
789
  # Delegate to centralized plotting function
790
- from scitex.ml.plt import plot_feature_importance as plot_fi
790
+ from scitex.ai.plt import plot_feature_importance as plot_fi
791
791
 
792
792
  fig = plot_fi(
793
793
  importance=importance,
@@ -10,7 +10,7 @@ This module provides separated, focused utilities for:
10
10
  """
11
11
 
12
12
  # Import from centralized metrics module
13
- from scitex.ml.metrics import (
13
+ from scitex.ai.metrics import (
14
14
  calc_bacc,
15
15
  calc_mcc,
16
16
  calc_conf_mat,
@@ -78,7 +78,7 @@ Legend: T=Train intervals, V=Validation intervals, S=teSt intervals
78
78
  Single time series with stratification to maintain class balance and optional validation set.
79
79
 
80
80
  ```python
81
- from scitex.ml.classification.timeseries import TimeSeriesStratifiedSplit
81
+ from scitex.ai.classification.timeseries import TimeSeriesStratifiedSplit
82
82
 
83
83
  splitter = TimeSeriesStratifiedSplit(
84
84
  n_splits=5,
@@ -98,7 +98,7 @@ for train_idx, val_idx, test_idx in splitter.split_with_val(X, y, timestamps):
98
98
  Multiple independent time series (e.g., different patients/subjects) with optional validation set.
99
99
 
100
100
  ```python
101
- from scitex.ml.classification.timeseries import TimeSeriesBlockingSplit
101
+ from scitex.ai.classification.timeseries import TimeSeriesBlockingSplit
102
102
 
103
103
  splitter = TimeSeriesBlockingSplit(
104
104
  n_splits=3,
@@ -121,7 +121,7 @@ for train_idx, val_idx, test_idx in splitter.split_with_val(X, y, timestamps, gr
121
121
  Fixed-size sliding windows through time with configurable gaps and optional validation set.
122
122
 
123
123
  ```python
124
- from scitex.ml.classification.timeseries import TimeSeriesSlidingWindowSplit
124
+ from scitex.ai.classification.timeseries import TimeSeriesSlidingWindowSplit
125
125
 
126
126
  splitter = TimeSeriesSlidingWindowSplit(
127
127
  window_size=100, # 100 samples for training window
@@ -146,7 +146,7 @@ for train_idx, val_idx, test_idx in splitter.split_with_val(X, y, timestamps):
146
146
  Calendar-based splitting (monthly, weekly, daily intervals) with optional validation set.
147
147
 
148
148
  ```python
149
- from scitex.ml.classification.timeseries import TimeSeriesCalendarSplit
149
+ from scitex.ai.classification.timeseries import TimeSeriesCalendarSplit
150
150
 
151
151
  # Monthly splits
152
152
  splitter = TimeSeriesCalendarSplit(
@@ -174,7 +174,7 @@ for train_idx, val_idx, test_idx in splitter.split_with_val(X, y, timestamps=dat
174
174
  Handles various timestamp formats automatically:
175
175
 
176
176
  ```python
177
- from scitex.ml.classification.timeseries import normalize_timestamp
177
+ from scitex.ai.classification.timeseries import normalize_timestamp
178
178
 
179
179
  # Convert any format to standard string
180
180
  normalized = normalize_timestamp("2023/01/15 14:30:00", return_as="str")
@@ -200,7 +200,7 @@ All time series splitters now support optional validation sets through the `spli
200
200
  ### Example with Validation Sets
201
201
 
202
202
  ```python
203
- from scitex.ml.classification.timeseries import TimeSeriesStratifiedSplit
203
+ from scitex.ai.classification.timeseries import TimeSeriesStratifiedSplit
204
204
  from sklearn.ensemble import RandomForestClassifier
205
205
 
206
206
  # Create splitter with validation
@@ -243,7 +243,7 @@ fig = splitter.plot_splits(X, y, timestamps)
243
243
  All splitters integrate seamlessly with the unified ClassificationReporter:
244
244
 
245
245
  ```python
246
- from scitex.ml.classification import ClassificationReporter, TimeSeriesCalendarSplit
246
+ from scitex.ai.classification import ClassificationReporter, TimeSeriesCalendarSplit
247
247
  from sklearn.ensemble import RandomForestClassifier
248
248
  import pandas as pd
249
249
 
@@ -72,7 +72,7 @@ class TimeSeriesBlockingSplit(BaseCrossValidator):
72
72
 
73
73
  Examples
74
74
  --------
75
- >>> from scitex.ml.classification import TimeSeriesBlockingSplit
75
+ >>> from scitex.ai.classification import TimeSeriesBlockingSplit
76
76
  >>> import numpy as np
77
77
  >>>
78
78
  >>> # Create data: 100 samples, 4 subjects (25 samples each)
@@ -77,7 +77,7 @@ class TimeSeriesCalendarSplit(BaseCrossValidator):
77
77
 
78
78
  Examples
79
79
  --------
80
- >>> from scitex.ml.classification import TimeSeriesCalendarSplit
80
+ >>> from scitex.ai.classification import TimeSeriesCalendarSplit
81
81
  >>> import pandas as pd
82
82
  >>> import numpy as np
83
83
  >>>
@@ -50,7 +50,7 @@ class TimeSeriesMetadata:
50
50
  Examples
51
51
  --------
52
52
  >>> import numpy as np
53
- >>> from scitex.ml.classification import TimeSeriesMetadata
53
+ >>> from scitex.ai.classification import TimeSeriesMetadata
54
54
  >>>
55
55
  >>> # Create metadata for a dataset
56
56
  >>> metadata = TimeSeriesMetadata(
@@ -90,7 +90,7 @@ class TimeSeriesSlidingWindowSplit(BaseCrossValidator):
90
90
 
91
91
  Examples
92
92
  --------
93
- >>> from scitex.ml.classification import TimeSeriesSlidingWindowSplit
93
+ >>> from scitex.ai.classification import TimeSeriesSlidingWindowSplit
94
94
  >>> import numpy as np
95
95
  >>>
96
96
  >>> X = np.random.randn(100, 10)
@@ -85,7 +85,7 @@ class TimeSeriesSlidingWindowSplit(BaseCrossValidator):
85
85
 
86
86
  Examples
87
87
  --------
88
- >>> from scitex.ml.classification import TimeSeriesSlidingWindowSplit
88
+ >>> from scitex.ai.classification import TimeSeriesSlidingWindowSplit
89
89
  >>> import numpy as np
90
90
  >>>
91
91
  >>> X = np.random.randn(100, 10)
@@ -70,7 +70,7 @@ class TimeSeriesStratifiedSplit(BaseCrossValidator):
70
70
 
71
71
  Examples
72
72
  --------
73
- >>> from scitex.ml.classification import TimeSeriesStratifiedSplit
73
+ >>> from scitex.ai.classification import TimeSeriesStratifiedSplit
74
74
  >>> import numpy as np
75
75
  >>>
76
76
  >>> X = np.random.randn(100, 10)
@@ -20,11 +20,11 @@ echo_warning() { echo -e "${YELLOW}$1${NC}"; }
20
20
  echo_error() { echo -e "${RED}$1${NC}"; }
21
21
  # ---------------------------------------
22
22
 
23
- python -m scitex.ml.classification.timeseries._TimeSeriesBlockingSplit
24
- python -m scitex.ml.classification.timeseries._TimeSeriesCalendarSplit
25
- python -m scitex.ml.classification.timeseries._TimeSeriesMetadata
26
- python -m scitex.ml.classification.timeseries._TimeSeriesSlidingWindowSplit
27
- python -m scitex.ml.classification.timeseries._TimeSeriesStrategy
28
- python -m scitex.ml.classification.timeseries._TimeSeriesStratifiedSplit
23
+ python -m scitex.ai.classification.timeseries._TimeSeriesBlockingSplit
24
+ python -m scitex.ai.classification.timeseries._TimeSeriesCalendarSplit
25
+ python -m scitex.ai.classification.timeseries._TimeSeriesMetadata
26
+ python -m scitex.ai.classification.timeseries._TimeSeriesSlidingWindowSplit
27
+ python -m scitex.ai.classification.timeseries._TimeSeriesStrategy
28
+ python -m scitex.ai.classification.timeseries._TimeSeriesStratifiedSplit
29
29
 
30
30
  # EOF
scitex/ai/plt/__init__.py CHANGED
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env python3
2
2
  """Scitex centralized plotting module.
3
3
 
4
- Note: Metric calculation functions (calc_*) are imported from scitex.ml.metrics
4
+ Note: Metric calculation functions (calc_*) are imported from scitex.ai.metrics
5
5
  but re-exported here for backward compatibility. New code should import directly
6
- from scitex.ml.metrics instead.
6
+ from scitex.ai.metrics instead.
7
7
  """
8
8
 
9
9
  from ._plot_conf_mat import calc_bACC_from_conf_mat, calc_bacc_from_conf_mat, plot_conf_mat, conf_mat
@@ -54,7 +54,7 @@ __all__ = [
54
54
  "select_ticks",
55
55
  "set_yaxis_for_acc",
56
56
  "vline_at_epochs",
57
- # Metric calculations (re-exported from scitex.ml.metrics for backward compat)
57
+ # Metric calculations (re-exported from scitex.ai.metrics for backward compat)
58
58
  "calc_bACC_from_conf_mat",
59
59
  "calc_bacc_from_conf_mat",
60
60
  ]
@@ -21,8 +21,8 @@ from mpl_toolkits.axes_grid1 import make_axes_locatable
21
21
  from sklearn.metrics import balanced_accuracy_score
22
22
  from sklearn.metrics import confusion_matrix as sklearn_confusion_matrix
23
23
 
24
- # Import metric calculation from centralized location (SoC: metrics in scitex.ml.metrics)
25
- from scitex.ml.metrics import calc_bacc_from_conf_mat
24
+ # Import metric calculation from centralized location (SoC: metrics in scitex.ai.metrics)
25
+ from scitex.ai.metrics import calc_bacc_from_conf_mat
26
26
 
27
27
  # Aliases for backward compatibility
28
28
  calc_bACC_from_conf_mat = calc_bacc_from_conf_mat
@@ -273,9 +273,9 @@ def plot_conf_mat(
273
273
  conf_mat = plot_conf_mat
274
274
 
275
275
 
276
- # Metric calculation functions have been moved to scitex.ml.metrics
276
+ # Metric calculation functions have been moved to scitex.ai.metrics
277
277
  # They are imported above for use in this module
278
- # This maintains SoC: plotting in scitex.ml.plt, metrics in scitex.ml.metrics
278
+ # This maintains SoC: plotting in scitex.ai.plt, metrics in scitex.ai.metrics
279
279
 
280
280
 
281
281
  def main(args):
@@ -84,7 +84,7 @@ if __name__ == "__main__":
84
84
  pass
85
85
  # # starts the current fold's loop
86
86
  # i_global = 0
87
- # lc_logger = scitex.ml.LearningCurveLogger()
87
+ # lc_logger = scitex.ai.LearningCurveLogger()
88
88
  # early_stopping = utils.EarlyStopping(patience=50, verbose=True)
89
89
  # for i_epoch, epoch in enumerate(tqdm(range(merged_conf["MAX_EPOCHS"]))):
90
90
 
@@ -14,14 +14,14 @@ Functionality:
14
14
  - Records and visualizes learning curves during model training
15
15
  - Supports tracking of multiple metrics across training/validation/test phases
16
16
  - Generates plots showing training progress over iterations and epochs
17
- - Delegates plotting to scitex.ml.plt.plot_learning_curve for consistency
17
+ - Delegates plotting to scitex.ai.plt.plot_learning_curve for consistency
18
18
 
19
19
  Input:
20
20
  - Training metrics dictionary containing loss, accuracy, predictions etc.
21
21
  - Step information (Training/Validation/Test)
22
22
 
23
23
  Output:
24
- - Learning curve plots via scitex.ml.plt.plot_learning_curve
24
+ - Learning curve plots via scitex.ai.plt.plot_learning_curve
25
25
  - DataFrames with recorded metrics
26
26
  - Training progress prints
27
27
 
@@ -148,7 +148,7 @@ class LearningCurveLogger:
148
148
  ) -> matplotlib.figure.Figure:
149
149
  """Plots learning curves from logged metrics.
150
150
 
151
- Delegates to scitex.ml.plt.plot_learning_curve for consistent plotting.
151
+ Delegates to scitex.ai.plt.plot_learning_curve for consistent plotting.
152
152
 
153
153
  Parameters
154
154
  ----------
@@ -170,7 +170,7 @@ class LearningCurveLogger:
170
170
  matplotlib.figure.Figure
171
171
  Figure containing learning curves
172
172
  """
173
- from scitex.ml.plt import plot_learning_curve
173
+ from scitex.ai.plt import plot_learning_curve
174
174
 
175
175
  # Convert to metrics DataFrame
176
176
  metrics_df = self.to_metrics_df()
@@ -4,7 +4,7 @@
4
4
  # Author: Yusuke Watanabe (ywatanabe@scitex.ai)
5
5
 
6
6
  """
7
- This script defines scitex.ml.utils.grid_search
7
+ This script defines scitex.ai.utils.grid_search
8
8
  """
9
9
 
10
10
  # Imports
scitex/ai/viewed-ai.md CHANGED
@@ -911,12 +911,12 @@ echo_warning() { echo -e "${YELLOW}$1${NC}"; }
911
911
  echo_error() { echo -e "${RED}$1${NC}"; }
912
912
  # ---------------------------------------
913
913
 
914
- python -m scitex.ml.classification.timeseries._TimeSeriesBlockingSplit
915
- python -m scitex.ml.classification.timeseries._TimeSeriesCalendarSplit
916
- python -m scitex.ml.classification.timeseries._TimeSeriesMetadata
917
- python -m scitex.ml.classification.timeseries._TimeSeriesSlidingWindowSplit
918
- python -m scitex.ml.classification.timeseries._TimeSeriesStrategy
919
- python -m scitex.ml.classification.timeseries._TimeSeriesStratifiedSplit
914
+ python -m scitex.ai.classification.timeseries._TimeSeriesBlockingSplit
915
+ python -m scitex.ai.classification.timeseries._TimeSeriesCalendarSplit
916
+ python -m scitex.ai.classification.timeseries._TimeSeriesMetadata
917
+ python -m scitex.ai.classification.timeseries._TimeSeriesSlidingWindowSplit
918
+ python -m scitex.ai.classification.timeseries._TimeSeriesStrategy
919
+ python -m scitex.ai.classification.timeseries._TimeSeriesStratifiedSplit
920
920
 
921
921
  # EOF
922
922
  ...
@@ -3518,9 +3518,9 @@ setup(
3518
3518
  #!/usr/bin/env python3
3519
3519
  """Scitex centralized plotting module.
3520
3520
 
3521
- Note: Metric calculation functions (calc_*) are imported from scitex.ml.metrics
3521
+ Note: Metric calculation functions (calc_*) are imported from scitex.ai.metrics
3522
3522
  but re-exported here for backward compatibility. New code should import directly
3523
- from scitex.ml.metrics instead.
3523
+ from scitex.ai.metrics instead.
3524
3524
  """
3525
3525
 
3526
3526
  from ._plot_conf_mat import calc_bACC_from_conf_mat, calc_bacc_from_conf_mat, plot_conf_mat, conf_mat
@@ -3596,8 +3596,8 @@ from mpl_toolkits.axes_grid1 import make_axes_locatable
3596
3596
  from sklearn.metrics import balanced_accuracy_score
3597
3597
  from sklearn.metrics import confusion_matrix as sklearn_confusion_matrix
3598
3598
 
3599
- # Import metric calculation from centralized location (SoC: metrics in scitex.ml.metrics)
3600
- from scitex.ml.metrics import calc_bacc_from_conf_mat
3599
+ # Import metric calculation from centralized location (SoC: metrics in scitex.ai.metrics)
3600
+ from scitex.ai.metrics import calc_bacc_from_conf_mat
3601
3601
 
3602
3602
  # Aliases for backward compatibility
3603
3603
  calc_bACC_from_conf_mat = calc_bacc_from_conf_mat
@@ -4405,14 +4405,14 @@ Functionality:
4405
4405
  - Records and visualizes learning curves during model training
4406
4406
  - Supports tracking of multiple metrics across training/validation/test phases
4407
4407
  - Generates plots showing training progress over iterations and epochs
4408
- - Delegates plotting to scitex.ml.plt.plot_learning_curve for consistency
4408
+ - Delegates plotting to scitex.ai.plt.plot_learning_curve for consistency
4409
4409
 
4410
4410
  Input:
4411
4411
  - Training metrics dictionary containing loss, accuracy, predictions etc.
4412
4412
  - Step information (Training/Validation/Test)
4413
4413
 
4414
4414
  Output:
4415
- - Learning curve plots via scitex.ml.plt.plot_learning_curve
4415
+ - Learning curve plots via scitex.ai.plt.plot_learning_curve
4416
4416
  - DataFrames with recorded metrics
4417
4417
  - Training progress prints
4418
4418
 
@@ -4715,7 +4715,7 @@ def format_samples_for_sktime(X):
4715
4715
  # Author: Yusuke Watanabe (ywata1989@gmail.com)
4716
4716
 
4717
4717
  """
4718
- This script defines scitex.ml.utils.grid_search
4718
+ This script defines scitex.ai.utils.grid_search
4719
4719
  """
4720
4720
 
4721
4721
  # Imports
@@ -647,8 +647,8 @@ async def main():
647
647
  auth_strategy=DjangoAuthStrategy(
648
648
  login_url="http://127.0.0.1:8000/auth/login/",
649
649
  credentials={
650
- 'username': os.getenv('SCITEX_USERNAME'),
651
- 'password': os.getenv('SCITEX_PASSWORD'),
650
+ 'username': os.getenv('SCITEX_CLOUD_USERNAME'),
651
+ 'password': os.getenv('SCITEX_CLOUD_PASSWORD'),
652
652
  },
653
653
  ),
654
654
  ) as browser:
@@ -733,8 +733,8 @@ async def snap_authenticated(
733
733
  """
734
734
  from scitex.browser.automation import AuthenticatedBrowser, DjangoAuthStrategy
735
735
 
736
- username = username or os.getenv('SCITEX_USERNAME')
737
- password = password or os.getenv('SCITEX_PASSWORD')
736
+ username = username or os.getenv('SCITEX_CLOUD_USERNAME')
737
+ password = password or os.getenv('SCITEX_CLOUD_PASSWORD')
738
738
 
739
739
  async with AuthenticatedBrowser(
740
740
  auth_strategy=DjangoAuthStrategy(
scitex/ml/__init__.py ADDED
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ SciTeX ML Module - Alias for AI module.
4
+
5
+ This module is an alias for scitex.ai and re-exports all its contents.
6
+ The 'ml' name is kept for backward compatibility and convenience.
7
+
8
+ Usage:
9
+ from scitex.ai import classification # Same as scitex.ai.classification
10
+ from scitex.ai.metrics import calc_bacc # Same as scitex.ai.metrics
11
+ """
12
+
13
+ # Re-export everything from ai module
14
+ from ..ai import * # noqa: F403,F401
15
+
16
+ __all__ = [
17
+ "classification",
18
+ "metrics",
19
+ "plt",
20
+ "feature_selection",
21
+ "feature_extraction",
22
+ "training",
23
+ "clustering",
24
+ "loss",
25
+ "optim",
26
+ "activation",
27
+ "sklearn",
28
+ "sk",
29
+ "utils",
30
+ ]
scitex/nn/_Filters.py CHANGED
@@ -419,7 +419,7 @@ if __name__ == "__main__":
419
419
  # BandPassFilter(bands, fs, xx.shape)
420
420
  m = DifferentiableBandPassFilter(xx.shape[-1], fs).cuda()
421
421
 
422
- scitex.ml.utils.check_params(m)
422
+ scitex.ai.utils.check_params(m)
423
423
  # {'pha_mids': (torch.Size([30]), 'Learnable'),
424
424
  # 'amp_mids': (torch.Size([50]), 'Learnable')}
425
425
 
@@ -213,7 +213,7 @@ merge_cols = merge_columns
213
213
  # # df = deepcopy(_df)
214
214
  # # merged = deepcopy(df[columns[0]]) # initialization
215
215
  # # for c in columns[1:]:
216
- # # merged = scitex.ml.utils.merge_labels(list(merged), deepcopy(df[c]))
216
+ # # merged = scitex.ai.utils.merge_labels(list(merged), deepcopy(df[c]))
217
217
  # # df.loc[:, scitex.gen.connect_strs(columns)] = merged
218
218
  # # return df
219
219
 
@@ -33,7 +33,7 @@ cax = divider.append_axes("right", size="5%", pad=0.1) # ← Works
33
33
  ```
34
34
 
35
35
  ### Impact
36
- - `scitex.ml.plt.plot_conf_mat` - Cannot use stx.plt.subplots (uses divider for colorbar)
36
+ - `scitex.ai.plt.plot_conf_mat` - Cannot use stx.plt.subplots (uses divider for colorbar)
37
37
  - Any plotting function that uses axes_grid1 features
38
38
 
39
39
  ### Root Cause
@@ -55,9 +55,9 @@ cax = divider.append_axes("right", size="5%", pad=0.1) # ← Works
55
55
  Demo/test functions in plotting modules may still pass `plt` as first parameter even though it's been deprecated and moved to end as optional parameter.
56
56
 
57
57
  ### Affected
58
- - `scitex.ml.plt.plot_conf_mat.main()`
59
- - `scitex.ml.plt.plot_roc_curve.main()`
60
- - `scitex.ml.plt.plot_pre_rec_curve.main()`
58
+ - `scitex.ai.plt.plot_conf_mat.main()`
59
+ - `scitex.ai.plt.plot_roc_curve.main()`
60
+ - `scitex.ai.plt.plot_pre_rec_curve.main()`
61
61
 
62
62
  ### Workaround
63
63
  Update demo functions to use new API without `plt` parameter.
scitex/utils/_grid.py CHANGED
@@ -4,7 +4,7 @@
4
4
  # Author: Yusuke Watanabe (ywatanabe@scitex.ai)
5
5
 
6
6
  """
7
- This script defines scitex.ml.utils.grid_search
7
+ This script defines scitex.ai.utils.grid_search
8
8
  """
9
9
 
10
10
  # Imports
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scitex
3
- Version: 2.1.1
3
+ Version: 2.1.2
4
4
  Summary: A comprehensive Python library for scientific computing and data analysis
5
5
  Project-URL: Homepage, https://github.com/ywatanabe1989/scitex-code
6
6
  Project-URL: Documentation, https://scitex.readthedocs.io
@@ -251,7 +251,7 @@ Requires-Dist: yq; extra == 'writer'
251
251
  Description-Content-Type: text/markdown
252
252
 
253
253
  <!-- ---
254
- !-- Timestamp: 2025-10-30 10:05:52
254
+ !-- Timestamp: 2025-11-02 12:07:30
255
255
  !-- Author: ywatanabe
256
256
  !-- File: /home/ywatanabe/proj/scitex-code/README.md
257
257
  !-- --- -->
@@ -1,7 +1,7 @@
1
1
  scitex/.mcp.json,sha256=ge1NDrBZkRIxJgx_tCS9QvcEa_P_ay8AAAafraZVRP4,1259
2
2
  scitex/__init__.py,sha256=CYknV77HxgjGWY-JoH2cV_-1DEKQn4rLJ_UrdprU9bo,3008
3
3
  scitex/__main__.py,sha256=Fwqh-_32e0EoiDZtwFHVH6e50lIQaLFWIvTnNqY52SU,4191
4
- scitex/__version__.py,sha256=kC0Wnb8Nh0TvzuvJyK1dACsf57urWY7ceuNdNuXuen4,400
4
+ scitex/__version__.py,sha256=bOiYEXqaHkkHly1CP8OB7cBYqGQbAXQPKnCyhvg4EBA,400
5
5
  scitex/_optional_deps.py,sha256=oHwPdE6uJ4MmWNgt7JXojNtbwkUjR4c0mCCNMOK4k-w,3696
6
6
  scitex/_sh.py,sha256=KZGuc8dfWlFmBaTBAhngV0lcMvx6ActOgQxthk9EdjM,496
7
7
  scitex/errors.py,sha256=sgl1csU2sfHCINxO9jwPCdNA6hr-CqaT8tQMiuH93sQ,15247
@@ -9,7 +9,7 @@ scitex/units.py,sha256=2T6VCwcjHBT_zPr_DG3JhUIF7a7TU1pUxMQPDBKZNCw,10373
9
9
  scitex/.claude/mcp-config.json,sha256=k1rIbdUvk2AFOkx8xSKK9wAhsQ79cnOgCFpdq2rQswE,1147
10
10
  scitex/ai/README.md,sha256=EdRrmZRt2ARgVKQgKO2YqMktb9MIqZK35RHAu7NskmY,7060
11
11
  scitex/ai/__init__.py,sha256=mvr435uZUE5xpsQU4vBPqWCLqJTpGL2plW7swzQ0dUc,1817
12
- scitex/ai/viewed-ai.md,sha256=7un57uQ-zs8hlkJCjVGqZQ9C9E8w1Y0PwHJ1iAXIKpE,130104
12
+ scitex/ai/viewed-ai.md,sha256=j4mH9YHxtJvpX1OQya9fiBHSREids1o6rShpoXavMaI,130104
13
13
  scitex/ai/_gen_ai/_Anthropic.py,sha256=MBAGaJwpDa4f57FtbGwahfo3Vx2NodpIelvIw1PAPqs,5123
14
14
  scitex/ai/_gen_ai/_BaseGenAI.py,sha256=Vh4x97PvyLgR49BBKy3rew3Iahy-EKObHxhhwQ8BUBU,10930
15
15
  scitex/ai/_gen_ai/_DeepSeek.py,sha256=ujZXTjowy-0gKKAB-FFQFLsYo3c4KV2HKN_lisjlkmo,4887
@@ -29,7 +29,7 @@ scitex/ai/classification/Classifier.py,sha256=Xrp-pKjTBvQrmS1lNNjHb-u1_-DcYFUsar
29
29
  scitex/ai/classification/CrossValidationExperiment.py,sha256=Wd54EgArObTHKEWgGejdu0_yiAXHuCgSpPFIMgUJmhA,11138
30
30
  scitex/ai/classification/README.md,sha256=naEqv2faftVJAa4zTO4bbVIg3fowjb6NyUctDGSJ9Mw,7112
31
31
  scitex/ai/classification/__init__.py,sha256=ej6sJKHHYpOUw18OXzDMfdpGcXQQgNuX4hr8p53E19s,1249
32
- scitex/ai/classification/examples/timeseries_cv_demo.py,sha256=v8JUi34AHqkGOMzNbCHdxFj4MQnF_XyOiN0ux0OVv7w,13955
32
+ scitex/ai/classification/examples/timeseries_cv_demo.py,sha256=PjdvgFwkrPgoYNx5JQqF-Nr-eaImjrG9mPYatsmBPQ4,13955
33
33
  scitex/ai/classification/examples/verify_multi/config.json,sha256=TruvfN52tdYzO2VewAr0Rsdr9JqRRb4-kDPKpzaTuwQ,205
34
34
  scitex/ai/classification/examples/verify_multi/multi_task_comparison.md,sha256=fKU9qz3zxFRkl9LBz2RG-H5KfKVOnQJlF0mKCXHix_I,365
35
35
  scitex/ai/classification/examples/verify_multi/multi_task_validation.json,sha256=DQkR39mAX83eL2__lw7PJaQeN42LqPNt1Gw56P1PL_s,2048
@@ -56,26 +56,26 @@ scitex/ai/classification/examples/verify_test/paper_export/summary_table.tex,sha
56
56
  scitex/ai/classification/reporters/_BaseClassificationReporter.py,sha256=-7uTvmac4xTazRS70MINMHhHOPzVP7Oya7xWfGnnkLg,8907
57
57
  scitex/ai/classification/reporters/_ClassificationReporter.py,sha256=BStYTHb9cS70vhdKOKF5dG71yV0mJdgpTB7Uww7CirQ,25542
58
58
  scitex/ai/classification/reporters/_MultiClassificationReporter.py,sha256=SC41YaOox9wnJ2c_VIodmXG8ByG9GHVs2Q0isbopFT4,13171
59
- scitex/ai/classification/reporters/_SingleClassificationReporter.py,sha256=9R3iQ5HfedrjxdEVVCXU4AFkmZAesuOPwQCCV9eSX14,71865
59
+ scitex/ai/classification/reporters/_SingleClassificationReporter.py,sha256=ZpdRcxuRlGxrsdWNDVmSyHOQleQMIQnG9YaGLmmnB7Y,71865
60
60
  scitex/ai/classification/reporters/__init__.py,sha256=yqUZuF6KBFbuQaLQ90A871lbes0M3qWLINjTkWUQ3hA,350
61
- scitex/ai/classification/reporters/reporter_utils/_Plotter.py,sha256=E_2iVwGHGHhzAn3FyyesaYk72gcViMkUfyMp3Z5KZ04,37483
62
- scitex/ai/classification/reporters/reporter_utils/__init__.py,sha256=upDXZI610cz7Ns3igGSyiv7hlLivJRa0BNMzHA42HPM,1568
61
+ scitex/ai/classification/reporters/reporter_utils/_Plotter.py,sha256=Vcz_2iXNQ7Xw3UgI3OSVtDt_OgqO9s1LNd6HrSXa3cI,37483
62
+ scitex/ai/classification/reporters/reporter_utils/__init__.py,sha256=BiOdqvDoHRHQyBFJG7zJWJSofeLDzAbBMBHpMmO9-j0,1568
63
63
  scitex/ai/classification/reporters/reporter_utils/aggregation.py,sha256=QBgSZ9FdN2OuIvsgHs23wCK0iG21I8Hop6pVgwxqEX4,14129
64
64
  scitex/ai/classification/reporters/reporter_utils/data_models.py,sha256=grjhoP2KsnfGM7f6SaolldyqqBo7QVYxknkkshUTAUI,11764
65
65
  scitex/ai/classification/reporters/reporter_utils/reporting.py,sha256=-Bj9J45mh_WnuWZLHwBN0qSORZO4ehZWabSP7OGyNFs,45803
66
66
  scitex/ai/classification/reporters/reporter_utils/storage.py,sha256=y7ScjNwTRXl-u-Wne9t7PmwymJOUNtV1R-s6sOIhnnI,6651
67
67
  scitex/ai/classification/reporters/reporter_utils/validation.py,sha256=W_4VkVGcxQhm_sJ1NB62HFaJq-azvvHKGvV_7Fq32wU,11920
68
- scitex/ai/classification/timeseries/README.md,sha256=-vGHLHm-k_8J-YhC82Quc682FHb-iUlX58jyADPRGeI,10134
69
- scitex/ai/classification/timeseries/_TimeSeriesBlockingSplit.py,sha256=3D0gnXSHEs25NcHEymBaoLYObc8q7YI4VYJvH9_QQ0Q,21290
70
- scitex/ai/classification/timeseries/_TimeSeriesCalendarSplit.py,sha256=UgiQOZ-8eRtN4oiOmhtNHCRZFCOx1VdyEvcrX-daUjw,24178
71
- scitex/ai/classification/timeseries/_TimeSeriesMetadata.py,sha256=ORYee2G4AGA_uap71Ql_c3w8O3tAufSU6OcdH0rdkzo,4534
72
- scitex/ai/classification/timeseries/_TimeSeriesSlidingWindowSplit.py,sha256=Gqh7CLKvJaIxVZywF2_5rFDYs0U9t6-IfUt9hThKPH8,65888
73
- scitex/ai/classification/timeseries/_TimeSeriesSlidingWindowSplit_v01-not-using-n_splits.py,sha256=wrhUgTHnGjYMQAFfEe2MOyA3YoZXhsGc5Mf-7NmKTZg,64085
68
+ scitex/ai/classification/timeseries/README.md,sha256=5cTiRJXCQO6IC0tAQGdRhFLqDgkJxozbR-YPuMoqLi0,10134
69
+ scitex/ai/classification/timeseries/_TimeSeriesBlockingSplit.py,sha256=-2mwimxwDXVNT5gxNAsZnW2VPjNN-G_PJruQ2HqFkJ8,21290
70
+ scitex/ai/classification/timeseries/_TimeSeriesCalendarSplit.py,sha256=SgOKE0RO3zAWK-mChgVI2IYJJwWhat-JsraNMD3iyUU,24178
71
+ scitex/ai/classification/timeseries/_TimeSeriesMetadata.py,sha256=6ZwtXqiHtCJMEIH7mFtg82y_W9ODMRcsNri_O5UB4lw,4534
72
+ scitex/ai/classification/timeseries/_TimeSeriesSlidingWindowSplit.py,sha256=UXxRWc5K98u6yvCLiD311F_4WQfKRSh6Ptdp_tfeSzo,65888
73
+ scitex/ai/classification/timeseries/_TimeSeriesSlidingWindowSplit_v01-not-using-n_splits.py,sha256=_eqitnVSWNAX9fVZUX-irO0Elz-lTOO1yDiTQQJuFI4,64085
74
74
  scitex/ai/classification/timeseries/_TimeSeriesStrategy.py,sha256=IlkXV7ZrhKyF_me97vNH8uExlibiJzQ7Md_8DUDrg9U,2523
75
- scitex/ai/classification/timeseries/_TimeSeriesStratifiedSplit.py,sha256=lp3dYI9m7VROUn5teKpwkmrRy9pNHEXc4UyH2GRf4qs,23906
75
+ scitex/ai/classification/timeseries/_TimeSeriesStratifiedSplit.py,sha256=ks3ZYGw9X_gs9ukGH2MZUhY-YYRr1THBiQ86PvkqhZw,23906
76
76
  scitex/ai/classification/timeseries/__init__.py,sha256=UalgxypqSRdlYZ6373SUrw7KBV6Wl-D_14czxrVl-Ao,1163
77
77
  scitex/ai/classification/timeseries/_normalize_timestamp.py,sha256=708sAzOiD0BHV-d8HIBHZVyFckFn6XdqF0x2Hdich9Q,11824
78
- scitex/ai/classification/timeseries/run_all.sh,sha256=NvfHRw70eJnzHT9-ZSjDRAkk-IFjm3KQvuRs82r8Dlc,1044
78
+ scitex/ai/classification/timeseries/run_all.sh,sha256=nQey9mtQuusaro6L7_JKNUEigmdELZ0b3AC2GIuZtPo,1044
79
79
  scitex/ai/clustering/__init__.py,sha256=OvB98TrqIw22aWmCDyuJaggypOd6rNC7W3a6IsEIbmQ,158
80
80
  scitex/ai/clustering/_pca.py,sha256=Ppo7Wv2ND_4AoFb-UWFz6mmP7GOXBJoOe2-4FnO3l-Y,3222
81
81
  scitex/ai/clustering/_umap.py,sha256=7VCeg5LLLjH6oF6MjyuTh0TEes8YW6ZGYBzqYZE2JBc,10090
@@ -113,8 +113,8 @@ scitex/ai/optim/Ranger_Deep_Learning_Optimizer/ranger/ranger.py,sha256=kyB4Moni6
113
113
  scitex/ai/optim/Ranger_Deep_Learning_Optimizer/ranger/ranger2020.py,sha256=EQYQJ8uf8YzubZR0N8h7p3Jz2WoS706bZzKgKUC0jnE,9432
114
114
  scitex/ai/optim/Ranger_Deep_Learning_Optimizer/ranger/ranger913A.py,sha256=gdFmSjmKa9dOYkoBtd9bx9nHKYdaSnNJK6UasW0tEFY,8449
115
115
  scitex/ai/optim/Ranger_Deep_Learning_Optimizer/ranger/rangerqh.py,sha256=LoaP_hb50mF90TEpPuCQCOAKl8GMqrEydUCNTAS7Yd8,6990
116
- scitex/ai/plt/__init__.py,sha256=YW2Dl5AxuVuRx418MTdGLANJMCdpIHzKD4tGpr7sbPY,1817
117
- scitex/ai/plt/_plot_conf_mat.py,sha256=wl1T1DUPwrZuDEUAF3fZgRvqBvfpcCJLEoC9qfwKdK0,19557
116
+ scitex/ai/plt/__init__.py,sha256=pVUv13LtGBEG88MMJ_JcKKtcU5VS0ZsWtBmbnnuKg6I,1817
117
+ scitex/ai/plt/_plot_conf_mat.py,sha256=u5jmduZ-C-bXC_Fiv3GHo_-bnJ30sDJEoRqo19MinYE,19557
118
118
  scitex/ai/plt/_plot_feature_importance.py,sha256=RIUSVKLVtHSBWAFz3dKeAD4H3iKG0S0vlzQQ2zb40gE,9156
119
119
  scitex/ai/plt/_plot_learning_curve.py,sha256=oepts6ldJ33-B0-Jm_kz51UJhGLJHwAdc3GGksc80Zw,9331
120
120
  scitex/ai/plt/_plot_optuna_study.py,sha256=xjOehhfyzKvWWYG3wN3og5wYcIi9rCQ4bJWe6gcKfaE,6758
@@ -127,8 +127,8 @@ scitex/ai/sk/_to_sktime.py,sha256=8tIcx_0GGmHkUL7c6RFbeCau98kAI09oTOj5TFmhpYM,30
127
127
  scitex/ai/sklearn/__init__.py,sha256=vf7N7EvL-BWXJ2WCDodiFBsdcyh_ds3rpRfox63EU0M,728
128
128
  scitex/ai/sklearn/clf.py,sha256=yW5fQEgQOtLyEjZj5dzh1gL6t3K9sEzeWsX0FTx6Ajc,1988
129
129
  scitex/ai/sklearn/to_sktime.py,sha256=SXwIdBRyLI1n9Ec4OW85m8o26kL_gZZwQOemRZ74AZw,3036
130
- scitex/ai/training/_EarlyStopping.py,sha256=PmemuLEPAcbWO64P0feWxcqiyqsjtIkUJRHia7wjjiU,4921
131
- scitex/ai/training/_LearningCurveLogger.py,sha256=-l4QsW9aldHPH5Pss6EszlrX_1tKuZijzFI6WF4vBic,15979
130
+ scitex/ai/training/_EarlyStopping.py,sha256=opudKQAIzFDlVZNjPns0BtYkMQKzn-34N3kjB8CxYIE,4921
131
+ scitex/ai/training/_LearningCurveLogger.py,sha256=i4PnfmelkPQiGBjTNIFm6id1hGFurGZRT9dYIdepZFU,15979
132
132
  scitex/ai/training/__init__.py,sha256=1fOxy3AJZpIny044q187c8eBj_GhtLX97yjePeHwjho,198
133
133
  scitex/ai/training/legacy/early_stopping.py,sha256=2Daxzg5ua-F0rr5znUgR_VnWirlBoLkTvwhq6Nj5gEg,4941
134
134
  scitex/ai/training/legacy/learning_curve_logger.py,sha256=ZDjSAy0YOsqZpyJOVFfHXo31ViQTNeutRtwUQUJ--JU,17217
@@ -141,12 +141,12 @@ scitex/ai/utils/_merge_labels.py,sha256=XjGGIVF5OJ2uciz_K-ByISGbKCYyTRDDvBt1xGCc
141
141
  scitex/ai/utils/_sliding_window_data_augmentation.py,sha256=80uSbUnt8LDMmxzRmjPoYGtUOb4GP8EejJ_E30RCPys,294
142
142
  scitex/ai/utils/_under_sample.py,sha256=8BfDaou3MR890wNCV_spdrxerAjSHpBZVxxsF0t-t-0,1197
143
143
  scitex/ai/utils/_verify_n_gpus.py,sha256=FEmnwsSNzNIdTPbftbFP68yqKtwpiPtwDlxIivhLICg,438
144
- scitex/ai/utils/grid_search.py,sha256=9smpfv9etyIOoRImWxyguLSRYCffiasaTYyZOzAYuT8,4646
144
+ scitex/ai/utils/grid_search.py,sha256=XJ-cEsswH4B5BtmwQKQVZXc9kwFnK0Uo7FmzsEFvTMc,4646
145
145
  scitex/benchmark/__init__.py,sha256=F1jekkZkVccR1UWBCImfmDgzrmLpW9jFV3zgbODyLrg,984
146
146
  scitex/benchmark/benchmark.py,sha256=5WEubBdW4jqZAqd1AFrlDeKjTg15DvUc7wTjtNgL8Aw,10849
147
147
  scitex/benchmark/monitor.py,sha256=ge7eLEl3mtLprdtIT4liWqim9cquMekgQY4xyaVlTRI,11609
148
148
  scitex/benchmark/profiler.py,sha256=aC8Cb_AZdtTS2T-HWj3srUk-unGpZ_y4hz-6K387jcw,8633
149
- scitex/browser/ARCHITECTURE_PROPOSAL.md,sha256=0czMY5FoIodlc-oHGO487WP96Dr1xqEeJFN4TrfLes0,24228
149
+ scitex/browser/ARCHITECTURE_PROPOSAL.md,sha256=bf2M9VDCiSWLH6rFSIPopLospRAkJHj5YKPGMHcGl4w,24252
150
150
  scitex/browser/INTERACTIVE_COLLABORATION.md,sha256=83c4vTgC1QSi1uDRZ9cX91bRFlFhMiN7JbsGPMbV74M,28841
151
151
  scitex/browser/README.md,sha256=xpYYwib632qOyLCeAIBNtwE2o8frDiLXTyacw2fAz6k,4436
152
152
  scitex/browser/SAFE_IMPLEMENTATION_PLAN.md,sha256=XNSAYZTJkxrkUFAItbK17YnMZKUoZAKQMU1IX64nt5w,10805
@@ -480,12 +480,13 @@ scitex/logging/_handlers.py,sha256=FI1QoP20aTQYMj0LgdYm9cyCboESpmm_zO9aIK12Sok,1
480
480
  scitex/logging/_levels.py,sha256=ptKyRpbzsuCBO9z9CmfhM31BvZ9o_t-TGokzsupQcfk,871
481
481
  scitex/logging/_logger.py,sha256=h0qMLHYKBt_ibgG4l4vgi2OAtjKHADla_cueNcM0cks,5070
482
482
  scitex/logging/_print_capture.py,sha256=i6try-vVjmdlgIiw1_mtDor0Sl9MW8CjcqIacyhfx9s,2603
483
+ scitex/ml/__init__.py,sha256=Pn2HsGRzbt1sfKWVjx4OmEbym7j4uBwrP6lqR0YFDfE,673
483
484
  scitex/nn/_AxiswiseDropout.py,sha256=JaLHFmwCGATil7QK29MGK3PNFCzbD86A0joK03InWy0,812
484
485
  scitex/nn/_BNet.py,sha256=_fltzWo1O1Xxu_UVk9bzjKPf56jGExO9Lr6EbjWICrU,3662
485
486
  scitex/nn/_BNet_Res.py,sha256=PWh_PMOhwxanT8JMPYax9hmd5EAqoEt2JUbo6t66Oh0,5024
486
487
  scitex/nn/_ChannelGainChanger.py,sha256=Vq62RKHiCL16DwZQiCDDGOnXa8h7x_6ii2qAKfi6Utk,1000
487
488
  scitex/nn/_DropoutChannels.py,sha256=HXkDSyAkyAWhmiqBtTQt6Yn1FPLLY63D9mKRVCqLofA,1327
488
- scitex/nn/_Filters.py,sha256=pQLOnEBFd4xdhHD0qlpOAjyoUETlPMdO8TX_8pcSRB4,15727
489
+ scitex/nn/_Filters.py,sha256=0hCbyJttMhdOLEre4rh8_HX1PbFevTF0lI6NIuckHt8,15727
489
490
  scitex/nn/_FreqGainChanger.py,sha256=RHlWgmWrl16_EmmEbYqGaiqF4nzpwa3_AyG_Qms8NAQ,3121
490
491
  scitex/nn/_GaussianFilter.py,sha256=roVPYZVfjqP8hTZt4OMY4dBw2djdoArC8aowhsHL5aA,1326
491
492
  scitex/nn/_Hilbert.py,sha256=KpQ0z_rVvL0mfhBHJ2uIDlKsLu_cHQkcvGXrLLkCawo,2775
@@ -526,7 +527,7 @@ scitex/pd/_from_xyz.py,sha256=tyYWDBL3VlHa2degHQ3LJpoqygBBIE9ONv3Qqgdlb2Q,2056
526
527
  scitex/pd/_get_unique.py,sha256=a2zu2a94DqnuUbkAqQc4BA-_92zN0PryNFgS-BaW0RU,3053
527
528
  scitex/pd/_ignore_SettingWithCopyWarning.py,sha256=aNZfIs2dsYzswq7Cz0CICq9SwRXtb8prFKRx2Km1DCk,913
528
529
  scitex/pd/_melt_cols.py,sha256=AhZdG6Mlp7aKSh1HZnTlp-z81ILpQxNI0398kvzPiGM,2535
529
- scitex/pd/_merge_columns.py,sha256=x9e1zjYJK-6QsIWy1QSPvrn-JDrKZ4T1wPnZ4awYk8Y,6197
530
+ scitex/pd/_merge_columns.py,sha256=uLpEXXEXKh917UvIB12hXKLD5XzAUMPjVzySLxqN7ms,6197
530
531
  scitex/pd/_mv.py,sha256=WpJCZIdARVe1v2xGHdJnFDAyCZJHYCvrzCp0qJ_NwRU,1705
531
532
  scitex/pd/_replace.py,sha256=nGUYJ09MOEB1r4SswoSsbZnzBIHMjSGmHR8I38J69Pc,2032
532
533
  scitex/pd/_round.py,sha256=0xSpB-DV2M9kEStUUrPL3OS2QvirL3Yj1pyeArSLMwo,2969
@@ -535,7 +536,7 @@ scitex/pd/_sort.py,sha256=lqA7e9eiQvPkT5CKtuF_RLwzf4QIAXqe5Lqrl7WivH4,2609
535
536
  scitex/pd/_to_numeric.py,sha256=_0PzQR2j5_xHgxMH9b2gpZFg2PDWI3sNomxDFWWHTqo,1796
536
537
  scitex/pd/_to_xy.py,sha256=LlAnNeZjXqdu_QmNE8_mQh4cjRWZp36hy4avXucgjnA,1866
537
538
  scitex/pd/_to_xyz.py,sha256=WdtHIcAmwM7MM_2yP4MErdLrJ32XWyrbB2HuvYvZahU,3243
538
- scitex/plt/KNOWN_ISSUES.md,sha256=h6zSSuIROlBrDTWb1zl5L3QZxykwSSHu2uarnUaafxU,2227
539
+ scitex/plt/KNOWN_ISSUES.md,sha256=5ct91R_Sv0jPe4UjWTbbblKtVY_y2T-1YRQ1Ln_KW3A,2227
539
540
  scitex/plt/README.md,sha256=mQUuI5hzYogxPx19TBc0LjcMeleKXdgqFTfjsoHxJNg,58734
540
541
  scitex/plt/TODO.md,sha256=_OYf_Hh5PL__8lCzOUhdyiktXrXbSNxh1-sTWFTEhuc,166
541
542
  scitex/plt/__init__.py,sha256=DvsW1ikUFKnmYdyTq0TmwjKpf_mqmrBLV26vyPFM0NM,4518
@@ -673,10 +674,6 @@ scitex/project/validators.py,sha256=uHvpTyaM4gFBFfP4QrLcYP4ujqWg3TLBZ6BOdAOMHcM,
673
674
  scitex/repro/__init__.py,sha256=cgIAyOS8hYIQmlw1_qJnAXp6A0WlNtWMuJW3cVeIQ74,2460
674
675
  scitex/repro/_gen_ID.py,sha256=xaTJFFJQ8NAgCyiSUr5aguyJhnbMPe7MHReb5jt-vfg,1545
675
676
  scitex/repro/_gen_timestamp.py,sha256=dZvoO1IK24lkQC0-urkCDyiV3VOvePTv6wsaCDsmMIw,798
676
- scitex/repro_rng/README.md,sha256=Gm89pgnk7cre_syWxnf8RUztUdNArObPbRJ37d9z9JQ,5558
677
- scitex/repro_rng/_RandomStateManager.py,sha256=0oG-eCf2UwOjeVrfSXoVrOi6ZuUCea3vdLMfXky1uis,17931
678
- scitex/repro_rng/_RandomStateManager_v01-no-verbose-options.py,sha256=hZGUUGoHOM9f9QysfSBBSQrObw4-_NKfJdUfFL6tumk,11916
679
- scitex/repro_rng/__init__.py,sha256=KSN9aNRWh6YStVbYNnF-r1CZ8yK_TIiAIDeQ8TGxelQ,1008
680
677
  scitex/reproduce/__init__.py,sha256=xupfIx7u63UxKbH3lC1PwYKkX_lqeGEeE9KeicGhVKw,761
681
678
  scitex/reproduce/_hash_array.py,sha256=y2YFVnVJR50QumzOoPlPi1ULasJtiJFyga388x1gQtI,596
682
679
  scitex/resource/README.md,sha256=UO1_5-fXqCQkSd1VNmh1UKE_VUzaMLicQRbqrM7yQyg,2960
@@ -689,6 +686,10 @@ scitex/resource/_get_specs/info.yaml,sha256=EHyU3KzVZzonEWmfnWwfY7d_2nNjfQNMNAzY
689
686
  scitex/resource/_get_specs/specs.yaml,sha256=ynUaIe_ntbDYZxJ1zNlEk5rC-BIIKbuB7bopJawLzvU,3450
690
687
  scitex/resource/_utils/__init__.py,sha256=96h3EiHpNFvqKiWoIlR5_uB7KYceKjyLRlbryUHTtkk,1132
691
688
  scitex/resource/_utils/_get_env_info.py,sha256=Yn9CkocGzWq503U5VKdExxT_ZBNqfjepi9A9c2DXJSg,15626
689
+ scitex/rng/README.md,sha256=Gm89pgnk7cre_syWxnf8RUztUdNArObPbRJ37d9z9JQ,5558
690
+ scitex/rng/_RandomStateManager.py,sha256=0oG-eCf2UwOjeVrfSXoVrOi6ZuUCea3vdLMfXky1uis,17931
691
+ scitex/rng/_RandomStateManager_v01-no-verbose-options.py,sha256=hZGUUGoHOM9f9QysfSBBSQrObw4-_NKfJdUfFL6tumk,11916
692
+ scitex/rng/__init__.py,sha256=KSN9aNRWh6YStVbYNnF-r1CZ8yK_TIiAIDeQ8TGxelQ,1008
692
693
  scitex/scholar/.gitignore,sha256=oYROO1p7Mia9ftRowaRu3BVNm7jdMY9O4Ro1RSgSC80,381
693
694
  scitex/scholar/CLAUDE.md,sha256=LhHw4fFEfSJNPqDTgGpE38s_ohhjY2kEXTpJOj6SPSo,14947
694
695
  scitex/scholar/README.md,sha256=AbE7t0qIKQY11ZSGkeQXNP_qA088q-2t-oQ3W5bDvxI,3799
@@ -2866,7 +2867,7 @@ scitex/types/_is_listed_X.py,sha256=kQC_-x2OpnQN5LXUd_Ivv6R952LTCH51_WE7SeVvqZg,
2866
2867
  scitex/utils/__init__.py,sha256=gzlFQ0VTvug746_rucreyaqKzFvhf3bFWbN2n2lmsc4,512
2867
2868
  scitex/utils/_compress_hdf5.py,sha256=_pRXAD6lAPSVDvsY8r4FmaOxElQr-335k2j_QNl1xA8,4598
2868
2869
  scitex/utils/_email.py,sha256=-iM5A8zjC2GpOTPqV_M1TZS2fH3R-LFDDzss8Qqka44,4570
2869
- scitex/utils/_grid.py,sha256=-e8eSH4_s2H_l2x5RT0MMZDXAdTpNIr_F9NW5ZRAGTU,4699
2870
+ scitex/utils/_grid.py,sha256=7_cf2R7-frK2Htu4Dygu9cC_gFDclBh87-whKF79R2Q,4699
2870
2871
  scitex/utils/_notify.py,sha256=I_L3zRY6oBcjD1GxrTrzkgo-fRES-fbzQFRA8jeqh54,7009
2871
2872
  scitex/utils/_search.py,sha256=IZ4I1sjiwCURw0yjAu9MO7pYRoQuh80urUyBFRQU8_k,3948
2872
2873
  scitex/utils/_verify_scitex_format.py,sha256=U0LVfbjeOZ9knxMeqef3rxaHvBBrTbUEg5_wGbJTn9w,17535
@@ -2919,8 +2920,8 @@ scitex/writer/utils/__init__.py,sha256=wizvQZbOWHsNnkdDsB8J4-lPInRM3gDdwOCRg1fLI
2919
2920
  scitex/writer/utils/_parse_latex_logs.py,sha256=5prdAK-ZXV61S_B791Md_uVgJQqeZeDkyOyfZQJ4LC4,3146
2920
2921
  scitex/writer/utils/_parse_script_args.py,sha256=vVMQE-AHCs2Q2uVQDuZVN8N3Eft0sxuPtNmnyPXVgnc,4625
2921
2922
  scitex/writer/utils/_watch.py,sha256=qSBbwbeCPmXEWXn-ozCrar43rp664Wo65JzwIMWx7wE,2575
2922
- scitex-2.1.1.dist-info/METADATA,sha256=gRUl2sFl5nqOnmSz1cp9BB7k-aykGZIWepG5Ox9kxgA,26478
2923
- scitex-2.1.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
2924
- scitex-2.1.1.dist-info/entry_points.txt,sha256=jmgM0XEEIfCoMvwDSUNwRHBHaX_cfcJWQgi-lFc-BNU,48
2925
- scitex-2.1.1.dist-info/licenses/LICENSE,sha256=3_CIi-7xCaNza04OTL6-hRCOCmJJsDUymdVOy87p85U,1093
2926
- scitex-2.1.1.dist-info/RECORD,,
2923
+ scitex-2.1.2.dist-info/METADATA,sha256=pcAgGfMo_5SJv4mzBvmUlliE_y8nkrcvzo58P-20PSs,26478
2924
+ scitex-2.1.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
2925
+ scitex-2.1.2.dist-info/entry_points.txt,sha256=jmgM0XEEIfCoMvwDSUNwRHBHaX_cfcJWQgi-lFc-BNU,48
2926
+ scitex-2.1.2.dist-info/licenses/LICENSE,sha256=3_CIi-7xCaNza04OTL6-hRCOCmJJsDUymdVOy87p85U,1093
2927
+ scitex-2.1.2.dist-info/RECORD,,
File without changes
File without changes
File without changes
File without changes