Skip to content
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
82 changes: 0 additions & 82 deletions .github/workflows/_test_nft_private.yaml

This file was deleted.

72 changes: 0 additions & 72 deletions .github/workflows/_test_nft_public.yaml

This file was deleted.

35 changes: 0 additions & 35 deletions .github/workflows/cicd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -132,39 +132,6 @@ jobs:
python-version: ${{ matrix.python-version }}
secrets: inherit

## ===========================================================================
## Run the NFT tests
##
## (public endpoints)
##
Test-NFT-Public:
needs: [Pre-Commit]
uses: ./.github/workflows/_test_nft_public.yaml
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ["3.11", "3.12", "3.13"]
with:
os: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
##
## (private endpoints)
Test-NFT-Private:
if: success() && github.actor != 'dependabot[bot]'
needs: [Test-Spot-Private]
uses: ./.github/workflows/_test_nft_private.yaml
strategy:
max-parallel: 1 # to avoid failing tests because of API Rate limits
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ["3.11", "3.12", "3.13"]
with:
os: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
secrets: inherit

## ===========================================================================
## Run the Futures tests
##
Expand Down Expand Up @@ -210,8 +177,6 @@ jobs:
- Test-Spot-Private
- Test-Futures-Public
- Test-Futures-Private
- Test-NFT-Public
- Test-NFT-Private
uses: ./.github/workflows/_codecov.yaml
with:
os: "ubuntu-latest"
Expand Down
18 changes: 11 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<h1 align="center">Futures, Spot and NFT - REST and Websocket API Python SDK for the Kraken Cryptocurrency Exchange 🐙</h1>
<h1 align="center">Futures and Spot REST and Websocket API Python SDK for the Kraken Cryptocurrency Exchange 🐙</h1>

<div align="center">

Expand Down Expand Up @@ -56,7 +56,7 @@ General:

Available Clients:

- Spot REST Clients (sync and async; including access to NFT trading)
- Spot REST Clients (sync and async)
- Spot Websocket Client (using Websocket API v2)
- Spot Orderbook Client (using Websocket API v2)
- Futures REST Clients (sync and async)
Expand Down Expand Up @@ -128,7 +128,7 @@ persists please open an issue.

The python-kraken-sdk provides a command-line interface to access the Kraken API
using basic instructions while performing authentication tasks in the
background. The Spot, NFT and Futures API are accessible and follow the pattern
background. The Spot and Futures API are accessible and follow the pattern
`kraken {spot,futures} [OPTIONS] URL`. See examples below.

```bash
Expand Down Expand Up @@ -174,7 +174,7 @@ the available endpoints and their usage.
### `SpotClient`

The Spot client provides access to all un-and authenticated endpoints of
Kraken's Spot and NFT API.
Kraken's Spot API.

```python
from kraken.spot import SpotClient
Expand All @@ -185,9 +185,11 @@ print(client.request("POST", "/0/private/Balance"))

### `SpotAsyncClient`

The async Spot client allows for asynchronous access to Kraken's Spot and NFT API endpoints. Below are two examples demonstrating its usage.
The async Spot client allows for asynchronous access to Kraken's Spot API
endpoints. Below are two examples demonstrating its usage.

Using SpotAsyncClient without a context manager; In this example, the client is manually closed after the request is made.
Using SpotAsyncClient without a context manager; In this example, the client is
manually closed after the request is made.

```python
import asyncio
Expand All @@ -205,7 +207,9 @@ if __name__ == "__main__":
asyncio.run(main())
```

Using SpotAsyncClient as a context manager; This example demonstrates the use of the context manager, which ensures the client is automatically closed after the request is completed.
Using SpotAsyncClient as a context manager; This example demonstrates the use of
the context manager, which ensures the client is automatically closed after the
request is completed.

```python
import asyncio
Expand Down
2 changes: 1 addition & 1 deletion doc/examples/command_line_interface.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Command-line Interface

The python-kraken-sdk provides a command-line interface to access the Kraken API
using basic instructions while performing authentication tasks in the
background. The Spot, NFT and Futures API are accessible and follow the pattern
background. The Spot and Futures APIs are accessible and follow the pattern
``kraken {spot,futures} [OPTIONS] URL``. All endpoints of the Kraken Spot and
Futurs API can be accessed like that. See examples below.

Expand Down
6 changes: 3 additions & 3 deletions doc/examples/rest_ws_samples/spot_rest_examples.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ See https://docs.kraken.com/api/docs/guides/global-intro for information about
the available endpoints and their usage.

The Spot client provides access to all un-and authenticated endpoints of
Kraken's Spot and NFT API.
Kraken's Spot API.

.. code-block:: python
:linenos:
Expand All @@ -31,8 +31,8 @@ Kraken's Spot and NFT API.
client = SpotClient(key="<your-api-key>", secret="<your-secret-key>")
print(client.request("POST", "/0/private/Balance"))

The async Spot client allows for asynchronous access to Kraken's Spot and NFT
API endpoints. Below are two examples demonstrating its usage.
The async Spot client allows for asynchronous access to Kraken's Spot API
endpoints. Below are two examples demonstrating its usage.

Using SpotAsyncClient without a context manager; In this example, the client is
manually closed after the request is made.
Expand Down
1 change: 0 additions & 1 deletion doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ Welcome to python-kraken-sdk's documentation!
spot/websockets.rst
futures/rest.rst
futures/websockets.rst
nft/rest.rst
base_api/base_api.rst
exceptions/exceptions.rst
issues.rst
Expand Down
2 changes: 1 addition & 1 deletion doc/introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ General:

Available Clients:

- Spot REST Clients (sync and async; including access to NFT trading)
- Spot REST Clients (sync and async)
- Spot Websocket Client (Websocket API v2)
- Spot Orderbook Client (Websocket API v2)
- Futures REST Clients (sync and async)
Expand Down
22 changes: 0 additions & 22 deletions doc/nft/rest.rst

This file was deleted.

4 changes: 0 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -140,10 +140,6 @@ markers = [
"futures_trade: Futures Trade endpoint.",
"futures_funding: Futures Funding endpoint.",
"futures_websocket: Futures Websocket endpoint.",
"nft: NFT endpoint.",
"nft_auth: Private NFT endpoint.",
"nft_market: NFT Market endpoint.",
"nft_trade: NFT Trade endpoint.",
]

# filterwarnings = [
Expand Down
9 changes: 2 additions & 7 deletions src/kraken/base_api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -489,8 +489,8 @@ def __exit__(

class SpotAsyncClient(SpotClient):
"""
This class provides the base client for accessing the Kraken Spot and NFT
API using asynchronous requests.
This class provides the base client for accessing the Kraken Spot API using
asynchronous requests.

If you are facing timeout errors on derived clients, you can make use of the
``TIMEOUT`` attribute to deviate from the default ``10`` seconds.
Expand Down Expand Up @@ -685,10 +685,6 @@ async def __aexit__(self: SpotAsyncClient, *args: object) -> None:
await self.close()


class NFTClient(SpotClient):
"""Inherits from SpotClient"""


class FuturesClient:
"""
The base class for all Futures clients handles un-/signed requests and
Expand Down Expand Up @@ -1179,7 +1175,6 @@ async def __aexit__(self: FuturesAsyncClient, *args: object) -> None:
"ensure_string",
"SpotClient",
"SpotAsyncClient",
"NFTClient",
"FuturesClient",
"FuturesAsyncClient",
]
6 changes: 0 additions & 6 deletions src/kraken/exceptions/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -319,11 +319,6 @@ class KrakenMaxFeeExceededError(Exception):
"""The fee was higher than the defined maximum."""


@docstring_message
class KrakenNFTNotAvailableError(Exception):
"""The user doesn't own the selected NFT."""


@docstring_message
class KrakenInvalidArgumentsStartTimeError(Exception):
"""start_time must be < expire_time"""
Expand Down Expand Up @@ -362,7 +357,6 @@ class MaxReconnectError(Exception):
"EGeneral:Permission denied": KrakenPermissionDeniedError,
"EGeneral:Unknown method": KrakenUnknownMethodError,
"EGeneral:Temporary lockout": KrakenTemporaryLockoutError,
"EGeneral:No Balance:nfts not available": KrakenNFTNotAvailableError,
"EGeneral:Invalid User:auction owned by someone else": KrakenAuctionNotOwnedByUserError,
"EFunding:Max fee exceeded": KrakenMaxFeeExceededError,
"EService:Unavailable": KrakenServiceUnavailableError,
Expand Down
Loading