diff --git a/README.md b/README.md index ffb0015..29c66f1 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ This is the Python version of the LN Markets API SDK. It provides a client-based For public endpoints, you can just do this: ```python -from lnmarkets_sdk.http.client import LNMClient +from lnmarkets_sdk.v3.http.client import LNMClient import asyncio async with LNMClient() as client: @@ -21,7 +21,7 @@ Remember to sleep between requests, as the rate limit is 1 requests per second f For endpoints that need authentication, you need to create an instance of the `LNMClient` class and provide your API credentials: ```python -from lnmarkets_sdk.http.client import APIAuthContext, APIClientConfig, LNMClient +from lnmarkets_sdk.v3.http.client import APIAuthContext, APIClientConfig, LNMClient config = APIClientConfig( authentication=APIAuthContext( @@ -41,8 +41,8 @@ For endpoints that requires input parameters, you can find the corresponding mod ```python -from lnmarkets_sdk.http.client import APIAuthContext, APIClientConfig, LNMClient -from lnmarkets_sdk.models.account import GetLightningDepositsParams +from lnmarkets_sdk.v3.http.client import APIAuthContext, APIClientConfig, LNMClient +from lnmarkets_sdk.v3.models.account import GetLightningDepositsParams config = APIClientConfig( authentication=APIAuthContext( diff --git a/examples/basic.py b/examples/basic.py index 364252a..08b8c84 100644 --- a/examples/basic.py +++ b/examples/basic.py @@ -8,9 +8,9 @@ from dotenv import load_dotenv -from lnmarkets_sdk.http.client import APIAuthContext, APIClientConfig, LNMClient -from lnmarkets_sdk.models.account import GetLightningDepositsParams -from lnmarkets_sdk.models.futures_cross import ( +from lnmarkets_sdk.v3.http.client import APIAuthContext, APIClientConfig, LNMClient +from lnmarkets_sdk.v3.models.account import GetLightningDepositsParams +from lnmarkets_sdk.v3.models.futures_cross import ( FuturesCrossOrderLimit, ) diff --git a/pyproject.toml b/pyproject.toml index 0a8aea1..0496ad7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "hatchling.build" urls = { "Homepage" = "https://github.com/ln-markets/sdk-python", "Repository" = "https://github.com/ln-markets/sdk-python", "Bug Tracker" = "https://github.com/ln-markets/sdk-python/issues" } name = "lnmarkets-sdk" -version = "0.0.7" +version = "0.0.11" description = "LN Markets API Python SDK" readme = "README.md" license = { text = "MIT" } @@ -80,7 +80,6 @@ quote-style = "double" indent-style = "space" [tool.pytest.ini_options] -# testpaths = ["tests"] python_files = ["test_*.py"] python_classes = ["Test*"] python_functions = ["test_*"] diff --git a/src/lnmarkets_sdk/__init__.py b/src/lnmarkets_sdk/__init__.py deleted file mode 100644 index 8b13789..0000000 --- a/src/lnmarkets_sdk/__init__.py +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/lnmarkets_sdk/http/__init__.py b/src/lnmarkets_sdk/http/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/lnmarkets_sdk/models/__init__.py b/src/lnmarkets_sdk/models/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/lnmarkets_sdk/_internal/__init__.py b/src/lnmarkets_sdk/v3/_internal/__init__.py similarity index 100% rename from src/lnmarkets_sdk/_internal/__init__.py rename to src/lnmarkets_sdk/v3/_internal/__init__.py diff --git a/src/lnmarkets_sdk/_internal/models.py b/src/lnmarkets_sdk/v3/_internal/models.py similarity index 100% rename from src/lnmarkets_sdk/_internal/models.py rename to src/lnmarkets_sdk/v3/_internal/models.py diff --git a/src/lnmarkets_sdk/_internal/utils.py b/src/lnmarkets_sdk/v3/_internal/utils.py similarity index 100% rename from src/lnmarkets_sdk/_internal/utils.py rename to src/lnmarkets_sdk/v3/_internal/utils.py diff --git a/src/lnmarkets_sdk/http/client/__init__.py b/src/lnmarkets_sdk/v3/http/client/__init__.py similarity index 91% rename from src/lnmarkets_sdk/http/client/__init__.py rename to src/lnmarkets_sdk/v3/http/client/__init__.py index e3ddb63..05cc507 100644 --- a/src/lnmarkets_sdk/http/client/__init__.py +++ b/src/lnmarkets_sdk/v3/http/client/__init__.py @@ -3,9 +3,9 @@ from pydantic import BaseModel -from lnmarkets_sdk._internal import BaseClient -from lnmarkets_sdk._internal.models import APIAuthContext, APIClientConfig, APIMethod -from lnmarkets_sdk._internal.utils import get_hostname, parse_response +from lnmarkets_sdk.v3._internal import BaseClient +from lnmarkets_sdk.v3._internal.models import APIAuthContext, APIClientConfig, APIMethod +from lnmarkets_sdk.v3._internal.utils import get_hostname, parse_response from .account import AccountClient from .futures import FuturesClient @@ -30,8 +30,8 @@ def __init__(self, config: APIClientConfig | None = None): config: Client configuration. If None, will use environment variables. Example: - >>> from src.lnmarkets_sdk.client import LNMClient - >>> from src.lnmarkets_sdk.types.api.base import APIClientConfig, APIAuthContext + >>> from src.lnmarkets_sdk.v3.client import LNMClient + >>> from src.lnmarkets_sdk.v3.types.api.base import APIClientConfig, APIAuthContext >>> >>> config = APIClientConfig( ... authentication=APIAuthContext( diff --git a/src/lnmarkets_sdk/http/client/account.py b/src/lnmarkets_sdk/v3/http/client/account.py similarity index 98% rename from src/lnmarkets_sdk/http/client/account.py rename to src/lnmarkets_sdk/v3/http/client/account.py index e1b5d98..1196820 100644 --- a/src/lnmarkets_sdk/http/client/account.py +++ b/src/lnmarkets_sdk/v3/http/client/account.py @@ -1,9 +1,9 @@ from typing import TYPE_CHECKING if TYPE_CHECKING: - from lnmarkets_sdk.http.client import LNMClient + from lnmarkets_sdk.v3.http.client import LNMClient -from lnmarkets_sdk.models.account import ( +from lnmarkets_sdk.v3.models.account import ( Account, AddBitcoinAddressParams, AddBitcoinAddressResponse, diff --git a/src/lnmarkets_sdk/http/client/futures/__init__.py b/src/lnmarkets_sdk/v3/http/client/futures/__init__.py similarity index 90% rename from src/lnmarkets_sdk/http/client/futures/__init__.py rename to src/lnmarkets_sdk/v3/http/client/futures/__init__.py index 105737d..04d8ba6 100644 --- a/src/lnmarkets_sdk/http/client/futures/__init__.py +++ b/src/lnmarkets_sdk/v3/http/client/futures/__init__.py @@ -1,10 +1,10 @@ from typing import TYPE_CHECKING if TYPE_CHECKING: - from lnmarkets_sdk.http.client import LNMClient + from lnmarkets_sdk.v3.http.client import LNMClient -from lnmarkets_sdk.models.funding_fees import GetFundingSettlementsResponse -from lnmarkets_sdk.models.futures_data import ( +from lnmarkets_sdk.v3.models.funding_fees import GetFundingSettlementsResponse +from lnmarkets_sdk.v3.models.futures_data import ( Candle, GetCandlesParams, GetFundingSettlementsParams, diff --git a/src/lnmarkets_sdk/http/client/futures/cross.py b/src/lnmarkets_sdk/v3/http/client/futures/cross.py similarity index 96% rename from src/lnmarkets_sdk/http/client/futures/cross.py rename to src/lnmarkets_sdk/v3/http/client/futures/cross.py index cec7f11..8a857a7 100644 --- a/src/lnmarkets_sdk/http/client/futures/cross.py +++ b/src/lnmarkets_sdk/v3/http/client/futures/cross.py @@ -1,10 +1,10 @@ from typing import TYPE_CHECKING if TYPE_CHECKING: - from lnmarkets_sdk.http.client import LNMClient + from lnmarkets_sdk.v3.http.client import LNMClient -from lnmarkets_sdk.models.funding_fees import FundingFees -from lnmarkets_sdk.models.futures_cross import ( +from lnmarkets_sdk.v3.models.funding_fees import FundingFees +from lnmarkets_sdk.v3.models.futures_cross import ( CancelOrderParams, DepositParams, FuturesCrossCanceledOrder, diff --git a/src/lnmarkets_sdk/http/client/futures/isolated.py b/src/lnmarkets_sdk/v3/http/client/futures/isolated.py similarity index 96% rename from src/lnmarkets_sdk/http/client/futures/isolated.py rename to src/lnmarkets_sdk/v3/http/client/futures/isolated.py index a7f8edc..46ac8d0 100644 --- a/src/lnmarkets_sdk/http/client/futures/isolated.py +++ b/src/lnmarkets_sdk/v3/http/client/futures/isolated.py @@ -1,10 +1,10 @@ from typing import TYPE_CHECKING if TYPE_CHECKING: - from lnmarkets_sdk.http.client import LNMClient + from lnmarkets_sdk.v3.http.client import LNMClient -from lnmarkets_sdk.models.funding_fees import FundingFees -from lnmarkets_sdk.models.futures_isolated import ( +from lnmarkets_sdk.v3.models.funding_fees import FundingFees +from lnmarkets_sdk.v3.models.futures_isolated import ( AddMarginParams, CancelTradeParams, CashInParams, diff --git a/src/lnmarkets_sdk/http/client/oracle.py b/src/lnmarkets_sdk/v3/http/client/oracle.py similarity index 90% rename from src/lnmarkets_sdk/http/client/oracle.py rename to src/lnmarkets_sdk/v3/http/client/oracle.py index deca195..4e36bbc 100644 --- a/src/lnmarkets_sdk/http/client/oracle.py +++ b/src/lnmarkets_sdk/v3/http/client/oracle.py @@ -1,9 +1,9 @@ from typing import TYPE_CHECKING if TYPE_CHECKING: - from lnmarkets_sdk.http.client import LNMClient + from lnmarkets_sdk.v3.http.client import LNMClient -from lnmarkets_sdk.models.oracle import ( +from lnmarkets_sdk.v3.models.oracle import ( GetIndexParams, GetLastPriceParams, OracleIndex, diff --git a/src/lnmarkets_sdk/http/client/synthetic_usd.py b/src/lnmarkets_sdk/v3/http/client/synthetic_usd.py similarity index 91% rename from src/lnmarkets_sdk/http/client/synthetic_usd.py rename to src/lnmarkets_sdk/v3/http/client/synthetic_usd.py index d5105ff..f26c988 100644 --- a/src/lnmarkets_sdk/http/client/synthetic_usd.py +++ b/src/lnmarkets_sdk/v3/http/client/synthetic_usd.py @@ -1,9 +1,9 @@ from typing import TYPE_CHECKING if TYPE_CHECKING: - from lnmarkets_sdk.http.client import LNMClient + from lnmarkets_sdk.v3.http.client import LNMClient -from lnmarkets_sdk.models.synthetic_usd import ( +from lnmarkets_sdk.v3.models.synthetic_usd import ( BestPriceResponse, CreateSwapOutput, GetSwapsParams, diff --git a/src/lnmarkets_sdk/models/account.py b/src/lnmarkets_sdk/v3/models/account.py similarity index 98% rename from src/lnmarkets_sdk/models/account.py rename to src/lnmarkets_sdk/v3/models/account.py index bafe49a..94c6ee5 100644 --- a/src/lnmarkets_sdk/models/account.py +++ b/src/lnmarkets_sdk/v3/models/account.py @@ -2,7 +2,7 @@ from pydantic import BaseModel, Field -from lnmarkets_sdk._internal.models import UUID, BaseConfig, FromToLimitParams +from lnmarkets_sdk.v3._internal.models import UUID, BaseConfig, FromToLimitParams class Account(BaseModel, BaseConfig): diff --git a/src/lnmarkets_sdk/models/funding_fees.py b/src/lnmarkets_sdk/v3/models/funding_fees.py similarity index 94% rename from src/lnmarkets_sdk/models/funding_fees.py rename to src/lnmarkets_sdk/v3/models/funding_fees.py index fd740bc..c78bd48 100644 --- a/src/lnmarkets_sdk/models/funding_fees.py +++ b/src/lnmarkets_sdk/v3/models/funding_fees.py @@ -1,6 +1,6 @@ from pydantic import BaseModel, Field -from lnmarkets_sdk._internal.models import UUID, BaseConfig +from lnmarkets_sdk.v3._internal.models import UUID, BaseConfig class FundingFees(BaseModel, BaseConfig): diff --git a/src/lnmarkets_sdk/models/futures_cross.py b/src/lnmarkets_sdk/v3/models/futures_cross.py similarity index 97% rename from src/lnmarkets_sdk/models/futures_cross.py rename to src/lnmarkets_sdk/v3/models/futures_cross.py index 35b8ed0..aa32c73 100644 --- a/src/lnmarkets_sdk/models/futures_cross.py +++ b/src/lnmarkets_sdk/v3/models/futures_cross.py @@ -2,7 +2,7 @@ from pydantic import BaseModel, Field -from lnmarkets_sdk._internal.models import UUID, BaseConfig, FromToLimitParams +from lnmarkets_sdk.v3._internal.models import UUID, BaseConfig, FromToLimitParams class FuturesCrossOrderSideQuantity(BaseModel, BaseConfig): diff --git a/src/lnmarkets_sdk/models/futures_data.py b/src/lnmarkets_sdk/v3/models/futures_data.py similarity index 97% rename from src/lnmarkets_sdk/models/futures_data.py rename to src/lnmarkets_sdk/v3/models/futures_data.py index 71230a7..4f894a3 100644 --- a/src/lnmarkets_sdk/models/futures_data.py +++ b/src/lnmarkets_sdk/v3/models/futures_data.py @@ -2,7 +2,7 @@ from pydantic import BaseModel, Field -from lnmarkets_sdk._internal.models import BaseConfig, FromToLimitParams +from lnmarkets_sdk.v3._internal.models import BaseConfig, FromToLimitParams CandleResolution = Literal[ "1m", diff --git a/src/lnmarkets_sdk/models/futures_isolated.py b/src/lnmarkets_sdk/v3/models/futures_isolated.py similarity index 98% rename from src/lnmarkets_sdk/models/futures_isolated.py rename to src/lnmarkets_sdk/v3/models/futures_isolated.py index 87291c1..7058803 100644 --- a/src/lnmarkets_sdk/models/futures_isolated.py +++ b/src/lnmarkets_sdk/v3/models/futures_isolated.py @@ -2,7 +2,7 @@ from pydantic import BaseModel, Field, model_validator -from lnmarkets_sdk._internal.models import UUID, BaseConfig, FromToLimitParams +from lnmarkets_sdk.v3._internal.models import UUID, BaseConfig, FromToLimitParams class FuturesOrder(BaseModel, BaseConfig): diff --git a/src/lnmarkets_sdk/models/oracle.py b/src/lnmarkets_sdk/v3/models/oracle.py similarity index 87% rename from src/lnmarkets_sdk/models/oracle.py rename to src/lnmarkets_sdk/v3/models/oracle.py index 28a118a..dd29360 100644 --- a/src/lnmarkets_sdk/models/oracle.py +++ b/src/lnmarkets_sdk/v3/models/oracle.py @@ -1,6 +1,6 @@ from pydantic import BaseModel, Field -from lnmarkets_sdk._internal.models import BaseConfig, FromToLimitParams +from lnmarkets_sdk.v3._internal.models import BaseConfig, FromToLimitParams class OracleIndex(BaseModel, BaseConfig): diff --git a/src/lnmarkets_sdk/models/synthetic_usd.py b/src/lnmarkets_sdk/v3/models/synthetic_usd.py similarity index 94% rename from src/lnmarkets_sdk/models/synthetic_usd.py rename to src/lnmarkets_sdk/v3/models/synthetic_usd.py index e050d60..a6f276f 100644 --- a/src/lnmarkets_sdk/models/synthetic_usd.py +++ b/src/lnmarkets_sdk/v3/models/synthetic_usd.py @@ -2,7 +2,7 @@ from pydantic import BaseModel, Field -from lnmarkets_sdk._internal.models import UUID, BaseConfig, FromToLimitParams +from lnmarkets_sdk.v3._internal.models import UUID, BaseConfig, FromToLimitParams SwapAssets = Literal["BTC", "USD"] diff --git a/src/lnmarkets_sdk/tests/test_integration.py b/src/lnmarkets_sdk/v3/tests/test_integration.py similarity index 96% rename from src/lnmarkets_sdk/tests/test_integration.py rename to src/lnmarkets_sdk/v3/tests/test_integration.py index d7477af..a6a1cce 100644 --- a/src/lnmarkets_sdk/tests/test_integration.py +++ b/src/lnmarkets_sdk/v3/tests/test_integration.py @@ -6,8 +6,8 @@ import pytest from dotenv import load_dotenv -from lnmarkets_sdk.http.client import APIAuthContext, APIClientConfig, LNMClient -from lnmarkets_sdk.models.account import ( +from lnmarkets_sdk.v3.http.client import APIAuthContext, APIClientConfig, LNMClient +from lnmarkets_sdk.v3.models.account import ( AddBitcoinAddressParams, DepositLightningParams, GetInternalDepositsParams, @@ -19,7 +19,7 @@ WithdrawLightningParams, WithdrawOnChainParams, ) -from lnmarkets_sdk.models.futures_isolated import FuturesOrder +from lnmarkets_sdk.v3.models.futures_isolated import FuturesOrder load_dotenv() @@ -270,7 +270,7 @@ async def test_get_leaderboard(self): assert isinstance(leaderboard.daily, list) async def test_get_candles(self): - from lnmarkets_sdk.models.futures_data import GetCandlesParams + from lnmarkets_sdk.v3.models.futures_data import GetCandlesParams async with LNMClient(create_public_config()) as client: params = GetCandlesParams( @@ -316,7 +316,7 @@ async def test_futures_isolated(self): assert trade.id in trade_ids # Cancel the trade - from lnmarkets_sdk.models.futures_isolated import CancelTradeParams + from lnmarkets_sdk.v3.models.futures_isolated import CancelTradeParams cancel_params = CancelTradeParams(id=trade.id) canceled = await client.futures.isolated.cancel(cancel_params) @@ -349,7 +349,7 @@ async def test_cross_orders(self): assert isinstance(open_orders, list) # Get filled orders - from lnmarkets_sdk.models.futures_cross import GetFilledOrdersParams + from lnmarkets_sdk.v3.models.futures_cross import GetFilledOrdersParams params = GetFilledOrdersParams(limit=5) filled_orders = await client.futures.cross.get_filled_orders(params) @@ -367,7 +367,7 @@ async def test_get_last_price(self): assert result[0].time is not None async def test_get_index(self): - from lnmarkets_sdk.models.oracle import GetIndexParams + from lnmarkets_sdk.v3.models.oracle import GetIndexParams async with LNMClient(create_public_config()) as client: params = GetIndexParams(limit=5) @@ -391,7 +391,7 @@ async def test_get_best_price(self): reason="V3_API_KEY not set in environment", ) async def test_get_swaps(self): - from lnmarkets_sdk.models.synthetic_usd import GetSwapsParams + from lnmarkets_sdk.v3.models.synthetic_usd import GetSwapsParams async with LNMClient(create_auth_config()) as client: params = GetSwapsParams(limit=5) diff --git a/uv.lock b/uv.lock index d79998a..c0d8b55 100644 --- a/uv.lock +++ b/uv.lock @@ -196,7 +196,7 @@ wheels = [ [[package]] name = "lnmarkets-sdk" -version = "0.0.7" +version = "0.0.11" source = { editable = "." } dependencies = [ { name = "httpx" },