arpakitlib 1.8.215__py3-none-any.whl → 1.8.216__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,4 +1,4 @@
1
1
  {
2
2
  "arpakitlib_project_template_version": "5",
3
- "arpakitlib_project_template_subversion": "52"
3
+ "arpakitlib_project_template_subversion": "53"
4
4
  }
@@ -19,6 +19,7 @@ def get_default_column_formatters() -> dict[Any, Any]:
19
19
  SimpleDBM.ColumnNames.extra_data: lambda m, a: format_json_for_preview_(m.extra_data),
20
20
  }
21
21
 
22
+
22
23
  def get_default_column_formatters_detail() -> dict[Any, Any]:
23
24
  return {
24
25
  SimpleDBM.ColumnNames.creation_dt: lambda m, _: format_datetime_(m.creation_dt),
@@ -36,7 +37,6 @@ def get_default_column_searchable_list() -> list[str]:
36
37
  return [SimpleDBM.ColumnNames.id, SimpleDBM.ColumnNames.long_id, SimpleDBM.ColumnNames.uuid]
37
38
 
38
39
 
39
-
40
40
  class SimpleMV(ModelView):
41
41
  can_create = True
42
42
  can_edit = True
@@ -65,27 +65,19 @@ class SimpleMV(ModelView):
65
65
  @classmethod
66
66
  def get_default_column_list(cls) -> list[str]:
67
67
  from project.sqlalchemy_db_.sqlalchemy_model import SimpleDBM
68
- return SimpleDBM.get_mapped_column_names()
68
+ return SimpleDBM.get_column_and_relationship_names_()
69
69
 
70
70
  @classmethod
71
71
  def get_default_column_details_list(cls) -> list[str]:
72
72
  from project.sqlalchemy_db_.sqlalchemy_model import SimpleDBM
73
- return SimpleDBM.get_mapped_column_names()
73
+ return SimpleDBM.get_column_and_relationship_names_()
74
74
 
75
75
  @classmethod
76
76
  def get_default_form_columns(cls) -> list[str]:
77
77
  from project.sqlalchemy_db_.sqlalchemy_model import SimpleDBM
78
- res = SimpleDBM.get_mapped_column_names()
79
- if SimpleDBM.ColumnNames.id in res:
80
- res.remove(SimpleDBM.ColumnNames.id)
81
- if SimpleDBM.ColumnNames.long_id in res:
82
- res.remove(SimpleDBM.ColumnNames.long_id)
83
- if SimpleDBM.ColumnNames.uuid in res:
84
- res.remove(SimpleDBM.ColumnNames.uuid)
85
- if SimpleDBM.ColumnNames.slug in res:
86
- res.remove(SimpleDBM.ColumnNames.slug)
87
- if SimpleDBM.ColumnNames.creation_dt in res:
88
- res.remove(SimpleDBM.ColumnNames.creation_dt)
78
+ res = SimpleDBM.get_column_and_relationship_names_(
79
+ include_column_pk=False
80
+ )
89
81
  return res
90
82
 
91
83
  @classmethod
@@ -143,10 +143,6 @@ class SimpleDBM(BaseDBM):
143
143
  def uuid_as_str(self) -> str:
144
144
  return str(self.uuid)
145
145
 
146
- @classmethod
147
- def get_mapped_column_names(cls) -> list[str]:
148
- return [k for k, v in SimpleDBM.__dict__.items() if isinstance(v, Mapped)]
149
-
150
146
  # ---SDP---
151
147
 
152
148
  @property
@@ -68,21 +68,54 @@ class BaseDBM(DeclarativeBase):
68
68
  return self._bus_data
69
69
 
70
70
  @classmethod
71
- def get_table_column_names_(
71
+ def get_column_names_(
72
72
  cls,
73
73
  *,
74
74
  include_pk: bool = True,
75
- exclude_columns: list[str] | None = None
75
+ exclude_names: list[str] | None = None
76
76
  ) -> list[str]:
77
- exclude_columns = set(exclude_columns or [])
78
- result = []
79
- for c in cls.__table__.columns:
77
+ if exclude_names is None:
78
+ exclude_names = []
79
+ res = []
80
+ for c in inspect(cls).columns:
80
81
  if not include_pk and c.primary_key:
81
82
  continue
82
- if c.name in exclude_columns:
83
+ if c.key in exclude_names:
83
84
  continue
84
- result.append(c.name)
85
- return result
85
+ res.append(c)
86
+ return res
87
+
88
+ @classmethod
89
+ def get_relationship_names_(
90
+ cls,
91
+ *,
92
+ exclude_names: list[str] | None = None
93
+ ) -> list[str]:
94
+ if exclude_names is None:
95
+ exclude_names = []
96
+ res = []
97
+ for c in inspect(cls).relationships:
98
+ if c.key in exclude_names:
99
+ continue
100
+ res.append(c)
101
+ return res
102
+
103
+ @classmethod
104
+ def get_column_and_relationship_names_(
105
+ cls,
106
+ *,
107
+ include_column_names: bool = True,
108
+ include_column_pk: bool = True,
109
+ exclude_column_names: list[str] | None = None,
110
+ include_relationship_names: bool = True,
111
+ exclude_relationship_names: list[str] | None = None,
112
+ ) -> list[str]:
113
+ res = []
114
+ if include_column_names:
115
+ res += cls.get_column_names_(include_pk=include_column_pk, exclude_names=exclude_column_names)
116
+ if include_relationship_names:
117
+ res += cls.get_relationship_names_(exclude_names=exclude_relationship_names)
118
+ return res
86
119
 
87
120
  @classmethod
88
121
  def get_sd_property_names(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arpakitlib
3
- Version: 1.8.215
3
+ Version: 1.8.216
4
4
  Summary: arpakitlib
5
5
  License: Apache-2.0
6
6
  Keywords: arpakitlib,arpakit,arpakit-company,arpakitcompany,arpakit_company
@@ -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=IFyJL9VUoIuOAYeuLFLptd5jQMJjnRqfWOrkib9CM8E,98
11
+ arpakitlib/_arpakit_project_template_v_5/arpakitlib_project_template_info.json,sha256=aoHu_XuInN6u9CGw16RqSp5JF_iOvjJ0xoCaXOJtX_M,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
@@ -250,7 +250,7 @@ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/create_sqladmin_app.p
250
250
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/event.py,sha256=LjAUYNlsX9Sj_QLMzYuTQbbYYbIMHhbsSjTXt-G7lOE,849
251
251
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/__init__.py,sha256=aKX6k2bEVvfXa9dATYts-sUoWgf4MV3H_PiiUceejr4,596
252
252
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/api_key.py,sha256=VTpepKLCKrPnftGD-8Ibp75S0dwUrLlUytRfcXDDcKg,1597
253
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/common.py,sha256=U4KbXPAoyvgUB2BoPYUOPKLpHQLOdvZp-JdeVnC1MPY,5573
253
+ arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/common.py,sha256=1jGRO2xgNc_DwlhMoZD9C8HZi2qghjrBSnDf2dxB20Y,5150
254
254
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/operation.py,sha256=IqW9eh0u3-WFkE1oA3yjEboUW2F2zF4cKsp4_FNy2RE,3746
255
255
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/story_log.py,sha256=KTyvMty9bozjnC0bSDoTtK1H4LTFfbX_MwqP72Ip5D0,2194
256
256
  arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user.py,sha256=AhK-2YocK1dM2wMxX_xF0qnsMiI5Pu0Arj5yfDe8Noo,2669
@@ -264,7 +264,7 @@ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/const.py,sha256=
264
264
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_db.py,sha256=1y3FaMFzm_5UM2poqtBve_UP_mh1vjs--krq6yO8PsA,742
265
265
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/__init__.py,sha256=7PQqeYThEBXRrXwJZjuH7yAFu25DVr_IneuMwEF3kUE,731
266
266
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py,sha256=2X6VPkf1TKq-0319J0tL-rPMvgmkBCjim3Si1dZboMQ,1969
267
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py,sha256=OuHmYkFUPnSQ5QV8UiAjBax5GLNGGGh1zOYSjKp3nqw,4598
267
+ arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py,sha256=ynp36o48B_HNMJSAc-mw40LzhoFLSXyOWw3JOPc8gKo,4446
268
268
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py,sha256=-7uzlux8B7wtqhSd4b_06M40yTDySPIngm3Cwun2lSA,7378
269
269
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py,sha256=CiNec-x5_z0Pr5Mt-RZXJ1tKJMRn_TAKIaOioG4NK7U,2489
270
270
  arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user.py,sha256=22TE8y2Vm9byLLkIE6RVAMa29d9ILCVg1e1QYi4ONIQ,7898
@@ -411,13 +411,13 @@ arpakitlib/ar_schedule_uust_api_client_util.py,sha256=rXI2_3OTaIBgR-GixM1Ti-Ue1f
411
411
  arpakitlib/ar_settings_util.py,sha256=Y5wi_cmsjDjfJpM0VJHjbo0NoVPKfypKaD1USowwDtQ,1327
412
412
  arpakitlib/ar_sleep_util.py,sha256=ggaj7ML6QK_ADsHMcyu6GUmUpQ_9B9n-SKYH17h-9lM,1045
413
413
  arpakitlib/ar_sqladmin_util.py,sha256=SEoaowAPF3lhxPsNjwmOymNJ55Ty9rmzvsDm7gD5Ceo,861
414
- arpakitlib/ar_sqlalchemy_util.py,sha256=CX9Uc2Jri3qxEljRuMvcFjf_SQU5AdJjGBYSheAGWG4,13276
414
+ arpakitlib/ar_sqlalchemy_util.py,sha256=QJWW8AgnFH-7vJ2OBfWxg7_IWNfVTMnXpWCRxkT2A_4,14338
415
415
  arpakitlib/ar_str_util.py,sha256=2lGpnXDf2h1cBZpVf5i1tX_HCv5iBd6IGnrCw4QWWlY,4350
416
416
  arpakitlib/ar_type_util.py,sha256=Cs_tef-Fc5xeyAF54KgISCsP11NHyzIsglm4S3Xx7iM,4049
417
417
  arpakitlib/ar_yookassa_api_client_util.py,sha256=VozuZeCJjmLd1zj2BdC9WfiAQ3XYOrIMsdpNK-AUlm0,5347
418
418
  arpakitlib/clone_pydantic_model_fields.py,sha256=Gn9_AIjKknN1eIYK_xH_cMyff3hjOpfwRqs583-rnJs,1167
419
- arpakitlib-1.8.215.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
420
- arpakitlib-1.8.215.dist-info/METADATA,sha256=jHca9GY9lhfzCk8iIAl0Vpf9pNTgmWt73oaz6fzlvhM,3741
421
- arpakitlib-1.8.215.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
422
- arpakitlib-1.8.215.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
423
- arpakitlib-1.8.215.dist-info/RECORD,,
419
+ arpakitlib-1.8.216.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
420
+ arpakitlib-1.8.216.dist-info/METADATA,sha256=8VLikpn99aNZWDVqVrcnDqV0Q2P7FIN_3FKJZlWgomI,3741
421
+ arpakitlib-1.8.216.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
422
+ arpakitlib-1.8.216.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
423
+ arpakitlib-1.8.216.dist-info/RECORD,,