Skip to content

Commit 00d977d

Browse files
authored
Merge pull request #483 from opentensor/fix/thewhaleking/apply-better-err-formatting
Apply bittensor error formatting to btcli
2 parents 5c394c8 + ba9d1c9 commit 00d977d

File tree

2 files changed

+24
-9
lines changed

2 files changed

+24
-9
lines changed

bittensor_cli/src/bittensor/utils.py

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@
3333
from bittensor_cli.src.bittensor.chain_data import SubnetHyperparameters
3434
from rich.prompt import PromptBase
3535

36+
BT_DOCS_LINK = "https://docs.bittensor.com"
37+
38+
3639
console = Console()
3740
json_console = Console()
3841
err_console = Console(stderr=True)
@@ -527,10 +530,11 @@ def format_error_message(error_message: Union[dict, Exception]) -> str:
527530
elif all(x in d for x in ["code", "message", "data"]):
528531
new_error_message = d
529532
break
530-
except ValueError:
533+
except (ValueError, TypeError, SyntaxError, MemoryError, RecursionError):
531534
pass
532535
if new_error_message is None:
533536
return_val = " ".join(error_message.args)
537+
534538
return f"Subtensor returned: {return_val}"
535539
else:
536540
error_message = new_error_message
@@ -549,8 +553,7 @@ def format_error_message(error_message: Union[dict, Exception]) -> str:
549553
# subtensor custom error marker
550554
if err_data.startswith("Custom error:"):
551555
err_description = (
552-
f"{err_data} | Please consult "
553-
f"https://docs.bittensor.com/subtensor-nodes/subtensor-error-messages"
556+
f"{err_data} | Please consult {BT_DOCS_LINK}/errors/custom"
554557
)
555558
else:
556559
err_description = err_data
@@ -563,10 +566,20 @@ def format_error_message(error_message: Union[dict, Exception]) -> str:
563566
err_type = error_message.get("type", err_type)
564567
err_name = error_message.get("name", err_name)
565568
err_docs = error_message.get("docs", [err_description])
566-
if isinstance(err_docs, list):
567-
err_description = " ".join(err_docs)
568-
else:
569-
err_description = err_docs
569+
err_description = " ".join(err_docs)
570+
err_description += (
571+
f" | Please consult {BT_DOCS_LINK}/errors/subtensor#{err_name.lower()}"
572+
)
573+
574+
elif error_message.get("code") and error_message.get("message"):
575+
err_type = error_message.get("code", err_name)
576+
err_name = "Custom type"
577+
err_description = error_message.get("message", err_description)
578+
579+
else:
580+
print_error(
581+
f"String representation of real error_message: {str(error_message)}"
582+
)
570583

571584
return f"Subtensor returned `{err_name}({err_type})` error. This means: `{err_description}`."
572585

tests/e2e_tests/test_senate.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def test_senate(local_chain, wallet_setup):
7676
"--no-prompt",
7777
],
7878
)
79-
assert "✅ Registered" in root_register.stdout
79+
assert "✅ Registered" in root_register.stdout, root_register.stderr
8080

8181
# Fetch the senate members after registering to root
8282
root_senate_after_reg = exec_command_bob(
@@ -89,7 +89,9 @@ def test_senate(local_chain, wallet_setup):
8989
)
9090

9191
# Assert Bob is now part of the senate
92-
assert wallet_bob.hotkey.ss58_address in root_senate_after_reg.stdout
92+
assert wallet_bob.hotkey.ss58_address in root_senate_after_reg.stdout, (
93+
root_senate_after_reg.stderr
94+
)
9395

9496
# Manually add a proposal on the chain & assert
9597
success = asyncio.run(call_add_proposal(local_chain, wallet_bob))

0 commit comments

Comments
 (0)