neuronum 5.4.0__tar.gz → 5.4.2__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: 5.4.0
3
+ Version: 5.4.2
4
4
  Summary: Official client library to interact with the Neuronum Network
5
5
  Home-page: https://neuronum.net
6
6
  Author: Neuronum Cybernetics
@@ -18,7 +18,6 @@ Requires-Dist: click
18
18
  Requires-Dist: questionary
19
19
  Requires-Dist: python-dotenv
20
20
  Requires-Dist: requests
21
- Requires-Dist: rapidfuzz
22
21
  Dynamic: author
23
22
  Dynamic: author-email
24
23
  Dynamic: classifier
@@ -31,10 +30,23 @@ Dynamic: requires-dist
31
30
  Dynamic: requires-python
32
31
  Dynamic: summary
33
32
 
34
- ![Neuronum Logo](https://neuronum.net/static/logo_pip.png "Neuronum")
33
+ <h1 align="center">
34
+ <img src="https://neuronum.net/static/neuronum.svg" alt="Neuronum" width="100">
35
+ </h1>
36
+ <h4 align="center">Build, connect, and automate serverless data infrastructures with Neuronum</h4>
35
37
 
36
- [![Website](https://img.shields.io/badge/Website-Neuronum-blue)](https://neuronum.net) [![Documentation](https://img.shields.io/badge/Docs-Read%20now-green)](https://github.com/neuronumcybernetics/neuronum)
38
+ <p align="center">
39
+ <a href="https://neuronum.net">
40
+ <img src="https://img.shields.io/badge/Website-Neuronum-blue" alt="Website">
41
+ </a>
42
+ <a href="https://github.com/neuronumcybernetics/neuronum">
43
+ <img src="https://img.shields.io/badge/Docs-Read%20now-green" alt="Documentation">
44
+ </a>
45
+ <img src="https://img.shields.io/badge/Version-5.4.0-blueviolet" alt="Lib Version">
46
+ <img src="https://img.shields.io/badge/Python-3.9%2B-yellow" alt="Python Version">
47
+ </p>
37
48
 
49
+ ---
38
50
 
39
51
  ## **Getting Started Goals**
40
52
  - Learn about Neuronum
@@ -57,10 +69,6 @@ Neuronum is a framework to build serverless connected app & data gateways automa
57
69
  - Circuits (CTX): Store data in cloud-based key-value-label databases
58
70
  - Streams (STX): Stream, synchronize, and control data in real time
59
71
 
60
- **Cellai**
61
- Cellai is a CLI-based assistant that helps you interact with Neuronum
62
-
63
-
64
72
  #### Requirements
65
73
  - Python >= 3.8 -> https://www.python.org/downloads/
66
74
  - neuronum >= 5.4.0 -> https://pypi.org/project/neuronum/
@@ -114,7 +122,33 @@ Visit: https://github.com/neuronumcybernetics/neuronum/tree/main/how_tos/nodes
114
122
 
115
123
 
116
124
  ### **Interact with Neuronum**
125
+ **Web-based**
117
126
  1. Visit: https://neuronum.net
118
127
  2. Connect your Cell
119
128
  3. Explore Transmitters
120
129
  4. Activate Transmitters
130
+
131
+ **Code-based**
132
+ ```python
133
+ import asyncio
134
+ import neuronum
135
+
136
+ cell = neuronum.Cell( # set Cell connection
137
+ host="host", # Cell host
138
+ password="password", # Cell password
139
+ network="neuronum.net", # Cell network -> neuronum.net
140
+ synapse="synapse" # Cell synapse
141
+ )
142
+
143
+ async def main():
144
+
145
+ TX = txID # select the Transmitter TX
146
+ data = {
147
+ "say": "hello",
148
+ }
149
+ tx_response = await cell.activate_tx(TX, data) # activate TX - > get response back
150
+ print(tx_response) # print Cell list
151
+
152
+ asyncio.run(main())
153
+ ```
154
+
@@ -0,0 +1,122 @@
1
+ <h1 align="center">
2
+ <img src="https://neuronum.net/static/neuronum.svg" alt="Neuronum" width="100">
3
+ </h1>
4
+ <h4 align="center">Build, connect, and automate serverless data infrastructures with Neuronum</h4>
5
+
6
+ <p align="center">
7
+ <a href="https://neuronum.net">
8
+ <img src="https://img.shields.io/badge/Website-Neuronum-blue" alt="Website">
9
+ </a>
10
+ <a href="https://github.com/neuronumcybernetics/neuronum">
11
+ <img src="https://img.shields.io/badge/Docs-Read%20now-green" alt="Documentation">
12
+ </a>
13
+ <img src="https://img.shields.io/badge/Version-5.4.0-blueviolet" alt="Lib Version">
14
+ <img src="https://img.shields.io/badge/Python-3.9%2B-yellow" alt="Python Version">
15
+ </p>
16
+
17
+ ---
18
+
19
+ ## **Getting Started Goals**
20
+ - Learn about Neuronum
21
+ - Connect to Neuronum
22
+ - Build on Neuronum
23
+ - Interact with Neuronum
24
+
25
+
26
+ ### **About Neuronum**
27
+ Neuronum is a framework to build serverless connected app & data gateways automating the processing and distribution of data transmission, storage, and streaming.
28
+
29
+
30
+ ### **Features**
31
+ **Cell & Nodes**
32
+ - Cell: Account to connect and interact with Neuronum
33
+ - Nodes: Soft- and Hardware components hosting gateways
34
+
35
+ **Gateways**
36
+ - Transmitters (TX): Securely transmit and receive data packages
37
+ - Circuits (CTX): Store data in cloud-based key-value-label databases
38
+ - Streams (STX): Stream, synchronize, and control data in real time
39
+
40
+ #### Requirements
41
+ - Python >= 3.8 -> https://www.python.org/downloads/
42
+ - neuronum >= 5.4.0 -> https://pypi.org/project/neuronum/
43
+
44
+
45
+ ------------------
46
+
47
+
48
+ ### **Connect to Neuronum**
49
+ Installation
50
+ ```sh
51
+ pip install neuronum # install neuronum dependencies
52
+ ```
53
+
54
+ Create Cell:
55
+ ```sh
56
+ neuronum create-cell # create Cell / Cell type / Cell network
57
+ ```
58
+
59
+ or
60
+
61
+ Connect Cell:
62
+ ```sh
63
+ neuronum connect-cell # connect Cell
64
+ ```
65
+
66
+ ------------------
67
+
68
+
69
+ ### **Build on Neuronum**
70
+ Initialize Node (app template):
71
+ ```sh
72
+ neuronum init-node --app # initialize a Node with app template
73
+ ```
74
+
75
+ Change into Node folder
76
+ ```sh
77
+ cd node_node_id # change directory
78
+ ```
79
+
80
+ Start Node:
81
+ ```sh
82
+ neuronum start-node # start Node
83
+ ```
84
+
85
+ **Node Examples**
86
+ Visit: https://github.com/neuronumcybernetics/neuronum/tree/main/how_tos/nodes
87
+
88
+
89
+ ------------------
90
+
91
+
92
+ ### **Interact with Neuronum**
93
+ **Web-based**
94
+ 1. Visit: https://neuronum.net
95
+ 2. Connect your Cell
96
+ 3. Explore Transmitters
97
+ 4. Activate Transmitters
98
+
99
+ **Code-based**
100
+ ```python
101
+ import asyncio
102
+ import neuronum
103
+
104
+ cell = neuronum.Cell( # set Cell connection
105
+ host="host", # Cell host
106
+ password="password", # Cell password
107
+ network="neuronum.net", # Cell network -> neuronum.net
108
+ synapse="synapse" # Cell synapse
109
+ )
110
+
111
+ async def main():
112
+
113
+ TX = txID # select the Transmitter TX
114
+ data = {
115
+ "say": "hello",
116
+ }
117
+ tx_response = await cell.activate_tx(TX, data) # activate TX - > get response back
118
+ print(tx_response) # print Cell list
119
+
120
+ asyncio.run(main())
121
+ ```
122
+
@@ -872,42 +872,6 @@ async def async_delete_node():
872
872
  click.echo(f"Neuronum Node '{nodeID}' deleted!")
873
873
 
874
874
 
875
- @click.command()
876
- def call_cellai():
877
- try:
878
- credentials_folder_path = Path.home() / ".neuronum"
879
- env_path = credentials_folder_path / ".env"
880
-
881
- env_data = {}
882
-
883
- try:
884
- with open(env_path, "r") as f:
885
- for line in f:
886
- key, value = line.strip().split("=")
887
- env_data[key] = value
888
-
889
- host = env_data.get("HOST", "")
890
- password = env_data.get("PASSWORD", "")
891
- network = env_data.get("NETWORK", "")
892
- synapse = env_data.get("SYNAPSE", "")
893
- except FileNotFoundError:
894
- click.echo("No cell connected. Connect your cell with command neuronum connect-cell")
895
- return
896
- except Exception as e:
897
- click.echo(f"Error reading .env file: {e}")
898
- return
899
-
900
- from cellai import cellai
901
- asyncio.run(cellai.main(host, password, network, synapse))
902
-
903
- except FileNotFoundError:
904
- click.echo("Error: .env with credentials not found")
905
- except ImportError:
906
- click.echo("Cellai not found. Please check the necessary dependencies.")
907
- except Exception as e:
908
- click.echo(f"Unexpected error: {e}")
909
-
910
-
911
875
  cli.add_command(create_cell)
912
876
  cli.add_command(connect_cell)
913
877
  cli.add_command(view_cell)
@@ -920,7 +884,6 @@ cli.add_command(connect_node)
920
884
  cli.add_command(update_node)
921
885
  cli.add_command(disconnect_node)
922
886
  cli.add_command(delete_node)
923
- cli.add_command(call_cellai)
924
887
 
925
888
 
926
889
  if __name__ == "__main__":
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: neuronum
3
- Version: 5.4.0
3
+ Version: 5.4.2
4
4
  Summary: Official client library to interact with the Neuronum Network
5
5
  Home-page: https://neuronum.net
6
6
  Author: Neuronum Cybernetics
@@ -18,7 +18,6 @@ Requires-Dist: click
18
18
  Requires-Dist: questionary
19
19
  Requires-Dist: python-dotenv
20
20
  Requires-Dist: requests
21
- Requires-Dist: rapidfuzz
22
21
  Dynamic: author
23
22
  Dynamic: author-email
24
23
  Dynamic: classifier
@@ -31,10 +30,23 @@ Dynamic: requires-dist
31
30
  Dynamic: requires-python
32
31
  Dynamic: summary
33
32
 
34
- ![Neuronum Logo](https://neuronum.net/static/logo_pip.png "Neuronum")
33
+ <h1 align="center">
34
+ <img src="https://neuronum.net/static/neuronum.svg" alt="Neuronum" width="100">
35
+ </h1>
36
+ <h4 align="center">Build, connect, and automate serverless data infrastructures with Neuronum</h4>
35
37
 
36
- [![Website](https://img.shields.io/badge/Website-Neuronum-blue)](https://neuronum.net) [![Documentation](https://img.shields.io/badge/Docs-Read%20now-green)](https://github.com/neuronumcybernetics/neuronum)
38
+ <p align="center">
39
+ <a href="https://neuronum.net">
40
+ <img src="https://img.shields.io/badge/Website-Neuronum-blue" alt="Website">
41
+ </a>
42
+ <a href="https://github.com/neuronumcybernetics/neuronum">
43
+ <img src="https://img.shields.io/badge/Docs-Read%20now-green" alt="Documentation">
44
+ </a>
45
+ <img src="https://img.shields.io/badge/Version-5.4.0-blueviolet" alt="Lib Version">
46
+ <img src="https://img.shields.io/badge/Python-3.9%2B-yellow" alt="Python Version">
47
+ </p>
37
48
 
49
+ ---
38
50
 
39
51
  ## **Getting Started Goals**
40
52
  - Learn about Neuronum
@@ -57,10 +69,6 @@ Neuronum is a framework to build serverless connected app & data gateways automa
57
69
  - Circuits (CTX): Store data in cloud-based key-value-label databases
58
70
  - Streams (STX): Stream, synchronize, and control data in real time
59
71
 
60
- **Cellai**
61
- Cellai is a CLI-based assistant that helps you interact with Neuronum
62
-
63
-
64
72
  #### Requirements
65
73
  - Python >= 3.8 -> https://www.python.org/downloads/
66
74
  - neuronum >= 5.4.0 -> https://pypi.org/project/neuronum/
@@ -114,7 +122,33 @@ Visit: https://github.com/neuronumcybernetics/neuronum/tree/main/how_tos/nodes
114
122
 
115
123
 
116
124
  ### **Interact with Neuronum**
125
+ **Web-based**
117
126
  1. Visit: https://neuronum.net
118
127
  2. Connect your Cell
119
128
  3. Explore Transmitters
120
129
  4. Activate Transmitters
130
+
131
+ **Code-based**
132
+ ```python
133
+ import asyncio
134
+ import neuronum
135
+
136
+ cell = neuronum.Cell( # set Cell connection
137
+ host="host", # Cell host
138
+ password="password", # Cell password
139
+ network="neuronum.net", # Cell network -> neuronum.net
140
+ synapse="synapse" # Cell synapse
141
+ )
142
+
143
+ async def main():
144
+
145
+ TX = txID # select the Transmitter TX
146
+ data = {
147
+ "say": "hello",
148
+ }
149
+ tx_response = await cell.activate_tx(TX, data) # activate TX - > get response back
150
+ print(tx_response) # print Cell list
151
+
152
+ asyncio.run(main())
153
+ ```
154
+
@@ -1,8 +1,6 @@
1
1
  LICENSE
2
2
  README.md
3
3
  setup.py
4
- cellai/__init__.py
5
- cellai/cellai.py
6
4
  cli/__init__.py
7
5
  cli/main.py
8
6
  neuronum/__init__.py
@@ -4,4 +4,3 @@ click
4
4
  questionary
5
5
  python-dotenv
6
6
  requests
7
- rapidfuzz
@@ -1,3 +1,2 @@
1
- cellai
2
1
  cli
3
2
  neuronum
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='neuronum',
5
- version='5.4.0',
5
+ version='5.4.2',
6
6
  author='Neuronum Cybernetics',
7
7
  author_email='welcome@neuronum.net',
8
8
  description='Official client library to interact with the Neuronum Network',
@@ -12,7 +12,7 @@ setup(
12
12
  project_urls={
13
13
  "GitHub": "https://github.com/neuronumcybernetics/neuronum",
14
14
  },
15
- packages=find_packages(include=["neuronum", "cellai", "cli"]),
15
+ packages=find_packages(include=["neuronum", "cli"]),
16
16
  classifiers=[
17
17
  "Programming Language :: Python :: 3",
18
18
  "License :: OSI Approved :: MIT License",
@@ -26,7 +26,6 @@ setup(
26
26
  'questionary',
27
27
  'python-dotenv',
28
28
  'requests',
29
- 'rapidfuzz',
30
29
  ],
31
30
  entry_points={
32
31
  "console_scripts": [
neuronum-5.4.0/README.md DELETED
@@ -1,87 +0,0 @@
1
- ![Neuronum Logo](https://neuronum.net/static/logo_pip.png "Neuronum")
2
-
3
- [![Website](https://img.shields.io/badge/Website-Neuronum-blue)](https://neuronum.net) [![Documentation](https://img.shields.io/badge/Docs-Read%20now-green)](https://github.com/neuronumcybernetics/neuronum)
4
-
5
-
6
- ## **Getting Started Goals**
7
- - Learn about Neuronum
8
- - Connect to Neuronum
9
- - Build on Neuronum
10
- - Interact with Neuronum
11
-
12
-
13
- ### **About Neuronum**
14
- Neuronum is a framework to build serverless connected app & data gateways automating the processing and distribution of data transmission, storage, and streaming.
15
-
16
-
17
- ### **Features**
18
- **Cell & Nodes**
19
- - Cell: Account to connect and interact with Neuronum
20
- - Nodes: Soft- and Hardware components hosting gateways
21
-
22
- **Gateways**
23
- - Transmitters (TX): Securely transmit and receive data packages
24
- - Circuits (CTX): Store data in cloud-based key-value-label databases
25
- - Streams (STX): Stream, synchronize, and control data in real time
26
-
27
- **Cellai**
28
- Cellai is a CLI-based assistant that helps you interact with Neuronum
29
-
30
-
31
- #### Requirements
32
- - Python >= 3.8 -> https://www.python.org/downloads/
33
- - neuronum >= 5.4.0 -> https://pypi.org/project/neuronum/
34
-
35
-
36
- ------------------
37
-
38
-
39
- ### **Connect to Neuronum**
40
- Installation
41
- ```sh
42
- pip install neuronum # install neuronum dependencies
43
- ```
44
-
45
- Create Cell:
46
- ```sh
47
- neuronum create-cell # create Cell / Cell type / Cell network
48
- ```
49
-
50
- or
51
-
52
- Connect Cell:
53
- ```sh
54
- neuronum connect-cell # connect Cell
55
- ```
56
-
57
- ------------------
58
-
59
-
60
- ### **Build on Neuronum**
61
- Initialize Node (app template):
62
- ```sh
63
- neuronum init-node --app # initialize a Node with app template
64
- ```
65
-
66
- Change into Node folder
67
- ```sh
68
- cd node_node_id # change directory
69
- ```
70
-
71
- Start Node:
72
- ```sh
73
- neuronum start-node # start Node
74
- ```
75
-
76
- **Node Examples**
77
- Visit: https://github.com/neuronumcybernetics/neuronum/tree/main/how_tos/nodes
78
-
79
-
80
- ------------------
81
-
82
-
83
- ### **Interact with Neuronum**
84
- 1. Visit: https://neuronum.net
85
- 2. Connect your Cell
86
- 3. Explore Transmitters
87
- 4. Activate Transmitters
@@ -1,118 +0,0 @@
1
- import asyncio
2
- from rapidfuzz import process
3
- import neuronum
4
- import datetime
5
- from pathlib import Path
6
-
7
-
8
- def log_interaction(user_input, output, log_path=Path("cellai.log")):
9
- log_path = Path(log_path)
10
-
11
- timestamp = datetime.datetime.now().isoformat()
12
- with open(log_path, "a", encoding="utf-8") as log_file:
13
- log_file.write(f"[{timestamp}]\n")
14
- log_file.write(f"USER: {user_input}")
15
- log_file.write(f"{output}\n\n")
16
-
17
-
18
- async def main(host, password, network, synapse):
19
- cell = neuronum.Cell(
20
- host=host,
21
- password=password,
22
- network=network,
23
- synapse=synapse
24
- )
25
-
26
- tx = await cell.list_tx()
27
- nodes = await cell.list_nodes()
28
-
29
- transmitters = tx
30
- transmitters_by_id = {t["txID"]: t for t in transmitters}
31
-
32
- info_to_gateway = []
33
- for node in nodes:
34
- for g in node["Node.md"]["gateways"]:
35
- info_to_gateway.append({
36
- "nodeID": node["nodeID"],
37
- "gateway": g,
38
- "info": g["info"],
39
- "descr": node["descr"]
40
- })
41
-
42
- print("Cellai: Ready for your instruction!")
43
- loop = asyncio.get_event_loop()
44
-
45
- while True:
46
- try:
47
- user_input = await loop.run_in_executor(None, input, ">> ")
48
- user_input = user_input.strip()
49
- if user_input.lower() in {"exit", "quit"}:
50
- log_interaction(user_input, "Session ended by user.")
51
- break
52
-
53
- match, score, idx = process.extractOne(user_input, [x["info"] for x in info_to_gateway])
54
- best = info_to_gateway[idx]
55
-
56
- output_log = (
57
- f"\nMatched: {match} ({score:.1f}%)\n"
58
- f"Node: {best['descr']} [{best['nodeID']}]\n"
59
- f"Gateway: {best['gateway']['id']} ({best['gateway']['type']})"
60
- )
61
- print(output_log)
62
-
63
- if best['gateway']['type'] == "transmitter":
64
- tx_id = best['gateway']['id']
65
- tx_data = transmitters_by_id.get(tx_id)
66
- if tx_data:
67
- print(f"Executing transmitter: {tx_data['descr']}")
68
-
69
- dynamic_payload = {}
70
- for key in tx_data["data"].keys():
71
- prompt = f"Enter value for '{key}': "
72
- value = await loop.run_in_executor(None, input, prompt)
73
- dynamic_payload[key] = value
74
-
75
- print(f"Payload: {dynamic_payload}")
76
- TX = tx_id
77
- tx_response = await cell.activate_tx(TX, dynamic_payload)
78
- print(tx_response["json"])
79
- output_log += f"\nTransmitter executed: {tx_data['descr']}\nPayload: {dynamic_payload}\nResponse: {tx_response['json']}"
80
- else:
81
- warning = "Transmitter not found."
82
- print(warning)
83
- output_log += f"{warning}"
84
-
85
- elif best['gateway']['type'] == "stream":
86
- STX = best['gateway']['id']
87
- print(f"Starting stream sync for STX: {STX}")
88
- async for operation in cell.sync(STX):
89
- label = operation.get("label")
90
- data = operation.get("data")
91
- ts = operation.get("time")
92
- stxID = operation.get("stxID")
93
- operator = operation.get("operator")
94
- line = f"[{ts}] {label} | Operator: {operator} | STX: {stxID}\nData: {data}"
95
- print(line)
96
- output_log += f"\n{line}"
97
- elif best['gateway']['type'] == "circuit":
98
- CTX = best['gateway']['id']
99
- label = await loop.run_in_executor(None, input, "Enter label to load from circuit: ")
100
- label = label.strip()
101
- data = await cell.load(label, CTX)
102
- print(data)
103
- output_log += f"\nCircuit loaded from CTX: {CTX} with label '{label}'\nData: {data}"
104
- else:
105
- msg = "Unknown gateway type."
106
- print(msg)
107
- output_log += f"{msg}"
108
-
109
- log_interaction(user_input, output_log)
110
-
111
- except KeyboardInterrupt:
112
- print("\nExiting.")
113
- log_interaction("KeyboardInterrupt", "Session exited with Ctrl+C")
114
- break
115
-
116
-
117
- if __name__ == "__main__":
118
- asyncio.run(main(host, password, network, synapse))
File without changes
File without changes
File without changes
File without changes
File without changes