ecodev-core 0.0.44__tar.gz → 0.0.45__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 ecodev-core might be problematic. Click here for more details.

Files changed (32) hide show
  1. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/PKG-INFO +1 -1
  2. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/__init__.py +3 -3
  3. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/db_upsertion.py +7 -4
  4. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/pyproject.toml +1 -1
  5. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/LICENSE.md +0 -0
  6. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/README.md +0 -0
  7. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/app_activity.py +0 -0
  8. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/app_rights.py +0 -0
  9. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/app_user.py +0 -0
  10. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/auth_configuration.py +0 -0
  11. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/authentication.py +0 -0
  12. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/backup.py +0 -0
  13. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/check_dependencies.py +0 -0
  14. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/custom_equal.py +0 -0
  15. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/db_connection.py +0 -0
  16. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/db_filters.py +0 -0
  17. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/db_insertion.py +0 -0
  18. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/db_retrieval.py +0 -0
  19. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/deployment.py +0 -0
  20. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/email_sender.py +0 -0
  21. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/enum_utils.py +0 -0
  22. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/es_connection.py +0 -0
  23. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/list_utils.py +0 -0
  24. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/logger.py +0 -0
  25. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/pandas_utils.py +0 -0
  26. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/permissions.py +0 -0
  27. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/pydantic_utils.py +0 -0
  28. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/read_write.py +0 -0
  29. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/safe_utils.py +0 -0
  30. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/settings.py +0 -0
  31. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/sqlmodel_utils.py +0 -0
  32. {ecodev_core-0.0.44 → ecodev_core-0.0.45}/ecodev_core/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ecodev-core
3
- Version: 0.0.44
3
+ Version: 0.0.45
4
4
  Summary: Low level sqlmodel/fastapi/pydantic building blocks
5
5
  License: MIT
6
6
  Author: Thomas Epelbaum
@@ -44,7 +44,7 @@ from ecodev_core.db_upsertion import field
44
44
  from ecodev_core.db_upsertion import sfield
45
45
  from ecodev_core.db_upsertion import upsert_data
46
46
  from ecodev_core.db_upsertion import upsert_deletor
47
- from ecodev_core.db_upsertion import upsert_dict_data
47
+ from ecodev_core.db_upsertion import upsert_df_data
48
48
  from ecodev_core.db_upsertion import upsert_selector
49
49
  from ecodev_core.deployment import Deployment
50
50
  from ecodev_core.email_sender import send_email
@@ -102,5 +102,5 @@ __all__ = [
102
102
  'get_access_token', 'safe_get_user', 'backup', 'group_by', 'get_excelfile', 'upsert_new_user',
103
103
  'datify', 'safe_drop_columns', 'get_value', 'is_null', 'send_email', 'first_func_or_default',
104
104
  'sort_by_keys', 'sort_by_values', 'Settings', 'load_yaml_file', 'Deployment', 'Version',
105
- 'sfield', 'field', 'upsert_data', 'upsert_deletor', 'get_row_versions', 'get_versions',
106
- 'db_to_value', 'upsert_dict_data', 'upsert_selector']
105
+ 'sfield', 'field', 'upsert_df_data', 'upsert_deletor', 'get_row_versions', 'get_versions',
106
+ 'db_to_value', 'upsert_data', 'upsert_selector']
@@ -83,24 +83,27 @@ def upsert_deletor(values: SQLModel, session: Session):
83
83
  session.commit()
84
84
 
85
85
 
86
- def upsert_data(df: Union[pd.DataFrame], db_schema: SQLModelMetaclass, session: Session) -> None:
86
+ def upsert_df_data(df: Union[pd.DataFrame], db_schema: SQLModelMetaclass, session: Session) -> None:
87
87
  """
88
88
  Upsert the passed df into db_schema db.
89
89
  """
90
- upsert_dict_data([x.to_dict() for _, x in df.iterrows()], db_schema, session)
90
+ upsert_data([x.to_dict() for _, x in df.iterrows()], session, raw_db_schema=db_schema)
91
91
 
92
92
 
93
- def upsert_dict_data(data: list[dict], db_schema: SQLModelMetaclass, session: Session) -> None:
93
+ def upsert_data(data: list[dict | SQLModelMetaclass],
94
+ session: Session,
95
+ raw_db_schema: SQLModelMetaclass | None = None) -> None:
94
96
  """
95
97
  Upsert the passed list of dicts (corresponding to db_schema) into db_schema db.
96
98
  """
99
+ db_schema = raw_db_schema or data[0].__class__
97
100
  selector = partial(upsert_selector, db_schema=db_schema)
98
101
  updator = partial(upsert_updator, db_schema=db_schema)
99
102
  batches = [data[i:i + BATCH_SIZE] for i in range(0, len(data), BATCH_SIZE)]
100
103
 
101
104
  for batch in progressbar.progressbar(batches, redirect_stdout=False):
102
105
  for row in batch:
103
- new_object = db_schema(**row)
106
+ new_object = db_schema(**row) if isinstance(row, dict) else row
104
107
  if in_db := session.exec(selector(new_object)).first():
105
108
  session.exec(updator(new_object, in_db.id, session))
106
109
  else:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "ecodev-core"
3
- version = "0.0.44"
3
+ version = "0.0.45"
4
4
  description = "Low level sqlmodel/fastapi/pydantic building blocks"
5
5
  authors = ["Thomas Epelbaum <tomepel@gmail.com>",
6
6
  "Olivier Gabriel <olivier.gabriel.geom@gmail.com>",
File without changes
File without changes