sibi-dst 0.3.23__tar.gz → 0.3.25__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.
Files changed (44) hide show
  1. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/PKG-INFO +4 -2
  2. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/pyproject.toml +4 -2
  3. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/df_helper/_df_helper.py +2 -2
  4. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/df_helper/backends/django/__init__.py +2 -2
  5. sibi_dst-0.3.23/sibi_dst/df_helper/backends/django/_django_db_connection.py → sibi_dst-0.3.25/sibi_dst/df_helper/backends/django/_db_connection.py +1 -1
  6. sibi_dst-0.3.23/sibi_dst/df_helper/backends/django/_django_sql_model_builder.py → sibi_dst-0.3.25/sibi_dst/df_helper/backends/django/_sql_model_builder.py +1 -1
  7. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/df_helper/backends/parquet/__init__.py +1 -1
  8. sibi_dst-0.3.25/sibi_dst/df_helper/backends/sqlalchemy/__init__.py +11 -0
  9. sibi_dst-0.3.23/sibi_dst/df_helper/backends/sql_alchemy/_sqlalchemy_db_connection.py → sibi_dst-0.3.25/sibi_dst/df_helper/backends/sqlalchemy/_db_connection.py +1 -1
  10. sibi_dst-0.3.23/sibi_dst/df_helper/backends/sql_alchemy/_sqlalchemy_load_from_db.py → sibi_dst-0.3.25/sibi_dst/df_helper/backends/sqlalchemy/_load_from_db.py +2 -2
  11. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/utils/_df_utils.py +1 -1
  12. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/utils/_log_utils.py +1 -1
  13. sibi_dst-0.3.23/sibi_dst/df_helper/backends/sql_alchemy/__init__.py +0 -6
  14. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/README.md +0 -0
  15. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/__init__.py +0 -0
  16. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/df_helper/__init__.py +0 -0
  17. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/df_helper/_parquet_artifact.py +0 -0
  18. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/df_helper/_parquet_reader.py +0 -0
  19. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/df_helper/backends/__init__.py +0 -0
  20. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/df_helper/backends/django/_io_dask.py +0 -0
  21. /sibi_dst-0.3.23/sibi_dst/df_helper/backends/django/_django_load_from_db.py → /sibi_dst-0.3.25/sibi_dst/df_helper/backends/django/_load_from_db.py +0 -0
  22. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/df_helper/backends/http/__init__.py +0 -0
  23. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/df_helper/backends/http/_http_config.py +0 -0
  24. /sibi_dst-0.3.23/sibi_dst/df_helper/backends/parquet/_parquet_filter_handler.py → /sibi_dst-0.3.25/sibi_dst/df_helper/backends/parquet/_filter_handler.py +0 -0
  25. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/df_helper/backends/parquet/_parquet_options.py +0 -0
  26. /sibi_dst-0.3.23/sibi_dst/df_helper/backends/sql_alchemy/_sqlachemy_filter_handler.py → /sibi_dst-0.3.25/sibi_dst/df_helper/backends/sqlalchemy/_filter_handler.py +0 -0
  27. /sibi_dst-0.3.23/sibi_dst/df_helper/backends/sql_alchemy/_io_sqlalchemy_dask.py → /sibi_dst-0.3.25/sibi_dst/df_helper/backends/sqlalchemy/_io_dask.py +0 -0
  28. /sibi_dst-0.3.23/sibi_dst/df_helper/backends/sql_alchemy/_sqlalchemy_model_builder.py → /sibi_dst-0.3.25/sibi_dst/df_helper/backends/sqlalchemy/_sql_model_builder.py +0 -0
  29. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/df_helper/core/__init__.py +0 -0
  30. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/df_helper/core/_defaults.py +0 -0
  31. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/df_helper/core/_filter_handler.py +0 -0
  32. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/df_helper/core/_params_config.py +0 -0
  33. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/df_helper/core/_query_config.py +0 -0
  34. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/utils/__init__.py +0 -0
  35. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/utils/_airflow_manager.py +0 -0
  36. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/utils/_clickhouse_writer.py +0 -0
  37. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/utils/_credentials.py +0 -0
  38. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/utils/_data_utils.py +0 -0
  39. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/utils/_data_wrapper.py +0 -0
  40. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/utils/_date_utils.py +0 -0
  41. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/utils/_file_utils.py +0 -0
  42. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/utils/_filepath_generator.py +0 -0
  43. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/utils/_parquet_saver.py +0 -0
  44. {sibi_dst-0.3.23 → sibi_dst-0.3.25}/sibi_dst/utils/_storage_manager.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sibi-dst
3
- Version: 0.3.23
3
+ Version: 0.3.25
4
4
  Summary: Data Science Toolkit
5
5
  Author: Luis Valverde
6
6
  Author-email: lvalverdeb@gmail.com
@@ -25,15 +25,17 @@ Requires-Dist: openpyxl (>=3.1.5,<4.0.0)
25
25
  Requires-Dist: pandas (>=2.2.3,<3.0.0)
26
26
  Requires-Dist: paramiko (>=3.5.0,<4.0.0)
27
27
  Requires-Dist: psutil (>=6.1.0,<7.0.0)
28
+ Requires-Dist: psycopg2 (>=2.9.10,<3.0.0)
28
29
  Requires-Dist: pyarrow (>=18.0.0,<19.0.0)
29
30
  Requires-Dist: pydantic (>=2.9.2,<3.0.0)
30
31
  Requires-Dist: pymysql (>=1.1.1,<2.0.0)
31
32
  Requires-Dist: pytest (>=8.3.3,<9.0.0)
33
+ Requires-Dist: pytest-mock (>=3.14.0,<4.0.0)
32
34
  Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
33
35
  Requires-Dist: sqlalchemy (>=2.0.36,<3.0.0)
34
36
  Requires-Dist: tornado (>=6.4.1,<7.0.0)
35
37
  Requires-Dist: tqdm (>=4.67.0,<5.0.0)
36
- Requires-Dist: uvicorn (>=0.32.1,<0.33.0)
38
+ Requires-Dist: uvicorn (>=0.34.0,<0.35.0)
37
39
  Description-Content-Type: text/markdown
38
40
 
39
41
  # sibi-dst
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "sibi-dst"
3
- version = "0.3.23"
3
+ version = "0.3.25"
4
4
  description = "Data Science Toolkit"
5
5
  authors = ["Luis Valverde <lvalverdeb@gmail.com>"]
6
6
  readme = "README.md"
@@ -30,10 +30,12 @@ clickhouse-driver = "^0.2.9"
30
30
  paramiko = "^3.5.0"
31
31
  chardet = "^5.2.0"
32
32
  charset-normalizer = "^3.4.0"
33
- uvicorn = "^0.32.1"
34
33
  sqlalchemy = "^2.0.36"
35
34
  djangorestframework = "^3.15.2"
36
35
  dask-expr = "^1.1.20"
36
+ psycopg2 = "^2.9.10"
37
+ uvicorn = "^0.34.0"
38
+ pytest-mock = "^3.14.0"
37
39
 
38
40
 
39
41
  [build-system]
@@ -15,7 +15,7 @@ from sibi_dst.utils import ParquetSaver, ClickHouseWriter
15
15
  from .backends.django import *
16
16
  from .backends.http import HttpConfig
17
17
  from .backends.parquet import ParquetConfig
18
- from .backends.sql_alchemy import *
18
+ from .backends.sqlalchemy import *
19
19
 
20
20
  # Define a generic type variable for BaseModel subclasses
21
21
  T = TypeVar("T", bound=BaseModel)
@@ -48,7 +48,7 @@ class DfHelper:
48
48
  self.debug = kwargs.setdefault("debug", False)
49
49
  self.logger = kwargs.get("logger", Logger.default_logger(logger_name=self.__class__.__name__))
50
50
  # Configure logger level
51
- self.logger.setLevel(logging.DEBUG if self.debug else logging.INFO)
51
+ self.logger.set_level(logging.DEBUG if self.debug else logging.INFO)
52
52
  self.logger.debug("Logger initialized in DEBUG mode.")
53
53
  self.parquet_storage_path = kwargs.setdefault("parquet_storage_path", None)
54
54
  self.dt_field = kwargs.setdefault("dt_field", None)
@@ -1,8 +1,8 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  from ._io_dask import ReadFrameDask
4
- from ._django_db_connection import DjangoConnectionConfig
5
- from ._django_load_from_db import DjangoLoadFromDb
4
+ from ._db_connection import DjangoConnectionConfig
5
+ from ._load_from_db import DjangoLoadFromDb
6
6
 
7
7
  __all__ = [
8
8
  "DjangoConnectionConfig",
@@ -2,7 +2,7 @@ from typing import Any
2
2
 
3
3
  from pydantic import BaseModel, model_validator
4
4
 
5
- from ._django_sql_model_builder import DjangoSqlModelBuilder
5
+ from ._sql_model_builder import DjangoSqlModelBuilder
6
6
 
7
7
 
8
8
  class DjangoConnectionConfig(BaseModel):
@@ -183,7 +183,7 @@ class DjangoSqlModelBuilder:
183
183
  ) # Holds Field notes, to be displayed in a Python comment.
184
184
  extra_params = {} # Holds Field parameters such as 'db_column'.
185
185
  column_name = row.name
186
- # we dont want to use model relations
186
+ # we do not want to use model relations
187
187
  # is_relation = column_name in relations
188
188
  is_relation = False
189
189
  att_name, params, notes = self.normalize_col_name(
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from ._parquet_filter_handler import ParquetFilterHandler
3
+ from ._filter_handler import ParquetFilterHandler
4
4
  from ._parquet_options import *
5
5
 
6
6
  __all__ = [
@@ -0,0 +1,11 @@
1
+ from ._filter_handler import SqlAlchemyFilterHandler
2
+ from ._db_connection import SqlAlchemyConnectionConfig
3
+ from ._load_from_db import SqlAlchemyLoadFromDb
4
+ from ._sql_model_builder import SqlAlchemyModelBuilder
5
+
6
+ __all__ = [
7
+ 'SqlAlchemyConnectionConfig',
8
+ 'SqlAlchemyModelBuilder',
9
+ 'SqlAlchemyLoadFromDb',
10
+ 'SqlAlchemyFilterHandler'
11
+ ]
@@ -5,7 +5,7 @@ from sqlalchemy import create_engine
5
5
  from sqlalchemy.exc import OperationalError
6
6
  from sqlalchemy.sql import text
7
7
 
8
- from ._sqlalchemy_model_builder import SqlAlchemyModelBuilder
8
+ from ._sql_model_builder import SqlAlchemyModelBuilder
9
9
 
10
10
 
11
11
  class SqlAlchemyConnectionConfig(BaseModel):
@@ -3,8 +3,8 @@ import pandas as pd
3
3
 
4
4
  from sibi_dst.df_helper.core import ParamsConfig, QueryConfig
5
5
  from sibi_dst.utils import Logger
6
- from ._io_sqlalchemy_dask import SQLAlchemyDask
7
- from ._sqlalchemy_db_connection import SqlAlchemyConnectionConfig
6
+ from ._io_dask import SQLAlchemyDask
7
+ from ._db_connection import SqlAlchemyConnectionConfig
8
8
 
9
9
 
10
10
  class SqlAlchemyLoadFromDb:
@@ -184,7 +184,7 @@ class DfUtils:
184
184
  debug (bool): If True, logs duplicate rows.
185
185
 
186
186
  Returns:
187
- DataFrame: DataFrame with earliest duplicates removed.
187
+ DataFrame: DataFrame with the earliest duplicates removed.
188
188
  """
189
189
  return self.eval_duplicate_removal(df, duplicate_expr, sort_field=sort_field, keep='first', debug=debug)
190
190
 
@@ -55,7 +55,7 @@ class Logger:
55
55
  log_file = log_file or logger_name
56
56
  return cls(log_dir=log_dir, logger_name=logger_name, log_file=log_file)
57
57
 
58
- def setLevel(self, level):
58
+ def set_level(self, level):
59
59
  self.logger.setLevel(level)
60
60
 
61
61
  def debug(self, msg):
@@ -1,6 +0,0 @@
1
- from ._sqlachemy_filter_handler import SqlAlchemyFilterHandler
2
- from ._sqlalchemy_db_connection import SqlAlchemyConnectionConfig
3
- from ._sqlalchemy_load_from_db import SqlAlchemyLoadFromDb
4
- from ._sqlalchemy_model_builder import SqlAlchemyModelBuilder
5
-
6
- __all__ = ['SqlAlchemyConnectionConfig', 'SqlAlchemyModelBuilder', 'SqlAlchemyLoadFromDb', 'SqlAlchemyFilterHandler']
File without changes