We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Bit 590 backward fix
- Keep count of remote loss on server, saving model based on most 20 recent average loss.
- When doing tokenization remap, make sure the input size and output size is the same.
- Ensure encode_forward_causallmnext deterministic by set seed.
- When both local_train and remote_train are on: do local_train only when the server is free.
- Validator default to do backward train
Minor fixes
1) Removes the parser generation on the config with messes with --help when using a parser
2) Turns off console-rich local logging (which sucks)

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `bittensor/__init__.py`
Content:
```
1 # The MIT License (MIT)
2 # Copyright © 2021 Yuma Rao
3 
4 # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 
5 # documentation files (the “Software”), to deal in the Software without restriction, including without limitation 
6 # the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 
7 # and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
8 
9 # The above copyright notice and this permission notice shall be included in all copies or substantial portions of 
10 # the Software.
11 
12 # THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
13 # THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
14 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 
15 # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
16 # DEALINGS IN THE SOFTWARE.
17 
18 from rich.console import Console
19 from rich.traceback import install
20 from prometheus_client import Info
21 
22 import nest_asyncio
23 nest_asyncio.apply()
24 
25 # Bittensor code and protocol version.
26 __version__ = '3.4.1'
27 version_split = __version__.split(".")
28 __version_as_int__ = (100 * int(version_split[0])) + (10 * int(version_split[1])) + (1 * int(version_split[2]))
29 
30 
31 # Turn off rich console locals trace.
32 from rich.traceback import install
33 install(show_locals=False)
34 
35 # Rich console.
36 __console__ = Console()
37 __use_console__ = True
38 
39 # Remove overdue locals in debug training.
40 install(show_locals=False)
41 
42 def turn_console_off():
43     from io import StringIO
44     __use_console__ = False
45     __console__ = Console(file=StringIO(), stderr=False)
46 
47 
48 
49 # Vocabulary dimension.
50 #__vocab_size__ = len( tokenizer ) + len( tokenizer.additional_special_tokens) + 100 # Plus 100 for eventual token size increase.
51 __vocab_size__ = 50258
52 
53 # Tensor dimension.
54 # NOTE (const): if/when this increases peers must be responsible for trimming or expanding output to this size.
55 __network_dim__ = 1024 # All network responses have shape = [ __batch_size__, __sequence_dim__, __network_dim__ ]
56 
57 # Substrate chain block time (seconds).
58 __blocktime__ = 12
59 
60 # Pip address for versioning
61 __pipaddress__ = 'https://pypi.org/pypi/bittensor/json'
62 
63 # Substrate ss58_format
64 __ss58_format__ = 42
65 
66 # Wallet ss58 address length
67 __ss58_address_length__ = 48
68 
69 __networks__ = [ 'local', 'bellagene', 'nobunaga', 'nakamoto']
70 
71 __datasets__ = ['ArXiv', 'BookCorpus2', 'Books3', 'DMMathematics', 'EnronEmails', 'EuroParl', 'Gutenberg_PG', 'HackerNews', 'NIHExPorter', 'OpenSubtitles', 'PhilPapers', 'UbuntuIRC', 'YoutubeSubtitles']
72 
73 __nakamoto_entrypoint__ = "AtreusLB-2c6154f73e6429a9.elb.us-east-2.amazonaws.com:9944"
74 
75 
76 __nobunaga_entrypoint__ = "staging.nobunaga.opentensor.ai:9944"
77 
78 # Needs to use wss://
79 __bellagene_entrypoint__ = "wss://parachain.opentensor.ai:443"
80 
81 
82 __local_entrypoint__ = "127.0.0.1:9944"
83 
84 
85 # Avoid collisions with other processes
86 from .utils.test_utils import get_random_unused_port
87 mock_subtensor_port = get_random_unused_port()
88 __mock_entrypoint__ = f"localhost:{mock_subtensor_port}"
89 
90 
91 # --- Prometheus ---
92 __prometheus_version__ = "0.1.0"
93 prometheus_version__split = __prometheus_version__.split(".")
94 __prometheus_version__as_int__ = (100 * int(prometheus_version__split[0])) + (10 * int(prometheus_version__split[1])) + (1 * int(prometheus_version__split[2]))
95 try:
96     bt_promo_info = Info("bittensor_info", "Information about the installed bittensor package.")
97     bt_promo_info.info ( 
98         {
99             '__version__': str(__version__),
100             '__version_as_int__': str(__version_as_int__),
101             '__vocab_size__': str(__vocab_size__),
102             '__network_dim__': str(__network_dim__),
103             '__blocktime__': str(__blocktime__),
104             '__prometheus_version__': str(__prometheus_version__),
105             '__prometheus_version__as_int__': str(__prometheus_version__as_int__),
106         } 
107     )
108 except ValueError: 
109     # This can silently fail if we import bittensor twice in the same process.
110     # We simply pass over this error. 
111     pass
112 
113 # ---- Config ----
114 from bittensor._config import config as config
115 
116 # ---- LOGGING ----
117 from bittensor._logging import logging as logging
118 
119 # ---- Protos ----
120 import bittensor._proto.bittensor_pb2 as proto
121 import bittensor._proto.bittensor_pb2_grpc as grpc
122 
123 # ---- Neurons ----
124 import bittensor._neuron as neurons
125 
126 # ---- Utils ----
127 from bittensor.utils import unbiased_topk as unbiased_topk
128 
129 # ---- Factories -----
130 from bittensor.utils.balance import Balance as Balance
131 from bittensor._cli import cli as cli
132 from bittensor._axon import axon as axon
133 from bittensor._wallet import wallet as wallet
134 from bittensor._keyfile import keyfile as keyfile
135 from bittensor._receptor import receptor as receptor
136 from bittensor._endpoint import endpoint as endpoint
137 from bittensor._dendrite import dendrite as dendrite
138 from bittensor._metagraph import metagraph as metagraph
139 from bittensor._prometheus import prometheus as prometheus
140 from bittensor._subtensor import subtensor as subtensor
141 from bittensor._tokenizer import tokenizer as tokenizer
142 from bittensor._serializer import serializer as serializer
143 from bittensor._synapse import synapse  as synapse 
144 from bittensor._dataset import dataset as dataset
145 from bittensor._receptor import receptor_pool as receptor_pool
146 from bittensor._wandb import wandb as wandb
147 from bittensor._threadpool import prioritythreadpool as prioritythreadpool
148 
149 # ---- Classes -----
150 from bittensor._cli.cli_impl import CLI as CLI
151 from bittensor._axon.axon_impl import Axon as Axon
152 from bittensor._config.config_impl import Config as Config
153 from bittensor._wallet.wallet_impl import Wallet as Wallet
154 from bittensor._keyfile.keyfile_impl import Keyfile as Keyfile
155 from bittensor._receptor.receptor_impl import Receptor as Receptor
156 from bittensor._endpoint.endpoint_impl import Endpoint as Endpoint
157 from bittensor._dendrite.dendrite_impl import Dendrite as Dendrite
158 from bittensor._metagraph.metagraph_impl import Metagraph as Metagraph
159 from bittensor._subtensor.subtensor_impl import Subtensor as Subtensor
160 from bittensor._serializer.serializer_impl import Serializer as Serializer
161 from bittensor._dataset.dataset_impl import Dataset as Dataset
162 from bittensor._receptor.receptor_pool_impl import ReceptorPool as ReceptorPool
163 from bittensor._threadpool.priority_thread_pool_impl import PriorityThreadPoolExecutor as PriorityThreadPoolExecutor
164 from bittensor._ipfs.ipfs_impl import Ipfs as Ipfs
165 from bittensor._synapse.synapse_impl import Synapse as Synapse
166 from bittensor._synapse.text_causallm_impl import TextCausalLM as TextCausalLM
167 from bittensor._synapse.text_causallmnext_impl import TextCausalLMNext as TextCausalLMNext
168 from bittensor._synapse.text_lasthiddenstate_impl import TextLastHiddenState as TextLastHiddenState
169 from bittensor._synapse.text_seq2seq_impl import TextSeq2Seq as TextSeq2Seq
170 
171 # DEFAULTS
172 defaults = Config()
173 subtensor.add_defaults( defaults )
174 dendrite.add_defaults( defaults )
175 axon.add_defaults( defaults )
176 prometheus.add_defaults( defaults )
177 wallet.add_defaults( defaults )
178 dataset.add_defaults( defaults )
179 wandb.add_defaults( defaults )
180 logging.add_defaults( defaults )
181 
182 from substrateinterface import Keypair as Keypair
183
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/bittensor/__init__.py b/bittensor/__init__.py
--- a/bittensor/__init__.py
+++ b/bittensor/__init__.py
@@ -23,7 +23,7 @@
 nest_asyncio.apply()
 
 # Bittensor code and protocol version.
-__version__ = '3.4.1'
+__version__ = '3.4.2'
 version_split = __version__.split(".")
 __version_as_int__ = (100 * int(version_split[0])) + (10 * int(version_split[1])) + (1 * int(version_split[2]))

{"golden_diff": "diff --git a/bittensor/__init__.py b/bittensor/__init__.py\n--- a/bittensor/__init__.py\n+++ b/bittensor/__init__.py\n@@ -23,7 +23,7 @@\n nest_asyncio.apply()\n \n # Bittensor code and protocol version.\n-__version__ = '3.4.1'\n+__version__ = '3.4.2'\n version_split = __version__.split(\".\")\n __version_as_int__ = (100 * int(version_split[0])) + (10 * int(version_split[1])) + (1 * int(version_split[2]))\n", "issue": "Bit 590 backward fix\n- Keep count of remote loss on server, saving model based on most 20 recent average loss.\r\n- When doing tokenization remap, make sure the input size and output size is the same.\r\n- Ensure encode_forward_causallmnext deterministic by set seed.\r\n- When both local_train and remote_train are on: do local_train only when the server is free.\r\n- Validator default to do backward train\nMinor fixes\n1) Removes the parser generation on the config with messes with --help when using a parser\r\n2) Turns off console-rich local logging (which sucks)\n", "before_files": [{"content": "# The MIT License (MIT)\n# Copyright \u00a9 2021 Yuma Rao\n\n# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated \n# documentation files (the \u201cSoftware\u201d), to deal in the Software without restriction, including without limitation \n# the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, \n# and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\n# The above copyright notice and this permission notice shall be included in all copies or substantial portions of \n# the Software.\n\n# THE SOFTWARE IS PROVIDED \u201cAS IS\u201d, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO\n# THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL \n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION \n# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER \n# DEALINGS IN THE SOFTWARE.\n\nfrom rich.console import Console\nfrom rich.traceback import install\nfrom prometheus_client import Info\n\nimport nest_asyncio\nnest_asyncio.apply()\n\n# Bittensor code and protocol version.\n__version__ = '3.4.1'\nversion_split = __version__.split(\".\")\n__version_as_int__ = (100 * int(version_split[0])) + (10 * int(version_split[1])) + (1 * int(version_split[2]))\n\n\n# Turn off rich console locals trace.\nfrom rich.traceback import install\ninstall(show_locals=False)\n\n# Rich console.\n__console__ = Console()\n__use_console__ = True\n\n# Remove overdue locals in debug training.\ninstall(show_locals=False)\n\ndef turn_console_off():\n    from io import StringIO\n    __use_console__ = False\n    __console__ = Console(file=StringIO(), stderr=False)\n\n\n\n# Vocabulary dimension.\n#__vocab_size__ = len( tokenizer ) + len( tokenizer.additional_special_tokens) + 100 # Plus 100 for eventual token size increase.\n__vocab_size__ = 50258\n\n# Tensor dimension.\n# NOTE (const): if/when this increases peers must be responsible for trimming or expanding output to this size.\n__network_dim__ = 1024 # All network responses have shape = [ __batch_size__, __sequence_dim__, __network_dim__ ]\n\n# Substrate chain block time (seconds).\n__blocktime__ = 12\n\n# Pip address for versioning\n__pipaddress__ = 'https://pypi.org/pypi/bittensor/json'\n\n# Substrate ss58_format\n__ss58_format__ = 42\n\n# Wallet ss58 address length\n__ss58_address_length__ = 48\n\n__networks__ = [ 'local', 'bellagene', 'nobunaga', 'nakamoto']\n\n__datasets__ = ['ArXiv', 'BookCorpus2', 'Books3', 'DMMathematics', 'EnronEmails', 'EuroParl', 'Gutenberg_PG', 'HackerNews', 'NIHExPorter', 'OpenSubtitles', 'PhilPapers', 'UbuntuIRC', 'YoutubeSubtitles']\n\n__nakamoto_entrypoint__ = \"AtreusLB-2c6154f73e6429a9.elb.us-east-2.amazonaws.com:9944\"\n\n\n__nobunaga_entrypoint__ = \"staging.nobunaga.opentensor.ai:9944\"\n\n# Needs to use wss://\n__bellagene_entrypoint__ = \"wss://parachain.opentensor.ai:443\"\n\n\n__local_entrypoint__ = \"127.0.0.1:9944\"\n\n\n# Avoid collisions with other processes\nfrom .utils.test_utils import get_random_unused_port\nmock_subtensor_port = get_random_unused_port()\n__mock_entrypoint__ = f\"localhost:{mock_subtensor_port}\"\n\n\n# --- Prometheus ---\n__prometheus_version__ = \"0.1.0\"\nprometheus_version__split = __prometheus_version__.split(\".\")\n__prometheus_version__as_int__ = (100 * int(prometheus_version__split[0])) + (10 * int(prometheus_version__split[1])) + (1 * int(prometheus_version__split[2]))\ntry:\n    bt_promo_info = Info(\"bittensor_info\", \"Information about the installed bittensor package.\")\n    bt_promo_info.info ( \n        {\n            '__version__': str(__version__),\n            '__version_as_int__': str(__version_as_int__),\n            '__vocab_size__': str(__vocab_size__),\n            '__network_dim__': str(__network_dim__),\n            '__blocktime__': str(__blocktime__),\n            '__prometheus_version__': str(__prometheus_version__),\n            '__prometheus_version__as_int__': str(__prometheus_version__as_int__),\n        } \n    )\nexcept ValueError: \n    # This can silently fail if we import bittensor twice in the same process.\n    # We simply pass over this error. \n    pass\n\n# ---- Config ----\nfrom bittensor._config import config as config\n\n# ---- LOGGING ----\nfrom bittensor._logging import logging as logging\n\n# ---- Protos ----\nimport bittensor._proto.bittensor_pb2 as proto\nimport bittensor._proto.bittensor_pb2_grpc as grpc\n\n# ---- Neurons ----\nimport bittensor._neuron as neurons\n\n# ---- Utils ----\nfrom bittensor.utils import unbiased_topk as unbiased_topk\n\n# ---- Factories -----\nfrom bittensor.utils.balance import Balance as Balance\nfrom bittensor._cli import cli as cli\nfrom bittensor._axon import axon as axon\nfrom bittensor._wallet import wallet as wallet\nfrom bittensor._keyfile import keyfile as keyfile\nfrom bittensor._receptor import receptor as receptor\nfrom bittensor._endpoint import endpoint as endpoint\nfrom bittensor._dendrite import dendrite as dendrite\nfrom bittensor._metagraph import metagraph as metagraph\nfrom bittensor._prometheus import prometheus as prometheus\nfrom bittensor._subtensor import subtensor as subtensor\nfrom bittensor._tokenizer import tokenizer as tokenizer\nfrom bittensor._serializer import serializer as serializer\nfrom bittensor._synapse import synapse  as synapse \nfrom bittensor._dataset import dataset as dataset\nfrom bittensor._receptor import receptor_pool as receptor_pool\nfrom bittensor._wandb import wandb as wandb\nfrom bittensor._threadpool import prioritythreadpool as prioritythreadpool\n\n# ---- Classes -----\nfrom bittensor._cli.cli_impl import CLI as CLI\nfrom bittensor._axon.axon_impl import Axon as Axon\nfrom bittensor._config.config_impl import Config as Config\nfrom bittensor._wallet.wallet_impl import Wallet as Wallet\nfrom bittensor._keyfile.keyfile_impl import Keyfile as Keyfile\nfrom bittensor._receptor.receptor_impl import Receptor as Receptor\nfrom bittensor._endpoint.endpoint_impl import Endpoint as Endpoint\nfrom bittensor._dendrite.dendrite_impl import Dendrite as Dendrite\nfrom bittensor._metagraph.metagraph_impl import Metagraph as Metagraph\nfrom bittensor._subtensor.subtensor_impl import Subtensor as Subtensor\nfrom bittensor._serializer.serializer_impl import Serializer as Serializer\nfrom bittensor._dataset.dataset_impl import Dataset as Dataset\nfrom bittensor._receptor.receptor_pool_impl import ReceptorPool as ReceptorPool\nfrom bittensor._threadpool.priority_thread_pool_impl import PriorityThreadPoolExecutor as PriorityThreadPoolExecutor\nfrom bittensor._ipfs.ipfs_impl import Ipfs as Ipfs\nfrom bittensor._synapse.synapse_impl import Synapse as Synapse\nfrom bittensor._synapse.text_causallm_impl import TextCausalLM as TextCausalLM\nfrom bittensor._synapse.text_causallmnext_impl import TextCausalLMNext as TextCausalLMNext\nfrom bittensor._synapse.text_lasthiddenstate_impl import TextLastHiddenState as TextLastHiddenState\nfrom bittensor._synapse.text_seq2seq_impl import TextSeq2Seq as TextSeq2Seq\n\n# DEFAULTS\ndefaults = Config()\nsubtensor.add_defaults( defaults )\ndendrite.add_defaults( defaults )\naxon.add_defaults( defaults )\nprometheus.add_defaults( defaults )\nwallet.add_defaults( defaults )\ndataset.add_defaults( defaults )\nwandb.add_defaults( defaults )\nlogging.add_defaults( defaults )\n\nfrom substrateinterface import Keypair as Keypair\n", "path": "bittensor/__init__.py"}], "after_files": [{"content": "# The MIT License (MIT)\n# Copyright \u00a9 2021 Yuma Rao\n\n# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated \n# documentation files (the \u201cSoftware\u201d), to deal in the Software without restriction, including without limitation \n# the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, \n# and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\n# The above copyright notice and this permission notice shall be included in all copies or substantial portions of \n# the Software.\n\n# THE SOFTWARE IS PROVIDED \u201cAS IS\u201d, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO\n# THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL \n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION \n# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER \n# DEALINGS IN THE SOFTWARE.\n\nfrom rich.console import Console\nfrom rich.traceback import install\nfrom prometheus_client import Info\n\nimport nest_asyncio\nnest_asyncio.apply()\n\n# Bittensor code and protocol version.\n__version__ = '3.4.2'\nversion_split = __version__.split(\".\")\n__version_as_int__ = (100 * int(version_split[0])) + (10 * int(version_split[1])) + (1 * int(version_split[2]))\n\n\n# Turn off rich console locals trace.\nfrom rich.traceback import install\ninstall(show_locals=False)\n\n# Rich console.\n__console__ = Console()\n__use_console__ = True\n\n# Remove overdue locals in debug training.\ninstall(show_locals=False)\n\ndef turn_console_off():\n    from io import StringIO\n    __use_console__ = False\n    __console__ = Console(file=StringIO(), stderr=False)\n\n\n\n# Vocabulary dimension.\n#__vocab_size__ = len( tokenizer ) + len( tokenizer.additional_special_tokens) + 100 # Plus 100 for eventual token size increase.\n__vocab_size__ = 50258\n\n# Tensor dimension.\n# NOTE (const): if/when this increases peers must be responsible for trimming or expanding output to this size.\n__network_dim__ = 1024 # All network responses have shape = [ __batch_size__, __sequence_dim__, __network_dim__ ]\n\n# Substrate chain block time (seconds).\n__blocktime__ = 12\n\n# Pip address for versioning\n__pipaddress__ = 'https://pypi.org/pypi/bittensor/json'\n\n# Substrate ss58_format\n__ss58_format__ = 42\n\n# Wallet ss58 address length\n__ss58_address_length__ = 48\n\n__networks__ = [ 'local', 'bellagene', 'nobunaga', 'nakamoto']\n\n__datasets__ = ['ArXiv', 'BookCorpus2', 'Books3', 'DMMathematics', 'EnronEmails', 'EuroParl', 'Gutenberg_PG', 'HackerNews', 'NIHExPorter', 'OpenSubtitles', 'PhilPapers', 'UbuntuIRC', 'YoutubeSubtitles']\n\n__nakamoto_entrypoint__ = \"AtreusLB-2c6154f73e6429a9.elb.us-east-2.amazonaws.com:9944\"\n\n\n__nobunaga_entrypoint__ = \"staging.nobunaga.opentensor.ai:9944\"\n\n# Needs to use wss://\n__bellagene_entrypoint__ = \"wss://parachain.opentensor.ai:443\"\n\n\n__local_entrypoint__ = \"127.0.0.1:9944\"\n\n\n# Avoid collisions with other processes\nfrom .utils.test_utils import get_random_unused_port\nmock_subtensor_port = get_random_unused_port()\n__mock_entrypoint__ = f\"localhost:{mock_subtensor_port}\"\n\n\n# --- Prometheus ---\n__prometheus_version__ = \"0.1.0\"\nprometheus_version__split = __prometheus_version__.split(\".\")\n__prometheus_version__as_int__ = (100 * int(prometheus_version__split[0])) + (10 * int(prometheus_version__split[1])) + (1 * int(prometheus_version__split[2]))\ntry:\n    bt_promo_info = Info(\"bittensor_info\", \"Information about the installed bittensor package.\")\n    bt_promo_info.info ( \n        {\n            '__version__': str(__version__),\n            '__version_as_int__': str(__version_as_int__),\n            '__vocab_size__': str(__vocab_size__),\n            '__network_dim__': str(__network_dim__),\n            '__blocktime__': str(__blocktime__),\n            '__prometheus_version__': str(__prometheus_version__),\n            '__prometheus_version__as_int__': str(__prometheus_version__as_int__),\n        } \n    )\nexcept ValueError: \n    # This can silently fail if we import bittensor twice in the same process.\n    # We simply pass over this error. \n    pass\n\n# ---- Config ----\nfrom bittensor._config import config as config\n\n# ---- LOGGING ----\nfrom bittensor._logging import logging as logging\n\n# ---- Protos ----\nimport bittensor._proto.bittensor_pb2 as proto\nimport bittensor._proto.bittensor_pb2_grpc as grpc\n\n# ---- Neurons ----\nimport bittensor._neuron as neurons\n\n# ---- Utils ----\nfrom bittensor.utils import unbiased_topk as unbiased_topk\n\n# ---- Factories -----\nfrom bittensor.utils.balance import Balance as Balance\nfrom bittensor._cli import cli as cli\nfrom bittensor._axon import axon as axon\nfrom bittensor._wallet import wallet as wallet\nfrom bittensor._keyfile import keyfile as keyfile\nfrom bittensor._receptor import receptor as receptor\nfrom bittensor._endpoint import endpoint as endpoint\nfrom bittensor._dendrite import dendrite as dendrite\nfrom bittensor._metagraph import metagraph as metagraph\nfrom bittensor._prometheus import prometheus as prometheus\nfrom bittensor._subtensor import subtensor as subtensor\nfrom bittensor._tokenizer import tokenizer as tokenizer\nfrom bittensor._serializer import serializer as serializer\nfrom bittensor._synapse import synapse  as synapse \nfrom bittensor._dataset import dataset as dataset\nfrom bittensor._receptor import receptor_pool as receptor_pool\nfrom bittensor._wandb import wandb as wandb\nfrom bittensor._threadpool import prioritythreadpool as prioritythreadpool\n\n# ---- Classes -----\nfrom bittensor._cli.cli_impl import CLI as CLI\nfrom bittensor._axon.axon_impl import Axon as Axon\nfrom bittensor._config.config_impl import Config as Config\nfrom bittensor._wallet.wallet_impl import Wallet as Wallet\nfrom bittensor._keyfile.keyfile_impl import Keyfile as Keyfile\nfrom bittensor._receptor.receptor_impl import Receptor as Receptor\nfrom bittensor._endpoint.endpoint_impl import Endpoint as Endpoint\nfrom bittensor._dendrite.dendrite_impl import Dendrite as Dendrite\nfrom bittensor._metagraph.metagraph_impl import Metagraph as Metagraph\nfrom bittensor._subtensor.subtensor_impl import Subtensor as Subtensor\nfrom bittensor._serializer.serializer_impl import Serializer as Serializer\nfrom bittensor._dataset.dataset_impl import Dataset as Dataset\nfrom bittensor._receptor.receptor_pool_impl import ReceptorPool as ReceptorPool\nfrom bittensor._threadpool.priority_thread_pool_impl import PriorityThreadPoolExecutor as PriorityThreadPoolExecutor\nfrom bittensor._ipfs.ipfs_impl import Ipfs as Ipfs\nfrom bittensor._synapse.synapse_impl import Synapse as Synapse\nfrom bittensor._synapse.text_causallm_impl import TextCausalLM as TextCausalLM\nfrom bittensor._synapse.text_causallmnext_impl import TextCausalLMNext as TextCausalLMNext\nfrom bittensor._synapse.text_lasthiddenstate_impl import TextLastHiddenState as TextLastHiddenState\nfrom bittensor._synapse.text_seq2seq_impl import TextSeq2Seq as TextSeq2Seq\n\n# DEFAULTS\ndefaults = Config()\nsubtensor.add_defaults( defaults )\ndendrite.add_defaults( defaults )\naxon.add_defaults( defaults )\nprometheus.add_defaults( defaults )\nwallet.add_defaults( defaults )\ndataset.add_defaults( defaults )\nwandb.add_defaults( defaults )\nlogging.add_defaults( defaults )\n\nfrom substrateinterface import Keypair as Keypair\n", "path": "bittensor/__init__.py"}]}