datahub_binary 1.9.4__cp312-cp312-win_amd64.whl → 1.9.6__cp312-cp312-win_amd64.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.
datahub/dbo/database.pyi CHANGED
@@ -1,4 +1,5 @@
1
1
  import polars as pl
2
+ import types
2
3
  from _typeshed import Incomplete
3
4
  from contextlib import contextmanager
4
5
  from datahub.utils.logger import logger as logger
@@ -12,93 +13,59 @@ class Database:
12
13
  schema: Incomplete
13
14
  session_factory: Incomplete
14
15
  def __init__(self, connection_string: str, pool_size: int = 3, max_overflow: int = 10, pool_timeout: int = 30, pool_recycle: int = 3600) -> None: ...
15
- def insert_many(self, table_name: str, data: list[dict[str, Any]]) -> int:
16
+ def begin(self) -> Database:
17
+ """开启事务"""
18
+ def commit(self) -> None:
19
+ """提交事务"""
20
+ def rollback(self) -> None:
21
+ """回滚事务"""
22
+ @property
23
+ def in_transaction(self) -> bool:
24
+ """是否在事务中"""
25
+ @contextmanager
26
+ def transaction(self) -> Generator['Database', Any, None]:
16
27
  """
17
- 批量插入数据
28
+ 事务上下文管理器,自动 commit/rollback
18
29
 
19
- :param table_name: 表名
20
- :param data: 要插入的数据列表
21
- :return: 影响的行数
30
+ Usage:
31
+ with db.transaction():
32
+ db.insert(...)
33
+ db.update(...)
22
34
  """
35
+ def insert(self, table_name: str, data: dict[str, Any]) -> int:
36
+ """插入单条数据"""
37
+ def insert_many(self, table_name: str, data: list[dict[str, Any]]) -> int:
38
+ """批量插入数据"""
23
39
  def insert_ignore(self, table_name: str, data: dict, keys: list) -> bool:
24
40
  """
25
41
  插入忽略,不存在就插入,存在就忽略(单条)
26
- :param table_name: 表名
27
- :param data: 插入数据
28
- :param keys: 关键字,关键字相同则认为数据相同
29
- :return: 是否成功
30
42
  """
31
43
  def insert_many_ignore(self, table_name: str, data: list[dict], keys: list) -> bool:
32
44
  """
33
45
  批量插入忽略,不存在就插入,存在就忽略
34
- :param table_name: 表名
35
- :param data: 插入数据 [{row1:v1, row2:v2...}...]
36
- :param keys: 关键字,关键字相同则认为数据相同
37
- :return: 是否成功
38
46
  """
39
47
  def upsert(self, table_name: str, data: dict, keys: list) -> bool:
40
- """
41
- 插入更新,不存在就插入,存在就更新
42
- :param table_name: 表名
43
- :param data: 插入数据
44
- :param keys: 关键字,关键字相同则认为数据相同
45
- :return: 是否成功
46
- """
48
+ """插入更新,不存在就插入,存在就更新"""
47
49
  def upsert_many(self, table_name: str, data: list[dict], keys: list) -> bool:
48
- """
49
- 批量插入更新,不存在就插入,存在就更新
50
- :param table_name: 表名
51
- :param data: 插入数据[{row1:v1,row2:v2...}...]
52
- :param keys: 关键字,关键字相同则认为数据相同
53
- :return: 是否成功
54
- """
50
+ """批量插入更新"""
55
51
  def update(self, table_name: str, data: dict, keys: list) -> int:
56
- '''
57
- 更新数据
58
- :param table_name: 表名
59
- :param data: 字典数据{"字段名":值}
60
- :param keys: 索引字段["ID",...]
61
- :return: 更新的行数
62
- '''
52
+ """更新数据"""
63
53
  def update_many(self, table_name: str, rows: list, keys: list) -> bool:
64
- '''
65
- 批量更新数据
66
- :param table_name: 表名
67
- :param rows: [{"字段名":值}...]
68
- :param keys: 索引字段["ID",...]
69
- :return: 更新结果
70
- '''
54
+ """批量更新数据"""
71
55
  def delete(self, table_name: str, **filters) -> int:
72
- '''
73
- 删除数据
74
- :param table_name: 表名
75
- :param filters: "字段名"=值
76
- :return: 删除行数
77
- '''
56
+ """删除数据"""
78
57
  def select(self, table_name: str, **filters) -> list[dict]:
79
- '''
80
- 查询数据
81
- :param table_name: 表名
82
- :param filters: "字段名"=值(支持单值或列表)
83
- :return: 查询结果列表
84
- '''
58
+ """查询数据"""
85
59
  def query(self, sql: str, return_format: Literal['dataframe', 'records'] = 'records') -> pl.DataFrame | list[dict] | None:
86
- """
87
- 执行原生SQL查询
88
-
89
- :param sql: SQL查询语句
90
- :param return_format: 返回格式
91
- :return: 查询结果
92
- """
60
+ """执行原生SQL查询"""
61
+ def execute(self, sql: str) -> int:
62
+ """执行原生SQL语句(INSERT/UPDATE/DELETE等)"""
93
63
  @contextmanager
94
64
  def get_session(self) -> Generator[Session, Any, None]:
95
- """获取一个数据库会话,支持用户手动管理 session 生命周期"""
65
+ """获取一个数据库会话"""
96
66
  def query_with_session(self, sql: str, session: Session, return_format: Literal['dataframe', 'records'] = 'records'):
97
- """
98
- 执行原生SQL查询
99
-
100
- :param sql: SQL查询语句
101
- :param session: 数据库会话
102
- :param return_format: 返回格式
103
- :return: 查询结果
104
- """
67
+ """使用指定 session 执行原生SQL查询"""
68
+ def close(self) -> None:
69
+ """关闭数据库连接"""
70
+ def __enter__(self) -> Database: ...
71
+ def __exit__(self, exc_type: type[BaseException] | None, exc_val: BaseException | None, exc_tb: types.TracebackType | None) -> None: ...
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datahub_binary
3
- Version: 1.9.4
3
+ Version: 1.9.6
4
4
  Summary: A comprehensive Python library for data processing, integration, and management.
5
5
  Requires-Python: <3.13,>=3.10
6
6
  Description-Content-Type: text/markdown
@@ -1,11 +1,11 @@
1
- datahub.cp312-win_amd64.pyd,sha256=T8Ut9F3uEZpJfo5gViK7Ky6IcVbAd8gW9daCPWiWOt4,1923584
1
+ datahub.cp312-win_amd64.pyd,sha256=jDEIFNy9XCFW9AZ3V3saEyzvCqxWo0ESOAwGqULRo9c,1949696
2
2
  datahub.pyi,sha256=biltT_CgztnMyL9mbp332i5vT7LUMws0bN6fdQ3WYH4,1555
3
3
  datahub/__init__.pyi,sha256=hX8D9Qd6uPjZiUBd6rIq7Llkt_H4l_RvRXsws3sdYbI,630
4
4
  datahub/datacache.pyi,sha256=Z2b3ktYv5t2y9Z1yXn0axbdoV06-GhjJhEIl_Ms-FjU,5044
5
5
  datahub/datahub.pyi,sha256=NKfhw00iPMsp0Z_q4usO_D7xB6-Hr50wRxpe3KGYH7E,51370
6
6
  datahub/setting.pyi,sha256=u6gYjjF6r1thSpp2XNMvg_1JUcqB64dRTkNoHlOoKUQ,889
7
7
  datahub/ats/client_sdk.pyi,sha256=RScBpyY2ML84RBrYt60RnHtodOwWOe5-LbnJ3nFFBGs,8710
8
- datahub/dbo/database.pyi,sha256=zGncpT29ygIdMu3i8SzApdx2X08GBBspHor_Wy7PzjU,4100
8
+ datahub/dbo/database.pyi,sha256=oD5Iw3B3FPFQqbFUufhWlwgHqnT8hsHvpDtX85A5XL8,3203
9
9
  datahub/dbo/pg.pyi,sha256=diMoeSPBqOswXYvVjtpfF5XklWqa_f20vQ1TPiHZ7WA,2077
10
10
  datahub/dbo/redis_stream.pyi,sha256=geVI1BoTHRlxodS44MquM-FY_aJt27eDqmAKf2a4PyM,1938
11
11
  datahub/dbo/sr.pyi,sha256=ZKcUUxGP-s4xGr_zF1qgVlRZcL4fkyROAOiJHuX-Fwk,28644
@@ -25,7 +25,7 @@ datahub/utils/sftp.pyi,sha256=w8S-cxJWMeWJ6--RjT95qVgng_IhwPImiyoqdCpOCQI,2107
25
25
  datahub/utils/monitor/__init__.pyi,sha256=EOwgf8CbJ4g3iUAaFoR6O-mYemJ9xjP42zlBj2KeA9c,76
26
26
  datahub/utils/monitor/base.pyi,sha256=n1dKYK73JJ_7QPkCWFc-6Aj_a16j2z_VBaQ9zkN9A3E,310
27
27
  datahub/utils/monitor/feishu.pyi,sha256=GgvJXYeX3cPOQjqpV0GJUr_Ri1_cZe2-viRBkpe6O_g,402
28
- datahub_binary-1.9.4.dist-info/METADATA,sha256=WhZ8OR0YNi_Mxrxth7-omQuKEboU846UkU99qBTqK_c,7903
29
- datahub_binary-1.9.4.dist-info/WHEEL,sha256=mktjIo72eqyqXY-lxdbITmUE47ZU2O9WYzyv0PnFKrU,96
30
- datahub_binary-1.9.4.dist-info/top_level.txt,sha256=J0rzqYfZghMgpObWaPGhQtV88I-KXrgArDvi_ddf6ZA,8
31
- datahub_binary-1.9.4.dist-info/RECORD,,
28
+ datahub_binary-1.9.6.dist-info/METADATA,sha256=PL5Lrq8jWmnnB5J0kOaEtqlxEUDa1_UR_WwLOS8qPO4,7903
29
+ datahub_binary-1.9.6.dist-info/WHEEL,sha256=mktjIo72eqyqXY-lxdbITmUE47ZU2O9WYzyv0PnFKrU,96
30
+ datahub_binary-1.9.6.dist-info/top_level.txt,sha256=J0rzqYfZghMgpObWaPGhQtV88I-KXrgArDvi_ddf6ZA,8
31
+ datahub_binary-1.9.6.dist-info/RECORD,,