arpakitlib 1.8.53__py3-none-any.whl → 1.8.57__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 (54) hide show
  1. arpakitlib/_arpakit_project_template_v_5/.gitignore +1 -0
  2. arpakitlib/_arpakit_project_template_v_5/arpakitlib_project_template_info.json +1 -1
  3. arpakitlib/_arpakit_project_template_v_5/project/api/authorize.py +33 -3
  4. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/check_sqlalchemy_db.py +4 -4
  5. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/clear_log_file.py +3 -3
  6. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/create_operation.py +3 -3
  7. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_arpakitlib_project_template_info.py +3 -3
  8. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_auth_data.py +3 -3
  9. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation.py +3 -3
  10. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation_allowed_statuses.py +3 -3
  11. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation_allowed_types.py +3 -3
  12. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_settings.py +4 -4
  13. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_sqlalchemy_db_table_name_to_amount.py +3 -3
  14. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_story_log.py +3 -3
  15. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_user.py +81 -0
  16. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/init_sqlalchemy_db.py +3 -3
  17. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/main_router.py +11 -1
  18. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/make_test_data_1.py +41 -0
  19. arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/reinit_sqlalchemy_db.py +3 -3
  20. arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user.py +3 -3
  21. arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user_token.py +3 -3
  22. arpakitlib/_arpakit_project_template_v_5/project/api/router/general/check_authorization.py +5 -4
  23. arpakitlib/_arpakit_project_template_v_5/project/api/router/general/get_current_api_key.py +3 -3
  24. arpakitlib/_arpakit_project_template_v_5/project/api/router/general/get_errors_info.py +3 -3
  25. arpakitlib/_arpakit_project_template_v_5/project/api/router/general/healthcheck.py +3 -3
  26. arpakitlib/_arpakit_project_template_v_5/project/api/router/general/now_utc_datetime.py +3 -3
  27. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/common.py +3 -1
  28. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/user.py +35 -0
  29. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/common.py +1 -0
  30. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user.py +3 -0
  31. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/raw_data.py +1 -1
  32. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/common.py +4 -1
  33. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user.py +3 -0
  34. arpakitlib/_arpakit_project_template_v_5/project/more/__init__.py +0 -0
  35. arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_1.py +5 -1
  36. arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/admin_authorize.py +1 -0
  37. arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user.py +1 -0
  38. arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py +29 -11
  39. arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py +47 -12
  40. arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py +81 -12
  41. arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py +33 -6
  42. arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user.py +59 -18
  43. arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py +18 -6
  44. arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/util.py +0 -28
  45. arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_api_keys.py +2 -2
  46. arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_1.py +36 -0
  47. arpakitlib/ar_str_util.py +9 -0
  48. {arpakitlib-1.8.53.dist-info → arpakitlib-1.8.57.dist-info}/METADATA +1 -1
  49. {arpakitlib-1.8.53.dist-info → arpakitlib-1.8.57.dist-info}/RECORD +52 -50
  50. arpakitlib/ar_steam_payment_api_client_util.py +0 -21
  51. arpakitlib/ar_wata_api_client.py +0 -21
  52. {arpakitlib-1.8.53.dist-info → arpakitlib-1.8.57.dist-info}/LICENSE +0 -0
  53. {arpakitlib-1.8.53.dist-info → arpakitlib-1.8.57.dist-info}/WHEEL +0 -0
  54. {arpakitlib-1.8.53.dist-info → arpakitlib-1.8.57.dist-info}/entry_points.txt +0 -0
@@ -5,9 +5,12 @@ from typing import TYPE_CHECKING, Any
5
5
  from uuid import uuid4
6
6
 
7
7
  import sqlalchemy
8
- from sqlalchemy.orm import Mapped, mapped_column, relationship
8
+ from email_validator import validate_email
9
+ from sqlalchemy.orm import Mapped, mapped_column, relationship, validates
9
10
 
11
+ from arpakitlib.ar_datetime_util import now_utc_dt
10
12
  from arpakitlib.ar_enumeration_util import Enumeration
13
+ from arpakitlib.ar_str_util import make_none_if_blank
11
14
  from arpakitlib.ar_type_util import raise_for_type
12
15
  from project.sqlalchemy_db_.sqlalchemy_model.common import SimpleDBM
13
16
 
@@ -16,7 +19,11 @@ if TYPE_CHECKING:
16
19
 
17
20
 
18
21
  def generate_default_user_password() -> str:
19
- return str(uuid4()).replace("-", "")
22
+ return (
23
+ "userpassword"
24
+ f"{str(uuid4()).replace('-', '')}"
25
+ f"{str(now_utc_dt().timestamp()).replace('.', '')}"
26
+ )
20
27
 
21
28
 
22
29
  class UserDBM(SimpleDBM):
@@ -28,45 +35,49 @@ class UserDBM(SimpleDBM):
28
35
 
29
36
  email: Mapped[str | None] = mapped_column(
30
37
  sqlalchemy.TEXT,
31
- unique=True,
32
- insert_default=None,
33
- nullable=True
38
+ nullable=True,
39
+ unique=True
40
+ )
41
+ username: Mapped[str | None] = mapped_column(
42
+ sqlalchemy.TEXT,
43
+ nullable=True,
44
+ unique=True
34
45
  )
35
46
  roles: Mapped[list[str]] = mapped_column(
36
47
  sqlalchemy.ARRAY(sqlalchemy.TEXT),
37
- insert_default=[Roles.client],
48
+ nullable=False,
38
49
  index=True,
39
- nullable=False
50
+ insert_default=[Roles.client],
40
51
  )
41
52
  is_active: Mapped[bool] = mapped_column(
42
53
  sqlalchemy.Boolean,
54
+ nullable=False,
43
55
  index=True,
44
56
  insert_default=True,
45
57
  server_default="true",
46
- nullable=False
47
58
  )
48
59
  password: Mapped[str | None] = mapped_column(
49
60
  sqlalchemy.TEXT,
50
- index=True,
51
61
  nullable=True,
62
+ index=True,
52
63
  insert_default=generate_default_user_password,
53
64
  server_default=sqlalchemy.func.gen_random_uuid(),
54
65
  )
55
66
  tg_id: Mapped[int | None] = mapped_column(
56
67
  sqlalchemy.BIGINT,
57
- unique=True,
58
- nullable=True
68
+ nullable=True,
69
+ unique=True
59
70
  )
60
71
  tg_bot_last_action_dt: Mapped[dt.datetime | None] = mapped_column(
61
72
  sqlalchemy.TIMESTAMP(timezone=True),
62
- insert_default=None,
63
73
  nullable=True
64
74
  )
65
- tg_data: Mapped[dict[str, Any] | None] = mapped_column(
75
+ tg_data: Mapped[dict[str, Any]] = mapped_column(
66
76
  sqlalchemy.JSON,
77
+ nullable=False,
78
+ index=False,
67
79
  insert_default={},
68
80
  server_default="{}",
69
- nullable=True
70
81
  )
71
82
 
72
83
  # many to one
@@ -78,11 +89,41 @@ class UserDBM(SimpleDBM):
78
89
  )
79
90
 
80
91
  def __repr__(self) -> str:
92
+ parts = [f"id={self.id}"]
81
93
  if self.email is not None:
82
- res = f"{self.entity_name} (id={self.id}, email={self.email})"
83
- else:
84
- res = f"{self.entity_name} (id={self.id})"
85
- return res
94
+ parts.append(f"email={self.email}")
95
+ if self.username is not None:
96
+ parts.append(f"username={self.username}")
97
+ return f"{self.entity_name} ({', '.join(parts)})"
98
+
99
+ @validates("email")
100
+ def _validate_email(self, key, value, *args, **kwargs):
101
+ if value is None:
102
+ return None
103
+ if not isinstance(value, str):
104
+ raise ValueError(f"{key=}, {value=}, value is not str")
105
+ value = make_none_if_blank(value.strip())
106
+ if value is None:
107
+ return None
108
+ validate_email(value)
109
+ return value
110
+
111
+ @validates("username")
112
+ def _validate_username(self, key, value, *args, **kwargs):
113
+ if value is None:
114
+ return None
115
+ if not isinstance(value, str):
116
+ raise ValueError(f"{key=}, {value=}, value is not str")
117
+ value = make_none_if_blank(value.strip())
118
+ return value
119
+
120
+ @validates("tg_data")
121
+ def _validate_tg_data(self, key, value, *args, **kwargs):
122
+ if value is None:
123
+ value = {}
124
+ if not isinstance(value, dict):
125
+ raise ValueError(f"{key=}, {value=}, value is not str")
126
+ return value
86
127
 
87
128
  @property
88
129
  def sdp_allowed_roles(self) -> list[str]:
@@ -4,7 +4,7 @@ from typing import TYPE_CHECKING
4
4
  from uuid import uuid4
5
5
 
6
6
  import sqlalchemy
7
- from sqlalchemy.orm import Mapped, mapped_column, relationship
7
+ from sqlalchemy.orm import Mapped, mapped_column, relationship, validates
8
8
 
9
9
  from arpakitlib.ar_datetime_util import now_utc_dt
10
10
  from project.sqlalchemy_db_.sqlalchemy_model.common import SimpleDBM
@@ -26,23 +26,23 @@ class UserTokenDBM(SimpleDBM):
26
26
 
27
27
  value: Mapped[str] = mapped_column(
28
28
  sqlalchemy.TEXT,
29
- unique=True,
30
29
  nullable=False,
30
+ unique=True,
31
31
  insert_default=generate_default_user_token_value,
32
32
  server_default=sqlalchemy.func.gen_random_uuid(),
33
33
  )
34
34
  user_id: Mapped[int] = mapped_column(
35
35
  sqlalchemy.BIGINT,
36
36
  sqlalchemy.ForeignKey("user.id", ondelete="CASCADE"),
37
+ nullable=False,
37
38
  index=True,
38
- nullable=False
39
39
  )
40
40
  is_active: Mapped[bool] = mapped_column(
41
41
  sqlalchemy.Boolean,
42
+ nullable=False,
42
43
  index=True,
43
44
  insert_default=True,
44
45
  server_default="true",
45
- nullable=False
46
46
  )
47
47
 
48
48
  # one to many
@@ -54,8 +54,20 @@ class UserTokenDBM(SimpleDBM):
54
54
  )
55
55
 
56
56
  def __repr__(self) -> str:
57
- res = f"{self.entity_name} (id={self.id}, user_id={self.user_id})"
58
- return res
57
+ parts = [
58
+ f"id={self.id}",
59
+ f"user_id={self.user_id}"
60
+ ]
61
+ return f"{self.entity_name} ({', '.join(parts)})"
62
+
63
+ @validates("value")
64
+ def _validate_value(self, key, value, *args, **kwargs):
65
+ if not isinstance(value, str):
66
+ raise ValueError(f"{key=}, {value=}, value is not str")
67
+ value = value.strip()
68
+ if not value:
69
+ raise ValueError(f"{key=}, {value=}, value is empty")
70
+ return value
59
71
 
60
72
  @property
61
73
  def sdp_user(self) -> UserDBM:
@@ -1,28 +0,0 @@
1
- from uuid import uuid4
2
-
3
- from arpakitlib.ar_datetime_util import now_utc_dt
4
-
5
-
6
- def generate_default_api_key() -> str:
7
- return (
8
- f"apikey"
9
- f"{str(uuid4()).replace('-', '')}"
10
- f"{str(now_utc_dt().timestamp()).replace('.', '')}"
11
- )
12
-
13
-
14
- def generate_default_long_id():
15
- return (
16
- f"longid"
17
- f"{str(uuid4()).replace('-', '')}"
18
- f"{str(now_utc_dt().timestamp()).replace('.', '')}"
19
- )
20
-
21
-
22
- def __example():
23
- print(generate_default_api_key())
24
- print(generate_default_long_id())
25
-
26
-
27
- if __name__ == '__main__':
28
- __example()
@@ -8,7 +8,7 @@ from project.sqlalchemy_db_.sqlalchemy_model import ApiKeyDBM
8
8
  _logger = logging.getLogger(__name__)
9
9
 
10
10
 
11
- def make_test_data_1():
11
+ def make_test_api_keys():
12
12
  get_cached_settings().raise_if_prod_mode()
13
13
  with get_cached_sqlalchemy_db().new_session() as session:
14
14
  session.query(ApiKeyDBM).delete()
@@ -25,7 +25,7 @@ async def async_make_test_data_1():
25
25
 
26
26
 
27
27
  def __example():
28
- make_test_data_1()
28
+ make_test_api_keys()
29
29
 
30
30
 
31
31
  async def __async_example():
@@ -1,11 +1,47 @@
1
1
  import asyncio
2
+ import logging
2
3
 
3
4
  from project.core.settings import get_cached_settings
5
+ from project.core.util import setup_logging
6
+ from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
7
+ from project.sqlalchemy_db_.sqlalchemy_model import ApiKeyDBM, UserDBM, UserTokenDBM
8
+
9
+ _logger = logging.getLogger(__name__)
4
10
 
5
11
 
6
12
  def make_test_data_1():
13
+ setup_logging()
14
+
7
15
  get_cached_settings().raise_if_prod_mode()
8
16
 
17
+ get_cached_sqlalchemy_db().reinit()
18
+
19
+ with get_cached_sqlalchemy_db().new_session() as session:
20
+
21
+ for i in range(1000):
22
+ api_key = ApiKeyDBM(value=str(i + 1))
23
+ session.add(api_key)
24
+ _logger.info(api_key)
25
+ session.commit()
26
+
27
+ arpakit_user = UserDBM(
28
+ email="arpakit@gmail.com",
29
+ username="arpakit",
30
+ roles=[UserDBM.Roles.client, UserDBM.Roles.admin],
31
+ is_active=True,
32
+ password="123",
33
+ tg_id=269870432
34
+ )
35
+ session.add(arpakit_user)
36
+ session.commit()
37
+ _logger.info(arpakit_user)
38
+
39
+ for i in range(1000):
40
+ user_token_dbm = UserTokenDBM(user_id=arpakit_user.id)
41
+ session.add(user_token_dbm)
42
+ _logger.info(user_token_dbm)
43
+ session.commit()
44
+
9
45
 
10
46
  async def async_make_test_data_1():
11
47
  get_cached_settings().raise_if_prod_mode()
arpakitlib/ar_str_util.py CHANGED
@@ -65,6 +65,15 @@ def make_none_if_blank(string: Optional[str] = None) -> str | None:
65
65
  return string
66
66
 
67
67
 
68
+ def strip_or_make_none_if_blank(string: Optional[str] = None) -> str | None:
69
+ if string is None:
70
+ return None
71
+ string = string.strip()
72
+ if not string:
73
+ return None
74
+ return string
75
+
76
+
68
77
  def none_if_blank(string: Optional[str] = None) -> str | None:
69
78
  return make_none_if_blank(string=string)
70
79
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arpakitlib
3
- Version: 1.8.53
3
+ Version: 1.8.57
4
4
  Summary: arpakitlib
5
5
  License: Apache-2.0
6
6
  Keywords: arpakitlib,arpakit,arpakit-company,arpakitcompany,arpakit_company
@@ -1,5 +1,5 @@
1
1
  arpakitlib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- arpakitlib/_arpakit_project_template_v_5/.gitignore,sha256=BItFW9CofJiiKw3vEGSM2ZuK0d0wKQgxisMn-THIb7I,603
2
+ arpakitlib/_arpakit_project_template_v_5/.gitignore,sha256=DxxKQKv1zqFyUWjoq5nj5IMNEnbhmf9uPPUYXoXexfg,612
3
3
  arpakitlib/_arpakit_project_template_v_5/.python-version,sha256=XMd40XBnlTFfBSmMldd-7VdqXNyFCy6wtxhw5e1mnhc,7
4
4
  arpakitlib/_arpakit_project_template_v_5/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
5
5
  arpakitlib/_arpakit_project_template_v_5/README.md,sha256=5j09oFYEojGB7X5j0vXoic2zsWcKq5iEwoR6xoiYQnw,77
@@ -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=-rtuyUHigstLKoYbGzr2LCkMHoyNEkWm-RC0PPqnBIs,98
11
+ arpakitlib/_arpakit_project_template_v_5/arpakitlib_project_template_info.json,sha256=rqpxK5k5tBqsfla9kO8oS9e5EfirUIJp8Vh2R9v6vmc,98
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
@@ -80,7 +80,7 @@ arpakitlib/_arpakit_project_template_v_5/project/additional_model/__init__.py,sh
80
80
  arpakitlib/_arpakit_project_template_v_5/project/additional_model/common.py,sha256=BRz-B699ZY52DfUD6kmhpuThBWpPzpZpD0QXIjlkwC8,168
81
81
  arpakitlib/_arpakit_project_template_v_5/project/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
82
  arpakitlib/_arpakit_project_template_v_5/project/api/asgi.py,sha256=ES3YGwNxWUHVyD6e2ii6QkvTyB-vlVmr8_PhfVIXQ4Y,78
83
- arpakitlib/_arpakit_project_template_v_5/project/api/authorize.py,sha256=86NyfOV0_SQcyXFrZoJph27bTK4IqtfETl46yOPfRWs,14141
83
+ arpakitlib/_arpakit_project_template_v_5/project/api/authorize.py,sha256=puOmx2OSV2ExcLqtAD1zmvfY0zbLqLxkytF5xLZTnQg,15424
84
84
  arpakitlib/_arpakit_project_template_v_5/project/api/blank/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
85
  arpakitlib/_arpakit_project_template_v_5/project/api/blank/admin.py,sha256=ii1zLHjvB7OVLQKFOhp4lpodXcwAmtwDdrM1iaafQfg,100
86
86
  arpakitlib/_arpakit_project_template_v_5/project/api/blank/client.py,sha256=rvJKtAB26Qy2pKVSHSMUM_70oI4v8Yr6Vmpr6r4EzNk,101
@@ -94,33 +94,35 @@ 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
99
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/create_operation.py,sha256=rnypweyZVi7d0ifWHSeQvUtpMPRelSYOv_pTtltvLp4,2597
100
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_arpakitlib_project_template_info.py,sha256=RDbxtAnUsdpiPWslVZNBkhk6klxbxhnO8S58mOAI3m8,1513
101
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_auth_data.py,sha256=gney8IDXu7Qm1Sd09at7TNfo1JC2-ap0MlDomvdYGJI,1385
97
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/check_sqlalchemy_db.py,sha256=dimBgJ7xuYUJr5YFKyq1HFg32m1bFdiyV9tnH_rH-ic,1480
98
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/clear_log_file.py,sha256=uvRVcjb7CxE_OfhALWm4JvuyKWZ8Xuys0ahAj6XsUCs,1517
99
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/create_operation.py,sha256=UGoZWQVgJaGremDFg0ISmqJhK9Y9OP1oH1cJM0FtLZ4,2612
100
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_arpakitlib_project_template_info.py,sha256=9ezzBnXhiBWQUUL7pnGA8o6OSwHkUjeaT5dsLdqO7og,1532
101
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_auth_data.py,sha256=im_EVRHvEPTaET40V2Rw_nKSlhiLWdKfn_DZZ5MrXqY,1404
102
102
  arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_log_file.py,sha256=rzEPco45I-4FzrlbI3z5B-smhrHFIVIsDiHtTULoE4g,1162
103
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation.py,sha256=bF2IstPPA2I1v29aoPBHsxlQhWI9bzAWBjGfg8lDUpg,2416
104
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation_allowed_statuses.py,sha256=gRvpuBo60rDpzBhRtS2ElRjHS9KZqKgJQaiSjoY8BZY,1328
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
107
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_sqlalchemy_db_table_name_to_amount.py,sha256=6XFnF-Yv2QajvY7OfPphjDDlOVb5xVz8afY6f_-NqWc,1391
108
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_story_log.py,sha256=7y2OFyEePVooC6REPII64s_WbEWs3GSltpQLGaBKgQA,2406
109
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/init_sqlalchemy_db.py,sha256=PRsYoEfej5qAFspBqqQCDRZXOIwF358QIzh1HuYIDl4,1493
110
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/main_router.py,sha256=hOpea2gHlVkiHaq4M8_y1kNfrjC7RJ1qk6O4D4q19Jw,2243
103
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation.py,sha256=1-n4PvCMEz-w48rdLMZqHfQ8VJDQLkIfYSu-356syUQ,2431
104
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation_allowed_statuses.py,sha256=WpOczCw0J4tR9Bmp73jSeQDj4JssC7_uG2rnj9WqcKc,1343
105
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation_allowed_types.py,sha256=tHfmoTO2zHcIZ3pvZu2ABZFJqRE12noYvswEjxnuLX0,1322
106
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_settings.py,sha256=isw9ThGhaqhrWCzKreY_iH1AZDJXEYfRVJt8LPSR9sA,1380
107
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_sqlalchemy_db_table_name_to_amount.py,sha256=Q6H_h7r9RJ5CnBBs3xxL38GgiI7jQzRjmh_8APh5UMY,1410
108
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_story_log.py,sha256=yyAohbWtA8xH7WZhdfqdzouCd5ps5ec-1TQcrcKjW94,2421
109
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_user.py,sha256=I7-g9lhgdl5hVYZB-uYiz3bNyg-vQDAFc9-8SIJ4nSQ,3151
110
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/init_sqlalchemy_db.py,sha256=aMoE6DcLHOGfi2bsFz4CKjLmkzRth_IpgaorwUyzzH0,1508
111
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/main_router.py,sha256=pu5-H9JlXhsVrY4a2ajbgeTbPo9ijIGSiq7J1Q77QT0,2479
112
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/make_test_data_1.py,sha256=gjtCdTC05nL8iKVK7FWSvOere0jHusM_ilMordTI1pM,1344
111
113
  arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/raise_fake_error.py,sha256=kMr06QR39XVUoVwUuwJHoQmaWHvlfi2j53ZCMX3CU48,1048
112
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/reinit_sqlalchemy_db.py,sha256=oZNxVfGP83uM5WKh0-3uJRCYRuxlSJ7lAtRGOBTg0lM,1509
114
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/reinit_sqlalchemy_db.py,sha256=Y7_gxVvo_x6qJ47pSwFI3d-cAjhUCFzyOa1VPlCTOYE,1524
113
115
  arpakitlib/_arpakit_project_template_v_5/project/api/router/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
- arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user.py,sha256=DuWA3Ntn82LcSp-rzSemyWbqPPK3JEWvQFxImPNUkSw,1352
115
- arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user_token.py,sha256=hNobsdD0Mk-d1ef301uNn5OUn2JmfCLh9fw6RVrV0mU,1424
116
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user.py,sha256=YTagkWseHJuE6-Xqoka_5ZoQSRV50-E4YbB5qd23W5c,1370
117
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user_token.py,sha256=pAqcWgycsqyGGrM_SdJw5wmWse9EUA1jES3Ma3iZl30,1442
116
118
  arpakitlib/_arpakit_project_template_v_5/project/api/router/client/main_router.py,sha256=IIy6VxG5xPR4ZjGaMwDM59izMIMoFxjqVmAvh-Fq330,386
117
119
  arpakitlib/_arpakit_project_template_v_5/project/api/router/general/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
- arpakitlib/_arpakit_project_template_v_5/project/api/router/general/check_authorization.py,sha256=BLdi7YYF7Xvf3gn3TATH_q__sI4EZCtQYz-7Xp3SAkU,1759
119
- arpakitlib/_arpakit_project_template_v_5/project/api/router/general/get_current_api_key.py,sha256=iIwIC798U-1_pMeA6C0mHGPYZ8f9czoOL09o4z_hamw,1333
120
- arpakitlib/_arpakit_project_template_v_5/project/api/router/general/get_errors_info.py,sha256=RDB8DHGGmKGo_e5NMvClptKOnrbO6mlAr-YI3E0jyLY,1158
121
- arpakitlib/_arpakit_project_template_v_5/project/api/router/general/healthcheck.py,sha256=A0pEyK9W117MyX2DNlOq8wTBlu5QJ1WOVt8D8LAmX_8,675
120
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/general/check_authorization.py,sha256=fN9PB246JWs0frWDsLHmEI2pZYUG_0NsPl5FUNvz0ac,1875
121
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/general/get_current_api_key.py,sha256=J2jXaJrrvywtN5maDMhuSsMWAxYHQw-4Jrn_gnZWMUg,1354
122
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/general/get_errors_info.py,sha256=bf4G2t7f67waQZ0GuNsuoqxfHmq17yKA3JVSLp--og4,1179
123
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/general/healthcheck.py,sha256=8nWE1bMw3TzkEsIj4oSnGalfee2YWcov2S1seG165to,696
122
124
  arpakitlib/_arpakit_project_template_v_5/project/api/router/general/main_router.py,sha256=zYei_6fiEVRkP3fuhCmu_c1rNzTUULAlh18PckTKfR4,774
123
- arpakitlib/_arpakit_project_template_v_5/project/api/router/general/now_utc_datetime.py,sha256=AF6Z0pD3n_-xol1JLWKC2JWYEELvsS_09jTheEV-bFE,1041
125
+ arpakitlib/_arpakit_project_template_v_5/project/api/router/general/now_utc_datetime.py,sha256=dE6MfqvkYQ0PW_ch0ct1Cl1kGnBm34PGq0-m14OUUkg,1062
124
126
  arpakitlib/_arpakit_project_template_v_5/project/api/router/main_router.py,sha256=Y-PPHWbLoICn0O8NRdx49f7ifEw2uN_QIRwfIseo0J0,615
125
127
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
128
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/common.py,sha256=Y-UWXglWqqssubvKrWeTvxuN3tjrGK40769wosoFaJg,1108
@@ -134,21 +136,22 @@ arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/general/__init__
134
136
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/in_/general/common.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
135
137
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
136
138
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
137
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/common.py,sha256=jHSafKaLj5WDvdfvPFNm65gVvq6Lh5fK0o3AOjl40jI,521
139
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/common.py,sha256=7c9e45xW9TmBMedEdAgVGy5vSJ4m_oEUTxteMsldLLA,597
138
140
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/operation.py,sha256=NLxlU7ayPw99912w-z4_v8x9rUbzRVcizWm7ZL64-vs,839
139
141
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/story_log.py,sha256=oA-9kw5pb4ScGf66cf-zxq571zc2kmxYvtOE6SZD4q4,571
142
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/user.py,sha256=EfPcfuYN1Uqxo9zQSbo3PU5zb46qa4v1HpEchWHk4LI,1025
140
143
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/common.py,sha256=mva3ZennQvOjdaT5dQokazSuM6d-KHxDhccDc86_FYs,544
142
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user.py,sha256=i6kO7-m1ui2rW994A-V2dWIdsTBHAtZoOJccLI6TSSc,929
144
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/common.py,sha256=yCDLd4q5X9QoRdJ2FzLKa__2yuoivPuhoHpnnhuNNw0,545
145
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user.py,sha256=wWBaNw6blbv5Dt9BzwnheaH0h1E-8gkc63kkwcEKYvk,1005
143
146
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/client/user_token.py,sha256=htz_qXorrCsszxM10T4aca5O9v_Z4t4c_mPBEjC7WaI,514
144
147
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
145
148
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/datetime_.py,sha256=YFo29Qc7JMVq-OR398kPy4ypjh9kYAxPuZZUsobhDdc,942
146
149
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/error.py,sha256=C8oaHotxmxBnN7Lr1qT7T5Mk0SIU2Ha7_tPDpgiR6M8,286
147
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/raw_data.py,sha256=F0CGmdqDAqnpoJW1q_yaRa4OsaSI4UbsCXavCxxDZVQ,132
150
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/common/raw_data.py,sha256=T7DWPHlno37-2qfQLLGXY2_4Ajs_l9_UxDDF1VGdpqk,136
148
151
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
149
152
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/api_key.py,sha256=T4hfR_W6YvCRory4dDampgjx5kiR13rTYCTMH6exxnE,509
150
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/common.py,sha256=0I4hOs9ihpd4BS0M8P_BLXH7TxDLQtV4HQb-h9pz1uA,470
151
- arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user.py,sha256=VKVdWSLhe2BSHHes33T0ym0GZU6HfxP8GWMrRpO2eZs,931
153
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/common.py,sha256=4j2yZm8B1UfRx5-i-cSfN7sVUvNRwknD6GDTsUVIqpk,547
154
+ arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user.py,sha256=MWXn38V2BdAwzl7kmMwuet9140_h_RcaoXhD3DOJVy8,1007
152
155
  arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/general/user_token.py,sha256=urosLMyy3eznYMSFQftD-H4vjZsLVQojqQ0aU2gKXZs,516
153
156
  arpakitlib/_arpakit_project_template_v_5/project/api/util.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
154
157
  arpakitlib/_arpakit_project_template_v_5/project/business_service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -165,6 +168,7 @@ arpakitlib/_arpakit_project_template_v_5/project/core/settings.py,sha256=MRf_7zU
165
168
  arpakitlib/_arpakit_project_template_v_5/project/core/util.py,sha256=1ha9UrguVPsTSjoMHhVZVCD0_mNBfhIDGEvcG1nA4Zw,667
166
169
  arpakitlib/_arpakit_project_template_v_5/project/json_db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
170
  arpakitlib/_arpakit_project_template_v_5/project/json_db/json_db.py,sha256=tBML-z4Y7uY8f_0ggcxvlDNt15Sf93Jr_OUeHwWxqOA,724
171
+ arpakitlib/_arpakit_project_template_v_5/project/more/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
172
  arpakitlib/_arpakit_project_template_v_5/project/more/helloworld,sha256=eH7Hbcr9IMGQjrCTahL5Ht0QWrXNfswrGuIDJkg0Xf8,11
169
173
  arpakitlib/_arpakit_project_template_v_5/project/operation_execution/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
174
  arpakitlib/_arpakit_project_template_v_5/project/operation_execution/const.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
@@ -198,7 +202,7 @@ arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swag
198
202
  arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.js,sha256=yHKu9z0C2kOO5j9n9D8oQzuBLeEoMGrFcMWQN27V554,339285
199
203
  arpakitlib/_arpakit_project_template_v_5/project/resource/static/swagger-ui/swagger-ui.js.map,sha256=jeX-b8zAm2jsTGGCznrc49McbLKSfXspwECPhEAp0Xc,1159444
200
204
  arpakitlib/_arpakit_project_template_v_5/project/sandbox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
201
- arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_1.py,sha256=xKSp7tIBu3Ffp_kgJkwVtdam3BcoFZ44JPVHoRRaP0E,163
205
+ arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_1.py,sha256=MrrHV0l-u98iWSpretBlf3JhRNpA3euxuR1tIR3JsRI,373
202
206
  arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_2.py,sha256=xKSp7tIBu3Ffp_kgJkwVtdam3BcoFZ44JPVHoRRaP0E,163
203
207
  arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_3.py,sha256=xKSp7tIBu3Ffp_kgJkwVtdam3BcoFZ44JPVHoRRaP0E,163
204
208
  arpakitlib/_arpakit_project_template_v_5/project/sandbox/sandbox_4.py,sha256=xKSp7tIBu3Ffp_kgJkwVtdam3BcoFZ44JPVHoRRaP0E,163
@@ -215,7 +219,7 @@ arpakitlib/_arpakit_project_template_v_5/project/site/router/__init__.py,sha256=
215
219
  arpakitlib/_arpakit_project_template_v_5/project/site/router/main_router.py,sha256=J5jNfgd-3OiWTtuubimEUz6wrOogupj9PkUdDmwz-2U,62
216
220
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
217
221
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/add_admin_in_app.py,sha256=JTXLf18DQVsZtoe6yFpZIVJI95rgJofnTe9YKyVwwhQ,851
218
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/admin_authorize.py,sha256=S5BtbbLEl-D0DlwDPOkWYpjqQhFaUoqvvlElAmbP25c,4937
222
+ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/admin_authorize.py,sha256=tmvYx5hFO2RqHmhKktpMRJaBuT6vDHBOsQujihO7sMw,4983
219
223
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/asgi.py,sha256=DRlRPkcOGXOccfP73oKEXolZTsc5VWdQgEG-qoW03ms,99
220
224
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/create_sqladmin_app.py,sha256=x5F8--5KA4cmTrb6kAAmp6fVd2TiqxPOzxqUkSEhSG4,1298
221
225
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/event.py,sha256=LjAUYNlsX9Sj_QLMzYuTQbbYYbIMHhbsSjTXt-G7lOE,849
@@ -224,22 +228,22 @@ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/api_key.py
224
228
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/common.py,sha256=US1tueTCPvAdse6TLT6yRLUHbvwGGagApYhFJzE_6Yc,576
225
229
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/operation.py,sha256=ZPoq3SueGJfR_aWk-a6dIHRNmO1Qa-8kHUW0aR4ZW3g,920
226
230
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/story_log.py,sha256=GMSICxW_A8RTCtoENDEjce-R8GRLKtHa-OU5OLMdH5s,720
227
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user.py,sha256=UKrHZeEchvTqZWCpkuaMuhSXhaK6hyG8HTZOAT-B6W8,822
231
+ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user.py,sha256=BRSxjKXNexvYoebuUSv9FMCPiZGfsLh2KaOGZSvuAls,848
228
232
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user_token.py,sha256=OvvWwzZV6QJGt5XL1KPgPSVN5TvBeawgbWSFYX81KUQ,802
229
233
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
230
234
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/const.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
231
235
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_db.py,sha256=1y3FaMFzm_5UM2poqtBve_UP_mh1vjs--krq6yO8PsA,742
232
236
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/__init__.py,sha256=btSjCQ7RJqomeXzYs9HePCu1dZHs0z6-RuboYKG89_8,598
233
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py,sha256=XBw5qVM6Qc5i5Sgercec90y2RhqhMZWouVXd1vTKay4,1310
234
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py,sha256=rS8Ph1Sn61zuLEfyoDFzVT6qDzLi8PRmy7Kq2wY5oTc,2089
235
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py,sha256=rwLyqChjx_EOsw9nj333NFxZJ1Qpfj9Yz6POO4Wq690,3670
236
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py,sha256=iarF0bREQAlXlqw0XvTEPkYVAUdRz4idAZEOnqISfCY,1451
237
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user.py,sha256=ZWLbnikEXbCiXdzv8cD6MKF7PsXx5auDWoqoESNwy_w,5257
238
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py,sha256=_eKTUI4vLobPBEY21MYgs4U4BHKXL-Y6unzxLcfVn2g,1616
239
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/util.py,sha256=QSA_nT6aWdtE412-Uj3VTd7yh3dzS4HugDK9FivjTPo,570
237
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py,sha256=R-wAGtRtRS4CjW2DPJ9ZUyRnMqICWTaqyUTlhsAd7LY,2026
238
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py,sha256=o4PQRvc7CQ-kVW3fv9L0KcXsBTi0vPehp72yhWBFrII,3042
239
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py,sha256=op5cSkTlHJyGjULgcSWE9-_PNinKSneHLxhG5DUkd9M,5913
240
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py,sha256=wig_D6OZyYYGsqZEbmSK56qoAIOnOVnOEB_sRSZLSIU,2396
241
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user.py,sha256=s1iRaaOz90g5v3wskacXdAEDFssAheL1tt1kmCxZEHM,6652
242
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py,sha256=mRxAbPQj2Re99rJ9VZSkXKqvtXGwirp4pfTPObskKWc,2019
243
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/util.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
240
244
  arpakitlib/_arpakit_project_template_v_5/project/test_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
241
- arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_api_keys.py,sha256=GWRgXK0wI9ARwY574NPyGXybZSZcDPrXwYCp8jDdtx4,907
242
- arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_1.py,sha256=fioAaw5sWtZdOuHsl1kbVxuU_g0IK8N-gyKlMzVi8FE,416
245
+ arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_api_keys.py,sha256=9F2bMfymaqx_Czh_tF945BKpKqNrVNjSIfCQl13Dkxw,911
246
+ arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_1.py,sha256=UoGSmEMmgEw57maYGRotiiH6vaYfk3PH4SW0D7bDqLw,1530
243
247
  arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_2.py,sha256=VcCvxRLA0XnLaQcsaoZkIVV8rTO3uMyLTYoEsdxKtYE,416
244
248
  arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_3.py,sha256=9QJTgM4qsJXPgFhfVueQ9vObXr_dAldzP_p8dPO42uA,416
245
249
  arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_data_4.py,sha256=OyU9601WACF7cCpPT33x6CpizNJeQIPDDFezIvEO01A,416
@@ -363,14 +367,12 @@ arpakitlib/ar_sleep_util.py,sha256=OaLtRaJQWMkGjfj_mW1RB2P4RaSWsAIH8LUoXqsH0zM,1
363
367
  arpakitlib/ar_sqladmin_util.py,sha256=Jd33EX_fAso4bvrcDhNEYOUlUHkudbadNGOJDg7rqhQ,301
364
368
  arpakitlib/ar_sqlalchemy_util.py,sha256=iuxEXxC4nOADTg62D3dwp-PmGaWK-RDiELCALX1MRqE,13303
365
369
  arpakitlib/ar_ssh_runner_util.py,sha256=yvAwza480MkHKvLkDEsR7JNh2bYNs6P9rCVo4NA85NE,6865
366
- arpakitlib/ar_steam_payment_api_client_util.py,sha256=onvb3jt9bWfsCLbVLaApbN_-cqCu1CduVhM9GhG5yTA,250
367
- arpakitlib/ar_str_util.py,sha256=QWlXMYgGOh_m0uXwUywF9R6g_zJ0Rh9YSfU_eVzPh7g,4208
370
+ arpakitlib/ar_str_util.py,sha256=NisRtt4xwE7qthkkXzL49jvGKMGlvJ4KKcvpQfmRlIw,4415
368
371
  arpakitlib/ar_type_util.py,sha256=Cs_tef-Fc5xeyAF54KgISCsP11NHyzIsglm4S3Xx7iM,4049
369
- arpakitlib/ar_wata_api_client.py,sha256=gdHOqDbuqxhTjVDtRW1DvkRJLdDofCrOq51GTctzLns,242
370
372
  arpakitlib/ar_yookassa_api_client_util.py,sha256=VozuZeCJjmLd1zj2BdC9WfiAQ3XYOrIMsdpNK-AUlm0,5347
371
373
  arpakitlib/ar_zabbix_api_client_util.py,sha256=oHNS-2WckQxp7cVqsRne9JgkP9I7RQGBKVKZSMLN8zw,9427
372
- arpakitlib-1.8.53.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
373
- arpakitlib-1.8.53.dist-info/METADATA,sha256=9DAfd4SzfQQoV20v5mO5_4Vz08akijHunHZ7zacTgrs,3475
374
- arpakitlib-1.8.53.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
375
- arpakitlib-1.8.53.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
376
- arpakitlib-1.8.53.dist-info/RECORD,,
374
+ arpakitlib-1.8.57.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
375
+ arpakitlib-1.8.57.dist-info/METADATA,sha256=M5NKuwBJkl4GnFxvWNheokMBOkB7rl25fX8Q1WAcMZ8,3475
376
+ arpakitlib-1.8.57.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
377
+ arpakitlib-1.8.57.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
378
+ arpakitlib-1.8.57.dist-info/RECORD,,
@@ -1,21 +0,0 @@
1
- # arpakit
2
- import asyncio
3
-
4
- _ARPAKIT_LIB_MODULE_VERSION = "3.0"
5
-
6
-
7
- class SteamPaymentAPIClient:
8
- pass
9
-
10
-
11
- def __example():
12
- pass
13
-
14
-
15
- async def __async_example():
16
- pass
17
-
18
-
19
- if __name__ == '__main__':
20
- __example()
21
- asyncio.run(__async_example())
@@ -1,21 +0,0 @@
1
- # arpakit
2
- import asyncio
3
-
4
- _ARPAKIT_LIB_MODULE_VERSION = "3.0"
5
-
6
-
7
- class WataAPIClient:
8
- pass
9
-
10
-
11
- def __example():
12
- pass
13
-
14
-
15
- async def __async_example():
16
- pass
17
-
18
-
19
- if __name__ == '__main__':
20
- __example()
21
- asyncio.run(__async_example())