lecrapaud 0.11.3__tar.gz → 0.11.5__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.

Potentially problematic release.


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

Files changed (44) hide show
  1. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/PKG-INFO +1 -1
  2. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/api.py +19 -4
  3. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/alembic/env.py +1 -1
  4. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/alembic.ini +8 -5
  5. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/utils.py +0 -5
  6. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/pyproject.toml +1 -1
  7. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/LICENSE +0 -0
  8. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/README.md +0 -0
  9. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/__init__.py +0 -0
  10. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/config.py +0 -0
  11. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/__init__.py +0 -0
  12. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/alembic/README +0 -0
  13. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/alembic/script.py.mako +0 -0
  14. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/alembic/versions/2025_06_23_1748-f089dfb7e3ba_.py +0 -0
  15. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/alembic/versions/2025_06_24_1216-c62251b129ed_.py +0 -0
  16. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/alembic/versions/2025_06_24_1711-86457e2f333f_.py +0 -0
  17. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/alembic/versions/2025_06_25_1759-72aa496ca65b_.py +0 -0
  18. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/models/__init__.py +0 -0
  19. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/models/base.py +0 -0
  20. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/models/experiment.py +0 -0
  21. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/models/feature.py +0 -0
  22. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/models/feature_selection.py +0 -0
  23. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/models/feature_selection_rank.py +0 -0
  24. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/models/model.py +0 -0
  25. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/models/model_selection.py +0 -0
  26. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/models/model_training.py +0 -0
  27. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/models/score.py +0 -0
  28. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/models/target.py +0 -0
  29. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/db/session.py +0 -0
  30. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/directories.py +0 -0
  31. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/experiment.py +0 -0
  32. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/feature_engineering.py +0 -0
  33. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/feature_selection.py +0 -0
  34. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/integrations/openai_integration.py +0 -0
  35. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/jobs/__init__.py +0 -0
  36. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/jobs/config.py +0 -0
  37. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/jobs/scheduler.py +0 -0
  38. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/jobs/tasks.py +0 -0
  39. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/misc/tabpfn_tests.ipynb +0 -0
  40. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/misc/test-gpu-bilstm.ipynb +0 -0
  41. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/misc/test-gpu-resnet.ipynb +0 -0
  42. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/misc/test-gpu-transformers.ipynb +0 -0
  43. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/model_selection.py +0 -0
  44. {lecrapaud-0.11.3 → lecrapaud-0.11.5}/lecrapaud/search_space.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: lecrapaud
3
- Version: 0.11.3
3
+ Version: 0.11.5
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
@@ -28,6 +28,7 @@ Basic Usage:
28
28
  import joblib
29
29
  import pandas as pd
30
30
  import ast
31
+ import os
31
32
  import logging
32
33
  import seaborn as sns
33
34
  import numpy as np
@@ -47,6 +48,7 @@ from lecrapaud.experiment import create_experiment
47
48
  from lecrapaud.db import Experiment
48
49
  from lecrapaud.search_space import normalize_models_idx
49
50
  from lecrapaud.utils import logger
51
+ from lecrapaud.directories import tmp_dir
50
52
 
51
53
 
52
54
  class LeCrapaud:
@@ -109,6 +111,12 @@ class ExperimentEngine:
109
111
  if id:
110
112
  self.experiment = Experiment.get(id)
111
113
  kwargs.update(self.experiment.context)
114
+ experiment_dir = f"{tmp_dir}/{self.experiment.name}"
115
+ preprocessing_dir = f"{experiment_dir}/preprocessing"
116
+ data_dir = f"{experiment_dir}/data"
117
+ os.makedirs(experiment_dir, exist_ok=True)
118
+ os.makedirs(preprocessing_dir, exist_ok=True)
119
+ os.makedirs(data_dir, exist_ok=True)
112
120
  else:
113
121
  if data is None:
114
122
  raise ValueError("Either id or data must be provided")
@@ -201,10 +209,17 @@ class ExperimentEngine:
201
209
  )
202
210
  y_pred.name = "PRED"
203
211
 
204
- # evaluate if TARGET is in columns
205
- new_data.columns = new_data.columns.str.upper()
206
- if f"TARGET_{target_number}" in new_data.columns:
207
- y_true = new_data[f"TARGET_{target_number}"]
212
+ # evaluate if TARGET is in columns (case-insensitive check)
213
+ target_col = next(
214
+ (
215
+ col
216
+ for col in new_data.columns
217
+ if col.upper() == f"TARGET_{target_number}"
218
+ ),
219
+ None,
220
+ )
221
+ if target_col is not None:
222
+ y_true = new_data[target_col]
208
223
  prediction = pd.concat([y_true, y_pred], axis=1)
209
224
  prediction.rename(
210
225
  columns={f"TARGET_{target_number}": "TARGET"}, inplace=True
@@ -15,7 +15,7 @@ config.set_main_option("sqlalchemy.url", DATABASE_URL)
15
15
  # Interpret the config file for Python logging.
16
16
  # This line sets up loggers basically.
17
17
  if config.config_file_name is not None:
18
- fileConfig(config.config_file_name)
18
+ fileConfig(config.config_file_name, disable_existing_loggers=False)
19
19
 
20
20
  # add your model's MetaData object here
21
21
  # for 'autogenerate' support
@@ -84,11 +84,14 @@ sqlalchemy.url = %(DATABASE_URL)s
84
84
  [loggers]
85
85
  keys = root,sqlalchemy,alembic
86
86
 
87
+ [loggers_root]
88
+ disable_existing_loggers = False
89
+
87
90
  [handlers]
88
91
  keys = console
89
92
 
90
93
  [formatters]
91
- keys = generic
94
+ keys = lecrapaud_format
92
95
 
93
96
  [logger_root]
94
97
  level = WARN
@@ -109,8 +112,8 @@ qualname = alembic
109
112
  class = StreamHandler
110
113
  args = (sys.stderr,)
111
114
  level = NOTSET
112
- formatter = generic
115
+ formatter = lecrapaud_format
113
116
 
114
- [formatter_generic]
115
- format = %(levelname)-5.5s [%(name)s] %(message)s
116
- datefmt = %H:%M:%S
117
+ [formatter_lecrapaud_format]
118
+ format = %(asctime)s - %(name)s - %(levelname)s - %(funcName)s - %(message)s
119
+ datefmt = %Y-%m-%d %H:%M:%S
@@ -57,11 +57,6 @@ def setup_logger():
57
57
  file_handler.setLevel(log_level)
58
58
  logger.addHandler(file_handler)
59
59
 
60
- stream_handler = logging.StreamHandler(sys.stdout)
61
- stream_handler.setFormatter(formatter)
62
- stream_handler.setLevel(log_level)
63
- logger.addHandler(stream_handler)
64
-
65
60
  _LECRAPAUD_LOGGER_ALREADY_CONFIGURED = True
66
61
  return logger
67
62
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "lecrapaud"
3
- version = "0.11.3"
3
+ version = "0.11.5"
4
4
  description = "Framework for machine and deep learning, with regression, classification and time series analysis"
5
5
  authors = [
6
6
  {name = "Pierre H. Gallet"}
File without changes
File without changes