arpakitlib 1.8.31__py3-none-any.whl → 1.8.33__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.
@@ -68,45 +68,79 @@ class BaseDBM(DeclarativeBase):
68
68
  self._bus_data = {}
69
69
  return self._bus_data
70
70
 
71
- def simple_dict(self, *, include_sd_properties: bool = True) -> dict[str, Any]:
71
+ def simple_dict(
72
+ self,
73
+ *,
74
+ include_sd_properties: bool = True,
75
+ exclude_columns: set[str] | None = None,
76
+ exclude_sd_properties: set[str] | None = None
77
+ ) -> dict[str, Any]:
78
+ if exclude_columns is None:
79
+ exclude_columns = set()
80
+ if exclude_sd_properties is None:
81
+ exclude_sd_properties = set()
82
+
72
83
  res = {}
73
84
 
85
+ # Обрабатываем только колонки текущей модели
74
86
  for c in inspect(self).mapper.column_attrs:
87
+ if c.key in exclude_columns:
88
+ continue # Пропускаем колонку, если она в exclude_columns
89
+
75
90
  value = getattr(self, c.key)
76
- if isinstance(value, BaseDBM):
77
- res[c.key] = value.simple_dict(include_sd_properties=include_sd_properties)
78
- elif isinstance(value, list):
79
- res[c.key] = [
80
- item.simple_dict(include_sd_properties=include_sd_properties)
81
- if isinstance(item, BaseDBM) else item
82
- for item in value
83
- ]
84
- else:
85
- res[c.key] = value
91
+ res[c.key] = value # Просто сохраняем значение
86
92
 
93
+ # Обработка свойств с префиксом "sdp_"
87
94
  if include_sd_properties:
88
95
  for attr_name in dir(self):
89
96
  if attr_name.startswith("sdp_") and isinstance(getattr(type(self), attr_name, None), property):
90
- prop_name = attr_name.removeprefix("sdp_")
97
+
98
+ sdp_property_name = attr_name.removeprefix("sdp_")
99
+ if sdp_property_name in exclude_sd_properties:
100
+ continue # Пропускаем свойство, если оно в exclude_sdp_properties
101
+
91
102
  value = getattr(self, attr_name)
92
103
  if isinstance(value, BaseDBM):
93
- res[prop_name] = value.simple_dict(include_sd_properties=include_sd_properties)
104
+ res[sdp_property_name] = value.simple_dict(include_sd_properties=include_sd_properties)
94
105
  elif isinstance(value, list):
95
- res[prop_name] = [
106
+ res[sdp_property_name] = [
96
107
  item.simple_dict(include_sd_properties=include_sd_properties)
97
108
  if isinstance(item, BaseDBM) else item
98
109
  for item in value
99
110
  ]
100
111
  else:
101
- res[prop_name] = value
112
+ res[sdp_property_name] = value
102
113
 
103
114
  return res
104
115
 
105
- def simple_dict_with_sd_properties(self) -> dict[str, Any]:
106
- return self.simple_dict(include_sd_properties=True)
107
-
108
- def simple_dict_json(self, *, include_sd_properties: bool = True) -> str:
109
- return transfer_data_to_json_str(self.simple_dict(include_sd_properties=include_sd_properties))
116
+ def simple_dict_with_sd_properties(
117
+ self,
118
+ *,
119
+ exclude_columns: set[str] | None = None,
120
+ exclude_sdp_properties: set[str] | None = None
121
+ ) -> dict[str, Any]:
122
+ return self.simple_dict(
123
+ include_sd_properties=True,
124
+ exclude_columns=exclude_columns,
125
+ exclude_sd_properties=exclude_sdp_properties
126
+ )
127
+
128
+ def simple_dict_json(
129
+ self,
130
+ *,
131
+ include_sd_properties: bool = True,
132
+ exclude_columns: set[str] | None = None,
133
+ exclude_sdp_properties: set[str] | None = None
134
+ ) -> str:
135
+ return transfer_data_to_json_str(
136
+ data=self.simple_dict(
137
+ include_sd_properties=include_sd_properties,
138
+ exclude_columns=exclude_columns,
139
+ exclude_sd_properties=exclude_sdp_properties
140
+ ),
141
+ beautify=True,
142
+ fast=False
143
+ )
110
144
 
111
145
 
112
146
  class SQLAlchemyDb:
@@ -61,7 +61,11 @@ class SSHRunRes(BaseModel):
61
61
  }
62
62
 
63
63
  def simple_json(self) -> str:
64
- return transfer_data_to_json_str(self.simple_dict())
64
+ return transfer_data_to_json_str(
65
+ self.simple_dict(),
66
+ beautify=True,
67
+ fast=False
68
+ )
65
69
 
66
70
  def __repr__(self) -> str:
67
71
  return self.simple_json()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arpakitlib
3
- Version: 1.8.31
3
+ Version: 1.8.33
4
4
  Summary: arpakitlib
5
5
  License: Apache-2.0
6
6
  Keywords: arpakitlib,arpakit,arpakit-company,arpakitcompany,arpakit_company
@@ -18,6 +18,7 @@ Classifier: Topic :: Software Development :: Libraries
18
18
  Requires-Dist: aio-pika (>=9.5.4,<10.0.0)
19
19
  Requires-Dist: aiogram (>=3.17.0,<4.0.0)
20
20
  Requires-Dist: aiohttp-socks (>=0.10.1,<0.11.0)
21
+ Requires-Dist: aiosmtplib (>=4.0.0,<5.0.0)
21
22
  Requires-Dist: alembic (>=1.14.1,<2.0.0)
22
23
  Requires-Dist: asyncpg (>=0.30.0,<0.31.0)
23
24
  Requires-Dist: asyncssh (>=2.19.0,<3.0.0)
@@ -350,16 +350,16 @@ arpakitlib/ar_schedule_uust_api_client_util.py,sha256=rXI2_3OTaIBgR-GixM1Ti-Ue1f
350
350
  arpakitlib/ar_settings_util.py,sha256=Y5wi_cmsjDjfJpM0VJHjbo0NoVPKfypKaD1USowwDtQ,1327
351
351
  arpakitlib/ar_sleep_util.py,sha256=OaLtRaJQWMkGjfj_mW1RB2P4RaSWsAIH8LUoXqsH0zM,1061
352
352
  arpakitlib/ar_sqladmin_util.py,sha256=Jd33EX_fAso4bvrcDhNEYOUlUHkudbadNGOJDg7rqhQ,301
353
- arpakitlib/ar_sqlalchemy_util.py,sha256=mqAzvGaKBvZKVpkogQES-bUjgrEL82kBdNSD1yRg0yY,10317
354
- arpakitlib/ar_ssh_runner_util.py,sha256=FHQO9xOne08Ugy9FO7gsJ81Jr60U6dkGM3N5-xwSmEc,6792
353
+ arpakitlib/ar_sqlalchemy_util.py,sha256=-nttk279GV5HjtJ3mDI0HlDb2sEBhyF7IgdvzA0j4ss,11422
354
+ arpakitlib/ar_ssh_runner_util.py,sha256=yvAwza480MkHKvLkDEsR7JNh2bYNs6P9rCVo4NA85NE,6865
355
355
  arpakitlib/ar_steam_payment_api_client_util.py,sha256=onvb3jt9bWfsCLbVLaApbN_-cqCu1CduVhM9GhG5yTA,250
356
356
  arpakitlib/ar_str_util.py,sha256=RIaSNA4nBDhJjQqg3KzULo6OnGUfE2uIqBAHCv3ahLE,3842
357
357
  arpakitlib/ar_type_util.py,sha256=Cs_tef-Fc5xeyAF54KgISCsP11NHyzIsglm4S3Xx7iM,4049
358
358
  arpakitlib/ar_wata_api_client.py,sha256=gdHOqDbuqxhTjVDtRW1DvkRJLdDofCrOq51GTctzLns,242
359
359
  arpakitlib/ar_yookassa_api_client_util.py,sha256=VozuZeCJjmLd1zj2BdC9WfiAQ3XYOrIMsdpNK-AUlm0,5347
360
360
  arpakitlib/ar_zabbix_api_client_util.py,sha256=Q-VR4MvoZ9aHwZeYZr9G3LwN-ANx1T5KFmF6pvPM-9M,6402
361
- arpakitlib-1.8.31.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
362
- arpakitlib-1.8.31.dist-info/METADATA,sha256=1VUqDqGavP3puX1Ke_ejCpnA9nnESqzK_BoIeM1LSV4,3434
363
- arpakitlib-1.8.31.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
364
- arpakitlib-1.8.31.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
365
- arpakitlib-1.8.31.dist-info/RECORD,,
361
+ arpakitlib-1.8.33.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
362
+ arpakitlib-1.8.33.dist-info/METADATA,sha256=i2biPan3zsYPCOx4MmEbGGbBHn5Tn4BYFIsESp9jNkI,3477
363
+ arpakitlib-1.8.33.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
364
+ arpakitlib-1.8.33.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
365
+ arpakitlib-1.8.33.dist-info/RECORD,,