bittensor-cli 8.1.1__py3-none-any.whl → 8.3.0__py3-none-any.whl

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.
@@ -7,6 +7,7 @@ from bittensor_wallet import Wallet
7
7
  import numpy as np
8
8
  from numpy.typing import NDArray
9
9
  from rich.prompt import Confirm
10
+ from substrateinterface.exceptions import SubstrateRequestException
10
11
 
11
12
  from bittensor_cli.src.bittensor.utils import err_console, console, format_error_message
12
13
  from bittensor_cli.src.bittensor.extrinsics.root import (
@@ -132,8 +133,10 @@ class SetWeightsExtrinsic:
132
133
  # _logger.info("Commit Hash: {}".format(commit_hash))
133
134
  try:
134
135
  success, message = await self.do_commit_weights(commit_hash=commit_hash)
135
- except Exception as e:
136
- err_console.print(f"Error committing weights: {e}")
136
+ except SubstrateRequestException as e:
137
+ err_console.print(
138
+ f"Error committing weights: {format_error_message(e, self.subtensor.substrate)}"
139
+ )
137
140
  # bittensor.logging.error(f"Error committing weights: {e}")
138
141
  success = False
139
142
  message = "No attempt made. Perhaps it is too soon to commit weights!"
@@ -156,14 +159,11 @@ class SetWeightsExtrinsic:
156
159
  salt_length = 8
157
160
  self.salt = list(os.urandom(salt_length))
158
161
 
159
- try:
160
- # Attempt to commit the weights to the blockchain.
161
- commit_success, commit_msg = await self.commit_weights(
162
- uids=weight_uids,
163
- weights=weight_vals,
164
- )
165
- except Exception as e:
166
- commit_success, commit_msg = False, str(e)
162
+ # Attempt to commit the weights to the blockchain.
163
+ commit_success, commit_msg = await self.commit_weights(
164
+ uids=weight_uids,
165
+ weights=weight_vals,
166
+ )
167
167
 
168
168
  if commit_success:
169
169
  current_time = datetime.now().astimezone().replace(microsecond=0)
@@ -207,11 +207,8 @@ class SetWeightsExtrinsic:
207
207
  return False, f"Failed to commit weights hash. {commit_msg}"
208
208
 
209
209
  async def reveal(self, weight_uids, weight_vals) -> tuple[bool, str]:
210
- try:
211
- # Attempt to reveal the weights using the salt.
212
- success, msg = await self.reveal_weights_extrinsic(weight_uids, weight_vals)
213
- except Exception as e:
214
- success, msg = False, str(e)
210
+ # Attempt to reveal the weights using the salt.
211
+ success, msg = await self.reveal_weights_extrinsic(weight_uids, weight_vals)
215
212
 
216
213
  if success:
217
214
  if not self.wait_for_finalization and not self.wait_for_inclusion:
@@ -253,11 +250,14 @@ class SetWeightsExtrinsic:
253
250
  keypair=self.wallet.hotkey,
254
251
  era={"period": 5},
255
252
  )
256
- response = await self.subtensor.substrate.submit_extrinsic(
257
- extrinsic,
258
- wait_for_inclusion=self.wait_for_inclusion,
259
- wait_for_finalization=self.wait_for_finalization,
260
- )
253
+ try:
254
+ response = await self.subtensor.substrate.submit_extrinsic(
255
+ extrinsic,
256
+ wait_for_inclusion=self.wait_for_inclusion,
257
+ wait_for_finalization=self.wait_for_finalization,
258
+ )
259
+ except SubstrateRequestException as e:
260
+ return False, format_error_message(e, self.subtensor.substrate)
261
261
  # We only wait here if we expect finalization.
262
262
  if not self.wait_for_finalization and not self.wait_for_inclusion:
263
263
  return True, "Not waiting for finalization or inclusion."
@@ -266,29 +266,25 @@ class SetWeightsExtrinsic:
266
266
  if await response.is_success:
267
267
  return True, "Successfully set weights."
268
268
  else:
269
- return False, format_error_message(await response.error_message)
269
+ return False, format_error_message(
270
+ await response.error_message, self.subtensor.substrate
271
+ )
270
272
 
271
273
  with console.status(
272
274
  f":satellite: Setting weights on [white]{self.subtensor.network}[/white] ..."
273
275
  ):
274
- try:
275
- success, error_message = await _do_set_weights()
276
-
277
- if not self.wait_for_finalization and not self.wait_for_inclusion:
278
- return True, "Not waiting for finalization or inclusion."
276
+ success, error_message = await _do_set_weights()
279
277
 
280
- if success:
281
- console.print(":white_heavy_check_mark: [green]Finalized[/green]")
282
- # bittensor.logging.success(prefix="Set weights", suffix="<green>Finalized: </green>" + str(success))
283
- return True, "Successfully set weights and finalized."
284
- else:
285
- # bittensor.logging.error(msg=error_message, prefix="Set weights", suffix="<red>Failed: </red>")
286
- return False, error_message
278
+ if not self.wait_for_finalization and not self.wait_for_inclusion:
279
+ return True, "Not waiting for finalization or inclusion."
287
280
 
288
- except Exception as e:
289
- err_console.print(":cross_mark: [red]Failed[/red]: error:{}".format(e))
290
- # bittensor.logging.warning(prefix="Set weights", suffix="<red>Failed: </red>" + str(e))
291
- return False, str(e)
281
+ if success:
282
+ console.print(":white_heavy_check_mark: [green]Finalized[/green]")
283
+ # bittensor.logging.success(prefix="Set weights", suffix="<green>Finalized: </green>" + str(success))
284
+ return True, "Successfully set weights and finalized."
285
+ else:
286
+ # bittensor.logging.error(msg=error_message, prefix="Set weights", suffix="<red>Failed: </red>")
287
+ return False, error_message
292
288
 
293
289
  async def reveal_weights_extrinsic(
294
290
  self, weight_uids, weight_vals
@@ -311,11 +307,14 @@ class SetWeightsExtrinsic:
311
307
  call=call,
312
308
  keypair=self.wallet.hotkey,
313
309
  )
314
- response = await self.subtensor.substrate.submit_extrinsic(
315
- extrinsic,
316
- wait_for_inclusion=self.wait_for_inclusion,
317
- wait_for_finalization=self.wait_for_finalization,
318
- )
310
+ try:
311
+ response = await self.subtensor.substrate.submit_extrinsic(
312
+ extrinsic,
313
+ wait_for_inclusion=self.wait_for_inclusion,
314
+ wait_for_finalization=self.wait_for_finalization,
315
+ )
316
+ except SubstrateRequestException as e:
317
+ return False, format_error_message(e, self.subtensor.substrate)
319
318
 
320
319
  if not self.wait_for_finalization and not self.wait_for_inclusion:
321
320
  success, error_message = True, ""
@@ -327,7 +326,9 @@ class SetWeightsExtrinsic:
327
326
  else:
328
327
  success, error_message = (
329
328
  False,
330
- format_error_message(await response.error_message),
329
+ format_error_message(
330
+ await response.error_message, self.subtensor.substrate
331
+ ),
331
332
  )
332
333
 
333
334
  if success:
@@ -377,6 +378,7 @@ async def reveal_weights(
377
378
  weights: list[float],
378
379
  salt: list[int],
379
380
  version: int,
381
+ prompt: bool = True,
380
382
  ) -> None:
381
383
  """Reveal weights for a specific subnet."""
382
384
  uids_ = np.array(
@@ -396,7 +398,7 @@ async def reveal_weights(
396
398
  )
397
399
  # Call the reveal function in the module set_weights from extrinsics package
398
400
  extrinsic = SetWeightsExtrinsic(
399
- subtensor, wallet, netuid, uids_, weights_, list(salt_), version
401
+ subtensor, wallet, netuid, uids_, weights_, list(salt_), version, prompt=prompt
400
402
  )
401
403
  success, message = await extrinsic.reveal(weight_uids, weight_vals)
402
404
 
@@ -414,6 +416,7 @@ async def commit_weights(
414
416
  weights: list[float],
415
417
  salt: list[int],
416
418
  version: int,
419
+ prompt: bool = True,
417
420
  ):
418
421
  """Commits weights and then reveals them for a specific subnet"""
419
422
  uids_ = np.array(
@@ -429,7 +432,7 @@ async def commit_weights(
429
432
  dtype=np.int64,
430
433
  )
431
434
  extrinsic = SetWeightsExtrinsic(
432
- subtensor, wallet, netuid, uids_, weights_, list(salt_), version
435
+ subtensor, wallet, netuid, uids_, weights_, list(salt_), version, prompt=prompt
433
436
  )
434
437
  success, message = await extrinsic.set_weights_extrinsic()
435
438
  if success:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: bittensor-cli
3
- Version: 8.1.1
3
+ Version: 8.3.0
4
4
  Summary: Bittensor CLI
5
5
  Home-page: https://github.com/opentensor/btcli
6
6
  Author: bittensor.com
@@ -41,7 +41,7 @@ Requires-Dist: scalecodec==1.2.11
41
41
  Requires-Dist: substrate-interface~=1.7.9
42
42
  Requires-Dist: typer~=0.12
43
43
  Requires-Dist: websockets>=12.0
44
- Requires-Dist: bittensor-wallet==2.0.1
44
+ Requires-Dist: bittensor-wallet>=2.0.2
45
45
  Requires-Dist: bt-decode==0.2.0a0
46
46
  Provides-Extra: cuda
47
47
  Requires-Dist: cubit>=1.1.0; extra == "cuda"
@@ -0,0 +1,31 @@
1
+ bittensor_cli/__init__.py,sha256=O5T0sSkvfCnlXbdjLguIp-4w1jd6Bmb-TXgQINZD1uo,1217
2
+ bittensor_cli/cli.py,sha256=tMJBqFba9L267Ghl8Af228_MIR8h7nHfYrmN1Tz3xR8,169461
3
+ bittensor_cli/doc_generation_helper.py,sha256=GexqjEIKulWg84hpNBEchJ840oOgOi7DWpt447nsdNI,91
4
+ bittensor_cli/src/__init__.py,sha256=9hFSqapIynZbrjc9YHl2wARkPdk4pV5P5zLSvn-EbqM,11856
5
+ bittensor_cli/src/bittensor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ bittensor_cli/src/bittensor/async_substrate_interface.py,sha256=EcvAoQcyDa_Sm8Ne-SNtMm8lUkZmkzDto1VUvqG0rlg,103271
7
+ bittensor_cli/src/bittensor/balances.py,sha256=102mg1iiliLSLx-EocQseWGHiWzRqcBBM-MRoObOdKo,10075
8
+ bittensor_cli/src/bittensor/chain_data.py,sha256=IsHWjmhJbTvud2i3IM1sfmBHP82VxNHC1iFDAtlLgXc,26490
9
+ bittensor_cli/src/bittensor/minigraph.py,sha256=17AjEA75MO7ez_NekOJSaAz6ARjPt99QG_7E1RJ_u_k,8891
10
+ bittensor_cli/src/bittensor/networking.py,sha256=pZLMs8YXpZzDMLXWMBb_Bj6TVkm_q9khyY-lnbwVMuE,462
11
+ bittensor_cli/src/bittensor/subtensor_interface.py,sha256=cwbRhS5qV0Jmref5Qe7rsuDy8ssrRqdObKHvaeGeoOc,43373
12
+ bittensor_cli/src/bittensor/utils.py,sha256=cvtej2aKix_EEU5FBeBCd3vIEZSt44R0dCidny7zyoA,33663
13
+ bittensor_cli/src/bittensor/extrinsics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
+ bittensor_cli/src/bittensor/extrinsics/registration.py,sha256=xrEdN_gbL6fFNh-tZRwgB-Xpb8fUer1nSd3Xr5f7x9g,59202
15
+ bittensor_cli/src/bittensor/extrinsics/root.py,sha256=RZEQv6QVDAQDjuX_vgjOMsatYvHpA3MW8zueiL6jxlE,19376
16
+ bittensor_cli/src/bittensor/extrinsics/transfer.py,sha256=ZqbUcaGVENFP0nviLj914lJXcQ_bHpUpyudPlrmSCzw,8830
17
+ bittensor_cli/src/bittensor/templates/table.j2,sha256=P2EFiksnO1cQsB8zjK6hVJwUryHTsLslzRE0YtobAV8,10601
18
+ bittensor_cli/src/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ bittensor_cli/src/commands/root.py,sha256=MiNdEg2SCPYv4Q_8aSgGn_9Giotv-k5JEnwgjrDA09A,62753
20
+ bittensor_cli/src/commands/subnets.py,sha256=0tf3DhdCmvIQA_64gFTfhk9spOA9PHSn4NUsswjbY0U,33445
21
+ bittensor_cli/src/commands/sudo.py,sha256=lpmZBT2xoAcERQNjJN__6nBmFUNcbXFTdNvl3S_T5Cg,8310
22
+ bittensor_cli/src/commands/wallets.py,sha256=lHuChXL9n4esIktENZjffdVnNKaFQaBhtuIHvunqrvs,60286
23
+ bittensor_cli/src/commands/weights.py,sha256=UHakAMTNqRkg_fkiyebbZAT9T3UEf93MmdbFgPSbqUw,16520
24
+ bittensor_cli/src/commands/stake/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ bittensor_cli/src/commands/stake/children_hotkeys.py,sha256=3FapotpWGbE_i6RELt0Sqlk5Bvao4Sd3tQibLS13nKQ,28667
26
+ bittensor_cli/src/commands/stake/stake.py,sha256=lGLMWdE3RVmYcr57pMwKljQI8vRX3WFRltmXWHdnKy8,56622
27
+ bittensor_cli-8.3.0.dist-info/METADATA,sha256=5SilMKuTyLT2Y6r_zi1Gh3kFJWSzWUQvidQQADezkfs,6788
28
+ bittensor_cli-8.3.0.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
29
+ bittensor_cli-8.3.0.dist-info/entry_points.txt,sha256=hBTLGLbVxmAKy69XSKaUZvjTCmyEzDGZKq4S8UOto8I,49
30
+ bittensor_cli-8.3.0.dist-info/top_level.txt,sha256=DvgvXpmTtI_Q1BbDZMlK90LFcGFCreN1daViEPV2iFw,14
31
+ bittensor_cli-8.3.0.dist-info/RECORD,,
@@ -1,31 +0,0 @@
1
- bittensor_cli/__init__.py,sha256=cUy43I3VLh8UFu3EYWnfJXRS40anEFV4y4qK2WAD-o4,1217
2
- bittensor_cli/cli.py,sha256=RVXKxT-p2UkFJONHjUljyDdrluQz7PM69YXn96oYESM,163901
3
- bittensor_cli/doc_generation_helper.py,sha256=GexqjEIKulWg84hpNBEchJ840oOgOi7DWpt447nsdNI,91
4
- bittensor_cli/src/__init__.py,sha256=6LdZwIvoSr6UomZUH_wNFeo7cNPgxl_dZhtdC5asJgA,11746
5
- bittensor_cli/src/bittensor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- bittensor_cli/src/bittensor/async_substrate_interface.py,sha256=Y_wKDS7_JJpvM2dzz6wm34o4LuxWqWY_1kYmRyVlhlg,102875
7
- bittensor_cli/src/bittensor/balances.py,sha256=102mg1iiliLSLx-EocQseWGHiWzRqcBBM-MRoObOdKo,10075
8
- bittensor_cli/src/bittensor/chain_data.py,sha256=IsHWjmhJbTvud2i3IM1sfmBHP82VxNHC1iFDAtlLgXc,26490
9
- bittensor_cli/src/bittensor/minigraph.py,sha256=17AjEA75MO7ez_NekOJSaAz6ARjPt99QG_7E1RJ_u_k,8891
10
- bittensor_cli/src/bittensor/networking.py,sha256=pZLMs8YXpZzDMLXWMBb_Bj6TVkm_q9khyY-lnbwVMuE,462
11
- bittensor_cli/src/bittensor/subtensor_interface.py,sha256=QjOtuvDPqmITlEHPBm6iH_fcjhmEHd235onAKJypvgQ,43233
12
- bittensor_cli/src/bittensor/utils.py,sha256=lOmMeOGFn0j0Zjoj2OsHCmS8pDkVWkvQk81IMwZ3bHg,31053
13
- bittensor_cli/src/bittensor/extrinsics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- bittensor_cli/src/bittensor/extrinsics/registration.py,sha256=aPjl9z2Kakc29cHaVPtESVE3j0IiZfHHSAK6SHbgBrc,58553
15
- bittensor_cli/src/bittensor/extrinsics/root.py,sha256=HKxK__1gWHjCHLljHP2YmjddZXe_yW_jnSIh_r1ojb8,19030
16
- bittensor_cli/src/bittensor/extrinsics/transfer.py,sha256=NwH5bAVAT9Yw1-pqbPgUc8ilC5KXLzZE_piwPomSHi0,8145
17
- bittensor_cli/src/bittensor/templates/table.j2,sha256=P2EFiksnO1cQsB8zjK6hVJwUryHTsLslzRE0YtobAV8,10601
18
- bittensor_cli/src/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
- bittensor_cli/src/commands/root.py,sha256=chNiqMiUw8k21yNAu9_rWJEypuN5TwgnE1frPRtGvkU,62017
20
- bittensor_cli/src/commands/subnets.py,sha256=QwxUah7i_1x5WvVOp_icWeZwJ7G6e2mVC4MianI_gQw,33330
21
- bittensor_cli/src/commands/sudo.py,sha256=uRimJ2EDrcanajrvtl_qMM16OOO3HuJvU_N50ePiPAY,8226
22
- bittensor_cli/src/commands/wallets.py,sha256=NzbFo0gzpgbTVGCrB7JZSNlZprtPApg2usIZ1Z-_CJo,59998
23
- bittensor_cli/src/commands/weights.py,sha256=R_KKPPclsQyLGPhpHX1QNCckQWDtAfftkcHdZvn-O-Y,16353
24
- bittensor_cli/src/commands/stake/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
- bittensor_cli/src/commands/stake/children_hotkeys.py,sha256=EhdCzJO01OphZwJ1uBAxhkdTkittp-5QDIwnQ2Tuxy0,28416
26
- bittensor_cli/src/commands/stake/stake.py,sha256=Un97mOo8xdxWs52IMI7pk4owLW4MtORM3ikP65DTvw8,56192
27
- bittensor_cli-8.1.1.dist-info/METADATA,sha256=iC5Et4fr0QpAdqVjCmitAd9PSvXp4QuUKPcJlUl-GvQ,6788
28
- bittensor_cli-8.1.1.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
29
- bittensor_cli-8.1.1.dist-info/entry_points.txt,sha256=hBTLGLbVxmAKy69XSKaUZvjTCmyEzDGZKq4S8UOto8I,49
30
- bittensor_cli-8.1.1.dist-info/top_level.txt,sha256=DvgvXpmTtI_Q1BbDZMlK90LFcGFCreN1daViEPV2iFw,14
31
- bittensor_cli-8.1.1.dist-info/RECORD,,