arpakitlib 1.5.19__py3-none-any.whl → 1.5.20__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.

Potentially problematic release.


This version of arpakitlib might be problematic. Click here for more details.

@@ -19,7 +19,7 @@ def now_utc_dt() -> datetime:
19
19
  return datetime.now(tz=pytz.UTC)
20
20
 
21
21
 
22
- def now_dt(tz = pytz.UTC) -> datetime:
22
+ def now_dt(tz=pytz.UTC) -> datetime:
23
23
  return datetime.now(tz=tz)
24
24
 
25
25
 
@@ -1,49 +1,15 @@
1
1
  import logging
2
- from datetime import timedelta, datetime
2
+ from datetime import timedelta
3
3
  from typing import Any
4
4
  from uuid import uuid4
5
5
 
6
- from sqlalchemy import create_engine, QueuePool, text, func, inspect, INTEGER, TEXT, TIMESTAMP
7
- from sqlalchemy.orm import sessionmaker, DeclarativeBase, Mapped, mapped_column
6
+ from sqlalchemy import create_engine, QueuePool, text, func
7
+ from sqlalchemy.orm import sessionmaker
8
8
  from sqlalchemy.orm.session import Session
9
9
 
10
- from arpakitlib.ar_datetime_util import now_utc_dt
11
- from arpakitlib.ar_json_util import safely_transfer_to_json_str
12
-
13
10
  _ARPAKIT_LIB_MODULE_VERSION = "3.0"
14
11
 
15
12
 
16
- class BaseDBM(DeclarativeBase):
17
- __abstract__ = True
18
- _bus_data: dict[str, Any] | None = None
19
-
20
- @property
21
- def bus_data(self) -> dict[str, Any]:
22
- if self._bus_data is None:
23
- self._bus_data = {}
24
- return self._bus_data
25
-
26
- def simple_dict(self) -> dict[str, Any]:
27
- return {c.key: getattr(self, c.key) for c in inspect(self).mapper.column_attrs}
28
-
29
- def simple_json(self) -> str:
30
- return safely_transfer_to_json_str(self.simple_dict())
31
-
32
-
33
- class SimpleDBM(BaseDBM):
34
- __abstract__ = True
35
-
36
- id: Mapped[int] = mapped_column(
37
- INTEGER, primary_key=True, autoincrement=True, nullable=False
38
- )
39
- long_id: Mapped[str] = mapped_column(
40
- TEXT, insert_default=uuid4, unique=True, nullable=False
41
- )
42
- creation_dt: Mapped[datetime] = mapped_column(
43
- TIMESTAMP(timezone=True), insert_default=now_utc_dt, index=True, nullable=False
44
- )
45
-
46
-
47
13
  class EasySQLAlchemyDB:
48
14
  def __init__(self, *, db_url: str, echo: bool = False):
49
15
  self._logger = logging.getLogger(self.__class__.__name__)
@@ -73,14 +39,17 @@ class EasySQLAlchemyDB:
73
39
  self._logger.info("celery tables data were removed")
74
40
 
75
41
  def init(self):
42
+ from arpakitlib.ar_sqlalchemy_model_util import BaseDBM
76
43
  BaseDBM.metadata.create_all(bind=self.engine, checkfirst=True)
77
44
  self._logger.info("db was inited")
78
45
 
79
46
  def drop(self):
47
+ from arpakitlib.ar_sqlalchemy_model_util import BaseDBM
80
48
  BaseDBM.metadata.drop_all(bind=self.engine, checkfirst=True)
81
49
  self._logger.info("db was dropped")
82
50
 
83
51
  def reinit(self):
52
+ from arpakitlib.ar_sqlalchemy_model_util import BaseDBM
84
53
  BaseDBM.metadata.drop_all(bind=self.engine, checkfirst=True)
85
54
  BaseDBM.metadata.create_all(bind=self.engine, checkfirst=True)
86
55
  self._logger.info("db was reinited")
@@ -101,14 +70,14 @@ class EasySQLAlchemyDB:
101
70
  return False
102
71
  return True
103
72
 
104
- def generate_unique_id(self, *, class_dbm: type[SimpleDBM]):
73
+ def generate_unique_id(self, *, class_dbm: Any):
105
74
  with self.new_session() as session:
106
75
  res: int = session.query(func.max(class_dbm.id)).scalar()
107
76
  while session.query(class_dbm).filter(class_dbm.id == res).first() is not None:
108
77
  res += 1
109
78
  return res
110
79
 
111
- def generate_unique_long_id(self, *, class_dbm: type[SimpleDBM]):
80
+ def generate_unique_long_id(self, *, class_dbm: Any):
112
81
  with self.new_session() as session:
113
82
  res: str = str(uuid4())
114
83
  while session.query(class_dbm).filter(class_dbm.long_id == res).first() is not None:
@@ -0,0 +1,42 @@
1
+ from datetime import datetime
2
+ from typing import Any
3
+ from uuid import uuid4
4
+
5
+ from sqlalchemy import inspect, INTEGER, TEXT, TIMESTAMP
6
+ from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
7
+
8
+ from arpakitlib.ar_datetime_util import now_utc_dt
9
+ from arpakitlib.ar_json_util import safely_transfer_to_json_str
10
+
11
+ _ARPAKIT_LIB_MODULE_VERSION = "3.0"
12
+
13
+
14
+ class BaseDBM(DeclarativeBase):
15
+ __abstract__ = True
16
+ _bus_data: dict[str, Any] | None = None
17
+
18
+ @property
19
+ def bus_data(self) -> dict[str, Any]:
20
+ if self._bus_data is None:
21
+ self._bus_data = {}
22
+ return self._bus_data
23
+
24
+ def simple_dict(self) -> dict[str, Any]:
25
+ return {c.key: getattr(self, c.key) for c in inspect(self).mapper.column_attrs}
26
+
27
+ def simple_json(self) -> str:
28
+ return safely_transfer_to_json_str(self.simple_dict())
29
+
30
+
31
+ class SimpleDBM(BaseDBM):
32
+ __abstract__ = True
33
+
34
+ id: Mapped[int] = mapped_column(
35
+ INTEGER, primary_key=True, autoincrement=True, nullable=False
36
+ )
37
+ long_id: Mapped[str] = mapped_column(
38
+ TEXT, insert_default=uuid4, unique=True, nullable=False
39
+ )
40
+ creation_dt: Mapped[datetime] = mapped_column(
41
+ TIMESTAMP(timezone=True), insert_default=now_utc_dt, index=True, nullable=False
42
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: arpakitlib
3
- Version: 1.5.19
3
+ Version: 1.5.20
4
4
  Summary: arpakitlib
5
5
  License: Apache-2.0
6
6
  Author: arpakit
@@ -11,9 +11,10 @@ arpakitlib/ar_arpakitlib_info.py,sha256=WwssAURbohdFcrJbU-uWPcLg3C-A564gWiS1ovIo
11
11
  arpakitlib/ar_base64_util.py,sha256=jrxR9_tCf1_4EnY7we-NZW-IjTJ1EiJkDsaoDRD0Xmk,665
12
12
  arpakitlib/ar_base_worker.py,sha256=LSgjxLyv_snasX_O9l47BgCwuvW9Q8l7wGCDCvPorLI,2419
13
13
  arpakitlib/ar_cache_file.py,sha256=zgSIFGMcet4Lcmh4LSJvOKhffFiv7ENy2ni9pnM-f9Q,3460
14
- arpakitlib/ar_datetime_util.py,sha256=zbTpM0k4q1-GwH_tpO1wA82a3u9EsdOsHrGg4tz_S7s,962
14
+ arpakitlib/ar_datetime_util.py,sha256=Gz5NoZH-zzFqFqGvCcxNqqczPTmq2M657aI2Cr1OefQ,960
15
15
  arpakitlib/ar_dict_util.py,sha256=82gl7RS9BJiLgZmihrRfrakdeE0wxhhKUNTbRY9G-uQ,408
16
16
  arpakitlib/ar_dream_ai_api_client.py,sha256=KF17_0s-bAVO6TnyWex2_KCpB_USKU_hV5jk1o332mQ,3979
17
+ arpakitlib/ar_easy_sqlalchemy_util.py,sha256=O4EXM-j8C95urv2weK8bBOaIuBrnihYx74AgIL4Dm7M,3213
17
18
  arpakitlib/ar_encrypt_and_decrypt_util.py,sha256=DTvqD1Gk1qiewmrRZFYQUJJjg9c5dvZ_ZDOPTvt7hqk,509
18
19
  arpakitlib/ar_enumeration.py,sha256=1JduJgFfygA_8zY48SmNac_WwH99F25xSvvB5YnqGWA,2243
19
20
  arpakitlib/ar_fastapi_static/redoc/redoc.standalone.js,sha256=WCuodUNv1qVh0oW5fjnJDwb5AwOue73jKHdI9z8iGKU,909365
@@ -55,14 +56,14 @@ arpakitlib/ar_postgresql_util.py,sha256=bsnp5ylMvi7qJaj5fA3QZdQ4wUtrCZxElNikMWNs
55
56
  arpakitlib/ar_run_cmd.py,sha256=2Cs1xn3jS3xfAbgIHthtLCKQC-qr1k7w15rID2Zya3A,1061
56
57
  arpakitlib/ar_safe_sleep.py,sha256=fxJIe85G62qmcHeujqu8FfHOKYfuZPz315ZW-BO_w0Q,398
57
58
  arpakitlib/ar_schedule_uust_api_client.py,sha256=bK79j0EAqQKnSYlr0Rqp2vz84hNlBrmjmjp7FADK3PU,6783
58
- arpakitlib/ar_sqlalchemy_util.py,sha256=b91DcVZ6Buzckr_BVD2wM4Rouy8-G4InIOjSB3Rvp1Q,4157
59
+ arpakitlib/ar_sqlalchemy_model_util.py,sha256=RPv5lzqCuX2_TM3gtbqXlWWUDzPrYjwlq_rRN7ANmVA,1264
59
60
  arpakitlib/ar_ssh_runner.py,sha256=-VL1RjQRVDjlnIFQfl_TTpQP05OehNxmvkfoQNgvNYw,6785
60
61
  arpakitlib/ar_str_util.py,sha256=y1KQ5q9WPMhQdmLqqL1R1GrPEEEj_Jo4dxbAPCgW780,1874
61
62
  arpakitlib/ar_type_util.py,sha256=9fSSJKWsHtXOjGcFHgfEI_1ezrHfjF_o3y1RAJvMX9c,1750
62
63
  arpakitlib/ar_yookassa_api_client.py,sha256=jCoeK9WfwGK4IUPYYsRgxWEqkNfUV5-ZJQg0b2evtTc,6438
63
64
  arpakitlib/ar_zabbix_util.py,sha256=BvtqIT4PnUw4OzzRKPpdu-nLyYZ5cMatYUDeSdXPgGw,6302
64
- arpakitlib-1.5.19.dist-info/LICENSE,sha256=1jqWIkbnMxDfs_i0SXP5qbV6PHjBr1g8506oW7uPjfg,11347
65
- arpakitlib-1.5.19.dist-info/METADATA,sha256=964TrmWKeKjdqnOumZ4PJDebb1CH861qUnDgGTLIeTc,9326
66
- arpakitlib-1.5.19.dist-info/NOTICE,sha256=wHwmiq3wExfFfgMsE5U5TOBP9_l72ocIG82KurEels0,43
67
- arpakitlib-1.5.19.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
68
- arpakitlib-1.5.19.dist-info/RECORD,,
65
+ arpakitlib-1.5.20.dist-info/LICENSE,sha256=1jqWIkbnMxDfs_i0SXP5qbV6PHjBr1g8506oW7uPjfg,11347
66
+ arpakitlib-1.5.20.dist-info/METADATA,sha256=Ed6ivVF0Ds0d9DttNx-z5rX5Zj9VA4s6X6PbiC-vtp4,9326
67
+ arpakitlib-1.5.20.dist-info/NOTICE,sha256=wHwmiq3wExfFfgMsE5U5TOBP9_l72ocIG82KurEels0,43
68
+ arpakitlib-1.5.20.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
69
+ arpakitlib-1.5.20.dist-info/RECORD,,