datahub_binary 1.8.8__cp312-cp312-win_amd64.whl → 1.8.10__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/datahub.pyi CHANGED
@@ -79,6 +79,7 @@ class BarDataMatrix:
79
79
  """生成proto"""
80
80
 
81
81
  class RsTopic:
82
+ indicator_1min: str
82
83
  indicator_5min: str
83
84
  factor_5min: str
84
85
  predictor: str
datahub/dbo/database.pyi CHANGED
@@ -20,6 +20,45 @@ class Database:
20
20
  :param data: 要插入的数据列表
21
21
  :return: 影响的行数
22
22
  """
23
+ def upsert(self, table_name: str, data: dict, keys: list) -> bool:
24
+ """
25
+ 插入更新,不存在就插入,存在就更新
26
+ :param table_name: 表名
27
+ :param data: 插入数据
28
+ :param keys: 关键字,关键字相同则认为数据相同
29
+ :return: 是否成功
30
+ """
31
+ def upsert_many(self, table_name: str, data: list[dict], keys: list) -> bool:
32
+ """
33
+ 批量插入更新,不存在就插入,存在就更新
34
+ :param table_name: 表名
35
+ :param data: 插入数据[{row1:v1,row2:v2...}...]
36
+ :param keys: 关键字,关键字相同则认为数据相同
37
+ :return: 是否成功
38
+ """
39
+ def update(self, table_name: str, data: dict, keys: list) -> int:
40
+ '''
41
+ 更新数据
42
+ :param table_name: 表名
43
+ :param data: 字典数据{"字段名":值}
44
+ :param keys: 索引字段["ID",...]
45
+ :return: 更新的行数
46
+ '''
47
+ def update_many(self, table_name: str, rows: list, keys: list) -> bool:
48
+ '''
49
+ 批量更新数据
50
+ :param table_name: 表名
51
+ :param rows: [{"字段名":值}...]
52
+ :param keys: 索引字段["ID",...]
53
+ :return: 更新结果
54
+ '''
55
+ def delete(self, table_name: str, **filters) -> int:
56
+ '''
57
+ 删除数据
58
+ :param table_name: 表名
59
+ :param filters: "字段名"=值
60
+ :return: 删除行数
61
+ '''
23
62
  def query(self, sql: str, return_format: Literal['dataframe', 'records'] = 'dataframe') -> pl.DataFrame | list[dict] | None:
24
63
  """
25
64
  执行原生SQL查询
@@ -444,11 +444,15 @@ class StrategyControlReq(_message.Message):
444
444
  kPause: _ClassVar[StrategyControlReq.ControlType]
445
445
  kStop: _ClassVar[StrategyControlReq.ControlType]
446
446
  kClose: _ClassVar[StrategyControlReq.ControlType]
447
+ kLoadAccnt: _ClassVar[StrategyControlReq.ControlType]
448
+ kUnloadAccnt: _ClassVar[StrategyControlReq.ControlType]
447
449
  kInit: StrategyControlReq.ControlType
448
450
  kRunning: StrategyControlReq.ControlType
449
451
  kPause: StrategyControlReq.ControlType
450
452
  kStop: StrategyControlReq.ControlType
451
453
  kClose: StrategyControlReq.ControlType
454
+ kLoadAccnt: StrategyControlReq.ControlType
455
+ kUnloadAccnt: StrategyControlReq.ControlType
452
456
  MSG_TYPE_FIELD_NUMBER: _ClassVar[int]
453
457
  STRATEGY_ID_FIELD_NUMBER: _ClassVar[int]
454
458
  STRATEGY_NAME_FIELD_NUMBER: _ClassVar[int]
@@ -1422,20 +1426,22 @@ class QrySblListReq(_message.Message):
1422
1426
  def __init__(self, msg_type: _Optional[int] = ..., strategy_id: _Optional[int] = ..., sbl_ids: _Optional[_Iterable[str]] = ..., request_id: _Optional[str] = ..., last_timestamp: _Optional[int] = ...) -> None: ...
1423
1427
 
1424
1428
  class SblList(_message.Message):
1425
- __slots__ = ("sbl_id", "broker", "trade_date", "instrument_id", "intrate", "avail_sbl_qty")
1429
+ __slots__ = ("sbl_id", "broker", "trade_date", "instrument_id", "intrate", "avail_sbl_qty", "ext_info")
1426
1430
  SBL_ID_FIELD_NUMBER: _ClassVar[int]
1427
1431
  BROKER_FIELD_NUMBER: _ClassVar[int]
1428
1432
  TRADE_DATE_FIELD_NUMBER: _ClassVar[int]
1429
1433
  INSTRUMENT_ID_FIELD_NUMBER: _ClassVar[int]
1430
1434
  INTRATE_FIELD_NUMBER: _ClassVar[int]
1431
1435
  AVAIL_SBL_QTY_FIELD_NUMBER: _ClassVar[int]
1436
+ EXT_INFO_FIELD_NUMBER: _ClassVar[int]
1432
1437
  sbl_id: str
1433
1438
  broker: str
1434
1439
  trade_date: str
1435
1440
  instrument_id: str
1436
1441
  intrate: float
1437
1442
  avail_sbl_qty: int
1438
- def __init__(self, sbl_id: _Optional[str] = ..., broker: _Optional[str] = ..., trade_date: _Optional[str] = ..., instrument_id: _Optional[str] = ..., intrate: _Optional[float] = ..., avail_sbl_qty: _Optional[int] = ...) -> None: ...
1443
+ ext_info: str
1444
+ def __init__(self, sbl_id: _Optional[str] = ..., broker: _Optional[str] = ..., trade_date: _Optional[str] = ..., instrument_id: _Optional[str] = ..., intrate: _Optional[float] = ..., avail_sbl_qty: _Optional[int] = ..., ext_info: _Optional[str] = ...) -> None: ...
1439
1445
 
1440
1446
  class QrySblListRsp(_message.Message):
1441
1447
  __slots__ = ("msg_type", "sbl_list", "request_id", "status", "reason", "last_timestamp")
@@ -1454,7 +1460,7 @@ class QrySblListRsp(_message.Message):
1454
1460
  def __init__(self, msg_type: _Optional[int] = ..., sbl_list: _Optional[_Iterable[_Union[SblList, _Mapping]]] = ..., request_id: _Optional[str] = ..., status: _Optional[int] = ..., reason: _Optional[str] = ..., last_timestamp: _Optional[int] = ...) -> None: ...
1455
1461
 
1456
1462
  class LockSblReq(_message.Message):
1457
- __slots__ = ("msg_type", "strategy_id", "instrument_id", "lock_qty", "cl_order_id", "last_timestamp", "sbl_id", "intrate")
1463
+ __slots__ = ("msg_type", "strategy_id", "instrument_id", "lock_qty", "cl_order_id", "last_timestamp", "sbl_id", "intrate", "duration", "min_duration")
1458
1464
  MSG_TYPE_FIELD_NUMBER: _ClassVar[int]
1459
1465
  STRATEGY_ID_FIELD_NUMBER: _ClassVar[int]
1460
1466
  INSTRUMENT_ID_FIELD_NUMBER: _ClassVar[int]
@@ -1463,6 +1469,8 @@ class LockSblReq(_message.Message):
1463
1469
  LAST_TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
1464
1470
  SBL_ID_FIELD_NUMBER: _ClassVar[int]
1465
1471
  INTRATE_FIELD_NUMBER: _ClassVar[int]
1472
+ DURATION_FIELD_NUMBER: _ClassVar[int]
1473
+ MIN_DURATION_FIELD_NUMBER: _ClassVar[int]
1466
1474
  msg_type: int
1467
1475
  strategy_id: int
1468
1476
  instrument_id: str
@@ -1471,7 +1479,9 @@ class LockSblReq(_message.Message):
1471
1479
  last_timestamp: int
1472
1480
  sbl_id: str
1473
1481
  intrate: float
1474
- def __init__(self, msg_type: _Optional[int] = ..., strategy_id: _Optional[int] = ..., instrument_id: _Optional[str] = ..., lock_qty: _Optional[int] = ..., cl_order_id: _Optional[str] = ..., last_timestamp: _Optional[int] = ..., sbl_id: _Optional[str] = ..., intrate: _Optional[float] = ...) -> None: ...
1482
+ duration: int
1483
+ min_duration: int
1484
+ def __init__(self, msg_type: _Optional[int] = ..., strategy_id: _Optional[int] = ..., instrument_id: _Optional[str] = ..., lock_qty: _Optional[int] = ..., cl_order_id: _Optional[str] = ..., last_timestamp: _Optional[int] = ..., sbl_id: _Optional[str] = ..., intrate: _Optional[float] = ..., duration: _Optional[int] = ..., min_duration: _Optional[int] = ...) -> None: ...
1475
1485
 
1476
1486
  class LockSblRsp(_message.Message):
1477
1487
  __slots__ = ("msg_type", "strategy_id", "account_id", "instrument_id", "locked_qty", "intrate", "status", "duration", "reason", "cl_order_id", "last_timestamp", "sbl_id")
@@ -2514,18 +2524,22 @@ class QryBasketInfoReq(_message.Message):
2514
2524
  def __init__(self, msg_type: _Optional[int] = ..., template_id: _Optional[str] = ..., request_id: _Optional[str] = ...) -> None: ...
2515
2525
 
2516
2526
  class BasketInfoDetail(_message.Message):
2517
- __slots__ = ("component_instrument_id", "component_qty", "side", "comments", "position_effect")
2527
+ __slots__ = ("component_instrument_id", "component_qty", "side", "comments", "position_effect", "is_sub_cash_replace", "is_withdraw_cash")
2518
2528
  COMPONENT_INSTRUMENT_ID_FIELD_NUMBER: _ClassVar[int]
2519
2529
  COMPONENT_QTY_FIELD_NUMBER: _ClassVar[int]
2520
2530
  SIDE_FIELD_NUMBER: _ClassVar[int]
2521
2531
  COMMENTS_FIELD_NUMBER: _ClassVar[int]
2522
2532
  POSITION_EFFECT_FIELD_NUMBER: _ClassVar[int]
2533
+ IS_SUB_CASH_REPLACE_FIELD_NUMBER: _ClassVar[int]
2534
+ IS_WITHDRAW_CASH_FIELD_NUMBER: _ClassVar[int]
2523
2535
  component_instrument_id: str
2524
2536
  component_qty: int
2525
2537
  side: int
2526
2538
  comments: str
2527
2539
  position_effect: int
2528
- def __init__(self, component_instrument_id: _Optional[str] = ..., component_qty: _Optional[int] = ..., side: _Optional[int] = ..., comments: _Optional[str] = ..., position_effect: _Optional[int] = ...) -> None: ...
2540
+ is_sub_cash_replace: int
2541
+ is_withdraw_cash: int
2542
+ def __init__(self, component_instrument_id: _Optional[str] = ..., component_qty: _Optional[int] = ..., side: _Optional[int] = ..., comments: _Optional[str] = ..., position_effect: _Optional[int] = ..., is_sub_cash_replace: _Optional[int] = ..., is_withdraw_cash: _Optional[int] = ...) -> None: ...
2529
2543
 
2530
2544
  class BasketInfo(_message.Message):
2531
2545
  __slots__ = ("template_id", "basket_info_details", "strategy_id", "strategy_name", "etf_instrument_id", "etf_unit", "template_type", "comments")
@@ -434,20 +434,22 @@ class QrySblListReq(_message.Message):
434
434
  def __init__(self, msg_type: _Optional[int] = ..., node_name: _Optional[str] = ..., node_type: _Optional[int] = ..., sbl_ids: _Optional[_Iterable[str]] = ..., request_id: _Optional[str] = ..., last_timestamp: _Optional[int] = ...) -> None: ...
435
435
 
436
436
  class SblList(_message.Message):
437
- __slots__ = ("sbl_id", "broker", "trade_date", "instrument_id", "intrate", "avail_sbl_qty")
437
+ __slots__ = ("sbl_id", "broker", "trade_date", "instrument_id", "intrate", "avail_sbl_qty", "ext_info")
438
438
  SBL_ID_FIELD_NUMBER: _ClassVar[int]
439
439
  BROKER_FIELD_NUMBER: _ClassVar[int]
440
440
  TRADE_DATE_FIELD_NUMBER: _ClassVar[int]
441
441
  INSTRUMENT_ID_FIELD_NUMBER: _ClassVar[int]
442
442
  INTRATE_FIELD_NUMBER: _ClassVar[int]
443
443
  AVAIL_SBL_QTY_FIELD_NUMBER: _ClassVar[int]
444
+ EXT_INFO_FIELD_NUMBER: _ClassVar[int]
444
445
  sbl_id: str
445
446
  broker: str
446
447
  trade_date: str
447
448
  instrument_id: str
448
449
  intrate: float
449
450
  avail_sbl_qty: int
450
- def __init__(self, sbl_id: _Optional[str] = ..., broker: _Optional[str] = ..., trade_date: _Optional[str] = ..., instrument_id: _Optional[str] = ..., intrate: _Optional[float] = ..., avail_sbl_qty: _Optional[int] = ...) -> None: ...
451
+ ext_info: str
452
+ def __init__(self, sbl_id: _Optional[str] = ..., broker: _Optional[str] = ..., trade_date: _Optional[str] = ..., instrument_id: _Optional[str] = ..., intrate: _Optional[float] = ..., avail_sbl_qty: _Optional[int] = ..., ext_info: _Optional[str] = ...) -> None: ...
451
453
 
452
454
  class QrySblListRsp(_message.Message):
453
455
  __slots__ = ("msg_type", "node_name", "node_type", "sbl_list", "request_id", "status", "reason", "last_timestamp")
@@ -470,7 +472,7 @@ class QrySblListRsp(_message.Message):
470
472
  def __init__(self, msg_type: _Optional[int] = ..., node_name: _Optional[str] = ..., node_type: _Optional[int] = ..., sbl_list: _Optional[_Iterable[_Union[SblList, _Mapping]]] = ..., request_id: _Optional[str] = ..., status: _Optional[int] = ..., reason: _Optional[str] = ..., last_timestamp: _Optional[int] = ...) -> None: ...
471
473
 
472
474
  class LockSblReq(_message.Message):
473
- __slots__ = ("msg_type", "node_name", "node_type", "strategy_id", "instrument_id", "lock_qty", "cl_order_id", "last_timestamp", "sbl_id")
475
+ __slots__ = ("msg_type", "node_name", "node_type", "strategy_id", "instrument_id", "lock_qty", "cl_order_id", "last_timestamp", "sbl_id", "intrate", "duration", "min_duration")
474
476
  MSG_TYPE_FIELD_NUMBER: _ClassVar[int]
475
477
  NODE_NAME_FIELD_NUMBER: _ClassVar[int]
476
478
  NODE_TYPE_FIELD_NUMBER: _ClassVar[int]
@@ -480,6 +482,9 @@ class LockSblReq(_message.Message):
480
482
  CL_ORDER_ID_FIELD_NUMBER: _ClassVar[int]
481
483
  LAST_TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
482
484
  SBL_ID_FIELD_NUMBER: _ClassVar[int]
485
+ INTRATE_FIELD_NUMBER: _ClassVar[int]
486
+ DURATION_FIELD_NUMBER: _ClassVar[int]
487
+ MIN_DURATION_FIELD_NUMBER: _ClassVar[int]
483
488
  msg_type: int
484
489
  node_name: str
485
490
  node_type: int
@@ -489,7 +494,10 @@ class LockSblReq(_message.Message):
489
494
  cl_order_id: str
490
495
  last_timestamp: int
491
496
  sbl_id: str
492
- def __init__(self, msg_type: _Optional[int] = ..., node_name: _Optional[str] = ..., node_type: _Optional[int] = ..., strategy_id: _Optional[int] = ..., instrument_id: _Optional[str] = ..., lock_qty: _Optional[int] = ..., cl_order_id: _Optional[str] = ..., last_timestamp: _Optional[int] = ..., sbl_id: _Optional[str] = ...) -> None: ...
497
+ intrate: float
498
+ duration: int
499
+ min_duration: int
500
+ def __init__(self, msg_type: _Optional[int] = ..., node_name: _Optional[str] = ..., node_type: _Optional[int] = ..., strategy_id: _Optional[int] = ..., instrument_id: _Optional[str] = ..., lock_qty: _Optional[int] = ..., cl_order_id: _Optional[str] = ..., last_timestamp: _Optional[int] = ..., sbl_id: _Optional[str] = ..., intrate: _Optional[float] = ..., duration: _Optional[int] = ..., min_duration: _Optional[int] = ...) -> None: ...
493
501
 
494
502
  class LockSblRsp(_message.Message):
495
503
  __slots__ = ("msg_type", "node_name", "node_type", "strategy_id", "account_id", "instrument_id", "locked_qty", "intrate", "status", "duration", "reason", "cl_order_id", "last_timestamp", "sbl_id")
@@ -564,8 +572,8 @@ class LockRecord(_message.Message):
564
572
  duration: int
565
573
  request_time: int
566
574
  response_time: int
567
- counter_order_id: int
568
- def __init__(self, sbl_id: _Optional[str] = ..., instrument_id: _Optional[str] = ..., locked_qty: _Optional[int] = ..., intrate: _Optional[float] = ..., status: _Optional[int] = ..., reason: _Optional[str] = ..., cl_order_id: _Optional[str] = ..., duration: _Optional[int] = ..., request_time: _Optional[int] = ..., response_time: _Optional[int] = ..., counter_order_id: _Optional[int] = ...) -> None: ...
575
+ counter_order_id: str
576
+ def __init__(self, sbl_id: _Optional[str] = ..., instrument_id: _Optional[str] = ..., locked_qty: _Optional[int] = ..., intrate: _Optional[float] = ..., status: _Optional[int] = ..., reason: _Optional[str] = ..., cl_order_id: _Optional[str] = ..., duration: _Optional[int] = ..., request_time: _Optional[int] = ..., response_time: _Optional[int] = ..., counter_order_id: _Optional[str] = ...) -> None: ...
569
577
 
570
578
  class QryLockRecordRsp(_message.Message):
571
579
  __slots__ = ("msg_type", "node_name", "node_type", "account_id", "strategy_id", "lock_records", "request_id", "status", "reason", "last_timestamp")