naeural-client 3.1.5__py3-none-any.whl → 3.2.2__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.
- naeural_client/_ver.py +1 -1
- naeural_client/base/generic_session.py +402 -89
- naeural_client/base/instance.py +38 -0
- naeural_client/base/pipeline.py +82 -6
- naeural_client/base_decentra_object.py +4 -2
- naeural_client/bc/__init__.py +1 -1
- naeural_client/bc/base.py +9 -9
- naeural_client/bc/evm.py +10 -1
- naeural_client/cli/cli.py +1 -0
- naeural_client/cli/cli_commands.py +19 -2
- naeural_client/cli/nodes.py +100 -8
- naeural_client/cli/oracles.py +6 -0
- naeural_client/comm/mqtt_wrapper.py +4 -2
- naeural_client/const/base.py +2 -0
- naeural_client/const/environment.py +3 -0
- naeural_client/const/payload.py +7 -1
- naeural_client/utils/config.py +64 -75
- naeural_client/utils/oracle_sync/oracle_tester.py +1 -1
- {naeural_client-3.1.5.dist-info → naeural_client-3.2.2.dist-info}/METADATA +4 -4
- {naeural_client-3.1.5.dist-info → naeural_client-3.2.2.dist-info}/RECORD +23 -23
- {naeural_client-3.1.5.dist-info → naeural_client-3.2.2.dist-info}/WHEEL +0 -0
- {naeural_client-3.1.5.dist-info → naeural_client-3.2.2.dist-info}/entry_points.txt +0 -0
- {naeural_client-3.1.5.dist-info → naeural_client-3.2.2.dist-info}/licenses/LICENSE +0 -0
naeural_client/utils/config.py
CHANGED
@@ -2,10 +2,8 @@ import json
|
|
2
2
|
import os
|
3
3
|
from pathlib import Path
|
4
4
|
import shutil
|
5
|
-
from pandas import DataFrame
|
6
|
-
from datetime import datetime
|
7
5
|
|
8
|
-
from naeural_client.const.base import BCct, dAuth
|
6
|
+
from naeural_client.const.base import BCct, dAuth, EE_SDK_ALIAS_DEFAULT, EE_SDK_ALIAS_ENV_KEY
|
9
7
|
from naeural_client._ver import __VER__ as version
|
10
8
|
|
11
9
|
from naeural_client.logging.base_logger import SDK_HOME, BaseLogger
|
@@ -23,6 +21,16 @@ EE_TARGET_NODE=
|
|
23
21
|
|
24
22
|
"""
|
25
23
|
|
24
|
+
def _create_bc_engine():
|
25
|
+
from naeural_client.bc import DefaultBlockEngine
|
26
|
+
from naeural_client import Logger
|
27
|
+
return DefaultBlockEngine(
|
28
|
+
name="default",
|
29
|
+
log=Logger("CLI", silent=True),
|
30
|
+
user_config=True, # this is must to use the user config
|
31
|
+
)
|
32
|
+
|
33
|
+
|
26
34
|
def seconds_to_short_format(seconds):
|
27
35
|
"""
|
28
36
|
Converts a duration in seconds into a short human-readable format: "Xd HH:MM:SS".
|
@@ -99,6 +107,25 @@ def get_user_config_file():
|
|
99
107
|
def get_network():
|
100
108
|
return os.environ.get(dAuth.DAUTH_NET_ENV_KEY, dAuth.DAUTH_SDK_NET_DEFAULT)
|
101
109
|
|
110
|
+
def get_alias():
|
111
|
+
return os.environ.get(EE_SDK_ALIAS_ENV_KEY, EE_SDK_ALIAS_DEFAULT)
|
112
|
+
|
113
|
+
def set_client_alias(alias : str):
|
114
|
+
config_file = get_user_config_file()
|
115
|
+
# open config_file and update EE_SDK_ALIAS
|
116
|
+
with config_file.open("r") as file:
|
117
|
+
lines = file.readlines()
|
118
|
+
with config_file.open("w") as file:
|
119
|
+
found = False
|
120
|
+
for line in lines:
|
121
|
+
if line.startswith(EE_SDK_ALIAS_ENV_KEY):
|
122
|
+
line = f"{EE_SDK_ALIAS_ENV_KEY}={alias}\n"
|
123
|
+
found = True
|
124
|
+
file.write(line)
|
125
|
+
if not found:
|
126
|
+
file.write(f"{EE_SDK_ALIAS_ENV_KEY}={alias}\n")
|
127
|
+
log_with_color(f"Alias set to {alias}", color='b')
|
128
|
+
return
|
102
129
|
|
103
130
|
def get_networks(args):
|
104
131
|
"""
|
@@ -131,12 +158,21 @@ def get_set_network(args):
|
|
131
158
|
file.write(f"EE_EVM_NET={net}\n")
|
132
159
|
log_with_color(f"Network set to {net}", color='b')
|
133
160
|
return
|
161
|
+
|
162
|
+
def get_set_alias(args):
|
163
|
+
alias = args.set
|
164
|
+
if alias is None:
|
165
|
+
log_with_color(f"Client v{version} alias: {get_alias()}", color='b')
|
166
|
+
else:
|
167
|
+
set_client_alias(alias)
|
168
|
+
return
|
169
|
+
|
134
170
|
|
135
171
|
|
136
172
|
def reset_config(*larg, keep_existing=False, **kwargs):
|
137
173
|
"""
|
138
|
-
Resets the configuration by creating a ~/.
|
139
|
-
~/.
|
174
|
+
Resets the configuration by creating a ~/.ratio1 folder and populating
|
175
|
+
~/.ratio1/config with values from a local .env file, if it exists.
|
140
176
|
"""
|
141
177
|
log_with_color(f"Client v{version} resetting the configuration...", color='y')
|
142
178
|
# Define the target config folder and file
|
@@ -146,13 +182,13 @@ def reset_config(*larg, keep_existing=False, **kwargs):
|
|
146
182
|
local_pem = Path(LOCAL_PEM_PATH)
|
147
183
|
target_pem = config_dir / BCct.USER_PEM_FILE
|
148
184
|
|
149
|
-
# Create the ~/.
|
185
|
+
# Create the ~/.ratio1 folder if it doesn't exist
|
150
186
|
config_dir.mkdir(parents=True, exist_ok=True)
|
151
187
|
|
152
188
|
# Check if the current folder has a .env file
|
153
189
|
current_env_file = Path(".env")
|
154
190
|
if current_env_file.exists():
|
155
|
-
# Copy .env content to ~/.
|
191
|
+
# Copy .env content to ~/.ratio1/config
|
156
192
|
shutil.copy(current_env_file, config_file)
|
157
193
|
log_with_color(
|
158
194
|
f"Configuration has been reset using {current_env_file} into {config_file}",
|
@@ -208,19 +244,21 @@ def show_version(silent=True):
|
|
208
244
|
|
209
245
|
# TODO: get the epoch from the SDK - AFTER moving get_epoch_id from core
|
210
246
|
|
211
|
-
|
247
|
+
log_with_color(f"Ratio1 client v{version}:\n", color='b')
|
212
248
|
log_with_color(f"SDK folder: {user_folder}", color='b')
|
213
|
-
log_with_color(f"SDK version: {version}", color='b')
|
214
249
|
log_with_color(f"Ratio1 network: {get_network()}", color='b')
|
215
250
|
log_with_color(f"Network Epoch: {sess.bc_engine.get_current_epoch()}", color='b')
|
216
251
|
log_with_color(f"SDK addr: {sess.get_client_address()}", color='b')
|
217
252
|
log_with_color(f"SDK ETH addr: {sess.bc_engine.eth_address}", color='b')
|
253
|
+
log_with_color(f"SDK alias: {sess.name}", color='b')
|
218
254
|
return
|
255
|
+
|
256
|
+
|
219
257
|
|
220
258
|
|
221
259
|
def show_config(args):
|
222
260
|
"""
|
223
|
-
Displays the current configuration from ~/.
|
261
|
+
Displays the current configuration from ~/.ratio1/config.
|
224
262
|
"""
|
225
263
|
show_version(silent=not args.verbose)
|
226
264
|
config_file = get_user_config_file()
|
@@ -228,79 +266,18 @@ def show_config(args):
|
|
228
266
|
keys = []
|
229
267
|
with config_file.open("r") as file:
|
230
268
|
lines = file.readlines()
|
231
|
-
keys = [line.strip().split("=")[0] for line in lines if "=" in line]
|
232
|
-
|
269
|
+
keys = [line.strip().split("=")[0] for line in lines if "=" in line and not line.strip().startswith("#")]
|
270
|
+
commments = [line.strip() for line in lines if line.strip().startswith("#")]
|
271
|
+
log_with_color(f"Current config {config_file} has {len(keys)} keys and {len(commments)} comments\n", color='d')
|
233
272
|
else:
|
234
273
|
log_with_color(f"No configuration found at {config_file}. Please run `reset_config` first.", color="r")
|
235
274
|
return
|
236
275
|
|
237
|
-
def get_apps(args):
|
238
|
-
"""
|
239
|
-
Shows the apps running on a given node, if the client is allowed on that node.
|
240
|
-
Parameters
|
241
|
-
----------
|
242
|
-
args : argparse.Namespace
|
243
|
-
Arguments passed to the function.
|
244
276
|
|
245
|
-
"""
|
246
|
-
verbose = args.verbose
|
247
|
-
node = args.node
|
248
|
-
show_full = args.full
|
249
|
-
as_json = args.json
|
250
|
-
|
251
|
-
# 1. Init session
|
252
|
-
from naeural_client import Session
|
253
|
-
sess = Session(
|
254
|
-
silent=not verbose
|
255
|
-
)
|
256
|
-
|
257
|
-
# 2. Wait for node to appear online
|
258
|
-
found = sess.wait_for_node(node)
|
259
|
-
if not found:
|
260
|
-
log_with_color(f'Node {node} not found. Please check the configuration.', color='r')
|
261
|
-
return
|
262
|
-
# 3. Check if the node is peered with the client
|
263
|
-
is_allowed = sess.is_peered(node)
|
264
|
-
if not is_allowed:
|
265
|
-
log_with_color(f"Node {node} is not peered with the client. Please check the configuration.", color='r')
|
266
|
-
return
|
267
|
-
# 4. Wait for node to send the configuration.
|
268
|
-
sess.wait_for_node_configs(node)
|
269
|
-
apps = sess.get_active_pipelines(node)
|
270
|
-
if apps is None:
|
271
|
-
log_with_color(f"No apps found on node {node}. Client might not be authorized", color='r')
|
272
|
-
return
|
273
|
-
# 5. Maybe exclude admin application.
|
274
|
-
if not show_full:
|
275
|
-
apps = {k: v for k, v in apps.items() if str(k).lower() != 'admin_pipeline'}
|
276
|
-
# 6. Show the apps
|
277
|
-
if as_json:
|
278
|
-
# Will print a big JSON with all the app configurations.
|
279
|
-
json_data = {k: v.get_full_config() for k, v in apps.items()}
|
280
|
-
log_with_color(json.dumps(json_data, indent=2))
|
281
|
-
else:
|
282
|
-
lst_plugin_instance_data = []
|
283
|
-
for pipeline_name, pipeline in apps.items():
|
284
|
-
for instance in pipeline.lst_plugin_instances:
|
285
|
-
lst_plugin_instance_data.append({
|
286
|
-
'APP': pipeline_name,
|
287
|
-
'PLUGIN': instance.signature,
|
288
|
-
'ID': instance.instance_id
|
289
|
-
})
|
290
|
-
# endfor instances in app
|
291
|
-
# endfor apps
|
292
|
-
apps_df = DataFrame(lst_plugin_instance_data)
|
293
|
-
last_seen = sess.get_last_seen_time(node)
|
294
|
-
is_online = sess.check_node_online(node)
|
295
|
-
node_status = 'Online' if is_online else 'Offline'
|
296
|
-
last_seen_str = datetime.fromtimestamp(last_seen).strftime('%Y-%m-%d %H:%M:%S') if last_seen else None
|
297
|
-
log_with_color(f"Apps on node {node} [{node_status}| Last seen: {last_seen_str}]:\n{apps_df}", color='b')
|
298
|
-
# endif show as json
|
299
|
-
return
|
300
277
|
|
301
278
|
def load_user_defined_config(verbose=False):
|
302
279
|
"""
|
303
|
-
Loads the ~/.
|
280
|
+
Loads the ~/.ratio1/config file into the current environment.
|
304
281
|
"""
|
305
282
|
config_file = get_user_config_file()
|
306
283
|
result = False
|
@@ -340,3 +317,15 @@ def maybe_init_config():
|
|
340
317
|
return False
|
341
318
|
# config_file still does not exist even after attempting the migration.
|
342
319
|
return load_user_defined_config()
|
320
|
+
|
321
|
+
|
322
|
+
|
323
|
+
def get_eth_addr(args):
|
324
|
+
"""
|
325
|
+
Gets the ETH address given a node address.
|
326
|
+
"""
|
327
|
+
node = args.node
|
328
|
+
eng = _create_bc_engine()
|
329
|
+
eth_addr = eng.get_eth_address(node)
|
330
|
+
log_with_color(f"ETH address for node {node}: {eth_addr}", color='b')
|
331
|
+
return
|
@@ -482,7 +482,7 @@ class OracleTester:
|
|
482
482
|
msg = f"No data available for {node_eth_addr}. Please check the address or contact support."
|
483
483
|
else:
|
484
484
|
for epoch, avail, cert in zip(epochs, avails, certs):
|
485
|
-
msg += f" - Epoch {f'#{epoch}':>4}: {avail:3} ({cert * 100:5.1f}%)\n"
|
485
|
+
msg += f" - Epoch {f'#{epoch}':>4}: {avail:3} ({cert * 100:5.1f}% certainty)\n"
|
486
486
|
# endif data available
|
487
487
|
return msg
|
488
488
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: naeural_client
|
3
|
-
Version: 3.
|
3
|
+
Version: 3.2.2
|
4
4
|
Summary: `naeural_client` is the Python SDK required for client app development for the Naeural Edge Protocol Edge Protocol framework
|
5
5
|
Project-URL: Homepage, https://github.com/NaeuralEdgeProtocol/naeural_client
|
6
6
|
Project-URL: Bug Tracker, https://github.com/NaeuralEdgeProtocol/naeural_client/issues
|
@@ -88,18 +88,18 @@ Comprehensive documentation for the Ratio1 SDK is currently a work in progress.
|
|
88
88
|
|
89
89
|
Starting with version 2.6+, the Ratio1 SDK automatically performs self-configuration using **dAuth**—the Ratio1 decentralized self-authentication system. To begin integrating with the Ratio1 network, follow these steps:
|
90
90
|
|
91
|
-
### 1. Start a Local Edge Node
|
91
|
+
### 1. Start a Local Edge Node (testnet)
|
92
92
|
|
93
93
|
Launch a local Ratio1 Edge Node using Docker:
|
94
94
|
|
95
95
|
```bash
|
96
|
-
docker run -d --name=r1node naeural/edge_node:
|
96
|
+
docker run -d --name=r1node naeural/edge_node:testnet
|
97
97
|
```
|
98
98
|
|
99
99
|
if you want to have a persistent volume for the node, you can use the following command:
|
100
100
|
|
101
101
|
```bash
|
102
|
-
docker run -d --name=r1node --rm --pull=always -v r1vol:/edge_node/_local_cache naeural/edge_node:
|
102
|
+
docker run -d --name=r1node --rm --pull=always -v r1vol:/edge_node/_local_cache naeural/edge_node:testnet
|
103
103
|
```
|
104
104
|
This way the node will store its data in the `r1vol` volume, and you can stop and start the node without losing data you might have stored in the node via deployed jobs from your SDK. We also added the `--pull=always` flag to ensure that the latest version of the node is always pulled from the Docker Hub.
|
105
105
|
|
@@ -1,49 +1,49 @@
|
|
1
1
|
naeural_client/__init__.py,sha256=YimqgDbjLuywsf8zCWE0EaUXH4MBUrqLxt0TDV558hQ,632
|
2
|
-
naeural_client/_ver.py,sha256=
|
3
|
-
naeural_client/base_decentra_object.py,sha256=
|
2
|
+
naeural_client/_ver.py,sha256=NOz7aEJ1WJsh43U4LtIYy2q2MqQlpRN564G-nIQDATM,330
|
3
|
+
naeural_client/base_decentra_object.py,sha256=iXvAAf6wPnGWzeeiRfwLojVoan-m1e_VsyPzjUQuENo,4492
|
4
4
|
naeural_client/plugins_manager_mixin.py,sha256=X1JdGLDz0gN1rPnTN_5mJXR8JmqoBFQISJXmPR9yvCo,11106
|
5
5
|
naeural_client/base/__init__.py,sha256=hACh83_cIv7-PwYMM3bQm2IBmNqiHw-3PAfDfAEKz9A,259
|
6
6
|
naeural_client/base/distributed_custom_code_presets.py,sha256=cvz5R88P6Z5V61Ce1vHVVh8bOkgXd6gve_vdESDNAsg,2544
|
7
|
-
naeural_client/base/generic_session.py,sha256=
|
8
|
-
naeural_client/base/instance.py,sha256=
|
9
|
-
naeural_client/base/pipeline.py,sha256=
|
7
|
+
naeural_client/base/generic_session.py,sha256=ATB1k_mQ_efvek_ZgsYYex3G4ouhXds3CHRz1_lOKZM,127702
|
8
|
+
naeural_client/base/instance.py,sha256=annR9qt6zqzIyf_AVzAIfxWHF8Y_zEjviels2MNfcPM,21916
|
9
|
+
naeural_client/base/pipeline.py,sha256=5IJnb8SRiCDJ3IRl02gEMXxjugGedyhu6xESP33GMpo,62521
|
10
10
|
naeural_client/base/plugin_template.py,sha256=7YAFaND2iXoZLgtunjYkFf_TBGieFr3VdNLO3vCqzmM,138795
|
11
11
|
naeural_client/base/responses.py,sha256=ZKBZmRhYDv8M8mQ5C_ahGsQvtWH4b9ImRcuerQdZmNw,6937
|
12
12
|
naeural_client/base/transaction.py,sha256=bfs6td5M0fINgPQNxhrl_AUjb1YiilLDQ-Cd_o3OR_E,5146
|
13
13
|
naeural_client/base/webapp_pipeline.py,sha256=ZNGqZ36DY076XVDfGu2Q61kCt3kxIJ4Mi4QbPZuDVn0,2791
|
14
14
|
naeural_client/base/payload/__init__.py,sha256=y8fBI8tG2ObNfaXFWjyWZXwu878FRYj_I8GIbHT4GKE,29
|
15
15
|
naeural_client/base/payload/payload.py,sha256=x-au7l67Z_vfn_4R2C_pjZCaFuUVXHngJiGOfIAYVdE,2690
|
16
|
-
naeural_client/bc/__init__.py,sha256=
|
17
|
-
naeural_client/bc/base.py,sha256=
|
16
|
+
naeural_client/bc/__init__.py,sha256=BI5pcqHdhwnMdbWTYDLW1cVP_844VtLra-lz7xprgsk,171
|
17
|
+
naeural_client/bc/base.py,sha256=zFrBp2zI1EdDYOP9NVrVAga-guDhx2n5taEGWfdqnW8,44755
|
18
18
|
naeural_client/bc/chain.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
19
|
naeural_client/bc/ec.py,sha256=FwlkWmJvQ9aHuf_BZX1CWSUAxw6OZ9jBparLIWcs_e4,18933
|
20
|
-
naeural_client/bc/evm.py,sha256=
|
20
|
+
naeural_client/bc/evm.py,sha256=knccBb8Whdo2V1E_kmxJVHGV10-_Eoj2AFV7FVjJwj4,26508
|
21
21
|
naeural_client/certs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
22
22
|
naeural_client/certs/a0d9818f.ala.eu-central-1.emqxsl.com.crt,sha256=y-6io0tseyx9-a4Pmde1z1gPULtJNSYUpG_YFkYaMKU,1337
|
23
23
|
naeural_client/certs/r9092118.ala.eu-central-1.emqxsl.com.crt,sha256=y-6io0tseyx9-a4Pmde1z1gPULtJNSYUpG_YFkYaMKU,1337
|
24
24
|
naeural_client/certs/s624dbd4.ala.us-east-1.emqxsl.com.crt,sha256=y-6io0tseyx9-a4Pmde1z1gPULtJNSYUpG_YFkYaMKU,1337
|
25
25
|
naeural_client/cli/README.md,sha256=WPdI_EjzAbUW1aPyj1sSR8rLydcJKZtoiaEtklQrjHo,74
|
26
|
-
naeural_client/cli/cli.py,sha256=
|
27
|
-
naeural_client/cli/cli_commands.py,sha256=
|
28
|
-
naeural_client/cli/nodes.py,sha256=
|
29
|
-
naeural_client/cli/oracles.py,sha256=
|
26
|
+
naeural_client/cli/cli.py,sha256=paF9PuS1aSOkZuchMprKQ227acQl1nYVgOsNz7l-OU4,4117
|
27
|
+
naeural_client/cli/cli_commands.py,sha256=7yK57VSxFuVvcku4x-STXERA3nnsotPMUJQWW__xPhA,4438
|
28
|
+
naeural_client/cli/nodes.py,sha256=8ZbRPIInIXnxGZMiyH_V5M2qRyjwbyR0lEdCUp5M2wI,8384
|
29
|
+
naeural_client/cli/oracles.py,sha256=EO24pUfMY4rhTjQMQnGn0cPF02e5se_3KUKl0nDI71E,4925
|
30
30
|
naeural_client/code_cheker/__init__.py,sha256=pwkdeZGVL16ZA4Qf2mRahEhoOvKhL7FyuQbMFLr1E5M,33
|
31
31
|
naeural_client/code_cheker/base.py,sha256=lT5DRIFO5rqzsMNCmdMRfkAeevmezozehyfgmhnKpuI,19074
|
32
32
|
naeural_client/code_cheker/checker.py,sha256=QWupeM7ToancVIq1tRUxRNUrI8B5l5eoY0kDU4-O5aE,7365
|
33
33
|
naeural_client/comm/__init__.py,sha256=za3B2HUKNXzYtjElMgGM9xbxNsdQfFY4JB_YzdyFkVU,76
|
34
34
|
naeural_client/comm/amqp_wrapper.py,sha256=hzj6ih07DnLQy2VSfA88giDIFHaCp9uSdGLTA-IFE4s,8535
|
35
|
-
naeural_client/comm/mqtt_wrapper.py,sha256=
|
35
|
+
naeural_client/comm/mqtt_wrapper.py,sha256=lxXOPFoH9NCtxoAuf4vkA5WZA-Vj1szE_y01N_Dwb8s,16317
|
36
36
|
naeural_client/const/README.md,sha256=6OHesr-f5NBuuJGryEoi_TCu2XdlhfQYlDKx_IJoXeg,177
|
37
37
|
naeural_client/const/__init__.py,sha256=MM6Zib6i7M2qWcMkLtLx14zqU-lE-u2uPHjNvbh2jAM,478
|
38
38
|
naeural_client/const/apps.py,sha256=ePBiJXLuPfFOKuw-LJrT9OWbaodU7QApfDurIPNDoB4,655
|
39
|
-
naeural_client/const/base.py,sha256=
|
39
|
+
naeural_client/const/base.py,sha256=3Q8Mn3LE4jte1ubBEas3z-ukw8ix_FrvsegY820P6do,5739
|
40
40
|
naeural_client/const/comms.py,sha256=La6JXWHexH8CfcBCKyT4fCIoeaoZlcm7KtZ57ab4ZgU,2201
|
41
|
-
naeural_client/const/environment.py,sha256=
|
41
|
+
naeural_client/const/environment.py,sha256=o02BhlrRR4gOOedZtK94FSyZ1dlmDL-BwcDG91CiogQ,962
|
42
42
|
naeural_client/const/evm_net.py,sha256=oU_c6jUjWsFlslt2JFD1-bTOS06N7EGv88Rb6gF9xIQ,3221
|
43
43
|
naeural_client/const/formatter.py,sha256=AW3bWlqf39uaqV4BBUuW95qKYfF2OkkU4f9hy3kSVhM,200
|
44
44
|
naeural_client/const/heartbeat.py,sha256=xHZBX_NzHTklwA2_AEKR0SGdlbavMT4nirqjQg8WlTU,2550
|
45
45
|
naeural_client/const/misc.py,sha256=VDCwwpf5bl9ltx9rzT2WPVP8B3mZFRufU1tSS5MO240,413
|
46
|
-
naeural_client/const/payload.py,sha256=
|
46
|
+
naeural_client/const/payload.py,sha256=L4AV4ePu_aT85utH9_UujVW_j_Jl9ZpN9o_y1hGT3wQ,6677
|
47
47
|
naeural_client/default/__init__.py,sha256=ozU6CMMuWl0LhG8Ae3LrZ65a6tLrptfscVYGf83zjxM,46
|
48
48
|
naeural_client/default/instance/__init__.py,sha256=_cr6a9gProAZKL9_uz855q2pWt2jHwqE16ed8sm6V8I,653
|
49
49
|
naeural_client/default/instance/chain_dist_custom_job_01_plugin.py,sha256=QtHi3uXKsVs9eyMgbnvBVbMylErhV1Du4X2-7zDL7Y0,1915
|
@@ -94,11 +94,11 @@ naeural_client/logging/tzlocal/win32.py,sha256=zBoj0vFVrGhnCm_f7xmYzGym4-fV-4Ij2
|
|
94
94
|
naeural_client/logging/tzlocal/windows_tz.py,sha256=Sv9okktjZJfRGGUOOppsvQuX_eXyXUxkSKCAFmWT9Hw,34203
|
95
95
|
naeural_client/utils/__init__.py,sha256=mAnke3-MeRzz3nhQvhuHqLnpaaCSmDxicd7Ck9uwpmI,77
|
96
96
|
naeural_client/utils/comm_utils.py,sha256=4cS9llRr_pK_3rNgDcRMCQwYPO0kcNU7AdWy_LtMyCY,1072
|
97
|
-
naeural_client/utils/config.py,sha256=
|
97
|
+
naeural_client/utils/config.py,sha256=ohZFdIaRLwcWK0sh0loDD7JS9bsC9mqsFYairWZSVNg,9814
|
98
98
|
naeural_client/utils/dotenv.py,sha256=_AgSo35n7EnQv5yDyu7C7i0kHragLJoCGydHjvOkrYY,2008
|
99
|
-
naeural_client/utils/oracle_sync/oracle_tester.py,sha256=
|
100
|
-
naeural_client-3.
|
101
|
-
naeural_client-3.
|
102
|
-
naeural_client-3.
|
103
|
-
naeural_client-3.
|
104
|
-
naeural_client-3.
|
99
|
+
naeural_client/utils/oracle_sync/oracle_tester.py,sha256=QwfBqXxPIOTVT6WVySkkxPnU3eJVvoyOEbq1ZQRuPRw,27245
|
100
|
+
naeural_client-3.2.2.dist-info/METADATA,sha256=uj-o5GbwAvg3Uxx9MKKVUiLYkfCNX2WV8vnkn9aPWTk,12363
|
101
|
+
naeural_client-3.2.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
102
|
+
naeural_client-3.2.2.dist-info/entry_points.txt,sha256=CTua17GUrRa4aXeafezGC9TiWKGKQzwTjQmB2jyj22g,91
|
103
|
+
naeural_client-3.2.2.dist-info/licenses/LICENSE,sha256=cvOsJVslde4oIaTCadabXnPqZmzcBO2f2zwXZRmJEbE,11311
|
104
|
+
naeural_client-3.2.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|