arpakitlib 1.8.25__py3-none-any.whl → 1.8.28__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/_arpakit_project_template_v_5_1/arpakitlib_project_template_info.json +2 -1
- arpakitlib/_arpakit_project_template_v_5_1/project/api/exception_handler.py +1 -0
- arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/admin/common.py +3 -0
- arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/admin/operation.py +2 -0
- arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/client/common.py +1 -0
- arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/general/common.py +18 -0
- arpakitlib/_arpakit_project_template_v_5_1/project/sqlalchemy_db_/sqlalchemy_model/common.py +11 -3
- arpakitlib/_arpakit_project_template_v_5_1/project/sqlalchemy_db_/sqlalchemy_model/operation.py +8 -0
- arpakitlib/_arpakit_project_template_v_5_1/project/tg_bot/middleware/init_user.py +5 -5
- {arpakitlib-1.8.25.dist-info → arpakitlib-1.8.28.dist-info}/METADATA +1 -1
- {arpakitlib-1.8.25.dist-info → arpakitlib-1.8.28.dist-info}/RECORD +14 -14
- {arpakitlib-1.8.25.dist-info → arpakitlib-1.8.28.dist-info}/LICENSE +0 -0
- {arpakitlib-1.8.25.dist-info → arpakitlib-1.8.28.dist-info}/WHEEL +0 -0
- {arpakitlib-1.8.25.dist-info → arpakitlib-1.8.28.dist-info}/entry_points.txt +0 -0
@@ -52,6 +52,7 @@ def create_api_exception_handler(
|
|
52
52
|
)
|
53
53
|
|
54
54
|
if isinstance(exception, APIException):
|
55
|
+
status_code = exception.status_code
|
55
56
|
old_error_data = error_common_so.error_data
|
56
57
|
error_common_so = exception.error_common_so
|
57
58
|
error_common_so.error_data = combine_dicts(old_error_data, error_common_so.error_data)
|
@@ -1,6 +1,7 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
3
|
import datetime as dt
|
4
|
+
from typing import Any
|
4
5
|
|
5
6
|
from project.api.schema.common import BaseSO
|
6
7
|
from project.sqlalchemy_db_.sqlalchemy_model import SimpleDBM
|
@@ -11,6 +12,8 @@ class SimpleDBMAdminSO(BaseSO):
|
|
11
12
|
long_id: str
|
12
13
|
slug: str | None
|
13
14
|
creation_dt: dt.datetime
|
15
|
+
extra_data: dict[str, Any]
|
16
|
+
entity_name: str
|
14
17
|
|
15
18
|
@classmethod
|
16
19
|
def from_dbm(cls, *, simple_dbm: SimpleDBM) -> SimpleDBMAdminSO:
|
@@ -17,6 +17,8 @@ class OperationAdminSO(SimpleDBMAdminSO):
|
|
17
17
|
output_data: dict[str, Any]
|
18
18
|
error_data: dict[str, Any]
|
19
19
|
duration_total_seconds: float | None
|
20
|
+
allowed_statuses: list[str]
|
21
|
+
allowed_types: list[str]
|
20
22
|
|
21
23
|
@classmethod
|
22
24
|
def from_dbm(cls, *, simple_dbm: OperationDBM) -> OperationAdminSO:
|
@@ -0,0 +1,18 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
import datetime as dt
|
4
|
+
|
5
|
+
from project.api.schema.common import BaseSO
|
6
|
+
from project.sqlalchemy_db_.sqlalchemy_model import SimpleDBM
|
7
|
+
|
8
|
+
|
9
|
+
class SimpleDBMGeneralSO(BaseSO):
|
10
|
+
id: int
|
11
|
+
long_id: str
|
12
|
+
slug: str | None
|
13
|
+
creation_dt: dt.datetime
|
14
|
+
entity_name: str
|
15
|
+
|
16
|
+
@classmethod
|
17
|
+
def from_dbm(cls, *, simple_dbm: SimpleDBM) -> SimpleDBMGeneralSO:
|
18
|
+
return cls.model_validate(simple_dbm.simple_dict_with_sd_properties())
|
arpakitlib/_arpakit_project_template_v_5_1/project/sqlalchemy_db_/sqlalchemy_model/common.py
CHANGED
@@ -42,11 +42,11 @@ class SimpleDBM(BaseDBM):
|
|
42
42
|
sort_order=-100,
|
43
43
|
nullable=False
|
44
44
|
)
|
45
|
-
extra_data: Mapped[dict[str, Any]
|
45
|
+
extra_data: Mapped[dict[str, Any]] = mapped_column(
|
46
46
|
sqlalchemy.JSON,
|
47
47
|
index=False,
|
48
|
-
nullable=
|
49
|
-
insert_default=
|
48
|
+
nullable=False,
|
49
|
+
insert_default={},
|
50
50
|
server_default="{}",
|
51
51
|
sort_order=1000,
|
52
52
|
)
|
@@ -56,6 +56,14 @@ class SimpleDBM(BaseDBM):
|
|
56
56
|
return f"{self.__class__.__name__.removesuffix('DBM')} (id={self.id})"
|
57
57
|
return f"{self.__class__.__name__.removesuffix('DBM')} (id={self.id}, slug={self.slug})"
|
58
58
|
|
59
|
+
@property
|
60
|
+
def entity_name(self) -> str:
|
61
|
+
return self.__class__.__name__.removesuffix("DBM")
|
62
|
+
|
63
|
+
@property
|
64
|
+
def sdp_entity_name(self) -> str:
|
65
|
+
return self.entity_name
|
66
|
+
|
59
67
|
|
60
68
|
def get_simple_dbm_class() -> type[SimpleDBM]:
|
61
69
|
from project.sqlalchemy_db_.sqlalchemy_model import SimpleDBM
|
arpakitlib/_arpakit_project_template_v_5_1/project/sqlalchemy_db_/sqlalchemy_model/operation.py
CHANGED
@@ -97,3 +97,11 @@ class OperationDBM(SimpleDBM):
|
|
97
97
|
То есть префикс sdp_ и даёт этот бонус.
|
98
98
|
"""
|
99
99
|
return self.duration_total_seconds
|
100
|
+
|
101
|
+
@property
|
102
|
+
def sdp_allowed_statuses(self) -> list[str]:
|
103
|
+
return self.Statuses.values_list()
|
104
|
+
|
105
|
+
@property
|
106
|
+
def sdp_allowed_types(self) -> list[str]:
|
107
|
+
return self.Types.values_list()
|
@@ -6,8 +6,8 @@ import sqlalchemy
|
|
6
6
|
from aiogram import BaseMiddleware
|
7
7
|
from aiogram.types import TelegramObject
|
8
8
|
|
9
|
+
from arpakitlib.ar_datetime_util import now_utc_dt
|
9
10
|
from project.core.settings import get_cached_settings
|
10
|
-
from project.core.util import now_local_dt
|
11
11
|
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
12
12
|
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
13
13
|
from project.tg_bot.middleware.common import MiddlewareDataTgBot
|
@@ -43,7 +43,7 @@ class InitUserTgBotMiddleware(BaseMiddleware):
|
|
43
43
|
middleware_data_tg_bot.additional_data["tg_user_was_found"] = tg_user
|
44
44
|
middleware_data_tg_bot.additional_data["found_tg_user_id"] = tg_user.id
|
45
45
|
|
46
|
-
|
46
|
+
now_utc_dt_ = now_utc_dt()
|
47
47
|
|
48
48
|
if tg_user is not None and get_cached_sqlalchemy_db() is not None:
|
49
49
|
async with get_cached_sqlalchemy_db().new_async_session() as async_session:
|
@@ -55,11 +55,11 @@ class InitUserTgBotMiddleware(BaseMiddleware):
|
|
55
55
|
if tg_user.id in get_cached_settings().tg_bot_admin_tg_ids:
|
56
56
|
roles.append(UserDBM.Roles.admin)
|
57
57
|
middleware_data_tg_bot.user_dbm = UserDBM(
|
58
|
-
creation_dt=
|
58
|
+
creation_dt=now_utc_dt_,
|
59
59
|
roles=roles,
|
60
60
|
tg_id=tg_user.id,
|
61
61
|
tg_data=tg_user.model_dump(mode="json"),
|
62
|
-
tg_bot_last_action_dt=
|
62
|
+
tg_bot_last_action_dt=now_utc_dt_
|
63
63
|
)
|
64
64
|
async_session.add(middleware_data_tg_bot.user_dbm)
|
65
65
|
await async_session.commit()
|
@@ -68,7 +68,7 @@ class InitUserTgBotMiddleware(BaseMiddleware):
|
|
68
68
|
_logger.info(f"user_dbm was added, {middleware_data_tg_bot.user_dbm}")
|
69
69
|
else:
|
70
70
|
middleware_data_tg_bot.user_dbm.tg_data = tg_user.model_dump(mode="json")
|
71
|
-
middleware_data_tg_bot.user_dbm.tg_bot_last_action_dt =
|
71
|
+
middleware_data_tg_bot.user_dbm.tg_bot_last_action_dt = now_utc_dt_
|
72
72
|
if (
|
73
73
|
tg_user.id in get_cached_settings().tg_bot_admin_tg_ids
|
74
74
|
and UserDBM.Roles.admin not in middleware_data_tg_bot.user_dbm.roles
|
@@ -8,7 +8,7 @@ arpakitlib/_arpakit_project_template_v_5_1/alembic/env.py,sha256=Qesmnj5A2kB-Doe
|
|
8
8
|
arpakitlib/_arpakit_project_template_v_5_1/alembic/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
|
9
9
|
arpakitlib/_arpakit_project_template_v_5_1/alembic/versions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
10
|
arpakitlib/_arpakit_project_template_v_5_1/alembic.ini,sha256=8fuyeEvGBiPGbxEFy8ISBV3xX_fgVmuhEGpB10_B5Uo,3733
|
11
|
-
arpakitlib/_arpakit_project_template_v_5_1/arpakitlib_project_template_info.json,sha256=
|
11
|
+
arpakitlib/_arpakit_project_template_v_5_1/arpakitlib_project_template_info.json,sha256=WtF1ajvE3KZWYKpcV9BePD-2v3bo3jaro_sA9pHfA40,99
|
12
12
|
arpakitlib/_arpakit_project_template_v_5_1/command/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
13
13
|
arpakitlib/_arpakit_project_template_v_5_1/command/alembic_history.sh,sha256=OMnDNtHIksGh9iavWnzbtxcudZW4vjdcISsBXvzZSPw,22
|
14
14
|
arpakitlib/_arpakit_project_template_v_5_1/command/alembic_revision_autogenerate.sh,sha256=yW2i-SBOtBx15Ya0poVQqKkJM5t2JZp06r9AEW-DmGE,46
|
@@ -87,7 +87,7 @@ arpakitlib/_arpakit_project_template_v_5_1/project/api/const.py,sha256=J9bqaRRiI
|
|
87
87
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/create_api_app.py,sha256=C7VhAh7cTYLUBg8HyEgNTCdzvRlAC6hGYKdDrweWq6I,2327
|
88
88
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/event.py,sha256=xKfJ3UnOx_g1s7KNZjWRp0eZbVRTsSlyJhT3wkfwT6k,2414
|
89
89
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/exception.py,sha256=cNZaI2DacGLl8Hyn1qIfFpVjvQzOQjwXWsVW4auBrCo,1280
|
90
|
-
arpakitlib/_arpakit_project_template_v_5_1/project/api/exception_handler.py,sha256=
|
90
|
+
arpakitlib/_arpakit_project_template_v_5_1/project/api/exception_handler.py,sha256=X5vC3kIAN1wXR0Q_iCsQWapKqaNK29q37M2WeFcIt8s,11173
|
91
91
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/openapi_ui.py,sha256=PLhH-W6zDViO-75AGCs8Vq3IoyHChdqwBYAqLvdQN0U,904
|
92
92
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/response.py,sha256=xZMymP2BuQaRNVWLeIp3UgUUo-MFN8MJnsn9Al4vOb8,1028
|
93
93
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/router/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -122,12 +122,12 @@ arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/in_/general/__init
|
|
122
122
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/in_/general/common.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
123
123
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
124
124
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
125
|
-
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/admin/common.py,sha256=
|
126
|
-
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/admin/operation.py,sha256=
|
125
|
+
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/admin/common.py,sha256=sKZ5cFZ-Orpw0jD7Whs6OLwz2LXCC6q_og4_ABaqJ1w,520
|
126
|
+
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/admin/operation.py,sha256=xDZe7xgkGp2rv2LBZv5iGuNIgoqjv9OALe7FIK-1gUQ,760
|
127
127
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/admin/story_log.py,sha256=EenBUvs9qENEGuCpZrBRSd4TNVjR-ER55g44QGPLAzY,482
|
128
128
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
129
129
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/client/api_key.py,sha256=opXOQvpC3turivtLkf-BOJ9Octq5HW8HaM-oRTLhrX0,429
|
130
|
-
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/client/common.py,sha256=
|
130
|
+
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/client/common.py,sha256=xh5FaklPcc1HX5XL5FRWC8l1ev_IlvF_MK0ULpWjjOk,468
|
131
131
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/client/user.py,sha256=S93SizBPg5evgycr3Y_AF0Ds0M5gvO2o_W2VsDZXFeY,629
|
132
132
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/client/user_token.py,sha256=XRUs3ieMDZGGnMMst-QXptBWXqBL-qPQa25NJVbSI9I,436
|
133
133
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -135,7 +135,7 @@ arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/common/datetim
|
|
135
135
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/common/error.py,sha256=C8oaHotxmxBnN7Lr1qT7T5Mk0SIU2Ha7_tPDpgiR6M8,286
|
136
136
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/common/raw_data.py,sha256=F0CGmdqDAqnpoJW1q_yaRa4OsaSI4UbsCXavCxxDZVQ,132
|
137
137
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/general/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
138
|
-
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/general/common.py,sha256=
|
138
|
+
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/general/common.py,sha256=0I4hOs9ihpd4BS0M8P_BLXH7TxDLQtV4HQb-h9pz1uA,470
|
139
139
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/general/errors_info_general.py,sha256=meZ3lxkbgEZegN4bV_DlnR7sK-lw6ef0lAs0smPADC4,168
|
140
140
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/schema/out/general/healthcheck.py,sha256=H8YkH3BYj7J1qTX1Ur2c4EGTSmLZygV86dlqvMx7QFM,106
|
141
141
|
arpakitlib/_arpakit_project_template_v_5_1/project/api/util.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -219,8 +219,8 @@ arpakitlib/_arpakit_project_template_v_5_1/project/sqlalchemy_db_/const.py,sha25
|
|
219
219
|
arpakitlib/_arpakit_project_template_v_5_1/project/sqlalchemy_db_/sqlalchemy_db.py,sha256=1y3FaMFzm_5UM2poqtBve_UP_mh1vjs--krq6yO8PsA,742
|
220
220
|
arpakitlib/_arpakit_project_template_v_5_1/project/sqlalchemy_db_/sqlalchemy_model/__init__.py,sha256=btSjCQ7RJqomeXzYs9HePCu1dZHs0z6-RuboYKG89_8,598
|
221
221
|
arpakitlib/_arpakit_project_template_v_5_1/project/sqlalchemy_db_/sqlalchemy_model/api_key.py,sha256=RVkfa6kuhdv1D_3Qindh4bucapqz5MZa5gNkiYuwC14,1096
|
222
|
-
arpakitlib/_arpakit_project_template_v_5_1/project/sqlalchemy_db_/sqlalchemy_model/common.py,sha256=
|
223
|
-
arpakitlib/_arpakit_project_template_v_5_1/project/sqlalchemy_db_/sqlalchemy_model/operation.py,sha256=
|
222
|
+
arpakitlib/_arpakit_project_template_v_5_1/project/sqlalchemy_db_/sqlalchemy_model/common.py,sha256=xhMxNea8ndjmdsNwp_a9L_VUkkRb8jjVLhczxDasNss,2090
|
223
|
+
arpakitlib/_arpakit_project_template_v_5_1/project/sqlalchemy_db_/sqlalchemy_model/operation.py,sha256=0uhlkE95_lX8Nmgl2n5oJ7lty558Y6ZOoQc6lfuSyCY,3496
|
224
224
|
arpakitlib/_arpakit_project_template_v_5_1/project/sqlalchemy_db_/sqlalchemy_model/story_log.py,sha256=uB7nKEqvUKJyE_xybJUjXIJtVXh0IKyoPDnDUogq8lE,1306
|
225
225
|
arpakitlib/_arpakit_project_template_v_5_1/project/sqlalchemy_db_/sqlalchemy_model/user.py,sha256=GaOJkxsQ6B3B4pO43_MOOrJSUE8d7VzXyYLQcoEvCCw,2355
|
226
226
|
arpakitlib/_arpakit_project_template_v_5_1/project/sqlalchemy_db_/sqlalchemy_model/user_token.py,sha256=AtFEPQZlYl_fr0WgYkS8ToiHluNomXV02HDuD0nVjZw,1398
|
@@ -267,7 +267,7 @@ arpakitlib/_arpakit_project_template_v_5_1/project/tg_bot/kb/static_/client/hell
|
|
267
267
|
arpakitlib/_arpakit_project_template_v_5_1/project/tg_bot/kb/static_/common.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
268
268
|
arpakitlib/_arpakit_project_template_v_5_1/project/tg_bot/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
269
269
|
arpakitlib/_arpakit_project_template_v_5_1/project/tg_bot/middleware/common.py,sha256=DbUyWtk3zmWJx28QmJLX9keTNBUhI9ZJJjEnjrgxhgs,390
|
270
|
-
arpakitlib/_arpakit_project_template_v_5_1/project/tg_bot/middleware/init_user.py,sha256=
|
270
|
+
arpakitlib/_arpakit_project_template_v_5_1/project/tg_bot/middleware/init_user.py,sha256=0hsU0PBXhYdsTpTVq8dds7SPw96oGykTh14SEAyesAc,3827
|
271
271
|
arpakitlib/_arpakit_project_template_v_5_1/project/tg_bot/middleware/middleware.py,sha256=66v3pHu8nhJ8pJayXaHNKjmPVK4fKUCNWilOM0yzNKg,319
|
272
272
|
arpakitlib/_arpakit_project_template_v_5_1/project/tg_bot/router/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
273
273
|
arpakitlib/_arpakit_project_template_v_5_1/project/tg_bot/router/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -357,8 +357,8 @@ arpakitlib/ar_type_util.py,sha256=Cs_tef-Fc5xeyAF54KgISCsP11NHyzIsglm4S3Xx7iM,40
|
|
357
357
|
arpakitlib/ar_wata_api_client.py,sha256=gdHOqDbuqxhTjVDtRW1DvkRJLdDofCrOq51GTctzLns,242
|
358
358
|
arpakitlib/ar_yookassa_api_client_util.py,sha256=VozuZeCJjmLd1zj2BdC9WfiAQ3XYOrIMsdpNK-AUlm0,5347
|
359
359
|
arpakitlib/ar_zabbix_api_client_util.py,sha256=Q-VR4MvoZ9aHwZeYZr9G3LwN-ANx1T5KFmF6pvPM-9M,6402
|
360
|
-
arpakitlib-1.8.
|
361
|
-
arpakitlib-1.8.
|
362
|
-
arpakitlib-1.8.
|
363
|
-
arpakitlib-1.8.
|
364
|
-
arpakitlib-1.8.
|
360
|
+
arpakitlib-1.8.28.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
|
361
|
+
arpakitlib-1.8.28.dist-info/METADATA,sha256=t9RUXfOVchKgDsRMh5ssroG0uk7RYb2cBwsDF2oT4qQ,3434
|
362
|
+
arpakitlib-1.8.28.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
363
|
+
arpakitlib-1.8.28.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
|
364
|
+
arpakitlib-1.8.28.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|