Skip to content

Commit a27923f

Browse files
authored
Refine imports for type hints in Bybit (#2149)
1 parent f326782 commit a27923f

30 files changed

+268
-63
lines changed

nautilus_trader/adapters/bybit/common/enums.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@
1313
# limitations under the License.
1414
# -------------------------------------------------------------------------------------------------
1515

16+
from __future__ import annotations
17+
1618
from enum import Enum
1719
from enum import unique
20+
from typing import TYPE_CHECKING
1821

1922
from nautilus_trader.core.nautilus_pyo3 import PositionSide
20-
from nautilus_trader.model.data import BarType
2123
from nautilus_trader.model.enums import BarAggregation
2224
from nautilus_trader.model.enums import OrderSide
2325
from nautilus_trader.model.enums import OrderStatus
@@ -27,6 +29,10 @@
2729
from nautilus_trader.model.enums import time_in_force_to_str
2830

2931

32+
if TYPE_CHECKING:
33+
from nautilus_trader.model.data import BarType
34+
35+
3036
def raise_error(error):
3137
raise error
3238

nautilus_trader/adapters/bybit/common/parsing.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
# limitations under the License.
1414
# -------------------------------------------------------------------------------------------------
1515

16+
from __future__ import annotations
17+
18+
from typing import TYPE_CHECKING
19+
1620
from nautilus_trader.adapters.bybit.common.constants import BYBIT_HOUR_INTERVALS
1721
from nautilus_trader.adapters.bybit.common.constants import BYBIT_MINUTE_INTERVALS
1822
from nautilus_trader.model.data import BarType
@@ -23,9 +27,12 @@
2327
from nautilus_trader.model.enums import BookAction
2428
from nautilus_trader.model.enums import OrderSide
2529
from nautilus_trader.model.enums import bar_aggregation_to_str
26-
from nautilus_trader.model.identifiers import InstrumentId
27-
from nautilus_trader.model.objects import Price
28-
from nautilus_trader.model.objects import Quantity
30+
31+
32+
if TYPE_CHECKING:
33+
from nautilus_trader.model.identifiers import InstrumentId
34+
from nautilus_trader.model.objects import Price
35+
from nautilus_trader.model.objects import Quantity
2936

3037

3138
def parse_aggressor_side(value: str) -> AggressorSide:

nautilus_trader/adapters/bybit/config.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,20 @@
1313
# limitations under the License.
1414
# -------------------------------------------------------------------------------------------------
1515

16-
from nautilus_trader.adapters.bybit.common.enums import BybitProductType
16+
from __future__ import annotations
17+
18+
from typing import TYPE_CHECKING
19+
1720
from nautilus_trader.config import LiveDataClientConfig
1821
from nautilus_trader.config import LiveExecClientConfig
1922
from nautilus_trader.config import PositiveFloat
2023
from nautilus_trader.config import PositiveInt
2124

2225

26+
if TYPE_CHECKING:
27+
from nautilus_trader.adapters.bybit.common.enums import BybitProductType
28+
29+
2330
class BybitDataClientConfig(LiveDataClientConfig, frozen=True):
2431
"""
2532
Configuration for ``BybitDataClient`` instances.

nautilus_trader/adapters/bybit/data.py

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@
1313
# limitations under the License.
1414
# -------------------------------------------------------------------------------------------------
1515

16+
from __future__ import annotations
17+
1618
import asyncio
1719
from collections import defaultdict
1820
from functools import partial
19-
from typing import Any
21+
from typing import TYPE_CHECKING, Any
2022

2123
import msgspec
22-
import pandas as pd
2324

2425
from nautilus_trader.adapters.bybit.common.constants import BYBIT_INVERSE_DEPTHS
2526
from nautilus_trader.adapters.bybit.common.constants import BYBIT_LINEAR_DEPTHS
@@ -32,10 +33,7 @@
3233
from nautilus_trader.adapters.bybit.common.enums import BybitProductType
3334
from nautilus_trader.adapters.bybit.common.parsing import get_interval_from_bar_type
3435
from nautilus_trader.adapters.bybit.common.symbol import BybitSymbol
35-
from nautilus_trader.adapters.bybit.config import BybitDataClientConfig
36-
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
3736
from nautilus_trader.adapters.bybit.http.market import BybitMarketHttpAPI
38-
from nautilus_trader.adapters.bybit.providers import BybitInstrumentProvider
3937
from nautilus_trader.adapters.bybit.schemas.common import BYBIT_PONG
4038
from nautilus_trader.adapters.bybit.schemas.market.ticker import BybitTickerData
4139
from nautilus_trader.adapters.bybit.schemas.ws import BybitWsMessageGeneral
@@ -44,13 +42,9 @@
4442
from nautilus_trader.adapters.bybit.schemas.ws import decoder_ws_orderbook
4543
from nautilus_trader.adapters.bybit.schemas.ws import decoder_ws_trade
4644
from nautilus_trader.adapters.bybit.websocket.client import BybitWebSocketClient
47-
from nautilus_trader.cache.cache import Cache
48-
from nautilus_trader.common.component import LiveClock
49-
from nautilus_trader.common.component import MessageBus
5045
from nautilus_trader.common.enums import LogColor
5146
from nautilus_trader.core.datetime import millis_to_nanos
5247
from nautilus_trader.core.datetime import secs_to_millis
53-
from nautilus_trader.core.message import Request
5448
from nautilus_trader.core.nautilus_pyo3 import Symbol
5549
from nautilus_trader.core.uuid import UUID4
5650
from nautilus_trader.data.messages import DataResponse
@@ -67,11 +61,23 @@
6761
from nautilus_trader.model.identifiers import ClientId
6862
from nautilus_trader.model.identifiers import InstrumentId
6963
from nautilus_trader.model.identifiers import Venue
70-
from nautilus_trader.model.instruments import Instrument
7164
from nautilus_trader.model.objects import Price
7265
from nautilus_trader.model.objects import Quantity
7366

7467

68+
if TYPE_CHECKING:
69+
import pandas as pd
70+
71+
from nautilus_trader.adapters.bybit.config import BybitDataClientConfig
72+
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
73+
from nautilus_trader.adapters.bybit.providers import BybitInstrumentProvider
74+
from nautilus_trader.cache.cache import Cache
75+
from nautilus_trader.common.component import LiveClock
76+
from nautilus_trader.common.component import MessageBus
77+
from nautilus_trader.core.message import Request
78+
from nautilus_trader.model.instruments import Instrument
79+
80+
7581
class BybitDataClient(LiveMarketDataClient):
7682
"""
7783
Provides a data client for the Bybit centralized cypto exchange.

nautilus_trader/adapters/bybit/endpoints/account/fee_rate.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,23 @@
1313
# limitations under the License.
1414
# -------------------------------------------------------------------------------------------------
1515

16+
from __future__ import annotations
17+
18+
from typing import TYPE_CHECKING
19+
1620
import msgspec
1721

1822
from nautilus_trader.adapters.bybit.common.enums import BybitEndpointType
1923
from nautilus_trader.adapters.bybit.common.enums import BybitProductType
2024
from nautilus_trader.adapters.bybit.endpoints.endpoint import BybitHttpEndpoint
21-
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
2225
from nautilus_trader.adapters.bybit.schemas.account.fee_rate import BybitFeeRateResponse
2326
from nautilus_trader.core.nautilus_pyo3 import HttpMethod
2427

2528

29+
if TYPE_CHECKING:
30+
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
31+
32+
2633
class BybitFeeRateGetParams(msgspec.Struct, omit_defaults=True, frozen=True):
2734
category: BybitProductType | None = None
2835
symbol: str | None = None

nautilus_trader/adapters/bybit/endpoints/account/position_info.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,22 @@
1313
# limitations under the License.
1414
# -------------------------------------------------------------------------------------------------
1515

16+
from __future__ import annotations
17+
18+
from typing import TYPE_CHECKING
19+
1620
import msgspec
1721

1822
from nautilus_trader.adapters.bybit.common.enums import BybitEndpointType
1923
from nautilus_trader.adapters.bybit.endpoints.endpoint import BybitHttpEndpoint
20-
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
2124
from nautilus_trader.adapters.bybit.schemas.position import BybitPositionResponseStruct
2225
from nautilus_trader.core.nautilus_pyo3 import HttpMethod
2326

2427

28+
if TYPE_CHECKING:
29+
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
30+
31+
2532
class PositionInfoGetParams(msgspec.Struct, omit_defaults=True, frozen=True):
2633
category: str | None = None
2734
symbol: str | None = None

nautilus_trader/adapters/bybit/endpoints/account/wallet_balance.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,22 @@
1313
# limitations under the License.
1414
# -------------------------------------------------------------------------------------------------
1515

16+
from __future__ import annotations
17+
18+
from typing import TYPE_CHECKING
19+
1620
import msgspec
1721

1822
from nautilus_trader.adapters.bybit.common.enums import BybitEndpointType
1923
from nautilus_trader.adapters.bybit.endpoints.endpoint import BybitHttpEndpoint
20-
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
2124
from nautilus_trader.adapters.bybit.schemas.account.balance import BybitWalletBalanceResponse
2225
from nautilus_trader.core.nautilus_pyo3 import HttpMethod
2326

2427

28+
if TYPE_CHECKING:
29+
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
30+
31+
2532
class BybitWalletBalanceGetParams(msgspec.Struct, omit_defaults=True, frozen=True):
2633
accountType: str | None = None
2734
coin: str | None = None

nautilus_trader/adapters/bybit/endpoints/asset/coin_info.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,22 @@
1313
# limitations under the License.
1414
# -------------------------------------------------------------------------------------------------
1515

16+
from __future__ import annotations
17+
18+
from typing import TYPE_CHECKING
19+
1620
import msgspec
1721

1822
from nautilus_trader.adapters.bybit.common.enums import BybitEndpointType
1923
from nautilus_trader.adapters.bybit.endpoints.endpoint import BybitHttpEndpoint
20-
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
2124
from nautilus_trader.adapters.bybit.schemas.asset.coin_info import BybitCoinInfoResponse
2225
from nautilus_trader.core.nautilus_pyo3 import HttpMethod
2326

2427

28+
if TYPE_CHECKING:
29+
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
30+
31+
2532
class BybitCoinInfoGetParams(msgspec.Struct, omit_defaults=True, frozen=True):
2633
coin: str | None = None
2734

nautilus_trader/adapters/bybit/endpoints/endpoint.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,18 @@
1313
# limitations under the License.
1414
# -------------------------------------------------------------------------------------------------
1515

16-
from typing import Any
16+
from __future__ import annotations
17+
18+
from typing import TYPE_CHECKING, Any
1719

1820
import msgspec
1921

2022
from nautilus_trader.adapters.bybit.common.enums import BybitEndpointType
2123
from nautilus_trader.adapters.bybit.common.symbol import BybitSymbol
22-
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
24+
25+
26+
if TYPE_CHECKING:
27+
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
2328

2429

2530
def enc_hook(obj: Any) -> Any:

nautilus_trader/adapters/bybit/endpoints/market/instruments_info.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,26 @@
1313
# limitations under the License.
1414
# -------------------------------------------------------------------------------------------------
1515

16+
from __future__ import annotations
17+
18+
from typing import TYPE_CHECKING
19+
1620
import msgspec
1721

1822
from nautilus_trader.adapters.bybit.common.enums import BybitEndpointType
1923
from nautilus_trader.adapters.bybit.common.enums import BybitProductType
2024
from nautilus_trader.adapters.bybit.endpoints.endpoint import BybitHttpEndpoint
21-
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
2225
from nautilus_trader.adapters.bybit.schemas.instrument import BybitInstrumentsInverseResponse
2326
from nautilus_trader.adapters.bybit.schemas.instrument import BybitInstrumentsLinearResponse
2427
from nautilus_trader.adapters.bybit.schemas.instrument import BybitInstrumentsOptionResponse
2528
from nautilus_trader.adapters.bybit.schemas.instrument import BybitInstrumentsSpotResponse
2629
from nautilus_trader.core.nautilus_pyo3 import HttpMethod
2730

2831

32+
if TYPE_CHECKING:
33+
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
34+
35+
2936
class BybitInstrumentsInfoGetParams(msgspec.Struct, omit_defaults=True, frozen=True):
3037
category: BybitProductType | None = None
3138
symbol: str | None = None

0 commit comments

Comments
 (0)