naeural-client 2.6.28__py3-none-any.whl → 2.6.29__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/bc/base.py +49 -10
- naeural_client/const/base.py +21 -0
- naeural_client/logging/logger_mixins/json_serialization_mixin.py +5 -1
- {naeural_client-2.6.28.dist-info → naeural_client-2.6.29.dist-info}/METADATA +1 -1
- {naeural_client-2.6.28.dist-info → naeural_client-2.6.29.dist-info}/RECORD +9 -9
- {naeural_client-2.6.28.dist-info → naeural_client-2.6.29.dist-info}/WHEEL +0 -0
- {naeural_client-2.6.28.dist-info → naeural_client-2.6.29.dist-info}/entry_points.txt +0 -0
- {naeural_client-2.6.28.dist-info → naeural_client-2.6.29.dist-info}/licenses/LICENSE +0 -0
naeural_client/_ver.py
CHANGED
naeural_client/bc/base.py
CHANGED
@@ -19,8 +19,9 @@ from ..utils.config import get_user_folder
|
|
19
19
|
from ..const.base import (
|
20
20
|
BCctbase, BCct,
|
21
21
|
DAUTH_SUBKEY, DAUTH_URL, DAUTH_ENV_KEY,
|
22
|
-
DAUTH_NONCE, DAUTH_VARS,
|
22
|
+
DAUTH_NONCE, DAUTH_VARS, dAuth,
|
23
23
|
)
|
24
|
+
|
24
25
|
|
25
26
|
|
26
27
|
|
@@ -824,8 +825,9 @@ class BaseBlockEngine:
|
|
824
825
|
str_data = json.dumps(dct_safe_data, **dumps_config)
|
825
826
|
# we reload the data to ensure
|
826
827
|
dct_reload = json.loads(str_data)
|
827
|
-
# in order to ensure the data is sorted
|
828
|
-
|
828
|
+
# in order to ensure the data is sorted we dump it again to a string
|
829
|
+
# IMPORTANT: we need to use the same dumps_config as before !
|
830
|
+
str_data = json.dumps(dct_reload, sort_keys=True, **dumps_config)
|
829
831
|
return str_data
|
830
832
|
|
831
833
|
def _create_new_sk(self):
|
@@ -1376,9 +1378,18 @@ class BaseBlockEngine:
|
|
1376
1378
|
|
1377
1379
|
|
1378
1380
|
def dauth_autocomplete(self, dauth_endp=None, add_env=True, debug=False, max_tries=5, **kwargs):
|
1381
|
+
from naeural_client._ver import __VER__ as sdk_version
|
1382
|
+
try:
|
1383
|
+
from ver import __VER__ as app_version
|
1384
|
+
except:
|
1385
|
+
app_version = None
|
1386
|
+
try:
|
1387
|
+
from naeural_core.main.ver import __VER__ as core_version
|
1388
|
+
except:
|
1389
|
+
core_version = None
|
1390
|
+
|
1379
1391
|
MIN_LEN = 10
|
1380
1392
|
dct_env = {}
|
1381
|
-
dct_result = {}
|
1382
1393
|
done = False
|
1383
1394
|
tries = 0
|
1384
1395
|
in_env = False
|
@@ -1405,26 +1416,52 @@ class BaseBlockEngine:
|
|
1405
1416
|
to_send = {
|
1406
1417
|
**kwargs,
|
1407
1418
|
DAUTH_NONCE : str(uuid.uuid4())[:8],
|
1419
|
+
dAuth.DAUTH_SENDER_APP_VER : app_version,
|
1420
|
+
dAuth.DAUTH_SENDER_SDK_VER : sdk_version,
|
1421
|
+
dAuth.DAUTH_SENDER_CORE_VER : core_version,
|
1408
1422
|
}
|
1409
1423
|
######
|
1410
1424
|
if len(kwargs) == 0:
|
1411
|
-
to_send[
|
1425
|
+
to_send[dAuth.DAUTH_SENDER_ALIAS] = dAuth.DAUTH_SENDER_ALIAS_DEFAULT
|
1412
1426
|
######
|
1413
1427
|
self.sign(to_send)
|
1414
1428
|
response = requests.post(url, json={'body' : to_send})
|
1415
1429
|
if response.status_code == 200:
|
1416
1430
|
dct_response = response.json()
|
1417
|
-
server_alias = dct_response.get('result', {}).get(
|
1418
|
-
|
1431
|
+
server_alias = dct_response.get('result', {}).get(
|
1432
|
+
dAuth.DAUTH_SERVER_ALIAS, dAuth.DAUTH_ALIAS_UNK
|
1433
|
+
)
|
1434
|
+
server_addr = dct_response.get('result', {}).get(
|
1435
|
+
BCctbase.SENDER, dAuth.DAUTH_ADDR_UNK
|
1436
|
+
)
|
1419
1437
|
if debug:
|
1420
1438
|
self.P(f"Response received from {server_alias} <{server_addr}>:\n {json.dumps(dct_response, indent=2)}")
|
1421
1439
|
else:
|
1422
1440
|
self.P(f"Response received from {server_alias} <{server_addr}>,")
|
1423
|
-
dct_result = dct_response.get('result', {}).get(DAUTH_SUBKEY, {})
|
1424
1441
|
error = dct_response.get('error', None)
|
1425
1442
|
if error is not None:
|
1426
1443
|
self.P(f"Error in dAuth response: {dct_response}", color='r')
|
1427
|
-
|
1444
|
+
dct_result = dct_response.get('result', {})
|
1445
|
+
dct_dauth = dct_result.get(DAUTH_SUBKEY, {})
|
1446
|
+
ver_result = self.verify(dct_result)
|
1447
|
+
if ver_result.valid:
|
1448
|
+
self.P(f"Signature from {server_alias} <{server_addr}> is valid.", color='g')
|
1449
|
+
else:
|
1450
|
+
self.P(f"Signature from {server_alias} <{server_addr}> is INVALID: {ver_result}", color='r')
|
1451
|
+
return
|
1452
|
+
|
1453
|
+
# whitelist
|
1454
|
+
whitelist = dct_dauth.pop(dAuth.DAUTH_WHITELIST, [])
|
1455
|
+
if isinstance(whitelist, (str, list)) and len(whitelist) > 0:
|
1456
|
+
if isinstance(whitelist, str):
|
1457
|
+
whitelist = [whitelist]
|
1458
|
+
self.P(f"Found {len(whitelist)} whitelist addresses in dAuth response.", color='y')
|
1459
|
+
self.add_address_to_allowed(whitelist)
|
1460
|
+
else:
|
1461
|
+
self.P(f"No whitelist addresses found in dAuth response.", color='d')
|
1462
|
+
# end whitelist
|
1463
|
+
|
1464
|
+
dct_env = {k : v for k,v in dct_dauth.items() if k.startswith(dAuth.DAUTH_ENV_KEYS_PREFIX)}
|
1428
1465
|
self.P("Found {} keys in dAuth response.".format(len(dct_env)), color='g')
|
1429
1466
|
for k, v in dct_env.items():
|
1430
1467
|
try:
|
@@ -1438,11 +1475,13 @@ class BaseBlockEngine:
|
|
1438
1475
|
self.P(f" Overwrite `{k}{'=' + str(v) + ' ({})'.format(type(v).__name__) if debug else ''}` in env.", color='y')
|
1439
1476
|
if add_env:
|
1440
1477
|
os.environ[k] = v
|
1478
|
+
#endif add to env
|
1479
|
+
#endfor each key in dAuth response
|
1441
1480
|
done = True
|
1442
1481
|
else:
|
1443
1482
|
self.P(f"Error in dAuth response: {response.status_code} - {response.text}", color='r')
|
1444
1483
|
except Exception as exc:
|
1445
|
-
self.P(f"Error in dAuth URL request: {exc}. Received: {
|
1484
|
+
self.P(f"Error in dAuth URL request: {exc}. Received: {dct_dauth}", color='r')
|
1446
1485
|
#end try
|
1447
1486
|
tries += 1
|
1448
1487
|
if tries >= max_tries:
|
naeural_client/const/base.py
CHANGED
@@ -16,6 +16,27 @@ DAUTH_ENV_KEY = 'EE_DAUTH_URL'
|
|
16
16
|
DAUTH_NONCE = 'nonce'
|
17
17
|
DAUTH_VARS = [DAUTH_NONCE, BCctbase.SIGN, BCctbase.SENDER, BCctbase.HASH]
|
18
18
|
|
19
|
+
class dAuth:
|
20
|
+
DAUTH_SENDER_ALIAS = 'sender_alias'
|
21
|
+
DAUTH_SENDER_ALIAS_DEFAULT = 'direct-call'
|
22
|
+
DAUTH_SENDER_CORE_VER = 'sender_core_ver'
|
23
|
+
DAUTH_SENDER_SDK_VER = 'sender_sdk_ver'
|
24
|
+
DAUTH_SENDER_APP_VER = 'sender_app_ver'
|
25
|
+
|
26
|
+
DAUTH_ENV_KEYS_PREFIX = 'EE_'
|
27
|
+
|
28
|
+
DAUTH_ALIAS_UNK = 'unknown-alias'
|
29
|
+
DAUTH_ADDR_UNK = 'unknown-address'
|
30
|
+
|
31
|
+
DAUTH_SERVER_ALIAS = 'server_alias'
|
32
|
+
|
33
|
+
DAUTH_WHITELIST = 'whitelist'
|
34
|
+
|
35
|
+
DAUTH_URL = DAUTH_URL
|
36
|
+
DAUTH_SUBKEY = DAUTH_SUBKEY
|
37
|
+
DAUTH_NONCE = DAUTH_NONCE
|
38
|
+
DAUTH_VARS = DAUTH_VARS
|
39
|
+
|
19
40
|
ETH_ENABLED_ENV_KEY = 'EE_ETH_ENABLED'
|
20
41
|
|
21
42
|
EE_EPOCH_INTERVALS_KEY = 'EE_EPOCH_INTERVALS'
|
@@ -249,14 +249,18 @@ class _JSONSerializationMixin(object):
|
|
249
249
|
separators=separators,
|
250
250
|
**kwargs
|
251
251
|
)
|
252
|
+
#endif replace_nan
|
252
253
|
if sort_keys:
|
253
254
|
# we dump the data to a string then we reload and sort as there might
|
254
255
|
# be some issues with the sorting if we have int keys that will be sorted
|
255
256
|
# then recovered as string keys
|
256
257
|
return json.dumps(
|
257
258
|
json.loads(temp),
|
258
|
-
sort_keys=True, separators=separators,
|
259
|
+
sort_keys=True, separators=separators,
|
260
|
+
cls=NPJson if replace_nan else SimpleNPJson,
|
261
|
+
**kwargs
|
259
262
|
)
|
263
|
+
# else we just return the temp
|
260
264
|
return temp
|
261
265
|
|
262
266
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: naeural_client
|
3
|
-
Version: 2.6.
|
3
|
+
Version: 2.6.29
|
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
|
@@ -1,5 +1,5 @@
|
|
1
1
|
naeural_client/__init__.py,sha256=YimqgDbjLuywsf8zCWE0EaUXH4MBUrqLxt0TDV558hQ,632
|
2
|
-
naeural_client/_ver.py,sha256=
|
2
|
+
naeural_client/_ver.py,sha256=Gc39WsKwXy0wDMk2EefAIcGG0DOMjDF20Wps9zz7C7E,331
|
3
3
|
naeural_client/base_decentra_object.py,sha256=C4iwZTkhKNBS4VHlJs5DfElRYLo4Q9l1V1DNVSk1fyQ,4412
|
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
|
@@ -14,7 +14,7 @@ naeural_client/base/webapp_pipeline.py,sha256=QmPLVmhP0CPdi0YuvbZEH4APYz2Amtw3gy
|
|
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
16
|
naeural_client/bc/__init__.py,sha256=FQj23D1PrY06NUOARiKQi4cdj0-VxnoYgYDEht8lpr8,158
|
17
|
-
naeural_client/bc/base.py,sha256=
|
17
|
+
naeural_client/bc/base.py,sha256=AxdeGI2ma772VRxaIAUPFcuaBGr-jLC3DGWxtotY-Ak,42147
|
18
18
|
naeural_client/bc/chain.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
19
|
naeural_client/bc/ec.py,sha256=qI8l7YqiS4MNftlx-tF7IZUswrSeQc7KMn5OZ0fEaJs,23370
|
20
20
|
naeural_client/certs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -33,7 +33,7 @@ naeural_client/comm/mqtt_wrapper.py,sha256=Ig3bFZkCbWd4y_Whn2PPa91Z3aLgNbNPau6Tn
|
|
33
33
|
naeural_client/const/README.md,sha256=6OHesr-f5NBuuJGryEoi_TCu2XdlhfQYlDKx_IJoXeg,177
|
34
34
|
naeural_client/const/__init__.py,sha256=MM6Zib6i7M2qWcMkLtLx14zqU-lE-u2uPHjNvbh2jAM,478
|
35
35
|
naeural_client/const/apps.py,sha256=ePBiJXLuPfFOKuw-LJrT9OWbaodU7QApfDurIPNDoB4,655
|
36
|
-
naeural_client/const/base.py,sha256=
|
36
|
+
naeural_client/const/base.py,sha256=6lHGARkuYbltmjusM-pB7pL8MtZyXowDYlW-Uq-8g1c,5098
|
37
37
|
naeural_client/const/comms.py,sha256=La6JXWHexH8CfcBCKyT4fCIoeaoZlcm7KtZ57ab4ZgU,2201
|
38
38
|
naeural_client/const/environment.py,sha256=iytmTDgbOjvORPwHQmc0K0r-xJx7dnnzNnqAJJiFCDA,870
|
39
39
|
naeural_client/const/formatter.py,sha256=AW3bWlqf39uaqV4BBUuW95qKYfF2OkkU4f9hy3kSVhM,200
|
@@ -66,7 +66,7 @@ naeural_client/logging/logger_mixins/computer_vision_mixin.py,sha256=TrtG7ayM2ab
|
|
66
66
|
naeural_client/logging/logger_mixins/datetime_mixin.py,sha256=x0l2mhhmNZ6r_SmJ5or7dxAf2e4tQL0LiBsj3RDu6pU,11288
|
67
67
|
naeural_client/logging/logger_mixins/download_mixin.py,sha256=8eu3w-H1LI6OmC_ZwzU3WrWMENQKdEZ2HjnQsAixwM0,13500
|
68
68
|
naeural_client/logging/logger_mixins/general_serialization_mixin.py,sha256=3glOuN6Whi_GSxb1OiFitzypOqkf_x2RJGfGaO51_WE,7440
|
69
|
-
naeural_client/logging/logger_mixins/json_serialization_mixin.py,sha256=
|
69
|
+
naeural_client/logging/logger_mixins/json_serialization_mixin.py,sha256=j90I8ggh9Ih9WvOtL5OMiVNLWFP6E4e3yM5k6Bhj6r4,15057
|
70
70
|
naeural_client/logging/logger_mixins/pickle_serialization_mixin.py,sha256=9BftwBe56e94FXjyf8c8m4GEvIvzNdK_jpQPtIIJbXY,9185
|
71
71
|
naeural_client/logging/logger_mixins/process_mixin.py,sha256=ZO7S1mvKWwH_UIqv7JG-NxizcfWMJqngNNW_K-hESdU,1904
|
72
72
|
naeural_client/logging/logger_mixins/resource_size_mixin.py,sha256=EdCeFM8Ol8q_OTOmsj5Q2uKPvkqkoNdcXSZjw4FgAh4,2297
|
@@ -83,8 +83,8 @@ naeural_client/utils/comm_utils.py,sha256=4cS9llRr_pK_3rNgDcRMCQwYPO0kcNU7AdWy_L
|
|
83
83
|
naeural_client/utils/config.py,sha256=v7xHikr6Z5Sbvf3opYeMhYzGWD2pe0HlRwa-aGJzUh8,6323
|
84
84
|
naeural_client/utils/dotenv.py,sha256=_AgSo35n7EnQv5yDyu7C7i0kHragLJoCGydHjvOkrYY,2008
|
85
85
|
naeural_client/utils/oracle_sync/multiple_requests.py,sha256=GLzROGZ0gI4d1PVWgW_JBUYZjEL4LqZvHvwelxDiPW4,20892
|
86
|
-
naeural_client-2.6.
|
87
|
-
naeural_client-2.6.
|
88
|
-
naeural_client-2.6.
|
89
|
-
naeural_client-2.6.
|
90
|
-
naeural_client-2.6.
|
86
|
+
naeural_client-2.6.29.dist-info/METADATA,sha256=bpBJvkplMAnW6pC2-03BJqIRVlkqN2rmMpvnqaNCmjw,12354
|
87
|
+
naeural_client-2.6.29.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
88
|
+
naeural_client-2.6.29.dist-info/entry_points.txt,sha256=PNdyotDaQBAslZREx5luVyj0kqpQnwNACwkFNTPIHU4,55
|
89
|
+
naeural_client-2.6.29.dist-info/licenses/LICENSE,sha256=cvOsJVslde4oIaTCadabXnPqZmzcBO2f2zwXZRmJEbE,11311
|
90
|
+
naeural_client-2.6.29.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|