arpakitlib 1.8.261__py3-none-any.whl → 1.8.263__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.
@@ -5,8 +5,6 @@ from pydantic import BaseModel, ConfigDict
5
5
  from sqlalchemy import inspect
6
6
  from sqlalchemy.orm import ColumnProperty, Mapped
7
7
 
8
- from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
9
-
10
8
  _ARPAKIT_LIB_MODULE_VERSION = "3.0"
11
9
 
12
10
 
@@ -117,7 +115,8 @@ def pydantic_schema_from_sqlalchemy_model(
117
115
  filter_property_prefixes: list[str] | None = None,
118
116
  remove_property_prefixes: list[str] | None = None,
119
117
  skip_property_if_cannot_define_type: bool = True,
120
- skip_property_name_if_exists: bool = True
118
+ skip_property_name_if_exists: bool = True,
119
+ model_name_suffix: str = "Schema"
121
120
  ) -> type[BaseModel]:
122
121
  """
123
122
  Генерирует Pydantic-модель из колонок SQLAlchemy-модели и (опционально) из @property.
@@ -130,7 +129,7 @@ def pydantic_schema_from_sqlalchemy_model(
130
129
  - exclude_property_names: blacklist имён свойств (исключаются после whitelist'а).
131
130
  """
132
131
  mapper = inspect(sqlalchemy_model).mapper
133
- model_name = model_name or f"{sqlalchemy_model.__name__}Schema"
132
+ model_name = model_name or f"{sqlalchemy_model.__name__}{model_name_suffix}"
134
133
 
135
134
  annotations: dict[str, Any] = {}
136
135
  attrs: dict[str, Any] = {}
@@ -139,7 +138,8 @@ def pydantic_schema_from_sqlalchemy_model(
139
138
  include_property_names = set(include_property_names or [])
140
139
  exclude_property_names = set(exclude_property_names or [])
141
140
  filter_property_prefixes = set(filter_property_prefixes or [])
142
- remove_property_prefixes = set(remove_property_prefixes or [])
141
+ remove_property_prefixes = list(set(remove_property_prefixes or []))
142
+ remove_property_prefixes.sort(key=len, reverse=True)
143
143
 
144
144
  # 1) Колонки
145
145
  if include_columns:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arpakitlib
3
- Version: 1.8.261
3
+ Version: 1.8.263
4
4
  Summary: arpakitlib
5
5
  License: Apache-2.0
6
6
  Keywords: arpakitlib,arpakit,arpakit-company,arpakitcompany,arpakit_company
@@ -414,7 +414,7 @@ arpakitlib/ar_need_type_util.py,sha256=XmY1kswz8j9oo5f9CxRu0_zgfvxWrXPYKOj6MM04s
414
414
  arpakitlib/ar_openai_api_client_util.py,sha256=dWgsSPXtxNBxS5VRi_NharGQrUXF_YjIfhU3Bj5cW9M,5651
415
415
  arpakitlib/ar_parse_command.py,sha256=1WTdQoWVshoDZ1jDaKeTzajfqaYHP3FNO0-REyo1aMY,3003
416
416
  arpakitlib/ar_postgresql_util.py,sha256=1AuLjEaa1Lg4pzn-ukCVnDi35Eg1k91APRTqZhIJAdo,945
417
- arpakitlib/ar_pydantic_schema_from_sqlalchemy_model.py,sha256=K2XCYp6tcRYKXljyfqgJ09B6qPZGsP7PazoAvnE5v-s,10330
417
+ arpakitlib/ar_pydantic_schema_from_sqlalchemy_model.py,sha256=jUa9i3UWqK0Qyfq8jMcnwTUCoI3e_N4W36aEcxdLXBA,10388
418
418
  arpakitlib/ar_raise_own_exception_if_exception.py,sha256=A6TuNSBk1pHaQ_qxnUmE2LgsNGA1IGqX26b1_HEA4Nc,5978
419
419
  arpakitlib/ar_rat_func_util.py,sha256=Ca10o3RJwyx_DJLxjTxgHDO6NU3M6CWgUR4bif67OE4,2006
420
420
  arpakitlib/ar_really_validate_email.py,sha256=HBfhyiDB3INI6Iq6hR2WOMKA5wVWWRl0Qun-x__OZ9o,1201
@@ -430,8 +430,8 @@ arpakitlib/ar_sqlalchemy_util.py,sha256=FDva9onjtCPrYZYIHHb93NMwD1WlmaORjiWgPRJQ
430
430
  arpakitlib/ar_str_util.py,sha256=2lGpnXDf2h1cBZpVf5i1tX_HCv5iBd6IGnrCw4QWWlY,4350
431
431
  arpakitlib/ar_type_util.py,sha256=Cs_tef-Fc5xeyAF54KgISCsP11NHyzIsglm4S3Xx7iM,4049
432
432
  arpakitlib/ar_yookassa_api_client_util.py,sha256=VozuZeCJjmLd1zj2BdC9WfiAQ3XYOrIMsdpNK-AUlm0,5347
433
- arpakitlib-1.8.261.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
434
- arpakitlib-1.8.261.dist-info/METADATA,sha256=njGc54LxVJzDMEvck7dP82cipNhUByRon9zEyk4x7Tw,3919
435
- arpakitlib-1.8.261.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
436
- arpakitlib-1.8.261.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
437
- arpakitlib-1.8.261.dist-info/RECORD,,
433
+ arpakitlib-1.8.263.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
434
+ arpakitlib-1.8.263.dist-info/METADATA,sha256=KAWpe8qmsvYHYCXfgPTs-3uL2RtsITL3ElRQw9jksN4,3919
435
+ arpakitlib-1.8.263.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
436
+ arpakitlib-1.8.263.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
437
+ arpakitlib-1.8.263.dist-info/RECORD,,