Skip to content

Refine imports for type hints in Bybit #2149

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion nautilus_trader/adapters/bybit/common/enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,13 @@
# limitations under the License.
# -------------------------------------------------------------------------------------------------

from __future__ import annotations

from enum import Enum
from enum import unique
from typing import TYPE_CHECKING

from nautilus_trader.core.nautilus_pyo3 import PositionSide
from nautilus_trader.model.data import BarType
from nautilus_trader.model.enums import BarAggregation
from nautilus_trader.model.enums import OrderSide
from nautilus_trader.model.enums import OrderStatus
Expand All @@ -27,6 +29,10 @@
from nautilus_trader.model.enums import time_in_force_to_str


if TYPE_CHECKING:
from nautilus_trader.model.data import BarType


def raise_error(error):
raise error

Expand Down
13 changes: 10 additions & 3 deletions nautilus_trader/adapters/bybit/common/parsing.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@
# limitations under the License.
# -------------------------------------------------------------------------------------------------

from __future__ import annotations

from typing import TYPE_CHECKING

from nautilus_trader.adapters.bybit.common.constants import BYBIT_HOUR_INTERVALS
from nautilus_trader.adapters.bybit.common.constants import BYBIT_MINUTE_INTERVALS
from nautilus_trader.model.data import BarType
Expand All @@ -23,9 +27,12 @@
from nautilus_trader.model.enums import BookAction
from nautilus_trader.model.enums import OrderSide
from nautilus_trader.model.enums import bar_aggregation_to_str
from nautilus_trader.model.identifiers import InstrumentId
from nautilus_trader.model.objects import Price
from nautilus_trader.model.objects import Quantity


if TYPE_CHECKING:
from nautilus_trader.model.identifiers import InstrumentId
from nautilus_trader.model.objects import Price
from nautilus_trader.model.objects import Quantity


def parse_aggressor_side(value: str) -> AggressorSide:
Expand Down
9 changes: 8 additions & 1 deletion nautilus_trader/adapters/bybit/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,20 @@
# limitations under the License.
# -------------------------------------------------------------------------------------------------

from nautilus_trader.adapters.bybit.common.enums import BybitProductType
from __future__ import annotations

from typing import TYPE_CHECKING

from nautilus_trader.config import LiveDataClientConfig
from nautilus_trader.config import LiveExecClientConfig
from nautilus_trader.config import PositiveFloat
from nautilus_trader.config import PositiveInt


if TYPE_CHECKING:
from nautilus_trader.adapters.bybit.common.enums import BybitProductType


class BybitDataClientConfig(LiveDataClientConfig, frozen=True):
"""
Configuration for ``BybitDataClient`` instances.
Expand Down
26 changes: 16 additions & 10 deletions nautilus_trader/adapters/bybit/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,14 @@
# limitations under the License.
# -------------------------------------------------------------------------------------------------

from __future__ import annotations

import asyncio
from collections import defaultdict
from functools import partial
from typing import Any
from typing import TYPE_CHECKING, Any

import msgspec
import pandas as pd

from nautilus_trader.adapters.bybit.common.constants import BYBIT_INVERSE_DEPTHS
from nautilus_trader.adapters.bybit.common.constants import BYBIT_LINEAR_DEPTHS
Expand All @@ -32,10 +33,7 @@
from nautilus_trader.adapters.bybit.common.enums import BybitProductType
from nautilus_trader.adapters.bybit.common.parsing import get_interval_from_bar_type
from nautilus_trader.adapters.bybit.common.symbol import BybitSymbol
from nautilus_trader.adapters.bybit.config import BybitDataClientConfig
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
from nautilus_trader.adapters.bybit.http.market import BybitMarketHttpAPI
from nautilus_trader.adapters.bybit.providers import BybitInstrumentProvider
from nautilus_trader.adapters.bybit.schemas.common import BYBIT_PONG
from nautilus_trader.adapters.bybit.schemas.market.ticker import BybitTickerData
from nautilus_trader.adapters.bybit.schemas.ws import BybitWsMessageGeneral
Expand All @@ -44,13 +42,9 @@
from nautilus_trader.adapters.bybit.schemas.ws import decoder_ws_orderbook
from nautilus_trader.adapters.bybit.schemas.ws import decoder_ws_trade
from nautilus_trader.adapters.bybit.websocket.client import BybitWebSocketClient
from nautilus_trader.cache.cache import Cache
from nautilus_trader.common.component import LiveClock
from nautilus_trader.common.component import MessageBus
from nautilus_trader.common.enums import LogColor
from nautilus_trader.core.datetime import millis_to_nanos
from nautilus_trader.core.datetime import secs_to_millis
from nautilus_trader.core.message import Request
from nautilus_trader.core.nautilus_pyo3 import Symbol
from nautilus_trader.core.uuid import UUID4
from nautilus_trader.data.messages import DataResponse
Expand All @@ -67,11 +61,23 @@
from nautilus_trader.model.identifiers import ClientId
from nautilus_trader.model.identifiers import InstrumentId
from nautilus_trader.model.identifiers import Venue
from nautilus_trader.model.instruments import Instrument
from nautilus_trader.model.objects import Price
from nautilus_trader.model.objects import Quantity


if TYPE_CHECKING:
import pandas as pd

from nautilus_trader.adapters.bybit.config import BybitDataClientConfig
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
from nautilus_trader.adapters.bybit.providers import BybitInstrumentProvider
from nautilus_trader.cache.cache import Cache
from nautilus_trader.common.component import LiveClock
from nautilus_trader.common.component import MessageBus
from nautilus_trader.core.message import Request
from nautilus_trader.model.instruments import Instrument


class BybitDataClient(LiveMarketDataClient):
"""
Provides a data client for the Bybit centralized cypto exchange.
Expand Down
9 changes: 8 additions & 1 deletion nautilus_trader/adapters/bybit/endpoints/account/fee_rate.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,23 @@
# limitations under the License.
# -------------------------------------------------------------------------------------------------

from __future__ import annotations

from typing import TYPE_CHECKING

import msgspec

from nautilus_trader.adapters.bybit.common.enums import BybitEndpointType
from nautilus_trader.adapters.bybit.common.enums import BybitProductType
from nautilus_trader.adapters.bybit.endpoints.endpoint import BybitHttpEndpoint
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
from nautilus_trader.adapters.bybit.schemas.account.fee_rate import BybitFeeRateResponse
from nautilus_trader.core.nautilus_pyo3 import HttpMethod


if TYPE_CHECKING:
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient


class BybitFeeRateGetParams(msgspec.Struct, omit_defaults=True, frozen=True):
category: BybitProductType | None = None
symbol: str | None = None
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,22 @@
# limitations under the License.
# -------------------------------------------------------------------------------------------------

from __future__ import annotations

from typing import TYPE_CHECKING

import msgspec

from nautilus_trader.adapters.bybit.common.enums import BybitEndpointType
from nautilus_trader.adapters.bybit.endpoints.endpoint import BybitHttpEndpoint
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
from nautilus_trader.adapters.bybit.schemas.position import BybitPositionResponseStruct
from nautilus_trader.core.nautilus_pyo3 import HttpMethod


if TYPE_CHECKING:
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient


class PositionInfoGetParams(msgspec.Struct, omit_defaults=True, frozen=True):
category: str | None = None
symbol: str | None = None
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,22 @@
# limitations under the License.
# -------------------------------------------------------------------------------------------------

from __future__ import annotations

from typing import TYPE_CHECKING

import msgspec

from nautilus_trader.adapters.bybit.common.enums import BybitEndpointType
from nautilus_trader.adapters.bybit.endpoints.endpoint import BybitHttpEndpoint
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
from nautilus_trader.adapters.bybit.schemas.account.balance import BybitWalletBalanceResponse
from nautilus_trader.core.nautilus_pyo3 import HttpMethod


if TYPE_CHECKING:
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient


class BybitWalletBalanceGetParams(msgspec.Struct, omit_defaults=True, frozen=True):
accountType: str | None = None
coin: str | None = None
Expand Down
9 changes: 8 additions & 1 deletion nautilus_trader/adapters/bybit/endpoints/asset/coin_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,22 @@
# limitations under the License.
# -------------------------------------------------------------------------------------------------

from __future__ import annotations

from typing import TYPE_CHECKING

import msgspec

from nautilus_trader.adapters.bybit.common.enums import BybitEndpointType
from nautilus_trader.adapters.bybit.endpoints.endpoint import BybitHttpEndpoint
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
from nautilus_trader.adapters.bybit.schemas.asset.coin_info import BybitCoinInfoResponse
from nautilus_trader.core.nautilus_pyo3 import HttpMethod


if TYPE_CHECKING:
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient


class BybitCoinInfoGetParams(msgspec.Struct, omit_defaults=True, frozen=True):
coin: str | None = None

Expand Down
9 changes: 7 additions & 2 deletions nautilus_trader/adapters/bybit/endpoints/endpoint.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,18 @@
# limitations under the License.
# -------------------------------------------------------------------------------------------------

from typing import Any
from __future__ import annotations

from typing import TYPE_CHECKING, Any

import msgspec

from nautilus_trader.adapters.bybit.common.enums import BybitEndpointType
from nautilus_trader.adapters.bybit.common.symbol import BybitSymbol
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient


if TYPE_CHECKING:
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient


def enc_hook(obj: Any) -> Any:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,26 @@
# limitations under the License.
# -------------------------------------------------------------------------------------------------

from __future__ import annotations

from typing import TYPE_CHECKING

import msgspec

from nautilus_trader.adapters.bybit.common.enums import BybitEndpointType
from nautilus_trader.adapters.bybit.common.enums import BybitProductType
from nautilus_trader.adapters.bybit.endpoints.endpoint import BybitHttpEndpoint
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
from nautilus_trader.adapters.bybit.schemas.instrument import BybitInstrumentsInverseResponse
from nautilus_trader.adapters.bybit.schemas.instrument import BybitInstrumentsLinearResponse
from nautilus_trader.adapters.bybit.schemas.instrument import BybitInstrumentsOptionResponse
from nautilus_trader.adapters.bybit.schemas.instrument import BybitInstrumentsSpotResponse
from nautilus_trader.core.nautilus_pyo3 import HttpMethod


if TYPE_CHECKING:
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient


class BybitInstrumentsInfoGetParams(msgspec.Struct, omit_defaults=True, frozen=True):
category: BybitProductType | None = None
symbol: str | None = None
Expand Down
9 changes: 8 additions & 1 deletion nautilus_trader/adapters/bybit/endpoints/market/klines.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,23 @@
# limitations under the License.
# -------------------------------------------------------------------------------------------------

from __future__ import annotations

from typing import TYPE_CHECKING

import msgspec

from nautilus_trader.adapters.bybit.common.enums import BybitEndpointType
from nautilus_trader.adapters.bybit.common.enums import BybitKlineInterval
from nautilus_trader.adapters.bybit.endpoints.endpoint import BybitHttpEndpoint
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
from nautilus_trader.adapters.bybit.schemas.market.kline import BybitKlinesResponse
from nautilus_trader.core.nautilus_pyo3 import HttpMethod


if TYPE_CHECKING:
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient


class BybitKlinesGetParams(msgspec.Struct, omit_defaults=True, frozen=True):
category: str
symbol: str
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,22 @@
# limitations under the License.
# -------------------------------------------------------------------------------------------------

from __future__ import annotations

from typing import TYPE_CHECKING

import msgspec

from nautilus_trader.adapters.bybit.common.enums import BybitEndpointType
from nautilus_trader.adapters.bybit.endpoints.endpoint import BybitHttpEndpoint
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
from nautilus_trader.adapters.bybit.schemas.market.server_time import BybitServerTimeResponse
from nautilus_trader.core.nautilus_pyo3 import HttpMethod


if TYPE_CHECKING:
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient


class BybitServerTimeEndpoint(BybitHttpEndpoint):
def __init__(
self,
Expand Down
9 changes: 8 additions & 1 deletion nautilus_trader/adapters/bybit/endpoints/market/tickers.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,26 @@
# limitations under the License.
# -------------------------------------------------------------------------------------------------

from __future__ import annotations

from typing import TYPE_CHECKING

import msgspec

from nautilus_trader.adapters.bybit.common.enums import BybitEndpointType
from nautilus_trader.adapters.bybit.common.enums import BybitProductType
from nautilus_trader.adapters.bybit.endpoints.endpoint import BybitHttpEndpoint
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
from nautilus_trader.adapters.bybit.schemas.market.ticker import BybitTickersLinearResponse
from nautilus_trader.adapters.bybit.schemas.market.ticker import BybitTickersOptionResponse
from nautilus_trader.adapters.bybit.schemas.market.ticker import BybitTickersResponse
from nautilus_trader.adapters.bybit.schemas.market.ticker import BybitTickersSpotResponse
from nautilus_trader.core.nautilus_pyo3 import HttpMethod


if TYPE_CHECKING:
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient


class BybitTickersGetParams(msgspec.Struct, omit_defaults=True, frozen=True):
category: BybitProductType | None = None
symbol: str | None = None
Expand Down
9 changes: 8 additions & 1 deletion nautilus_trader/adapters/bybit/endpoints/market/trades.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,22 @@
# limitations under the License.
# -------------------------------------------------------------------------------------------------

from __future__ import annotations

from typing import TYPE_CHECKING

import msgspec

from nautilus_trader.adapters.bybit.common.enums import BybitEndpointType
from nautilus_trader.adapters.bybit.endpoints.endpoint import BybitHttpEndpoint
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient
from nautilus_trader.adapters.bybit.schemas.market.trades import BybitTradesResponse
from nautilus_trader.core.nautilus_pyo3 import HttpMethod


if TYPE_CHECKING:
from nautilus_trader.adapters.bybit.http.client import BybitHttpClient


class BybitTradesGetParams(msgspec.Struct, omit_defaults=True, frozen=True):
category: str
symbol: str
Expand Down
Loading
Loading