From f5a659f824739c3d759678e16361420176994d4b Mon Sep 17 00:00:00 2001 From: Roman Date: Tue, 20 May 2025 18:10:15 -0700 Subject: [PATCH 1/3] improve error message --- bittensor/utils/__init__.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/bittensor/utils/__init__.py b/bittensor/utils/__init__.py index 5efe1cbb25..14fb383847 100644 --- a/bittensor/utils/__init__.py +++ b/bittensor/utils/__init__.py @@ -22,6 +22,8 @@ if TYPE_CHECKING: from bittensor_wallet import Wallet +BT_DOCS_LINK = "https://docs.bittensor.com" + # redundant aliases logging = logging @@ -219,6 +221,7 @@ def format_error_message(error_message: Union[dict, Exception]) -> str: pass if new_error_message is None: return_val = " ".join(error_message.args) + return f"Subtensor returned: {return_val}" else: error_message = new_error_message @@ -236,7 +239,9 @@ def format_error_message(error_message: Union[dict, Exception]) -> str: # subtensor custom error marker if err_data.startswith("Custom error:"): - err_description = f"{err_data} | Please consult https://docs.bittensor.com/subtensor-nodes/subtensor-error-messages" + err_description = ( + f"{err_data} | Please consult {BT_DOCS_LINK}/errors/custom" + ) else: err_description = err_data @@ -249,6 +254,9 @@ def format_error_message(error_message: Union[dict, Exception]) -> str: err_name = error_message.get("name", err_name) err_docs = error_message.get("docs", [err_description]) err_description = " ".join(err_docs) + err_description += ( + f" | Please consult {BT_DOCS_LINK}/errors/subtensor#{err_name.lower()}" + ) elif error_message.get("code") and error_message.get("message"): err_type = error_message.get("code", err_name) From b997985bcf88716f77b779d9ec3d34856d16dbc2 Mon Sep 17 00:00:00 2001 From: Roman Date: Tue, 20 May 2025 18:10:27 -0700 Subject: [PATCH 2/3] fix tests --- tests/unit_tests/extrinsics/test__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/unit_tests/extrinsics/test__init__.py b/tests/unit_tests/extrinsics/test__init__.py index 9eb994a2a3..7772201364 100644 --- a/tests/unit_tests/extrinsics/test__init__.py +++ b/tests/unit_tests/extrinsics/test__init__.py @@ -22,8 +22,9 @@ def test_format_error_message_with_right_error_message(): # Assertions assert ( - result - == "Subtensor returned `SomeErrorName(SomeType)` error. This means: `Some error description. I'm second part. Hah, I'm the last one.`." + result == "Subtensor returned `SomeErrorName(SomeType)` error. " + "This means: `Some error description. I'm second part. Hah, I'm the last one." + " | Please consult https://docs.bittensor.com/errors/subtensor#someerrorname`." ) @@ -79,8 +80,7 @@ def test_format_error_message_with_custom_error_message_with_index(): assert ( result == f"Subtensor returned `SubstrateRequestException({fake_subtensor_error['name']})` error. This means: " - f"`{fake_custom_error['data']} | Please consult " - f"https://docs.bittensor.com/subtensor-nodes/subtensor-error-messages`." + f"`{fake_custom_error['data']} | Please consult https://docs.bittensor.com/errors/custom`." ) From 10872b55304f1b41cb52ce097530f4324e8a301a Mon Sep 17 00:00:00 2001 From: Roman Date: Tue, 20 May 2025 18:15:15 -0700 Subject: [PATCH 3/3] dynamic link in test --- tests/unit_tests/extrinsics/test__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/unit_tests/extrinsics/test__init__.py b/tests/unit_tests/extrinsics/test__init__.py index 7772201364..ba17c001be 100644 --- a/tests/unit_tests/extrinsics/test__init__.py +++ b/tests/unit_tests/extrinsics/test__init__.py @@ -1,6 +1,6 @@ """Tests for bittensor/extrinsics/__ini__ module.""" -from bittensor.utils import format_error_message +from bittensor.utils import format_error_message, BT_DOCS_LINK def test_format_error_message_with_right_error_message(): @@ -24,7 +24,7 @@ def test_format_error_message_with_right_error_message(): assert ( result == "Subtensor returned `SomeErrorName(SomeType)` error. " "This means: `Some error description. I'm second part. Hah, I'm the last one." - " | Please consult https://docs.bittensor.com/errors/subtensor#someerrorname`." + f" | Please consult {BT_DOCS_LINK}/errors/subtensor#someerrorname`." ) @@ -80,7 +80,7 @@ def test_format_error_message_with_custom_error_message_with_index(): assert ( result == f"Subtensor returned `SubstrateRequestException({fake_subtensor_error['name']})` error. This means: " - f"`{fake_custom_error['data']} | Please consult https://docs.bittensor.com/errors/custom`." + f"`{fake_custom_error['data']} | Please consult {BT_DOCS_LINK}/errors/custom`." )