From 36b1937fcb93bb70d0d0fdb5326f0ed93421c0cc Mon Sep 17 00:00:00 2001 From: aitbc Date: Tue, 28 Apr 2026 18:21:48 +0200 Subject: [PATCH] Fix import errors in handlers - use absolute imports instead of relative imports --- apps/coordinator-api/src/app/routers/marketplace_gpu.py | 4 ++-- cli/handlers/market.py | 9 +++++---- cli/handlers/wallet.py | 7 ++++++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/apps/coordinator-api/src/app/routers/marketplace_gpu.py b/apps/coordinator-api/src/app/routers/marketplace_gpu.py index 9c2acb4f..16900959 100755 --- a/apps/coordinator-api/src/app/routers/marketplace_gpu.py +++ b/apps/coordinator-api/src/app/routers/marketplace_gpu.py @@ -299,7 +299,7 @@ async def sell_gpu( session: Annotated[Session, Depends(get_session)], ) -> dict[str, Any]: """List GPU for sale on marketplace with specified price.""" - gpu = _get_gpu_or_404(session, request.gpu_id) + gpu = _get_gpu_or_404(session, gpu_id) # Update GPU listing gpu.price_per_hour = request.listing_price @@ -309,7 +309,7 @@ async def sell_gpu( session.refresh(gpu) return { - "gpu_id": request.gpu_id, + "gpu_id": gpu_id, "seller_id": request.seller_id, "listing_price": request.listing_price, "status": "listed", diff --git a/cli/handlers/market.py b/cli/handlers/market.py index 68f30e88..b09585d9 100644 --- a/cli/handlers/market.py +++ b/cli/handlers/market.py @@ -286,8 +286,10 @@ def handle_market_gpu_list(args, default_coordinator_url, output_format): def handle_market_buy(args, default_coordinator_url, read_password, render_mapping): """Handle marketplace buy command via coordinator API using dual-mode wallet adapter.""" - from ..utils.dual_mode_wallet_adapter import DualModeWalletAdapter - from ..config import Config + import sys + sys.path.insert(0, "/opt/aitbc/cli") + from utils.dual_mode_wallet_adapter import DualModeWalletAdapter + from config import Config coordinator_url = getattr(args, 'rpc_url', default_coordinator_url) or default_coordinator_url @@ -314,14 +316,13 @@ def handle_market_buy(args, default_coordinator_url, read_password, render_mappi # Submit purchase to coordinator API purchase_data = { "buyer_id": args.wallet, - "gpu_id": args.item, "duration_hours": 1.0, "payment_method": "blockchain" } print(f"Submitting purchase to {coordinator_url}...") try: - response = requests.post(f"{coordinator_url}/v1/marketplace/gpu/purchase", json=purchase_data, timeout=30) + response = requests.post(f"{coordinator_url}/v1/marketplace/gpu/{args.item}/buy", json=purchase_data, timeout=30) if response.status_code in (200, 201): result = response.json() print("Purchase submitted successfully") diff --git a/cli/handlers/wallet.py b/cli/handlers/wallet.py index 8b0834a8..9fe2d2c0 100644 --- a/cli/handlers/wallet.py +++ b/cli/handlers/wallet.py @@ -73,6 +73,11 @@ def handle_wallet_transactions(args, get_transactions, output_format, first): def handle_wallet_send(args, send_transaction, read_password, first): """Handle wallet send command.""" + import sys + sys.path.insert(0, "/opt/aitbc/cli") + from utils.dual_mode_wallet_adapter import DualModeWalletAdapter + from config import Config + from_wallet = first(getattr(args, "from_wallet_arg", None), getattr(args, "from_wallet", None)) to_address = first(getattr(args, "to_address_arg", None), getattr(args, "to_address", None)) amount_value = first(getattr(args, "amount_arg", None), getattr(args, "amount", None)) @@ -104,7 +109,7 @@ def handle_wallet_send(args, send_transaction, read_password, first): if result.get('success'): print("Transaction sent successfully") - render_mapping("Transaction:", result) + print(f"Transaction hash: {result.get('transaction_hash')}") else: print(f"Transaction failed: {result.get('error', 'Unknown error')}") sys.exit(1)