arpakitlib 1.8.185__py3-none-any.whl → 1.8.186__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.
@@ -1,3 +1,4 @@
1
+ from arpakitlib.ar_sqladmin_util import get_string_info_from_model_view
1
2
  from project.sqladmin_.model_view.api_key import ApiKeyMV
2
3
  from project.sqladmin_.model_view.common import SimpleMV
3
4
  from project.sqladmin_.model_view.operation import OperationMV
@@ -5,3 +6,7 @@ from project.sqladmin_.model_view.story_log import StoryLogMV
5
6
  from project.sqladmin_.model_view.user import UserMV
6
7
  from project.sqladmin_.model_view.user_token import UserTokenMV
7
8
  from project.sqladmin_.model_view.verification_code import VerificationCodeMV
9
+
10
+
11
+ if __name__ == '__main__':
12
+ print(get_string_info_from_model_view(class_=SimpleMV))
@@ -1,10 +1,23 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from typing import Any
4
+
3
5
  from sqladmin import ModelView
6
+ from sqlalchemy.orm.attributes import InstrumentedAttribute
4
7
 
5
8
 
6
9
  def get_string_info_from_model_view(class_: type[ModelView]):
7
- res = f"Model Views: {len(class_.__subclasses__())}"
10
+ lines = [f"ModelViews: {len(class_.__subclasses__())}"]
8
11
  for i, cls in enumerate(class_.__subclasses__()):
9
- res += f"\n{i + 1}. {cls.__name__}"
10
- return res
12
+ if hasattr(cls, "__name__"):
13
+ lines.append(f"{i + 1}. ModelView: {cls.__name__}")
14
+ for v in cls.column_list:
15
+ v: str | InstrumentedAttribute | Any
16
+ if isinstance(v, str):
17
+ lines.append(f" - {v}")
18
+ elif isinstance(v, InstrumentedAttribute):
19
+ lines.append(f" - {v}")
20
+ else:
21
+ raise TypeError(f"unknown type, {type(v)=}")
22
+
23
+ return "\n".join(lines)
@@ -314,10 +314,10 @@ def get_string_info_from_declarative_base(class_: type[DeclarativeBase]):
314
314
 
315
315
 
316
316
  def get_string_info_from_declarative_base_2(class_: type[DeclarativeBase]) -> str:
317
- lines: list[str] = []
318
- for cls in class_.__subclasses__():
317
+ lines: list[str] = [f"DBModels: {len(class_.__subclasses__())}"]
318
+ for i, cls in enumerate(class_.__subclasses__()):
319
319
  if hasattr(cls, "__tablename__"):
320
- lines.append(f"Table: {cls.__tablename__}")
320
+ lines.append(f"{i + 1}. DBModel: {cls.__tablename__}")
321
321
  mapper = inspect(cls)
322
322
  for column in mapper.columns:
323
323
  lines.append(f" - {column.name} ({column.type})")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arpakitlib
3
- Version: 1.8.185
3
+ Version: 1.8.186
4
4
  Summary: arpakitlib
5
5
  License: Apache-2.0
6
6
  Keywords: arpakitlib,arpakit,arpakit-company,arpakitcompany,arpakit_company
@@ -246,7 +246,7 @@ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/admin_authorize.py,sh
246
246
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/asgi.py,sha256=DRlRPkcOGXOccfP73oKEXolZTsc5VWdQgEG-qoW03ms,99
247
247
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/create_sqladmin_app.py,sha256=JGCHgqJJvAjpc8xnbXPqCeUiLeKO7eo6OA6uPYzzqlk,1308
248
248
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/event.py,sha256=LjAUYNlsX9Sj_QLMzYuTQbbYYbIMHhbsSjTXt-G7lOE,849
249
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/__init__.py,sha256=dc_swzjkRDj85SWQ3cGGgsrp_cq5evUYQYUg0g7C5nw,435
249
+ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/__init__.py,sha256=aKX6k2bEVvfXa9dATYts-sUoWgf4MV3H_PiiUceejr4,596
250
250
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/api_key.py,sha256=VTpepKLCKrPnftGD-8Ibp75S0dwUrLlUytRfcXDDcKg,1597
251
251
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/common.py,sha256=s8mmdwb5eRcdNM_lZpj2UOhvc1ckRhUubjniQ-dDIK0,2504
252
252
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/operation.py,sha256=3jvDgLyOJe7U1UmJFgYOh6tlATM60PCCnIJDSFUW4tk,3595
@@ -408,13 +408,13 @@ arpakitlib/ar_safe_func.py,sha256=ayX0K107yoqPDjpJ4fLvhMg-RX6qQ_w9z9py9i_3dLk,21
408
408
  arpakitlib/ar_schedule_uust_api_client_util.py,sha256=rXI2_3OTaIBgR-GixM1Ti-Ue1f9nOcO3EUpYRqdGpYM,6973
409
409
  arpakitlib/ar_settings_util.py,sha256=Y5wi_cmsjDjfJpM0VJHjbo0NoVPKfypKaD1USowwDtQ,1327
410
410
  arpakitlib/ar_sleep_util.py,sha256=ggaj7ML6QK_ADsHMcyu6GUmUpQ_9B9n-SKYH17h-9lM,1045
411
- arpakitlib/ar_sqladmin_util.py,sha256=Jd33EX_fAso4bvrcDhNEYOUlUHkudbadNGOJDg7rqhQ,301
412
- arpakitlib/ar_sqlalchemy_util.py,sha256=EazddvNUZrotsbJMMYQ8RTG8tAc5hrN-CRfKnxkQK_I,12196
411
+ arpakitlib/ar_sqladmin_util.py,sha256=zE2rn52IM7V7Tn2d3bG5336qWhJBayHhxnSTLE6GY7U,827
412
+ arpakitlib/ar_sqlalchemy_util.py,sha256=I7PHI8ynFVeiVbDTYkUReZIVb7_bskB1B6pwVIhF7Uc,12264
413
413
  arpakitlib/ar_str_util.py,sha256=2lGpnXDf2h1cBZpVf5i1tX_HCv5iBd6IGnrCw4QWWlY,4350
414
414
  arpakitlib/ar_type_util.py,sha256=Cs_tef-Fc5xeyAF54KgISCsP11NHyzIsglm4S3Xx7iM,4049
415
415
  arpakitlib/ar_yookassa_api_client_util.py,sha256=VozuZeCJjmLd1zj2BdC9WfiAQ3XYOrIMsdpNK-AUlm0,5347
416
- arpakitlib-1.8.185.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
417
- arpakitlib-1.8.185.dist-info/METADATA,sha256=rjOJzJEr_sOqkZDu7rDPBkGD060JVoNHZJn01YJ0rZE,3741
418
- arpakitlib-1.8.185.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
419
- arpakitlib-1.8.185.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
420
- arpakitlib-1.8.185.dist-info/RECORD,,
416
+ arpakitlib-1.8.186.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
417
+ arpakitlib-1.8.186.dist-info/METADATA,sha256=UIRbASMCSMtJ8DmKQAJIrxmY0B66EHTJ1rS8XDSmB6Q,3741
418
+ arpakitlib-1.8.186.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
419
+ arpakitlib-1.8.186.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
420
+ arpakitlib-1.8.186.dist-info/RECORD,,