neuronum 7.0.2__tar.gz → 7.0.3__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.

Potentially problematic release.


This version of neuronum might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: neuronum
3
- Version: 7.0.2
3
+ Version: 7.0.3
4
4
  Summary: Official client library to interact with the Neuronum Network
5
5
  Home-page: https://neuronum.net
6
6
  Author: Neuronum Cybernetics
@@ -664,7 +664,7 @@ Send the command "Ping Node" to Cellai
664
664
  @click.command()
665
665
  @click.option('--d', is_flag=True, help="Start node in detached mode")
666
666
  def start_node(d):
667
- update_node()
667
+ update_node_at_start()
668
668
  pid_file = Path.cwd() / "status.txt"
669
669
  system_name = platform.system()
670
670
  active_pids = []
@@ -792,7 +792,7 @@ def check_node():
792
792
  @click.command()
793
793
  @click.option('--d', is_flag=True, help="Restart node in detached mode")
794
794
  def restart_node(d):
795
- update_node()
795
+ update_node_at_start()
796
796
  pid_file = Path.cwd() / "status.txt"
797
797
  system_name = platform.system()
798
798
 
@@ -923,6 +923,7 @@ async def async_stop_node():
923
923
  click.echo("Error: Unable to stop some node processes.")
924
924
 
925
925
 
926
+ @click.command()
926
927
  def update_node():
927
928
  click.echo("Update your Node")
928
929
  env_data = {}
@@ -1042,6 +1043,125 @@ async def async_update_node(node_type: str, descr: str, partners:str) -> None:
1042
1043
  click.echo(f"Neuronum Node '{nodeID}' updated!")
1043
1044
 
1044
1045
 
1046
+ def update_node_at_start():
1047
+ click.echo("Update your Node")
1048
+ env_data = {}
1049
+
1050
+ try:
1051
+ with open(".env", "r") as f:
1052
+ for line in f:
1053
+ key, value = line.strip().split("=")
1054
+ env_data[key] = value
1055
+
1056
+ host = env_data.get("HOST", "")
1057
+
1058
+ except FileNotFoundError:
1059
+ click.echo("Error: .env with credentials not found")
1060
+ return
1061
+ except Exception as e:
1062
+ click.echo(f"Error reading .env file: {e}")
1063
+ return
1064
+
1065
+ if host.startswith("CMTY_"):
1066
+ node_type = questionary.select(
1067
+ "Community Cells can only create private Nodes",
1068
+ choices=["private"]
1069
+ ).ask()
1070
+ else:
1071
+ node_type = questionary.select(
1072
+ "Who can view your Node?:",
1073
+ choices=["public", "private", "partners"]
1074
+ ).ask()
1075
+ partners = "None"
1076
+ if node_type == "partners":
1077
+ prompt_msg = (
1078
+ "Enter the list of partners who can view this Node.\n"
1079
+ "Format: partner::cell, partner::cell, partner::cell\n"
1080
+ "Press Enter to leave the list unchanged"
1081
+ )
1082
+ partners = click.prompt(
1083
+ prompt_msg,
1084
+ default="None",
1085
+ show_default=False
1086
+ ).strip()
1087
+ descr = click.prompt(
1088
+ "Update Node description: Type up to 25 characters, or press Enter to leave it unchanged",
1089
+ default="None",
1090
+ show_default=False
1091
+ ).strip()
1092
+ if descr and len(descr) > 25:
1093
+ click.echo("Description too long. Max 25 characters allowed.")
1094
+ return
1095
+ asyncio.run(async_update_node_at_start(node_type, descr, partners))
1096
+
1097
+ async def async_update_node_at_start(node_type: str, descr: str, partners:str) -> None:
1098
+ env_data = {}
1099
+
1100
+ try:
1101
+ with open(".env", "r") as f:
1102
+ for line in f:
1103
+ key, value = line.strip().split("=")
1104
+ env_data[key] = value
1105
+
1106
+ nodeID = env_data.get("NODE", "")
1107
+ host = env_data.get("HOST", "")
1108
+ password = env_data.get("PASSWORD", "")
1109
+ network = env_data.get("NETWORK", "")
1110
+ synapse = env_data.get("SYNAPSE", "")
1111
+
1112
+ except FileNotFoundError:
1113
+ click.echo("Error: .env with credentials not found")
1114
+ return
1115
+ except Exception as e:
1116
+ click.echo(f"Error reading .env file: {e}")
1117
+ return
1118
+
1119
+ try:
1120
+ with open("NODE.md", "r") as f:
1121
+ nodemd_file = f.read()
1122
+
1123
+ with open("config.json", "r") as f:
1124
+ config_file = f.read()
1125
+
1126
+ except FileNotFoundError:
1127
+ click.echo("Error: NODE.md file not found")
1128
+ return
1129
+ except Exception as e:
1130
+ click.echo(f"Error reading NODE.md file: {e}")
1131
+ return
1132
+
1133
+ if node_type == "partners":
1134
+ node_type = partners
1135
+
1136
+ url = f"https://{network}/api/update_node"
1137
+ node = {
1138
+ "nodeID": nodeID,
1139
+ "host": host,
1140
+ "password": password,
1141
+ "synapse": synapse,
1142
+ "node_type": node_type,
1143
+ "nodemd_file": nodemd_file,
1144
+ "config_file": config_file,
1145
+ "descr": descr,
1146
+ }
1147
+
1148
+ async with aiohttp.ClientSession() as session:
1149
+ try:
1150
+ async with session.post(url, json=node) as response:
1151
+ response.raise_for_status()
1152
+ data = await response.json()
1153
+ nodeID = data["nodeID"]
1154
+ node_url = data["node_url"]
1155
+ except aiohttp.ClientError as e:
1156
+ click.echo(f"Error sending request: {e}")
1157
+ return
1158
+
1159
+ if node_type == "public":
1160
+ click.echo(f"Neuronum Node '{nodeID}' updated! Visit: {node_url}")
1161
+ else:
1162
+ click.echo(f"Neuronum Node '{nodeID}' updated!")
1163
+
1164
+
1045
1165
  @click.command()
1046
1166
  def delete_node():
1047
1167
  asyncio.run(async_delete_node())
@@ -1219,6 +1339,7 @@ cli.add_command(view_cell)
1219
1339
  cli.add_command(disconnect_cell)
1220
1340
  cli.add_command(delete_cell)
1221
1341
  cli.add_command(init_node)
1342
+ cli.add_command(update_node)
1222
1343
  cli.add_command(start_node)
1223
1344
  cli.add_command(restart_node)
1224
1345
  cli.add_command(stop_node)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: neuronum
3
- Version: 7.0.2
3
+ Version: 7.0.3
4
4
  Summary: Official client library to interact with the Neuronum Network
5
5
  Home-page: https://neuronum.net
6
6
  Author: Neuronum Cybernetics
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='neuronum',
5
- version='7.0.2',
5
+ version='7.0.3',
6
6
  author='Neuronum Cybernetics',
7
7
  author_email='welcome@neuronum.net',
8
8
  description='Official client library to interact with the Neuronum Network',
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes