arpakitlib 1.8.37__py3-none-any.whl → 1.8.40__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/arpakitlib_project_template_info.json +1 -1
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/check_sqlalchemy_db.py +43 -0
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/clear_log_file.py +44 -0
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_log_file.py +33 -0
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_settings.py +42 -0
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/main_router.py +22 -1
- arpakitlib/_arpakit_project_template_v_5/project/operation_execution/operation_executor_worker.py +25 -2
- {arpakitlib-1.8.37.dist-info → arpakitlib-1.8.40.dist-info}/METADATA +1 -1
- {arpakitlib-1.8.37.dist-info → arpakitlib-1.8.40.dist-info}/RECORD +12 -8
- {arpakitlib-1.8.37.dist-info → arpakitlib-1.8.40.dist-info}/LICENSE +0 -0
- {arpakitlib-1.8.37.dist-info → arpakitlib-1.8.40.dist-info}/WHEEL +0 -0
- {arpakitlib-1.8.37.dist-info → arpakitlib-1.8.40.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,43 @@
|
|
1
|
+
import fastapi
|
2
|
+
from fastapi import APIRouter
|
3
|
+
|
4
|
+
from project.api.authorize import require_api_key_dbm_api_authorize_middleware, APIAuthorizeData, \
|
5
|
+
require_user_token_dbm_api_authorize_middleware, api_authorize
|
6
|
+
from project.api.schema.common import BaseRouteSO
|
7
|
+
from project.api.schema.out.common.error import ErrorCommonSO
|
8
|
+
from project.api.schema.out.common.raw_data import RawDataCommonSO
|
9
|
+
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
10
|
+
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
11
|
+
|
12
|
+
|
13
|
+
class CheckSQLAlchemyDbRouteSO(BaseRouteSO, RawDataCommonSO):
|
14
|
+
pass
|
15
|
+
|
16
|
+
|
17
|
+
api_router = APIRouter()
|
18
|
+
|
19
|
+
|
20
|
+
@api_router.get(
|
21
|
+
path="",
|
22
|
+
name="Check sqlalchemy db",
|
23
|
+
status_code=fastapi.status.HTTP_200_OK,
|
24
|
+
response_model=CheckSQLAlchemyDbRouteSO | ErrorCommonSO
|
25
|
+
)
|
26
|
+
async def _(
|
27
|
+
*,
|
28
|
+
request: fastapi.requests.Request,
|
29
|
+
response: fastapi.responses.Response,
|
30
|
+
api_auth_data: APIAuthorizeData = fastapi.Depends(api_authorize(middlewares=[
|
31
|
+
require_api_key_dbm_api_authorize_middleware(
|
32
|
+
require_active=True
|
33
|
+
),
|
34
|
+
require_user_token_dbm_api_authorize_middleware(
|
35
|
+
require_active_user_token=True,
|
36
|
+
require_user_roles=[UserDBM.Roles.admin]
|
37
|
+
)
|
38
|
+
]))
|
39
|
+
):
|
40
|
+
get_cached_sqlalchemy_db().is_conn_good()
|
41
|
+
return CheckSQLAlchemyDbRouteSO(
|
42
|
+
data={"is_conn_good": get_cached_sqlalchemy_db().is_conn_good()}
|
43
|
+
)
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import fastapi
|
2
|
+
from fastapi import APIRouter
|
3
|
+
|
4
|
+
from arpakitlib.ar_logging_util import init_log_file
|
5
|
+
from project.api.authorize import require_api_key_dbm_api_authorize_middleware, APIAuthorizeData, \
|
6
|
+
require_user_token_dbm_api_authorize_middleware, api_authorize
|
7
|
+
from project.api.schema.common import BaseRouteSO
|
8
|
+
from project.api.schema.out.common.error import ErrorCommonSO
|
9
|
+
from project.api.schema.out.common.raw_data import RawDataCommonSO
|
10
|
+
from project.core.settings import get_cached_settings
|
11
|
+
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
12
|
+
|
13
|
+
|
14
|
+
class ClearLogFileRouteSO(BaseRouteSO, RawDataCommonSO):
|
15
|
+
pass
|
16
|
+
|
17
|
+
|
18
|
+
api_router = APIRouter()
|
19
|
+
|
20
|
+
|
21
|
+
@api_router.get(
|
22
|
+
path="",
|
23
|
+
name="Clear log file",
|
24
|
+
status_code=fastapi.status.HTTP_200_OK,
|
25
|
+
response_model=ClearLogFileRouteSO | ErrorCommonSO
|
26
|
+
)
|
27
|
+
def _(
|
28
|
+
*,
|
29
|
+
request: fastapi.requests.Request,
|
30
|
+
response: fastapi.responses.Response,
|
31
|
+
api_auth_data: APIAuthorizeData = fastapi.Depends(api_authorize(middlewares=[
|
32
|
+
require_api_key_dbm_api_authorize_middleware(
|
33
|
+
require_active=True
|
34
|
+
),
|
35
|
+
require_user_token_dbm_api_authorize_middleware(
|
36
|
+
require_active_user_token=True,
|
37
|
+
require_user_roles=[UserDBM.Roles.admin]
|
38
|
+
)
|
39
|
+
]))
|
40
|
+
):
|
41
|
+
init_log_file(log_filepath=get_cached_settings().log_filepath)
|
42
|
+
with open(file=get_cached_settings().log_filepath, mode="w") as f:
|
43
|
+
f.write("")
|
44
|
+
return ClearLogFileRouteSO()
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import fastapi
|
2
|
+
from fastapi import APIRouter
|
3
|
+
|
4
|
+
from arpakitlib.ar_logging_util import init_log_file
|
5
|
+
from project.api.authorize import require_api_key_dbm_api_authorize_middleware, APIAuthorizeData, \
|
6
|
+
require_user_token_dbm_api_authorize_middleware, api_authorize
|
7
|
+
from project.core.settings import get_cached_settings
|
8
|
+
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
9
|
+
|
10
|
+
api_router = APIRouter()
|
11
|
+
|
12
|
+
|
13
|
+
@api_router.get(
|
14
|
+
path="",
|
15
|
+
name="Get log file",
|
16
|
+
status_code=fastapi.status.HTTP_200_OK,
|
17
|
+
)
|
18
|
+
async def _(
|
19
|
+
*,
|
20
|
+
request: fastapi.requests.Request,
|
21
|
+
response: fastapi.responses.Response,
|
22
|
+
api_auth_data: APIAuthorizeData = fastapi.Depends(api_authorize(middlewares=[
|
23
|
+
require_api_key_dbm_api_authorize_middleware(
|
24
|
+
require_active=True
|
25
|
+
),
|
26
|
+
require_user_token_dbm_api_authorize_middleware(
|
27
|
+
require_active_user_token=True,
|
28
|
+
require_user_roles=[UserDBM.Roles.admin]
|
29
|
+
)
|
30
|
+
]))
|
31
|
+
):
|
32
|
+
init_log_file(log_filepath=get_cached_settings().log_filepath)
|
33
|
+
return fastapi.responses.FileResponse(path=get_cached_settings().log_filepath)
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import fastapi.requests
|
2
|
+
from fastapi import APIRouter
|
3
|
+
|
4
|
+
from project.api.authorize import APIAuthorizeData, api_authorize, require_api_key_dbm_api_authorize_middleware, \
|
5
|
+
require_user_token_dbm_api_authorize_middleware
|
6
|
+
from project.api.schema.common import BaseRouteSO
|
7
|
+
from project.api.schema.out.common.error import ErrorCommonSO
|
8
|
+
from project.api.schema.out.common.raw_data import RawDataCommonSO
|
9
|
+
from project.core.settings import get_cached_settings
|
10
|
+
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
11
|
+
|
12
|
+
|
13
|
+
class GetSettingsRouteSO(BaseRouteSO, RawDataCommonSO):
|
14
|
+
pass
|
15
|
+
|
16
|
+
|
17
|
+
api_router = APIRouter()
|
18
|
+
|
19
|
+
|
20
|
+
@api_router.get(
|
21
|
+
"",
|
22
|
+
name="Get settings",
|
23
|
+
status_code=fastapi.status.HTTP_200_OK,
|
24
|
+
response_model=GetSettingsRouteSO | ErrorCommonSO,
|
25
|
+
)
|
26
|
+
async def _(
|
27
|
+
*,
|
28
|
+
request: fastapi.requests.Request,
|
29
|
+
response: fastapi.responses.Response,
|
30
|
+
api_auth_data: APIAuthorizeData = fastapi.Depends(api_authorize(middlewares=[
|
31
|
+
require_api_key_dbm_api_authorize_middleware(
|
32
|
+
require_active=True
|
33
|
+
),
|
34
|
+
require_user_token_dbm_api_authorize_middleware(
|
35
|
+
require_active_user_token=True,
|
36
|
+
require_user_roles=[UserDBM.Roles.admin]
|
37
|
+
)
|
38
|
+
]))
|
39
|
+
):
|
40
|
+
return GetSettingsRouteSO(
|
41
|
+
data=get_cached_settings().model_dump(mode="json")
|
42
|
+
)
|
@@ -2,7 +2,8 @@ from fastapi import APIRouter
|
|
2
2
|
|
3
3
|
from project.api.router.admin import get_auth_data, get_arpakitlib_project_template_info, raise_fake_error, \
|
4
4
|
reinit_sqlalchemy_db, get_story_log, init_sqlalchemy_db, get_sqlalchemy_db_table_name_to_amount, \
|
5
|
-
get_operation_allowed_statuses, get_operation, create_operation, get_operation_allowed_types
|
5
|
+
get_operation_allowed_statuses, get_operation, create_operation, get_operation_allowed_types, get_log_file, \
|
6
|
+
clear_log_file, check_sqlalchemy_db, get_settings
|
6
7
|
|
7
8
|
main_admin_api_router = APIRouter()
|
8
9
|
|
@@ -60,3 +61,23 @@ main_admin_api_router.include_router(
|
|
60
61
|
router=create_operation.api_router,
|
61
62
|
prefix="/create_operation"
|
62
63
|
)
|
64
|
+
|
65
|
+
main_admin_api_router.include_router(
|
66
|
+
router=get_log_file.api_router,
|
67
|
+
prefix="/get_log_file"
|
68
|
+
)
|
69
|
+
|
70
|
+
main_admin_api_router.include_router(
|
71
|
+
router=clear_log_file.api_router,
|
72
|
+
prefix="/clear_log_file"
|
73
|
+
)
|
74
|
+
|
75
|
+
main_admin_api_router.include_router(
|
76
|
+
router=check_sqlalchemy_db.api_router,
|
77
|
+
prefix="/check_sqlalchemy_db"
|
78
|
+
)
|
79
|
+
|
80
|
+
main_admin_api_router.include_router(
|
81
|
+
router=get_settings.api_router,
|
82
|
+
prefix="/get_settings"
|
83
|
+
)
|
arpakitlib/_arpakit_project_template_v_5/project/operation_execution/operation_executor_worker.py
CHANGED
@@ -45,7 +45,18 @@ class OperationExecutorWorker(BaseWorker):
|
|
45
45
|
elif operation_dbm.type == OperationDBM.Types.raise_fake_error_:
|
46
46
|
self._logger.error(f"{OperationDBM.Types.raise_fake_error_}")
|
47
47
|
raise Exception(f"{OperationDBM.Types.raise_fake_error_}")
|
48
|
-
|
48
|
+
else:
|
49
|
+
with self.sqlalchemy_db.new_session() as session:
|
50
|
+
operation_dbm: OperationDBM = session.query(
|
51
|
+
OperationDBM
|
52
|
+
).filter(OperationDBM.id == operation_dbm.id).one()
|
53
|
+
operation_dbm.output_data = combine_dicts(
|
54
|
+
operation_dbm.output_data,
|
55
|
+
{"warning": f"unknown operation_type = {operation_dbm.type=}"}
|
56
|
+
)
|
57
|
+
session.commit()
|
58
|
+
session.refresh(operation_dbm)
|
59
|
+
self._logger.info(f"unknown operation_type, {operation_dbm.id=}, {operation_dbm.type=}")
|
49
60
|
|
50
61
|
async def async_execute_operation(self, *, operation_dbm: OperationDBM):
|
51
62
|
if operation_dbm.type == OperationDBM.Types.healthcheck_:
|
@@ -53,7 +64,19 @@ class OperationExecutorWorker(BaseWorker):
|
|
53
64
|
elif operation_dbm.type == OperationDBM.Types.raise_fake_error_:
|
54
65
|
self._logger.error(f"{OperationDBM.Types.raise_fake_error_}")
|
55
66
|
raise Exception(f"{OperationDBM.Types.raise_fake_error_}")
|
56
|
-
|
67
|
+
else:
|
68
|
+
async with self.sqlalchemy_db.new_async_session() as session:
|
69
|
+
result = await session.execute(
|
70
|
+
sqlalchemy.select(OperationDBM).filter(OperationDBM.id == operation_dbm.id)
|
71
|
+
)
|
72
|
+
operation_dbm: OperationDBM = result.scalar_one()
|
73
|
+
operation_dbm.output_data = combine_dicts(
|
74
|
+
operation_dbm.output_data,
|
75
|
+
{"warning": f"unknown operation_type = {operation_dbm.type}"}
|
76
|
+
)
|
77
|
+
await session.commit()
|
78
|
+
await session.refresh(operation_dbm)
|
79
|
+
self._logger.info(f"unknown operation_type, {operation_dbm.id=}, {operation_dbm.type=}")
|
57
80
|
|
58
81
|
def sync_run(self):
|
59
82
|
# 1
|
@@ -8,7 +8,7 @@ arpakitlib/_arpakit_project_template_v_5/alembic/env.py,sha256=Qesmnj5A2kB-Doeuf
|
|
8
8
|
arpakitlib/_arpakit_project_template_v_5/alembic/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
|
9
9
|
arpakitlib/_arpakit_project_template_v_5/alembic/versions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
10
|
arpakitlib/_arpakit_project_template_v_5/alembic.ini,sha256=8fuyeEvGBiPGbxEFy8ISBV3xX_fgVmuhEGpB10_B5Uo,3733
|
11
|
-
arpakitlib/_arpakit_project_template_v_5/arpakitlib_project_template_info.json,sha256=
|
11
|
+
arpakitlib/_arpakit_project_template_v_5/arpakitlib_project_template_info.json,sha256=EkctAYkthhQpPLxJPmiuu1VL0gS5R8beKIF07_fLg1o,97
|
12
12
|
arpakitlib/_arpakit_project_template_v_5/command/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
13
13
|
arpakitlib/_arpakit_project_template_v_5/command/alembic_history.sh,sha256=OMnDNtHIksGh9iavWnzbtxcudZW4vjdcISsBXvzZSPw,22
|
14
14
|
arpakitlib/_arpakit_project_template_v_5/command/alembic_revision_autogenerate.sh,sha256=yW2i-SBOtBx15Ya0poVQqKkJM5t2JZp06r9AEW-DmGE,46
|
@@ -94,16 +94,20 @@ arpakitlib/_arpakit_project_template_v_5/project/api/openapi_ui.py,sha256=PLhH-W
|
|
94
94
|
arpakitlib/_arpakit_project_template_v_5/project/api/response.py,sha256=xZMymP2BuQaRNVWLeIp3UgUUo-MFN8MJnsn9Al4vOb8,1028
|
95
95
|
arpakitlib/_arpakit_project_template_v_5/project/api/router/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
96
96
|
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
97
|
+
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/check_sqlalchemy_db.py,sha256=maO6fGrTgho9n3097bVldamIIA4IGNx0I7xN7xgJES8,1461
|
98
|
+
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/clear_log_file.py,sha256=A9lTekkibvCs2Czlpr-iE8Q7IzUJQfF-BhYm5D2Y4hA,1502
|
97
99
|
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/create_operation.py,sha256=rnypweyZVi7d0ifWHSeQvUtpMPRelSYOv_pTtltvLp4,2597
|
98
100
|
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_arpakitlib_project_template_info.py,sha256=RDbxtAnUsdpiPWslVZNBkhk6klxbxhnO8S58mOAI3m8,1513
|
99
101
|
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_auth_data.py,sha256=gney8IDXu7Qm1Sd09at7TNfo1JC2-ap0MlDomvdYGJI,1385
|
102
|
+
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_log_file.py,sha256=rzEPco45I-4FzrlbI3z5B-smhrHFIVIsDiHtTULoE4g,1162
|
100
103
|
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation.py,sha256=bF2IstPPA2I1v29aoPBHsxlQhWI9bzAWBjGfg8lDUpg,2416
|
101
104
|
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation_allowed_statuses.py,sha256=gRvpuBo60rDpzBhRtS2ElRjHS9KZqKgJQaiSjoY8BZY,1328
|
102
105
|
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation_allowed_types.py,sha256=wACUgyQy4pkVUUKakBUyzxQxW4_3OqA3GShPj5MRWEM,1307
|
106
|
+
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_settings.py,sha256=3CgM2vt17RNetUowzQd3ySCsFWXt9ZU4CcVsYZnt9H4,1361
|
103
107
|
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_sqlalchemy_db_table_name_to_amount.py,sha256=6XFnF-Yv2QajvY7OfPphjDDlOVb5xVz8afY6f_-NqWc,1391
|
104
108
|
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_story_log.py,sha256=7y2OFyEePVooC6REPII64s_WbEWs3GSltpQLGaBKgQA,2406
|
105
109
|
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/init_sqlalchemy_db.py,sha256=PRsYoEfej5qAFspBqqQCDRZXOIwF358QIzh1HuYIDl4,1493
|
106
|
-
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/main_router.py,sha256=
|
110
|
+
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/main_router.py,sha256=hOpea2gHlVkiHaq4M8_y1kNfrjC7RJ1qk6O4D4q19Jw,2243
|
107
111
|
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/raise_fake_error.py,sha256=kMr06QR39XVUoVwUuwJHoQmaWHvlfi2j53ZCMX3CU48,1048
|
108
112
|
arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/reinit_sqlalchemy_db.py,sha256=oZNxVfGP83uM5WKh0-3uJRCYRuxlSJ7lAtRGOBTg0lM,1509
|
109
113
|
arpakitlib/_arpakit_project_template_v_5/project/api/router/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -164,7 +168,7 @@ arpakitlib/_arpakit_project_template_v_5/project/json_db/json_db.py,sha256=tBML-
|
|
164
168
|
arpakitlib/_arpakit_project_template_v_5/project/more/helloworld,sha256=eH7Hbcr9IMGQjrCTahL5Ht0QWrXNfswrGuIDJkg0Xf8,11
|
165
169
|
arpakitlib/_arpakit_project_template_v_5/project/operation_execution/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
166
170
|
arpakitlib/_arpakit_project_template_v_5/project/operation_execution/const.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
|
167
|
-
arpakitlib/_arpakit_project_template_v_5/project/operation_execution/operation_executor_worker.py,sha256
|
171
|
+
arpakitlib/_arpakit_project_template_v_5/project/operation_execution/operation_executor_worker.py,sha256=pAcvuAVgWc86Vyx3-I21rPvBr9ZxUNaLRoS7VEwkETw,12129
|
168
172
|
arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operation_creator_worker.py,sha256=yna75650lZUy7GlV2TYq2_2DOp6zL1hO45g4IMcYE70,4211
|
169
173
|
arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operations.py,sha256=BNqlXqHjf7-Bno-HtpCdJho0CFZdi6NUmGOTgIuPDkc,1721
|
170
174
|
arpakitlib/_arpakit_project_template_v_5/project/operation_execution/util.py,sha256=nau1QnUh37CL6rfniwQ7rfQkh5Rf8qE01ruFdNv4H8k,785
|
@@ -365,8 +369,8 @@ arpakitlib/ar_type_util.py,sha256=Cs_tef-Fc5xeyAF54KgISCsP11NHyzIsglm4S3Xx7iM,40
|
|
365
369
|
arpakitlib/ar_wata_api_client.py,sha256=gdHOqDbuqxhTjVDtRW1DvkRJLdDofCrOq51GTctzLns,242
|
366
370
|
arpakitlib/ar_yookassa_api_client_util.py,sha256=VozuZeCJjmLd1zj2BdC9WfiAQ3XYOrIMsdpNK-AUlm0,5347
|
367
371
|
arpakitlib/ar_zabbix_api_client_util.py,sha256=AV7yxzG46blyQQDI-is0BwHfzuZlrkiHOkuOpfzQ90A,7934
|
368
|
-
arpakitlib-1.8.
|
369
|
-
arpakitlib-1.8.
|
370
|
-
arpakitlib-1.8.
|
371
|
-
arpakitlib-1.8.
|
372
|
-
arpakitlib-1.8.
|
372
|
+
arpakitlib-1.8.40.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
|
373
|
+
arpakitlib-1.8.40.dist-info/METADATA,sha256=I1OI6_YVvUdCClGTe8qPuTQaKFoQYPfasH6O1jy_YQA,3477
|
374
|
+
arpakitlib-1.8.40.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
375
|
+
arpakitlib-1.8.40.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
|
376
|
+
arpakitlib-1.8.40.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|