dominusnode 1.2.0__tar.gz → 1.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dominusnode-1.2.0 → dominusnode-1.3.0}/PKG-INFO +1 -1
- {dominusnode-1.2.0 → dominusnode-1.3.0}/README.md +12 -12
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/mpp.py +5 -1
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode.egg-info/PKG-INFO +1 -1
- {dominusnode-1.2.0 → dominusnode-1.3.0}/pyproject.toml +1 -1
- {dominusnode-1.2.0 → dominusnode-1.3.0}/LICENSE +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/__init__.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/admin.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/agent_wallet.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/auth.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/client.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/constants.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/errors.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/http_client.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/keys.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/plans.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/proxy.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/py.typed +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/sessions.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/slots.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/teams.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/token_manager.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/types.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/usage.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/wallet.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/wallet_auth.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode/x402.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode.egg-info/SOURCES.txt +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode.egg-info/dependency_links.txt +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode.egg-info/requires.txt +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/dominusnode.egg-info/top_level.txt +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/setup.cfg +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/tests/test_admin.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/tests/test_auth.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/tests/test_client.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/tests/test_errors.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/tests/test_keys.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/tests/test_proxy.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/tests/test_token_manager.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/tests/test_usage.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/tests/test_wallet.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/tests/test_wallet_auth.py +0 -0
- {dominusnode-1.2.0 → dominusnode-1.3.0}/tests/test_x402.py +0 -0
|
@@ -394,18 +394,18 @@ with DominusNodeClient(base_url="https://api.dominusnode.com") as client:
|
|
|
394
394
|
print(f"API error: {e}")
|
|
395
395
|
```
|
|
396
396
|
|
|
397
|
-
| Error Class
|
|
398
|
-
|
|
399
|
-
| `AuthenticationError`
|
|
400
|
-
| `AuthorizationError`
|
|
401
|
-
| `InsufficientBalanceError` | 402
|
|
402
|
-
| `RateLimitError`
|
|
403
|
-
| `ValidationError`
|
|
404
|
-
| `NotFoundError`
|
|
405
|
-
| `ConflictError`
|
|
406
|
-
| `ServerError`
|
|
407
|
-
| `NetworkError`
|
|
408
|
-
| `ProxyError`
|
|
397
|
+
| Error Class | HTTP Status | When |
|
|
398
|
+
| -------------------------- | ----------- | ------------------------------------------ |
|
|
399
|
+
| `AuthenticationError` | 401 | Invalid credentials, expired token |
|
|
400
|
+
| `AuthorizationError` | 403 | Insufficient permissions (e.g., non-admin) |
|
|
401
|
+
| `InsufficientBalanceError` | 402 | Wallet balance too low |
|
|
402
|
+
| `RateLimitError` | 429 | Too many requests |
|
|
403
|
+
| `ValidationError` | 400 | Invalid input |
|
|
404
|
+
| `NotFoundError` | 404 | Resource not found |
|
|
405
|
+
| `ConflictError` | 409 | Duplicate resource |
|
|
406
|
+
| `ServerError` | 500+ | Server-side error |
|
|
407
|
+
| `NetworkError` | -- | Connection failure, timeout |
|
|
408
|
+
| `ProxyError` | -- | Proxy URL building error |
|
|
409
409
|
|
|
410
410
|
## Configuration
|
|
411
411
|
|
|
@@ -10,6 +10,10 @@ from __future__ import annotations
|
|
|
10
10
|
import json
|
|
11
11
|
import math
|
|
12
12
|
from typing import Any, Dict
|
|
13
|
+
|
|
14
|
+
# IETF MPP auth scheme names
|
|
15
|
+
MPP_AUTH_SCHEME = "Payment"
|
|
16
|
+
MPP_AUTH_SCHEME_LEGACY = "MPP"
|
|
13
17
|
from urllib.parse import quote
|
|
14
18
|
|
|
15
19
|
from .http_client import AsyncHttpClient, SyncHttpClient
|
|
@@ -40,7 +44,7 @@ def build_proxy_headers(credential: Dict[str, Any]) -> Dict[str, str]:
|
|
|
40
44
|
Headers dict with ``Authorization: MPP <json>``.
|
|
41
45
|
"""
|
|
42
46
|
return {
|
|
43
|
-
"Authorization": "
|
|
47
|
+
"Authorization": MPP_AUTH_SCHEME + " " + json.dumps(credential, separators=(",", ":")),
|
|
44
48
|
}
|
|
45
49
|
|
|
46
50
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|