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.
- arpakitlib/ar_sqlalchemy_util.py +54 -20
- arpakitlib/ar_ssh_runner_util.py +5 -1
- {arpakitlib-1.8.31.dist-info → arpakitlib-1.8.33.dist-info}/METADATA +2 -1
- {arpakitlib-1.8.31.dist-info → arpakitlib-1.8.33.dist-info}/RECORD +7 -7
- {arpakitlib-1.8.31.dist-info → arpakitlib-1.8.33.dist-info}/LICENSE +0 -0
- {arpakitlib-1.8.31.dist-info → arpakitlib-1.8.33.dist-info}/WHEEL +0 -0
- {arpakitlib-1.8.31.dist-info → arpakitlib-1.8.33.dist-info}/entry_points.txt +0 -0
arpakitlib/ar_sqlalchemy_util.py
CHANGED
@@ -68,45 +68,79 @@ class BaseDBM(DeclarativeBase):
|
|
68
68
|
self._bus_data = {}
|
69
69
|
return self._bus_data
|
70
70
|
|
71
|
-
def simple_dict(
|
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
|
-
|
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
|
-
|
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[
|
104
|
+
res[sdp_property_name] = value.simple_dict(include_sd_properties=include_sd_properties)
|
94
105
|
elif isinstance(value, list):
|
95
|
-
res[
|
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[
|
112
|
+
res[sdp_property_name] = value
|
102
113
|
|
103
114
|
return res
|
104
115
|
|
105
|
-
def simple_dict_with_sd_properties(
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
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:
|
arpakitlib/ar_ssh_runner_util.py
CHANGED
@@ -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(
|
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.
|
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
|
354
|
-
arpakitlib/ar_ssh_runner_util.py,sha256=
|
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.
|
362
|
-
arpakitlib-1.8.
|
363
|
-
arpakitlib-1.8.
|
364
|
-
arpakitlib-1.8.
|
365
|
-
arpakitlib-1.8.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|