Skip to content

Commit a11873f

Browse files
committed
[Mod] improve static typing of converter.py with mypy
1 parent 607e569 commit a11873f

File tree

1 file changed

+38
-38
lines changed

1 file changed

+38
-38
lines changed

vnpy/trader/converter.py

+38-38
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from copy import copy
2-
from typing import Dict, List, Set, TYPE_CHECKING
2+
from typing import TYPE_CHECKING
33

44
from .object import (
55
ContractData,
@@ -19,7 +19,7 @@ class OffsetConverter:
1919

2020
def __init__(self, main_engine: "MainEngine") -> None:
2121
""""""
22-
self.holdings: Dict[str, "PositionHolding"] = {}
22+
self.holdings: dict[str, "PositionHolding"] = {}
2323

2424
self.get_contract = main_engine.get_contract
2525

@@ -57,7 +57,7 @@ def update_order_request(self, req: OrderRequest, vt_orderid: str) -> None:
5757

5858
def get_position_holding(self, vt_symbol: str) -> "PositionHolding":
5959
""""""
60-
holding: PositionHolding = self.holdings.get(vt_symbol, None)
60+
holding: PositionHolding | None = self.holdings.get(vt_symbol, None)
6161
if not holding:
6262
contract: ContractData = self.get_contract(vt_symbol)
6363
holding = PositionHolding(contract)
@@ -69,7 +69,7 @@ def convert_order_request(
6969
req: OrderRequest,
7070
lock: bool,
7171
net: bool = False
72-
) -> List[OrderRequest]:
72+
) -> list[OrderRequest]:
7373
""""""
7474
if not self.is_convert_required(req.vt_symbol):
7575
return [req]
@@ -108,7 +108,7 @@ def __init__(self, contract: ContractData) -> None:
108108
self.vt_symbol: str = contract.vt_symbol
109109
self.exchange: Exchange = contract.exchange
110110

111-
self.active_orders: Dict[str, OrderData] = {}
111+
self.active_orders: dict[str, OrderData] = {}
112112

113113
self.long_pos: float = 0
114114
self.long_yd: float = 0
@@ -251,17 +251,17 @@ def sum_pos_frozen(self) -> None:
251251
self.long_pos_frozen = self.long_td_frozen + self.long_yd_frozen
252252
self.short_pos_frozen = self.short_td_frozen + self.short_yd_frozen
253253

254-
def convert_order_request_shfe(self, req: OrderRequest) -> List[OrderRequest]:
254+
def convert_order_request_shfe(self, req: OrderRequest) -> list[OrderRequest]:
255255
""""""
256256
if req.offset == Offset.OPEN:
257257
return [req]
258258

259259
if req.direction == Direction.LONG:
260-
pos_available: int = self.short_pos - self.short_pos_frozen
261-
td_available: int = self.short_td - self.short_td_frozen
260+
pos_available: float = self.short_pos - self.short_pos_frozen
261+
td_available: float = self.short_td - self.short_td_frozen
262262
else:
263-
pos_available: int = self.long_pos - self.long_pos_frozen
264-
td_available: int = self.long_td - self.long_td_frozen
263+
pos_available = self.long_pos - self.long_pos_frozen
264+
td_available = self.long_td - self.long_td_frozen
265265

266266
if req.volume > pos_available:
267267
return []
@@ -270,10 +270,10 @@ def convert_order_request_shfe(self, req: OrderRequest) -> List[OrderRequest]:
270270
req_td.offset = Offset.CLOSETODAY
271271
return [req_td]
272272
else:
273-
req_list: List[OrderRequest] = []
273+
req_list: list[OrderRequest] = []
274274

275275
if td_available > 0:
276-
req_td: OrderRequest = copy(req)
276+
req_td = copy(req)
277277
req_td.offset = Offset.CLOSETODAY
278278
req_td.volume = td_available
279279
req_list.append(req_td)
@@ -285,16 +285,16 @@ def convert_order_request_shfe(self, req: OrderRequest) -> List[OrderRequest]:
285285

286286
return req_list
287287

288-
def convert_order_request_lock(self, req: OrderRequest) -> List[OrderRequest]:
288+
def convert_order_request_lock(self, req: OrderRequest) -> list[OrderRequest]:
289289
""""""
290290
if req.direction == Direction.LONG:
291-
td_volume: int = self.short_td
292-
yd_available: int = self.short_yd - self.short_yd_frozen
291+
td_volume: float = self.short_td
292+
yd_available: float = self.short_yd - self.short_yd_frozen
293293
else:
294-
td_volume: int = self.long_td
295-
yd_available: int = self.long_yd - self.long_yd_frozen
294+
td_volume = self.long_td
295+
yd_available = self.long_yd - self.long_yd_frozen
296296

297-
close_yd_exchanges: Set[Exchange] = {Exchange.SHFE, Exchange.INE}
297+
close_yd_exchanges: set[Exchange] = {Exchange.SHFE, Exchange.INE}
298298

299299
# If there is td_volume, we can only lock position
300300
if td_volume and self.exchange not in close_yd_exchanges:
@@ -304,9 +304,9 @@ def convert_order_request_lock(self, req: OrderRequest) -> List[OrderRequest]:
304304
# If no td_volume, we close opposite yd position first
305305
# then open new position
306306
else:
307-
close_volume: int = min(req.volume, yd_available)
308-
open_volume: int = max(0, req.volume - yd_available)
309-
req_list: List[OrderRequest] = []
307+
close_volume: float = min(req.volume, yd_available)
308+
open_volume: float = max(0, req.volume - yd_available)
309+
req_list: list[OrderRequest] = []
310310

311311
if yd_available:
312312
req_yd: OrderRequest = copy(req)
@@ -318,31 +318,31 @@ def convert_order_request_lock(self, req: OrderRequest) -> List[OrderRequest]:
318318
req_list.append(req_yd)
319319

320320
if open_volume:
321-
req_open: OrderRequest = copy(req)
321+
req_open = copy(req)
322322
req_open.offset = Offset.OPEN
323323
req_open.volume = open_volume
324324
req_list.append(req_open)
325325

326326
return req_list
327327

328-
def convert_order_request_net(self, req: OrderRequest) -> List[OrderRequest]:
328+
def convert_order_request_net(self, req: OrderRequest) -> list[OrderRequest]:
329329
""""""
330330
if req.direction == Direction.LONG:
331-
pos_available: int = self.short_pos - self.short_pos_frozen
332-
td_available: int = self.short_td - self.short_td_frozen
333-
yd_available: int = self.short_yd - self.short_yd_frozen
331+
pos_available: float = self.short_pos - self.short_pos_frozen
332+
td_available: float = self.short_td - self.short_td_frozen
333+
yd_available: float = self.short_yd - self.short_yd_frozen
334334
else:
335-
pos_available: int = self.long_pos - self.long_pos_frozen
336-
td_available: int = self.long_td - self.long_td_frozen
337-
yd_available: int = self.long_yd - self.long_yd_frozen
335+
pos_available = self.long_pos - self.long_pos_frozen
336+
td_available = self.long_td - self.long_td_frozen
337+
yd_available = self.long_yd - self.long_yd_frozen
338338

339339
# Split close order to close today/yesterday for SHFE/INE exchange
340340
if req.exchange in {Exchange.SHFE, Exchange.INE}:
341-
reqs: List[OrderRequest] = []
341+
reqs: list[OrderRequest] = []
342342
volume_left: float = req.volume
343343

344344
if td_available:
345-
td_volume: int = min(td_available, volume_left)
345+
td_volume: float = min(td_available, volume_left)
346346
volume_left -= td_volume
347347

348348
td_req: OrderRequest = copy(req)
@@ -351,7 +351,7 @@ def convert_order_request_net(self, req: OrderRequest) -> List[OrderRequest]:
351351
reqs.append(td_req)
352352

353353
if volume_left and yd_available:
354-
yd_volume: int = min(yd_available, volume_left)
354+
yd_volume: float = min(yd_available, volume_left)
355355
volume_left -= yd_volume
356356

357357
yd_req: OrderRequest = copy(req)
@@ -360,7 +360,7 @@ def convert_order_request_net(self, req: OrderRequest) -> List[OrderRequest]:
360360
reqs.append(yd_req)
361361

362362
if volume_left > 0:
363-
open_volume: int = volume_left
363+
open_volume: float = volume_left
364364

365365
open_req: OrderRequest = copy(req)
366366
open_req.offset = Offset.OPEN
@@ -370,11 +370,11 @@ def convert_order_request_net(self, req: OrderRequest) -> List[OrderRequest]:
370370
return reqs
371371
# Just use close for other exchanges
372372
else:
373-
reqs: List[OrderRequest] = []
374-
volume_left: float = req.volume
373+
reqs = []
374+
volume_left = req.volume
375375

376376
if pos_available:
377-
close_volume: int = min(pos_available, volume_left)
377+
close_volume: float = min(pos_available, volume_left)
378378
volume_left -= pos_available
379379

380380
close_req: OrderRequest = copy(req)
@@ -383,9 +383,9 @@ def convert_order_request_net(self, req: OrderRequest) -> List[OrderRequest]:
383383
reqs.append(close_req)
384384

385385
if volume_left > 0:
386-
open_volume: int = volume_left
386+
open_volume = volume_left
387387

388-
open_req: OrderRequest = copy(req)
388+
open_req = copy(req)
389389
open_req.offset = Offset.OPEN
390390
open_req.volume = open_volume
391391
reqs.append(open_req)

0 commit comments

Comments
 (0)