arpakitlib 1.8.112__py3-none-any.whl → 1.8.114__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.
Files changed (21) hide show
  1. arpakitlib/_arpakit_project_template_v_5/project/api/create_first_data.py +64 -0
  2. arpakitlib/_arpakit_project_template_v_5/project/api/event.py +4 -0
  3. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/user.py +1 -0
  4. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user.py +1 -0
  5. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user.py +1 -0
  6. arpakitlib/_arpakit_project_template_v_5/project/api/start_api.py +26 -0
  7. arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/event.py +2 -0
  8. arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/operation.py +15 -0
  9. arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/story_log.py +10 -0
  10. arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user.py +19 -0
  11. arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user_token.py +10 -0
  12. arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/verification_code.py +12 -0
  13. arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/start_sqladmin.py +19 -0
  14. arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user.py +4 -0
  15. arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_1.py +2 -1
  16. {arpakitlib-1.8.112.dist-info → arpakitlib-1.8.114.dist-info}/METADATA +1 -1
  17. {arpakitlib-1.8.112.dist-info → arpakitlib-1.8.114.dist-info}/RECORD +20 -18
  18. arpakitlib/_arpakit_project_template_v_5/project/business_service/create_first_admin.py +0 -37
  19. {arpakitlib-1.8.112.dist-info → arpakitlib-1.8.114.dist-info}/LICENSE +0 -0
  20. {arpakitlib-1.8.112.dist-info → arpakitlib-1.8.114.dist-info}/WHEEL +0 -0
  21. {arpakitlib-1.8.112.dist-info → arpakitlib-1.8.114.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,64 @@
1
+ import logging
2
+
3
+ from project.core.util import setup_logging
4
+ from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
5
+ from project.sqlalchemy_db_.sqlalchemy_model import UserDBM, ApiKeyDBM, UserTokenDBM
6
+
7
+ _logger = logging.getLogger(__name__)
8
+
9
+
10
+ def create_first_data_for_api():
11
+ with get_cached_sqlalchemy_db().new_session() as session:
12
+ user_dbm = (
13
+ session
14
+ .query(UserDBM)
15
+ .filter(UserDBM.roles.any(UserDBM.Roles.admin))
16
+ .first()
17
+ )
18
+ if user_dbm is None:
19
+ user_dbm = UserDBM(
20
+ username="admin",
21
+ roles=[UserDBM.Roles.client, UserDBM.Roles.admin],
22
+ password="admin",
23
+ )
24
+ session.add(user_dbm)
25
+ session.commit()
26
+ _logger.info("admin was created")
27
+
28
+ user_token_dbm = (
29
+ session
30
+ .query(UserTokenDBM)
31
+ .filter(UserTokenDBM.user_id == user_dbm.id)
32
+ .first()
33
+ )
34
+ if user_token_dbm is None:
35
+ user_token_dbm = UserTokenDBM(
36
+ value="1",
37
+ user_id=user_dbm.id
38
+ )
39
+ session.add(user_token_dbm)
40
+ session.commit()
41
+ _logger.info("admin token was created")
42
+
43
+ api_key_dbm = (
44
+ session
45
+ .query(ApiKeyDBM)
46
+ .first()
47
+ )
48
+ if api_key_dbm is None:
49
+ api_key_dbm = ApiKeyDBM(
50
+ value="1",
51
+ title="First api key"
52
+ )
53
+ session.add(api_key_dbm)
54
+ session.commit()
55
+ _logger.info("api key was created")
56
+
57
+
58
+ def command():
59
+ setup_logging()
60
+ create_first_data_for_api()
61
+
62
+
63
+ if __name__ == '__main__':
64
+ command()
@@ -2,6 +2,7 @@ import logging
2
2
  from typing import Callable
3
3
 
4
4
  from arpakitlib.ar_base_worker_util import safe_run_worker_in_background, SafeRunInBackgroundModes
5
+ from project.api.create_first_data import create_first_data_for_api
5
6
  from project.core.cache_file_storage_in_dir import get_cached_cache_file_storage_in_dir
6
7
  from project.core.dump_file_storage_in_dir import get_cached_dump_file_storage_in_dir
7
8
  from project.core.media_file_storage_in_dir import get_cached_media_file_storage_in_dir
@@ -41,6 +42,9 @@ async def async_startup_api_event():
41
42
  ):
42
43
  get_cached_json_db().init()
43
44
 
45
+ if get_cached_sqlalchemy_db() is not None:
46
+ create_first_data_for_api()
47
+
44
48
  if get_cached_settings().api_start_operation_executor_worker:
45
49
  _ = safe_run_worker_in_background(
46
50
  worker=create_operation_executor_worker(),
@@ -8,6 +8,7 @@ from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
8
8
 
9
9
 
10
10
  class User1AdminSO(SimpleDBMAdminSO):
11
+ fullname: str | None
11
12
  email: str | None
12
13
  username: str | None
13
14
  roles: list[str]
@@ -8,6 +8,7 @@ from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
8
8
 
9
9
 
10
10
  class User1ClientSO(SimpleDBMClientSO):
11
+ fullname: str | None
11
12
  email: str | None
12
13
  username: str | None
13
14
  roles: list[str]
@@ -8,6 +8,7 @@ from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
8
8
 
9
9
 
10
10
  class User1GeneralSO(SimpleDBMGeneralSO):
11
+ fullname: str | None
11
12
  email: str | None
12
13
  username: str | None
13
14
  roles: list[str]
@@ -0,0 +1,26 @@
1
+ import uvicorn
2
+
3
+ from arpakitlib.ar_base_worker_util import safe_run_worker_in_background, SafeRunInBackgroundModes
4
+ from project.core.settings import get_cached_settings
5
+ from project.core.util import setup_logging
6
+ from project.operation_execution.scheduled_operation_creator_worker import create_scheduled_operation_creator_worker
7
+
8
+
9
+ def __command():
10
+ setup_logging()
11
+ if get_cached_settings().api_start_scheduled_operation_creator_worker:
12
+ _ = safe_run_worker_in_background(
13
+ worker=create_scheduled_operation_creator_worker(),
14
+ mode=SafeRunInBackgroundModes.thread
15
+ )
16
+ uvicorn.run(
17
+ "project.api.asgi:app",
18
+ port=get_cached_settings().api_port,
19
+ host="localhost",
20
+ workers=1,
21
+ reload=False
22
+ )
23
+
24
+
25
+ if __name__ == '__main__':
26
+ __command()
@@ -1,6 +1,8 @@
1
1
  import logging
2
2
  from typing import Callable
3
3
 
4
+ from project.business_service.create_first_data import create_first_admin_with_api_key
5
+
4
6
  from project.core.settings import get_cached_settings
5
7
  from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
6
8
 
@@ -25,6 +25,21 @@ class OperationMV(SimpleMV, model=OperationDBM):
25
25
  OperationDBM.error_data,
26
26
  OperationDBM.extra_data
27
27
  ]
28
+ column_details_list = [
29
+ OperationDBM.id,
30
+ OperationDBM.long_id,
31
+ OperationDBM.slug,
32
+ OperationDBM.creation_dt,
33
+ OperationDBM.status,
34
+ OperationDBM.type,
35
+ OperationDBM.title,
36
+ OperationDBM.execution_start_dt,
37
+ OperationDBM.execution_finish_dt,
38
+ OperationDBM.input_data,
39
+ OperationDBM.output_data,
40
+ OperationDBM.error_data,
41
+ OperationDBM.extra_data
42
+ ]
28
43
  form_columns = [
29
44
  OperationDBM.slug,
30
45
  OperationDBM.status,
@@ -19,6 +19,16 @@ class StoryLogMV(SimpleMV, model=StoryLogDBM):
19
19
  StoryLogDBM.title,
20
20
  StoryLogDBM.extra_data
21
21
  ]
22
+ column_details_list = [
23
+ StoryLogDBM.id,
24
+ StoryLogDBM.long_id,
25
+ StoryLogDBM.slug,
26
+ StoryLogDBM.creation_dt,
27
+ StoryLogDBM.level,
28
+ StoryLogDBM.type,
29
+ StoryLogDBM.title,
30
+ StoryLogDBM.extra_data
31
+ ]
22
32
  form_columns = [
23
33
  StoryLogDBM.slug,
24
34
  StoryLogDBM.level,
@@ -15,6 +15,23 @@ class UserMV(SimpleMV, model=UserDBM):
15
15
  UserDBM.long_id,
16
16
  UserDBM.slug,
17
17
  UserDBM.creation_dt,
18
+ UserDBM.fullname,
19
+ UserDBM.email,
20
+ UserDBM.username,
21
+ UserDBM.roles,
22
+ UserDBM.is_active,
23
+ UserDBM.password,
24
+ UserDBM.tg_id,
25
+ UserDBM.tg_data,
26
+ UserDBM.tg_bot_last_action_dt,
27
+ UserDBM.extra_data
28
+ ]
29
+ column_details_list = [
30
+ UserDBM.id,
31
+ UserDBM.long_id,
32
+ UserDBM.slug,
33
+ UserDBM.creation_dt,
34
+ UserDBM.fullname,
18
35
  UserDBM.email,
19
36
  UserDBM.username,
20
37
  UserDBM.roles,
@@ -27,6 +44,7 @@ class UserMV(SimpleMV, model=UserDBM):
27
44
  ]
28
45
  form_columns = [
29
46
  UserDBM.slug,
47
+ UserDBM.fullname,
30
48
  UserDBM.email,
31
49
  UserDBM.username,
32
50
  UserDBM.roles,
@@ -53,6 +71,7 @@ class UserMV(SimpleMV, model=UserDBM):
53
71
  column_searchable_list = [
54
72
  UserDBM.id,
55
73
  UserDBM.long_id,
74
+ UserDBM.fullname,
56
75
  UserDBM.email,
57
76
  UserDBM.username,
58
77
  UserDBM.tg_id
@@ -19,6 +19,16 @@ class UserTokenMV(SimpleMV, model=UserTokenDBM):
19
19
  UserTokenDBM.is_active,
20
20
  UserTokenDBM.extra_data,
21
21
  ]
22
+ column_details_list = [
23
+ UserTokenDBM.id,
24
+ UserTokenDBM.long_id,
25
+ UserTokenDBM.slug,
26
+ UserTokenDBM.creation_dt,
27
+ UserTokenDBM.value,
28
+ UserTokenDBM.user,
29
+ UserTokenDBM.is_active,
30
+ UserTokenDBM.extra_data,
31
+ ]
22
32
  form_columns = [
23
33
  UserTokenDBM.slug,
24
34
  UserTokenDBM.creation_dt,
@@ -24,6 +24,18 @@ class VerificationCodeMV(SimpleMV, model=VerificationCodeDBM):
24
24
  VerificationCodeDBM.is_active,
25
25
  VerificationCodeDBM.extra_data
26
26
  ]
27
+ column_details_list = [
28
+ VerificationCodeDBM.id,
29
+ VerificationCodeDBM.long_id,
30
+ VerificationCodeDBM.slug,
31
+ VerificationCodeDBM.creation_dt,
32
+ VerificationCodeDBM.type,
33
+ VerificationCodeDBM.value,
34
+ VerificationCodeDBM.recipient,
35
+ VerificationCodeDBM.user,
36
+ VerificationCodeDBM.is_active,
37
+ VerificationCodeDBM.extra_data
38
+ ]
27
39
  form_columns = [
28
40
  VerificationCodeDBM.slug,
29
41
  VerificationCodeDBM.type,
@@ -0,0 +1,19 @@
1
+ import uvicorn
2
+
3
+ from project.core.settings import get_cached_settings
4
+ from project.core.util import setup_logging
5
+
6
+
7
+ def __command():
8
+ setup_logging()
9
+ uvicorn.run(
10
+ "project.sqladmin_.asgi:app",
11
+ port=get_cached_settings().sqladmin_port,
12
+ host="localhost",
13
+ workers=1,
14
+ reload=False
15
+ )
16
+
17
+
18
+ if __name__ == '__main__':
19
+ __command()
@@ -34,6 +34,10 @@ class UserDBM(SimpleDBM):
34
34
  admin = "admin"
35
35
  client = "client"
36
36
 
37
+ fullname: Mapped[str | None] = mapped_column(
38
+ sqlalchemy.TEXT,
39
+ nullable=True,
40
+ )
37
41
  email: Mapped[str | None] = mapped_column(
38
42
  sqlalchemy.TEXT,
39
43
  nullable=True,
@@ -19,13 +19,14 @@ def make_test_data_1():
19
19
 
20
20
  with get_cached_sqlalchemy_db().new_session() as session:
21
21
 
22
- for i in range(1000):
22
+ for i in range(100):
23
23
  api_key = ApiKeyDBM(value=str(i + 1))
24
24
  session.add(api_key)
25
25
  _logger.info(api_key)
26
26
  session.commit()
27
27
 
28
28
  arpakit_user = UserDBM(
29
+ fullname="Арсен",
29
30
  email="arpakit@gmail.com",
30
31
  username="arpakit",
31
32
  roles=[UserDBM.Roles.client, UserDBM.Roles.admin],
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arpakitlib
3
- Version: 1.8.112
3
+ Version: 1.8.114
4
4
  Summary: arpakitlib
5
5
  License: Apache-2.0
6
6
  Keywords: arpakitlib,arpakit,arpakit-company,arpakitcompany,arpakit_company
@@ -89,7 +89,8 @@ arpakitlib/_arpakit_project_template_v_5/project/api/blank/client.py,sha256=rvJK
89
89
  arpakitlib/_arpakit_project_template_v_5/project/api/blank/common.py,sha256=ug1FylE_CVC5eij-u4nh-IHNO-gwkbBGo5KgyWDujC8,91
90
90
  arpakitlib/_arpakit_project_template_v_5/project/api/const.py,sha256=J9bqaRRiIc3RLn6SJTvdfDvFrSsM_Ixii9t2M8dA5Jc,433
91
91
  arpakitlib/_arpakit_project_template_v_5/project/api/create_api_app.py,sha256=fRYjpKEB5pMpFtWEhUe84mVvaFBKQ2WU5BTwCpb0J2Y,2861
92
- arpakitlib/_arpakit_project_template_v_5/project/api/event.py,sha256=xKfJ3UnOx_g1s7KNZjWRp0eZbVRTsSlyJhT3wkfwT6k,2414
92
+ arpakitlib/_arpakit_project_template_v_5/project/api/create_first_data.py,sha256=sc98-xW74QbhFCT6AW5-fUJVd8RLRxClAOEW5-ec9T0,1815
93
+ arpakitlib/_arpakit_project_template_v_5/project/api/event.py,sha256=2DqXb8-iiSMoyh5OJI7nf53N5Bij5HfnFVrbLlI8G3w,2566
93
94
  arpakitlib/_arpakit_project_template_v_5/project/api/exception.py,sha256=cNZaI2DacGLl8Hyn1qIfFpVjvQzOQjwXWsVW4auBrCo,1280
94
95
  arpakitlib/_arpakit_project_template_v_5/project/api/exception_handler.py,sha256=TEzkCNOg_TAELRTZgLtblVagSaHf-vego_oH5FNCbcs,11179
95
96
  arpakitlib/_arpakit_project_template_v_5/project/api/openapi_ui.py,sha256=PLhH-W6zDViO-75AGCs8Vq3IoyHChdqwBYAqLvdQN0U,904
@@ -141,12 +142,12 @@ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/__init__.p
141
142
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/common.py,sha256=0vZOPql7ijaSr0yq5USSHNRSHnpUmCgYdh0vw4n8qak,591
142
143
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/operation.py,sha256=Gg0TSj9RmsaHBaWNzjJPLYnTN1wZ7Od0z8OaqMFa6hc,833
143
144
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/story_log.py,sha256=lOQWCpXrdVbLFRZFbY5aW9afM4vn5-KV3DwKb6_48N4,565
144
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/user.py,sha256=VO35k6fqWJTh5Z5OGzdKIxILlLLBSZf_QSC7HERwKCY,1070
145
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/user.py,sha256=j4Ezq2Ia4ZonWRagaRY-FvZneuW04D3kQT-w4GOLpWo,1095
145
146
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
146
147
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/common.py,sha256=vpE_bjT7fdaWe0LQxuVwEy7ZDSyVe4PrcX-gUTRWZbU,539
147
148
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/complicated_user_1.py,sha256=G7rdFpfIK13w2nQVuAASqvtPm9jHPzt59A_-dtJfle4,763
148
149
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/complicated_user_token_1.py,sha256=XhM0YMWK1fJCzTGgnSsEKFynx8Cs6JwygmmF4C1_Jts,714
149
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user.py,sha256=Cc4eL8oUgkgPLB3X_CGL7Z7foxtvcdhtkVkZ7Z34X1A,1050
150
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user.py,sha256=JEwIqTJIko_v2NTV5zbTgzgXj8qld8tHwxJDfLj2iq4,1075
150
151
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user_token.py,sha256=Emhpawd_jGWu9xzyYyXk9h0YDSnHGDkyfP-hIgenzpA,508
151
152
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
153
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/datetime_.py,sha256=YFo29Qc7JMVq-OR398kPy4ypjh9kYAxPuZZUsobhDdc,942
@@ -156,11 +157,11 @@ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/raw_data.
156
157
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
157
158
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/api_key.py,sha256=S0b1t79VRJZMA1hNdJJe_bH-QN5qNY8uJIHVVDnQ6Is,506
158
159
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/common.py,sha256=y-p4QJhvKnFL1I6ud3m_nzE0xtreT3CNApPkkkLAbG0,541
159
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user.py,sha256=pHNtMOXZCSSpobetiKRKveEX6fPoywI5y7uQf9_WrBk,1055
160
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user.py,sha256=AvYwqaowd1V_6VQjrIGxt8SwqNEgmirLcHbtSHPwWmQ,1080
160
161
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user_token.py,sha256=iiuZXu_zo3FJX0W5qyyMGasUx-_d32yjqc_2KY3xpUA,513
162
+ arpakitlib/_arpakit_project_template_v_5/project/api/start_api.py,sha256=fl-dkm2I3ModQXjGG6VrP6vUFciEcRW_ORFG3VX8jH8,821
161
163
  arpakitlib/_arpakit_project_template_v_5/project/api/util.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
162
164
  arpakitlib/_arpakit_project_template_v_5/project/business_service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
163
- arpakitlib/_arpakit_project_template_v_5/project/business_service/create_first_admin.py,sha256=2TzUxP8XY1ijTMXzpjfwelWgtqDmuX9_VmN915cvfkI,959
164
165
  arpakitlib/_arpakit_project_template_v_5/project/business_service/hello_world.py,sha256=lvWlVF6SlnC33swSCd-_QK6guxBg50myOd8cPS7hZrA,251
165
166
  arpakitlib/_arpakit_project_template_v_5/project/business_service/remove_operations.py,sha256=E2F8xonPeZovKKOHv-XDmsQUHvks8A6R89PVhF_pAQI,1780
166
167
  arpakitlib/_arpakit_project_template_v_5/project/celery_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -230,15 +231,16 @@ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/add_admin_in_app.py,s
230
231
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/admin_authorize.py,sha256=tmvYx5hFO2RqHmhKktpMRJaBuT6vDHBOsQujihO7sMw,4983
231
232
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/asgi.py,sha256=DRlRPkcOGXOccfP73oKEXolZTsc5VWdQgEG-qoW03ms,99
232
233
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/create_sqladmin_app.py,sha256=x5F8--5KA4cmTrb6kAAmp6fVd2TiqxPOzxqUkSEhSG4,1298
233
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/event.py,sha256=LjAUYNlsX9Sj_QLMzYuTQbbYYbIMHhbsSjTXt-G7lOE,849
234
+ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/event.py,sha256=n8Bt78wyIqplxhbmSrwHf0rolV46QvXLOJ6UjAUNCZE,937
234
235
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/__init__.py,sha256=dc_swzjkRDj85SWQ3cGGgsrp_cq5evUYQYUg0g7C5nw,435
235
236
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/api_key.py,sha256=VTpepKLCKrPnftGD-8Ibp75S0dwUrLlUytRfcXDDcKg,1597
236
237
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/common.py,sha256=StdbfHZ92qAP-l2lnvAeyYCaZuMHKskHq1E19zJh6MA,2471
237
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/operation.py,sha256=4BFJEp_yIpZltfEjsBC__J_BfgIBYzOc6LeoWFxP1MI,2785
238
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/story_log.py,sha256=INs2g2uy7CFlyVWUUXJOlEqawxNdWDdo00zy4Ly_RSM,1401
239
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user.py,sha256=npO1CSSycbgzgL7fWRuxIoB1zJySVqISP0ZKwjSm6y8,1953
240
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user_token.py,sha256=Q826LQIiK9J5JKKaAyB0xituMUxuMyyvFF-c1ekyAPM,1784
241
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/verification_code.py,sha256=AU0f9VzBxeBkVTSp2tpqracLYW5gsJIx69PrIYTn5H8,2485
238
+ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/operation.py,sha256=KUC-EZYFlLca92b6PwI0l5leOT8DzjlWm6y-a0PCvQc,3234
239
+ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/story_log.py,sha256=BFieWjN5cWgft0Vocrdn_9d3YiDvCBxOjQJ3otPJSEQ,1658
240
+ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user.py,sha256=Ca92t9vj-Eu6x6NGi0rv8AnxNCx0fhDzuTDqVJpGdW0,2426
241
+ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user_token.py,sha256=pyeyDTg4rss8-67hIE3-SQlAvNfje6HazuaVnyFBpN8,2054
242
+ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/verification_code.py,sha256=8dfmXKVsmLNf6Id6Ql52uVaZuQtqNCq5nJgBOv3N66A,2883
243
+ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/start_sqladmin.py,sha256=g3kNKPR4X-PKpiSe4oFLHbZ-EJIwmWUOK6a5FABat_Y,375
242
244
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
243
245
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/util/etc.py,sha256=jm65ZB0K8e6WpgcL2Y6pxcIuQjioIyMtBIOOFbbWfgk,1070
244
246
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -249,13 +251,13 @@ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model
249
251
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py,sha256=9j3QwBkaQSmsqXZbAYZDysGXP3xPPAHJfqIja5UnLcc,3229
250
252
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py,sha256=op5cSkTlHJyGjULgcSWE9-_PNinKSneHLxhG5DUkd9M,5913
251
253
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py,sha256=wig_D6OZyYYGsqZEbmSK56qoAIOnOVnOEB_sRSZLSIU,2396
252
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user.py,sha256=xdayFM48y4OPAd5HVNgWHvdujiO62fEj3XDcquwTrBk,7533
254
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user.py,sha256=bAyeFV9EU5J1R6POQieDSPpna9q_AMr-9oHq2SVHnSQ,7637
253
255
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py,sha256=UtSbQRlNJOnD7q-d_aZfMjQnPFnchGPf1fWGwsgCm5k,1944
254
256
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/verification_code.py,sha256=13aDT9m2l9zaJXqHZi0MsoY--5BNWhbw0O9uQJAW16E,3136
255
257
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/util.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
256
258
  arpakitlib/_arpakit_project_template_v_5/project/test_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
257
259
  arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_api_keys.py,sha256=9F2bMfymaqx_Czh_tF945BKpKqNrVNjSIfCQl13Dkxw,911
258
- arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_1.py,sha256=B6due_6egjIT_tC5Glg2kIR0tBUNdlRW2Oyy6j-ga2Q,2212
260
+ arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_1.py,sha256=F7vCmfWjItw5QzYR7_OAPSHdJt9louuvqXvcfOkU0AU,2246
259
261
  arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_2.py,sha256=VcCvxRLA0XnLaQcsaoZkIVV8rTO3uMyLTYoEsdxKtYE,416
260
262
  arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_3.py,sha256=9QJTgM4qsJXPgFhfVueQ9vObXr_dAldzP_p8dPO42uA,416
261
263
  arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_4.py,sha256=OyU9601WACF7cCpPT33x6CpizNJeQIPDDFezIvEO01A,416
@@ -396,8 +398,8 @@ arpakitlib/ar_ssh_runner_util.py,sha256=yvAwza480MkHKvLkDEsR7JNh2bYNs6P9rCVo4NA8
396
398
  arpakitlib/ar_str_util.py,sha256=CAv0wH8nP5Ja59S-hEdmNhNrM_Fwy935d0zntLpJkx8,4309
397
399
  arpakitlib/ar_type_util.py,sha256=Cs_tef-Fc5xeyAF54KgISCsP11NHyzIsglm4S3Xx7iM,4049
398
400
  arpakitlib/ar_yookassa_api_client_util.py,sha256=VozuZeCJjmLd1zj2BdC9WfiAQ3XYOrIMsdpNK-AUlm0,5347
399
- arpakitlib-1.8.112.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
400
- arpakitlib-1.8.112.dist-info/METADATA,sha256=rRtXEb7kPS7p60Eb4WtlFZf7YVi8W0ABiq-sGC4hRAc,3566
401
- arpakitlib-1.8.112.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
402
- arpakitlib-1.8.112.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
403
- arpakitlib-1.8.112.dist-info/RECORD,,
401
+ arpakitlib-1.8.114.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
402
+ arpakitlib-1.8.114.dist-info/METADATA,sha256=RF87YlXnrStQ2Qld70zHu6k7AgKoS-cgZP8W5TY-3t8,3566
403
+ arpakitlib-1.8.114.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
404
+ arpakitlib-1.8.114.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
405
+ arpakitlib-1.8.114.dist-info/RECORD,,
@@ -1,37 +0,0 @@
1
- import logging
2
-
3
- from project.core.util import setup_logging
4
- from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
5
- from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
6
-
7
- _logger = logging.getLogger(__name__)
8
-
9
-
10
- def create_first_admin():
11
- with get_cached_sqlalchemy_db().new_session() as session:
12
- user_dbm = (
13
- session
14
- .query(UserDBM)
15
- .filter(UserDBM.roles.any(UserDBM.Roles.admin))
16
- .first()
17
- )
18
- if user_dbm is not None:
19
- _logger.info("first admin already exists")
20
- return
21
- user_dbm = UserDBM(
22
- username="admin",
23
- roles=[UserDBM.Roles.client, UserDBM.Roles.admin],
24
- password="admin",
25
- )
26
- session.add(user_dbm)
27
- session.commit()
28
- _logger.info("first admin was created")
29
-
30
-
31
- def command():
32
- setup_logging()
33
- create_first_admin()
34
-
35
-
36
- if __name__ == '__main__':
37
- command()