Skip to content

Commit 20ccb80

Browse files
committed
fix: resolve type annotation issues in bracket_orders.py
- Added proper type imports (OrderReference, RecoveryOperation) - Fixed type annotations for recovery manager (OperationRecoveryManager | None) - Fixed type annotations for operation variables (RecoveryOperation | None) - Fixed type annotations for order reference variables (OrderReference | None) - Fixed variable scope issue with filled_size (initialized before try block) - Fixed import formatting to meet Ruff standards All type checks now pass with mypy, and all 5 bracket order tests pass.
1 parent 68f0cb8 commit 20ccb80

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

src/project_x_py/order_manager/bracket_orders.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,12 @@ async def main():
8686
from project_x_py.models import BracketOrderResponse
8787
from project_x_py.utils.error_handler import retry_on_network_error
8888

89-
from .error_recovery import OperationRecoveryManager, OperationType
89+
from .error_recovery import (
90+
OperationRecoveryManager,
91+
OperationType,
92+
OrderReference,
93+
RecoveryOperation,
94+
)
9095

9196
if TYPE_CHECKING:
9297
from project_x_py.types import OrderManagerProtocol
@@ -114,7 +119,7 @@ def __init__(self) -> None:
114119
"""Initialize the recovery manager for bracket orders."""
115120
super().__init__()
116121
# Initialize recovery manager - will be properly set up in the main class
117-
self._recovery_manager = None
122+
self._recovery_manager: OperationRecoveryManager | None = None
118123

119124
def _get_recovery_manager(self) -> OperationRecoveryManager | None:
120125
"""Get or create the recovery manager instance.
@@ -243,7 +248,7 @@ async def place_bracket_order(
243248
"""
244249
# Initialize recovery manager for this operation (if available)
245250
recovery_manager = self._get_recovery_manager()
246-
operation = None
251+
operation: RecoveryOperation | None = None
247252

248253
if recovery_manager:
249254
operation = await recovery_manager.start_operation(
@@ -291,9 +296,9 @@ async def place_bracket_order(
291296
)
292297

293298
# Add order references to the recovery operation (if available)
294-
entry_ref = None
295-
stop_ref = None
296-
target_ref = None
299+
entry_ref: OrderReference | None = None
300+
stop_ref: OrderReference | None = None
301+
target_ref: OrderReference | None = None
297302
if recovery_manager and operation:
298303
entry_ref = await recovery_manager.add_order_to_operation(
299304
operation,
@@ -349,6 +354,11 @@ async def place_bracket_order(
349354
# STEP 2: Wait for entry order to fill and handle partial fills
350355
logger.info(f"Waiting for entry order {entry_order_id} to fill...")
351356

357+
# Initialize fill tracking variables
358+
filled_size = 0
359+
is_fully_filled = False
360+
remaining_size = 0
361+
352362
try:
353363
is_filled = await self._wait_for_order_fill(
354364
entry_order_id, timeout_seconds=60

0 commit comments

Comments
 (0)