bittensor-cli 9.10.0__tar.gz → 9.10.1__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.
Files changed (57) hide show
  1. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/PKG-INFO +1 -1
  2. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/cli.py +9 -4
  3. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/__init__.py +4 -4
  4. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/chain_data.py +2 -0
  5. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/utils.py +4 -2
  6. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/commands/sudo.py +23 -21
  7. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/commands/wallets.py +6 -4
  8. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli.egg-info/PKG-INFO +1 -1
  9. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/pyproject.toml +1 -1
  10. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/MANIFEST.in +0 -0
  11. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/README.md +0 -0
  12. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/__init__.py +0 -0
  13. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/doc_generation_helper.py +0 -0
  14. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/__init__.py +0 -0
  15. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/balances.py +0 -0
  16. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/extrinsics/__init__.py +0 -0
  17. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/extrinsics/registration.py +0 -0
  18. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/extrinsics/root.py +0 -0
  19. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/extrinsics/transfer.py +0 -0
  20. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/minigraph.py +0 -0
  21. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/networking.py +0 -0
  22. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/subtensor_interface.py +0 -0
  23. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/templates/main-filters.j2 +0 -0
  24. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/templates/main-header.j2 +0 -0
  25. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/templates/neuron-details.j2 +0 -0
  26. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/templates/price-multi.j2 +0 -0
  27. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/templates/price-single.j2 +0 -0
  28. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/templates/subnet-details-header.j2 +0 -0
  29. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/templates/subnet-details.j2 +0 -0
  30. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/templates/subnet-metrics.j2 +0 -0
  31. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/templates/subnets-table.j2 +0 -0
  32. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/templates/table.j2 +0 -0
  33. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/templates/view.css +0 -0
  34. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/templates/view.j2 +0 -0
  35. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/bittensor/templates/view.js +0 -0
  36. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/commands/__init__.py +0 -0
  37. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/commands/liquidity/__init__.py +0 -0
  38. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/commands/liquidity/liquidity.py +0 -0
  39. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/commands/liquidity/utils.py +0 -0
  40. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/commands/stake/__init__.py +0 -0
  41. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/commands/stake/add.py +0 -0
  42. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/commands/stake/children_hotkeys.py +0 -0
  43. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/commands/stake/list.py +0 -0
  44. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/commands/stake/move.py +0 -0
  45. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/commands/stake/remove.py +0 -0
  46. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/commands/subnets/__init__.py +0 -0
  47. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/commands/subnets/price.py +0 -0
  48. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/commands/subnets/subnets.py +0 -0
  49. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/commands/view.py +0 -0
  50. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/src/commands/weights.py +0 -0
  51. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli/version.py +0 -0
  52. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli.egg-info/SOURCES.txt +0 -0
  53. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli.egg-info/dependency_links.txt +0 -0
  54. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli.egg-info/entry_points.txt +0 -0
  55. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli.egg-info/requires.txt +0 -0
  56. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/bittensor_cli.egg-info/top_level.txt +0 -0
  57. {bittensor_cli-9.10.0 → bittensor_cli-9.10.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bittensor-cli
3
- Version: 9.10.0
3
+ Version: 9.10.1
4
4
  Summary: Bittensor CLI
5
5
  Author: bittensor.com
6
6
  Project-URL: homepage, https://github.com/opentensor/btcli
@@ -410,10 +410,15 @@ def get_optional_netuid(netuid: Optional[int], all_netuids: bool) -> Optional[in
410
410
  )
411
411
  if answer is None:
412
412
  return None
413
+ answer = answer.strip()
413
414
  if answer.lower() == "all":
414
415
  return None
415
416
  else:
416
- return int(answer)
417
+ try:
418
+ return int(answer)
419
+ except ValueError:
420
+ err_console.print(f"Invalid netuid: {answer}")
421
+ return get_optional_netuid(None, False)
417
422
  else:
418
423
  return netuid
419
424
 
@@ -1264,7 +1269,7 @@ class CLIManager:
1264
1269
  use_cache: Optional[bool] = typer.Option(
1265
1270
  None,
1266
1271
  "--cache/--no-cache",
1267
- "--cache/--no_cache",
1272
+ " /--no_cache",
1268
1273
  help="Disable caching of some commands. This will disable the `--reuse-last` and `--html` flags on "
1269
1274
  "commands such as `subnets metagraph`, `stake show` and `subnets list`.",
1270
1275
  ),
@@ -4816,7 +4821,7 @@ class CLIManager:
4816
4821
  wallet = self.wallet_ask(
4817
4822
  wallet_name, wallet_path, wallet_hotkey, ask_for=[WO.NAME, WO.PATH]
4818
4823
  )
4819
- result = self._run_command(
4824
+ result, err_msg = self._run_command(
4820
4825
  sudo.sudo_set_hyperparameter(
4821
4826
  wallet,
4822
4827
  self.initialize_chain(network),
@@ -4828,7 +4833,7 @@ class CLIManager:
4828
4833
  )
4829
4834
  )
4830
4835
  if json_output:
4831
- json_console.print(json.dumps({"success": result}))
4836
+ json_console.print(json.dumps({"success": result, "err_msg": err_msg}))
4832
4837
  return result
4833
4838
 
4834
4839
  def sudo_get(
@@ -631,10 +631,10 @@ HYPERPARAMS = {
631
631
  "min_allowed_weights": ("sudo_set_min_allowed_weights", False),
632
632
  "max_weights_limit": ("sudo_set_max_weight_limit", False),
633
633
  "tempo": ("sudo_set_tempo", True),
634
- "min_difficulty": ("sudo_set_min_difficulty", False),
634
+ "min_difficulty": ("sudo_set_min_difficulty", True),
635
635
  "max_difficulty": ("sudo_set_max_difficulty", False),
636
636
  "weights_version": ("sudo_set_weights_version_key", False),
637
- "weights_rate_limit": ("sudo_set_weights_set_rate_limit", False),
637
+ "weights_rate_limit": ("sudo_set_weights_set_rate_limit", True),
638
638
  "adjustment_interval": ("sudo_set_adjustment_interval", True),
639
639
  "activity_cutoff": ("sudo_set_activity_cutoff", False),
640
640
  "target_regs_per_interval": ("sudo_set_target_registrations_per_interval", True),
@@ -645,7 +645,7 @@ HYPERPARAMS = {
645
645
  "serving_rate_limit": ("sudo_set_serving_rate_limit", False),
646
646
  "max_validators": ("sudo_set_max_allowed_validators", True),
647
647
  "adjustment_alpha": ("sudo_set_adjustment_alpha", False),
648
- "difficulty": ("sudo_set_difficulty", False),
648
+ "difficulty": ("sudo_set_difficulty", True),
649
649
  "commit_reveal_period": (
650
650
  "sudo_set_commit_reveal_weights_interval",
651
651
  False,
@@ -653,7 +653,7 @@ HYPERPARAMS = {
653
653
  "commit_reveal_weights_enabled": ("sudo_set_commit_reveal_weights_enabled", False),
654
654
  "alpha_values": ("sudo_set_alpha_values", False),
655
655
  "liquid_alpha_enabled": ("sudo_set_liquid_alpha_enabled", False),
656
- "registration_allowed": ("sudo_set_network_registration_allowed", False),
656
+ "registration_allowed": ("sudo_set_network_registration_allowed", True),
657
657
  "network_pow_registration_allowed": (
658
658
  "sudo_set_network_pow_registration_allowed",
659
659
  False,
@@ -718,6 +718,7 @@ class DynamicInfo(InfoBase):
718
718
  network_registered_at: int
719
719
  subnet_identity: Optional[SubnetIdentity]
720
720
  subnet_volume: Balance
721
+ moving_price: float
721
722
 
722
723
  @classmethod
723
724
  def _fix_decoded(cls, decoded: Any) -> "DynamicInfo":
@@ -786,6 +787,7 @@ class DynamicInfo(InfoBase):
786
787
  network_registered_at=int(decoded.get("network_registered_at")),
787
788
  subnet_identity=subnet_identity,
788
789
  subnet_volume=subnet_volume,
790
+ moving_price=fixed_to_float(decoded["moving_price"], 32),
789
791
  )
790
792
 
791
793
  def tao_to_alpha(self, tao: Balance) -> Balance:
@@ -575,7 +575,9 @@ def format_error_message(error_message: Union[dict, Exception]) -> str:
575
575
  err_type = error_message.get("type", err_type)
576
576
  err_name = error_message.get("name", err_name)
577
577
  err_docs = error_message.get("docs", [err_description])
578
- err_description = " ".join(err_docs)
578
+ err_description = (
579
+ " ".join(err_docs) if not isinstance(err_docs, str) else err_docs
580
+ )
579
581
  err_description += (
580
582
  f" | Please consult {BT_DOCS_LINK}/errors/subtensor#{err_name.lower()}"
581
583
  )
@@ -1441,5 +1443,5 @@ def get_hotkey_pub_ss58(wallet: Wallet) -> str:
1441
1443
  """
1442
1444
  try:
1443
1445
  return wallet.hotkeypub.ss58_address
1444
- except KeyFileError:
1446
+ except (KeyFileError, AttributeError):
1445
1447
  return wallet.hotkey.ss58_address
@@ -177,7 +177,7 @@ async def set_hyperparameter_extrinsic(
177
177
  wait_for_inclusion: bool = False,
178
178
  wait_for_finalization: bool = True,
179
179
  prompt: bool = True,
180
- ) -> bool:
180
+ ) -> tuple[bool, str]:
181
181
  """Sets a hyperparameter for a specific subnetwork.
182
182
 
183
183
  :param subtensor: initialized SubtensorInterface object
@@ -200,13 +200,14 @@ async def set_hyperparameter_extrinsic(
200
200
  params=[netuid],
201
201
  )
202
202
  if subnet_owner != wallet.coldkeypub.ss58_address:
203
- err_console.print(
203
+ err_msg = (
204
204
  ":cross_mark: [red]This wallet doesn't own the specified subnet.[/red]"
205
205
  )
206
- return False
206
+ err_console.print(err_msg)
207
+ return False, err_msg
207
208
 
208
- if not unlock_key(wallet).success:
209
- return False
209
+ if not (ulw := unlock_key(wallet)).success:
210
+ return False, ulw.message
210
211
 
211
212
  arbitrary_extrinsic = False
212
213
 
@@ -218,15 +219,14 @@ async def set_hyperparameter_extrinsic(
218
219
  )
219
220
  extrinsic = parameter
220
221
  if not arbitrary_extrinsic:
221
- err_console.print(
222
- ":cross_mark: [red]Invalid hyperparameter specified.[/red]"
223
- )
224
- return False
222
+ err_msg = ":cross_mark: [red]Invalid hyperparameter specified.[/red]"
223
+ err_console.print(err_msg)
224
+ return False, err_msg
225
225
  if sudo_ and prompt:
226
226
  if not Confirm.ask(
227
227
  "This hyperparam is only settable by root sudo users. If you are not, this will fail. Please confirm"
228
228
  ):
229
- return False
229
+ return False, "This hyperparam is only settable by root sudo users"
230
230
 
231
231
  substrate = subtensor.substrate
232
232
  msg_value = value if not arbitrary_extrinsic else call_params
@@ -254,10 +254,11 @@ async def set_hyperparameter_extrinsic(
254
254
  ]
255
255
 
256
256
  if len(value) < len(non_netuid_fields):
257
- err_console.print(
257
+ err_msg = (
258
258
  "Not enough values provided in the list for all parameters"
259
259
  )
260
- return False
260
+ err_console.print(err_msg)
261
+ return False, err_msg
261
262
 
262
263
  call_params.update(
263
264
  {name: val for name, val in zip(non_netuid_fields, value)}
@@ -290,20 +291,20 @@ async def set_hyperparameter_extrinsic(
290
291
  )
291
292
  if not success:
292
293
  err_console.print(f":cross_mark: [red]Failed[/red]: {err_msg}")
293
- return False
294
+ return False, err_msg
294
295
  elif arbitrary_extrinsic:
295
296
  console.print(
296
297
  f":white_heavy_check_mark: "
297
298
  f"[dark_sea_green3]Hyperparameter {parameter} values changed to {call_params}[/dark_sea_green3]"
298
299
  )
299
- return True
300
+ return True, ""
300
301
  # Successful registration, final check for membership
301
302
  else:
302
303
  console.print(
303
304
  f":white_heavy_check_mark: "
304
305
  f"[dark_sea_green3]Hyperparameter {parameter} changed to {value}[/dark_sea_green3]"
305
306
  )
306
- return True
307
+ return True, ""
307
308
 
308
309
 
309
310
  async def _get_senate_members(
@@ -619,25 +620,26 @@ async def sudo_set_hyperparameter(
619
620
  param_value: Optional[str],
620
621
  prompt: bool,
621
622
  json_output: bool,
622
- ):
623
+ ) -> tuple[bool, str]:
623
624
  """Set subnet hyperparameters."""
624
625
  is_allowed_value, value = allowed_value(param_name, param_value)
625
626
  if not is_allowed_value:
626
- err_console.print(
627
+ err_msg = (
627
628
  f"Hyperparameter [dark_orange]{param_name}[/dark_orange] value is not within bounds. "
628
629
  f"Value is {param_value} but must be {value}"
629
630
  )
630
- return False
631
- success = await set_hyperparameter_extrinsic(
631
+ err_console.print(err_msg)
632
+ return False, err_msg
633
+ success, err_msg = await set_hyperparameter_extrinsic(
632
634
  subtensor, wallet, netuid, param_name, value, prompt=prompt
633
635
  )
634
636
  if json_output:
635
- return success
637
+ return success, err_msg
636
638
  if success:
637
639
  console.print("\n")
638
640
  print_verbose("Fetching hyperparameters")
639
641
  await get_hyperparameters(subtensor, netuid=netuid)
640
- return success
642
+ return success, err_msg
641
643
 
642
644
 
643
645
  async def get_hyperparameters(
@@ -452,13 +452,15 @@ async def wallet_create(
452
452
  "error": "",
453
453
  "data": None,
454
454
  }
455
+
455
456
  if uri:
456
457
  try:
457
458
  keypair = Keypair.create_from_uri(uri)
458
- wallet.set_coldkey(keypair=keypair, encrypt=False, overwrite=False)
459
- wallet.set_coldkeypub(keypair=keypair, encrypt=False, overwrite=False)
460
- wallet.set_hotkey(keypair=keypair, encrypt=False, overwrite=False)
461
- wallet.set_coldkeypub(keypair=keypair, encrypt=False, overwrite=False)
459
+ wallet.set_coldkey(keypair=keypair, encrypt=False, overwrite=overwrite)
460
+ wallet.set_coldkeypub(keypair=keypair, encrypt=False, overwrite=overwrite)
461
+ wallet.set_hotkey(keypair=keypair, encrypt=False, overwrite=overwrite)
462
+ wallet.set_hotkeypub(keypair=keypair, encrypt=False, overwrite=overwrite)
463
+ wallet.set_coldkeypub(keypair=keypair, encrypt=False, overwrite=overwrite)
462
464
  output_dict["success"] = True
463
465
  output_dict["data"] = {
464
466
  "name": wallet.name,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bittensor-cli
3
- Version: 9.10.0
3
+ Version: 9.10.1
4
4
  Summary: Bittensor CLI
5
5
  Author: bittensor.com
6
6
  Project-URL: homepage, https://github.com/opentensor/btcli
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "bittensor-cli"
7
- version = "9.10.0"
7
+ version = "9.10.1"
8
8
  description = "Bittensor CLI"
9
9
  readme = "README.md"
10
10
  authors = [
File without changes
File without changes