lecrapaud 0.9.0__py3-none-any.whl → 0.9.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.

Potentially problematic release.


This version of lecrapaud might be problematic. Click here for more details.

@@ -121,6 +121,7 @@ class Experiment(Base):
121
121
  for fs in self.feature_selections
122
122
  if fs.target_id in target_idx
123
123
  )
124
+ _all_features = list(_all_features)
124
125
 
125
126
  # fallback to path if no features found
126
127
  if len(_all_features) == 0:
@@ -131,7 +132,7 @@ class Experiment(Base):
131
132
  all_features.append(date_column)
132
133
  if group_column:
133
134
  all_features.append(group_column)
134
- all_features += list(_all_features)
135
+ all_features += _all_features
135
136
  all_features = list(dict.fromkeys(all_features))
136
137
 
137
138
  return all_features
@@ -811,14 +811,34 @@ def traditional_descriptive_analysis(df: pd.DataFrame, group_column: str | None
811
811
  # Shape
812
812
  results["Shape"] = f"{df.shape[0]} rows × {df.shape[1]} columns"
813
813
 
814
+ # Create a copy of the DataFrame to avoid modifying the original
815
+ df_check = df.copy()
816
+
817
+ # Convert numpy arrays to tuples for hashing
818
+ for col in df_check.columns:
819
+ if df_check[col].apply(lambda x: isinstance(x, np.ndarray)).any():
820
+ df_check[col] = df_check[col].apply(
821
+ lambda x: tuple(x) if isinstance(x, np.ndarray) else x
822
+ )
823
+
814
824
  # Duplicated rows
815
- results["Duplicated rows"] = int(df.duplicated().sum())
825
+ results["Duplicated rows"] = int(df_check.duplicated().sum())
816
826
 
817
- # Duplicated columns
818
- duplicated_cols = df.T[df.T.duplicated()].index.tolist()
819
- results["Duplicated columns"] = (
820
- ", ".join(duplicated_cols) if len(duplicated_cols) > 0 else "None"
821
- )
827
+ # Check for duplicated columns
828
+ try:
829
+ # Try to find duplicated columns
830
+ duplicated_cols = []
831
+ cols = df_check.columns
832
+ for i, col1 in enumerate(cols):
833
+ for col2 in cols[i+1:]:
834
+ if df_check[col1].equals(df_check[col2]):
835
+ duplicated_cols.append(f"{col1} = {col2}")
836
+
837
+ results["Duplicated columns"] = (
838
+ ", ".join(duplicated_cols) if duplicated_cols else "None"
839
+ )
840
+ except Exception as e:
841
+ results["Duplicated columns"] = f"Could not check: {str(e)}"
822
842
 
823
843
  # Missing values
824
844
  missing = df.isnull().sum()
@@ -899,10 +899,14 @@ class PreprocessModel:
899
899
  self.train = self.train[columns_to_keep]
900
900
 
901
901
  scaler_x = joblib.load(f"{self.preprocessing_dir}/scaler_x.pkl")
902
- scaled_data = scaler_x.transform(self.train)
903
- scaled_data = pd.DataFrame(
904
- scaled_data, columns=self.train.columns, index=self.train.index
905
- )
902
+
903
+ if scaler_x:
904
+ scaled_data = scaler_x.transform(self.train)
905
+ scaled_data = pd.DataFrame(
906
+ scaled_data, columns=self.train.columns, index=self.train.index
907
+ )
908
+ else:
909
+ scaled_data = self.train
906
910
 
907
911
  reshaped_data = None
908
912
  if (
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: lecrapaud
3
- Version: 0.9.0
3
+ Version: 0.9.2
4
4
  Summary: Framework for machine and deep learning, with regression, classification and time series analysis
5
5
  License: Apache License
6
6
  Author: Pierre H. Gallet
@@ -11,7 +11,7 @@ lecrapaud/db/alembic/versions/2025_06_24_1711-86457e2f333f_.py,sha256=dl6tfvcqEr
11
11
  lecrapaud/db/alembic.ini,sha256=zgvur-5jnLsT66_98FaTOTNgjwObGZCE0HqMwRAeJrs,3587
12
12
  lecrapaud/db/models/__init__.py,sha256=Lhyw9fVLdom0Fc6yIP-ip8FjkU1EwVwjae5q2VM815Q,740
13
13
  lecrapaud/db/models/base.py,sha256=CYtof_UjFwX3C7XUifequh_UtLHJ25bU7LCwT501uGE,7508
14
- lecrapaud/db/models/experiment.py,sha256=KwFbPTDAEXU0I9_33xMg6Ujx8QR_ffcjKA2YBOUuys4,3997
14
+ lecrapaud/db/models/experiment.py,sha256=IeS-TWPT-4l9xCMIdR2S2O-foXNt3Ru6WmtPMWToK7c,4035
15
15
  lecrapaud/db/models/feature.py,sha256=5o77O2FyRObnLOCGNj8kaPSGM3pLv1Ov6mXXHYkmnYY,1136
16
16
  lecrapaud/db/models/feature_selection.py,sha256=nXy_Lg3uDxid71vYll_qzdo8ajYsJEXskI7vLQ3uyW0,3315
17
17
  lecrapaud/db/models/feature_selection_rank.py,sha256=PvEpdv-JJt2wZMtX5TO0wyZ3IONlPkeDaC49i0VA-qU,2074
@@ -23,8 +23,8 @@ lecrapaud/db/models/target.py,sha256=DKnfeaLU8eT8J_oh_vuFo5-o1CaoXR13xBbswme6Bgk
23
23
  lecrapaud/db/session.py,sha256=K9dTyXmO-aF_2r9RRHsDsbW9_zLNDaOcchXlpiv7cSo,2719
24
24
  lecrapaud/directories.py,sha256=t4PrnJR48MpDfBOTYTyGlDVMUr39mcaj7uCPTaocBRw,725
25
25
  lecrapaud/experiment.py,sha256=_kuRARuw1pXe13K3MHz22KOJSiRmvhPb7Q2Mkli32t8,2519
26
- lecrapaud/feature_engineering.py,sha256=U3YOftZBB3PEqGbu2aFY_3B3Ks9Hiu04UxixOkBz0UU,31168
27
- lecrapaud/feature_selection.py,sha256=_Je2817Ah1v-6Rls4EiYC-fn3EbpBj6Uaq81KWBpQG4,43430
26
+ lecrapaud/feature_engineering.py,sha256=MnBp0oVYuzL61yn3gCSxFpYRGMe3A0Cb8GAX66alODA,32006
27
+ lecrapaud/feature_selection.py,sha256=9I0nQrou9f3tfIj_LRHCdj_eZYNNG0W4SOIXuHpIYRQ,43519
28
28
  lecrapaud/integrations/openai_integration.py,sha256=hHLF3fk5Bps8KNbNrEL3NUFa945jwClE6LrLpuMZOd4,7459
29
29
  lecrapaud/jobs/__init__.py,sha256=ZkrsyTOR21c_wN7RY8jPhm8jCrL1oCEtTsf3VFIlQiE,292
30
30
  lecrapaud/jobs/config.py,sha256=AmO0j3RFjx8H66dfKw_7vnshaOJb9Ox5BAZ9cwwLFMY,377
@@ -37,7 +37,7 @@ lecrapaud/speed_tests/test-gpu-resnet.ipynb,sha256=27Vu7nYwujYeh3fOxBNCnKJn3MXNP
37
37
  lecrapaud/speed_tests/test-gpu-transformers.ipynb,sha256=k6MBSs_Um1h4PykvE-LTBcdpbWLbIFST_xl_AFW2jgI,8444
38
38
  lecrapaud/speed_tests/tests.ipynb,sha256=RjI7LDHSsbadUkea_hT14sD7ivljtIQk4NB5McXJ1bE,3835
39
39
  lecrapaud/utils.py,sha256=Dy2uhK9cslzoqRHiIE6MdkxjNJWjmKmzGr6i7EYM28A,8106
40
- lecrapaud-0.9.0.dist-info/LICENSE,sha256=MImCryu0AnqhJE_uAZD-PIDKXDKb8sT7v0i1NOYeHTM,11350
41
- lecrapaud-0.9.0.dist-info/METADATA,sha256=GZItqrsRZu_QUCY0hFsdN03454boqWlYIaZh4fIEaHY,11623
42
- lecrapaud-0.9.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
43
- lecrapaud-0.9.0.dist-info/RECORD,,
40
+ lecrapaud-0.9.2.dist-info/LICENSE,sha256=MImCryu0AnqhJE_uAZD-PIDKXDKb8sT7v0i1NOYeHTM,11350
41
+ lecrapaud-0.9.2.dist-info/METADATA,sha256=qW3NTazTpFOdHa18jC3wrw8osxNht4dgg5qRJzvISLc,11623
42
+ lecrapaud-0.9.2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
43
+ lecrapaud-0.9.2.dist-info/RECORD,,