|
7 | 7 | import datetime as _dt |
8 | 8 | import time |
9 | 9 | from copy import deepcopy |
| 10 | +from typing import Any |
10 | 11 |
|
11 | 12 | from ..broker import BrokerBase |
12 | 13 | from ..comminfo import ( |
@@ -265,8 +266,8 @@ def __init__(self, **kwargs): |
265 | 266 | self._orders_by_client_ref = {} |
266 | 267 | self._remote_open_orders_snapshot = [] |
267 | 268 | self._seen_trade_ids = set() |
268 | | - self._pending_trade_updates = collections.deque() |
269 | | - self._status_fill_fingerprints = collections.Counter() |
| 269 | + self._pending_trade_updates: collections.deque[Any] = collections.deque() |
| 270 | + self._status_fill_fingerprints: collections.Counter[Any] = collections.Counter() |
270 | 271 | self._position_mode_frozen = False |
271 | 272 | self._position_mode_frozen_reason = None |
272 | 273 | BrokerBase.set_param( |
@@ -785,7 +786,11 @@ def batch_cancel(self, orders=None): |
785 | 786 | """Cancel a batch of live orders and return the canceled order objects.""" |
786 | 787 | candidates = self._batch_cancel_candidates(orders) |
787 | 788 | requested = [ |
788 | | - self._order_runtime_details(item) if kind == "local" else self._remote_order_details(item) |
| 789 | + ( |
| 790 | + self._order_runtime_details(item) |
| 791 | + if kind == "local" |
| 792 | + else self._remote_order_details(item) |
| 793 | + ) |
789 | 794 | for kind, item in candidates |
790 | 795 | ] |
791 | 796 | self._emit_runtime_event( |
@@ -837,9 +842,11 @@ def batch_cancel(self, orders=None): |
837 | 842 | "cancelled_count": len(cancelled), |
838 | 843 | "failure_count": len(failures), |
839 | 844 | "cancelled_orders": [ |
840 | | - self._order_runtime_details(item) |
841 | | - if hasattr(item, "alive") |
842 | | - else self._remote_order_details(item) |
| 845 | + ( |
| 846 | + self._order_runtime_details(item) |
| 847 | + if hasattr(item, "alive") |
| 848 | + else self._remote_order_details(item) |
| 849 | + ) |
843 | 850 | for item in cancelled |
844 | 851 | ], |
845 | 852 | "failed_orders": failures, |
@@ -1092,7 +1099,7 @@ def add_symbol(value): |
1092 | 1099 | if data is not None: |
1093 | 1100 | add_symbol(self._position_key(data)) |
1094 | 1101 |
|
1095 | | - alias_map = {} |
| 1102 | + alias_map: dict[str, str] = {} |
1096 | 1103 | for key in tracked_keys: |
1097 | 1104 | for alias in self._symbol_aliases(key): |
1098 | 1105 | alias_map.setdefault(alias, key) |
@@ -1152,8 +1159,7 @@ def _sync_remote_open_orders(self, force=False, raise_errors=False): |
1152 | 1159 | try: |
1153 | 1160 | try: |
1154 | 1161 | orders = list( |
1155 | | - self.store.fetch_open_orders(force=force, raise_errors=raise_errors) |
1156 | | - or [] |
| 1162 | + self.store.fetch_open_orders(force=force, raise_errors=raise_errors) or [] |
1157 | 1163 | ) |
1158 | 1164 | except TypeError: |
1159 | 1165 | orders = list(self.store.fetch_open_orders() or []) |
@@ -1239,7 +1245,7 @@ def _symbol_aliases(symbol): |
1239 | 1245 |
|
1240 | 1246 | def _warm_contract_metadata(self): |
1241 | 1247 | """Materialize comminfo for known live symbols at broker startup.""" |
1242 | | - names = set() |
| 1248 | + names: set[str] = set() |
1243 | 1249 | for container in (self.positions, self.long_positions, self.short_positions): |
1244 | 1250 | try: |
1245 | 1251 | names.update(str(key) for key in container.keys() if key not in (None, "")) |
@@ -1307,10 +1313,7 @@ def _metadata_commission_rate(cls, metadata, *keys): |
1307 | 1313 | key_text = str(key or "") |
1308 | 1314 | if ( |
1309 | 1315 | method == "percent_10k" |
1310 | | - or ( |
1311 | | - key_text.startswith("COMMISSION_") |
1312 | | - and key_text.endswith("_RATIO") |
1313 | | - ) |
| 1316 | + or (key_text.startswith("COMMISSION_") and key_text.endswith("_RATIO")) |
1314 | 1317 | or ( |
1315 | 1318 | key_text |
1316 | 1319 | in { |
@@ -1622,9 +1625,7 @@ def _metadata_to_comminfo(cls, metadata): |
1622 | 1625 | metadata.get("max_leverage"), |
1623 | 1626 | ) |
1624 | 1627 | margin_rate = ( |
1625 | | - 1.0 / leverage |
1626 | | - if leverage and leverage > 0 |
1627 | | - else cls._normalise_rate(margin_value, 1.0) |
| 1628 | + 1.0 / leverage if leverage and leverage > 0 else cls._normalise_rate(margin_value, 1.0) |
1628 | 1629 | ) |
1629 | 1630 | margin_amount_param = ( |
1630 | 1631 | max(margin_amount, 0.0) if margin_amount is not None and margin_amount > 0 else None |
@@ -2227,11 +2228,7 @@ def _unwrap_submit_response(response): |
2227 | 2228 | status = str(current.get("status") or "").strip().lower() |
2228 | 2229 | code = str(current.get("code") or "").strip() |
2229 | 2230 | success = current.get("success") |
2230 | | - wrapper_ok = ( |
2231 | | - status in {"ok", "success"} |
2232 | | - or code in {"0", "00000"} |
2233 | | - or success is True |
2234 | | - ) |
| 2231 | + wrapper_ok = status in {"ok", "success"} or code in {"0", "00000"} or success is True |
2235 | 2232 | if wrapper_ok: |
2236 | 2233 | nested = current.get("data", current.get("result")) |
2237 | 2234 | if isinstance(nested, dict): |
@@ -2262,9 +2259,11 @@ def _requires_explicit_offset(self, data): |
2262 | 2259 | """Return whether the provider needs open/close offset metadata.""" |
2263 | 2260 | provider_values = { |
2264 | 2261 | str(self.provider or "").strip().lower(), |
2265 | | - str(getattr(self.store, "provider", "") or "").strip().lower() |
2266 | | - if self.store is not None |
2267 | | - else "", |
| 2262 | + ( |
| 2263 | + str(getattr(self.store, "provider", "") or "").strip().lower() |
| 2264 | + if self.store is not None |
| 2265 | + else "" |
| 2266 | + ), |
2268 | 2267 | } |
2269 | 2268 | if provider_values & {"ctp", "ctp_gateway"}: |
2270 | 2269 | return True |
@@ -3152,7 +3151,9 @@ def _remote_commission(cls, update): |
3152 | 3151 | continue |
3153 | 3152 | if cls._truthy(cls._extract_update_value(update, "commission_signed")): |
3154 | 3153 | return commission |
3155 | | - if key in {"fee", "trade_fee", "trade_commission"} and cls._uses_okx_fee_sign(update): |
| 3154 | + if key in {"fee", "trade_fee", "trade_commission"} and cls._uses_okx_fee_sign( |
| 3155 | + update |
| 3156 | + ): |
3156 | 3157 | return -commission |
3157 | 3158 | return abs(commission) |
3158 | 3159 | return None |
|
0 commit comments