python-general-be-lib 0.8.2__tar.gz → 0.8.4__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 (45) hide show
  1. {python_general_be_lib-0.8.2/python_general_be_lib.egg-info → python_general_be_lib-0.8.4}/PKG-INFO +1 -1
  2. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/repository/crud_repository.py +4 -10
  3. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/pyproject.toml +1 -1
  4. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4/python_general_be_lib.egg-info}/PKG-INFO +1 -1
  5. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/setup.py +1 -1
  6. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/LICENSE +0 -0
  7. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/README.md +0 -0
  8. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/__init__.py +0 -0
  9. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/exception/__init__.py +0 -0
  10. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/exception/access_exceptions.py +0 -0
  11. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/exception/crud_exceptions.py +0 -0
  12. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/exception/exception_interface.py +0 -0
  13. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/base/__init__.py +0 -0
  14. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/base/base_model.py +0 -0
  15. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/base/declarative_base.py +0 -0
  16. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/metadata/__init__.py +0 -0
  17. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/metadata/crud_metadata.py +0 -0
  18. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/metadata/geom_metadata.py +0 -0
  19. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/repository/__init__.py +0 -0
  20. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/repository/geometry_repository.py +0 -0
  21. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/repository/handler/__init__.py +0 -0
  22. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/repository/handler/base_handler.py +0 -0
  23. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/repository/handler/ilike_handler.py +0 -0
  24. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/repository/handler/interval_handler.py +0 -0
  25. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/repository/handler/json_handler.py +0 -0
  26. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/repository/handler/json_ilike_handler.py +0 -0
  27. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/repository/handler/or_handler.py +0 -0
  28. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/repository/handler/statement_manager.py +0 -0
  29. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/repository/many_to_many_repository.py +0 -0
  30. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/interface/repository/view_repository.py +0 -0
  31. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/logger.py +0 -0
  32. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/general/paginator_dto.py +0 -0
  33. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/python_general_be_lib.egg-info/SOURCES.txt +0 -0
  34. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/python_general_be_lib.egg-info/dependency_links.txt +0 -0
  35. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/python_general_be_lib.egg-info/requires.txt +0 -0
  36. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/python_general_be_lib.egg-info/top_level.txt +0 -0
  37. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/setup.cfg +0 -0
  38. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/tests/test_caricamento_parziale.py +0 -0
  39. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/tests/test_compiled_cache.py +0 -0
  40. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/tests/test_logger.py +0 -0
  41. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/tests/test_pipeline_handler.py +0 -0
  42. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/tests/test_query_count.py +0 -0
  43. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/tests/test_smoke_crud.py +0 -0
  44. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/tests/test_sql_snapshot.py +0 -0
  45. {python_general_be_lib-0.8.2 → python_general_be_lib-0.8.4}/tests/test_view_repository.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-general-be-lib
3
- Version: 0.8.2
3
+ Version: 0.8.4
4
4
  Summary: General purpose backend library — SQLAlchemy CRUD/Geometry repositories, FastAPI exceptions, Pydantic base models, logger utilities.
5
5
  Author-email: Andrea Di Placido <a.diplacido@arpes.it>, "Arpes S.r.l." <it.admin@arpes.it>
6
6
  License: MIT
@@ -6,7 +6,7 @@ import math
6
6
  from functools import lru_cache
7
7
  from typing import Any, Type, Sequence, Iterable, Optional, Mapping
8
8
 
9
- from pydantic import BaseModel, TypeAdapter
9
+ from pydantic import BaseModel, TypeAdapter, ConfigDict
10
10
  from sqlalchemy import select, delete, update, insert, tuple_, Row, RowMapping, ColumnElement, Select, Insert, Update, Delete, func, ARRAY
11
11
  from sqlalchemy.engine.base import Engine
12
12
  from sqlalchemy.exc import DataError, IntegrityError, NoResultFound, OperationalError
@@ -32,6 +32,7 @@ def _list_adapter(model: Type[BaseModel]) -> TypeAdapter:
32
32
  """
33
33
  return TypeAdapter(list[model])
34
34
 
35
+
35
36
  @lru_cache(maxsize=None)
36
37
  def _reduced_model(entity: Type[Base], columns: frozenset[str]) -> Type[BaseModel]:
37
38
  """Modello ridotto alle colonne indicate, costruito una volta per combinazione.
@@ -45,11 +46,7 @@ def _reduced_model(entity: Type[Base], columns: frozenset[str]) -> Type[BaseMode
45
46
  # configurazione dei mapper (a differenza di ``column_attrs``/``attrs``).
46
47
  ordinate = [name for name in inspect(entity).columns.keys() if name in columns]
47
48
  digest = hashlib.sha1("|".join(ordinate).encode()).hexdigest()[:8]
48
- return entity.to_pydantic(
49
- model_name=f"{entity.__name__}_{digest}",
50
- full_optional=True,
51
- include_only=ordinate,
52
- )
49
+ return entity.to_pydantic(model_name=f"{entity.__name__}_{digest}", full_optional=True, include_only=ordinate, __config__=ConfigDict(arbitrary_types_allowed=True))
53
50
 
54
51
 
55
52
  class CrudRepository[Entity: Base | Type[Base]]:
@@ -129,9 +126,6 @@ class CrudRepository[Entity: Base | Type[Base]]:
129
126
 
130
127
  # -------------------------
131
128
 
132
-
133
-
134
-
135
129
  def _retrieve_parsing_model(self, columns=None, exclude_columns=None):
136
130
  selected_columns = set(columns) if columns else set(inspect(self.entity).columns.keys())
137
131
  if exclude_columns:
@@ -713,7 +707,7 @@ class CrudRepository[Entity: Base | Type[Base]]:
713
707
  entities = self.execute(session, stmt)
714
708
 
715
709
  len_entities = len(entities)
716
- if limit == 0 or (len_entities < limit and page == 1):
710
+ if limit == 0 or limit is None or (len_entities < limit and page == 1):
717
711
  count_ = len_entities
718
712
  elif limit > len_entities > 0 and page > 1:
719
713
  count_ = (page - 1) * limit + len_entities
@@ -4,7 +4,7 @@ build-backend = "setuptools.backends.legacy:build"
4
4
 
5
5
  [project]
6
6
  name = "python-general-be-lib"
7
- version = "0.8.2"
7
+ version = "0.8.4"
8
8
  description = "General purpose backend library — SQLAlchemy CRUD/Geometry repositories, FastAPI exceptions, Pydantic base models, logger utilities."
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-general-be-lib
3
- Version: 0.8.2
3
+ Version: 0.8.4
4
4
  Summary: General purpose backend library — SQLAlchemy CRUD/Geometry repositories, FastAPI exceptions, Pydantic base models, logger utilities.
5
5
  Author-email: Andrea Di Placido <a.diplacido@arpes.it>, "Arpes S.r.l." <it.admin@arpes.it>
6
6
  License: MIT
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="python-general-be-lib",
5
- version="0.8.2",
5
+ version="0.8.4",
6
6
  packages=find_packages(include=["general*"]),
7
7
  python_requires=">=3.12",
8
8
  install_requires=[