From 28aed1f99a41f3e9a985f6f6dbb58e67f9f23085 Mon Sep 17 00:00:00 2001 From: GlobalStar117 Date: Thu, 15 Jan 2026 18:51:14 +1100 Subject: [PATCH] fix: JSON output empty for subnets list command Fixes #635 ## Problem Running `btcli subnets list --json-out` produced no output. ## Root Cause In `dict_table()` function, `tao_flow_ema` was already converted to a float via `.tao`, but line 604 tried to call `.tao` again, causing an `AttributeError: 'float' object has no attribute 'tao'`. This error was silently swallowed, resulting in empty output. ## Changes 1. `subnets.py`: Fixed double `.tao` call on `tao_flow_ema` 2. `utils.py`: Changed `json_console` to use `force_terminal=True` to ensure output in all environments ## Testing - Verified `btcli subnets list --json-out` now produces valid JSON output - Tested with Python 3.12, BTCLI 9.17.0, finney network --- bittensor_cli/src/bittensor/utils.py | 2 +- bittensor_cli/src/commands/subnets/subnets.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bittensor_cli/src/bittensor/utils.py b/bittensor_cli/src/bittensor/utils.py index a5c1896d3..3043cfc26 100644 --- a/bittensor_cli/src/bittensor/utils.py +++ b/bittensor_cli/src/bittensor/utils.py @@ -52,7 +52,7 @@ _force_terminal = False if (_is_pytest or not sys.stdout.isatty()) else None console = Console(no_color=_no_color, force_terminal=_force_terminal) json_console = Console( - markup=False, highlight=False, force_terminal=False, no_color=True + markup=False, highlight=False, force_terminal=True, no_color=True ) err_console = Console(stderr=True, no_color=_no_color, force_terminal=_force_terminal) verbose_console = Console( diff --git a/bittensor_cli/src/commands/subnets/subnets.py b/bittensor_cli/src/commands/subnets/subnets.py index ad0404b4f..45af8d72d 100644 --- a/bittensor_cli/src/commands/subnets/subnets.py +++ b/bittensor_cli/src/commands/subnets/subnets.py @@ -601,7 +601,7 @@ def dict_table(subnets_, block_number_, mechanisms, ema_tao_inflow) -> dict: tao_flow_ema = None if netuid in ema_tao_inflow: tao_flow_ema = ema_tao_inflow[netuid].tao - total_tao_flow_ema += tao_flow_ema.tao + total_tao_flow_ema += tao_flow_ema subnet_rows[netuid] = { "netuid": netuid, "subnet_name": subnet_name,