naeural-client 2.6.36__tar.gz → 2.6.38__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.
Files changed (156) hide show
  1. {naeural_client-2.6.36 → naeural_client-2.6.38}/PKG-INFO +1 -1
  2. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/_ver.py +1 -1
  3. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/bc/base.py +30 -1
  4. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/base_logger.py +18 -1
  5. {naeural_client-2.6.36 → naeural_client-2.6.38}/pyproject.toml +1 -1
  6. naeural_client-2.6.38/xperimental/_checks/cstore_check.py +71 -0
  7. {naeural_client-2.6.36/xperimental/ora → naeural_client-2.6.38/xperimental/_checks}/ora_check.py +2 -1
  8. naeural_client-2.6.38/xperimental/test1.py +49 -0
  9. naeural_client-2.6.36/tutorials/ex02_deploy_end_to_end.ipynb +0 -25
  10. naeural_client-2.6.36/xperimental/.example_env +0 -11
  11. naeural_client-2.6.36/xperimental/names/gen1.py +0 -58
  12. naeural_client-2.6.36/xperimental/names/gen2.py +0 -45
  13. naeural_client-2.6.36/xperimental/names/gen3.py +0 -45
  14. {naeural_client-2.6.36 → naeural_client-2.6.38}/.devcontainer/Dockerfile +0 -0
  15. {naeural_client-2.6.36 → naeural_client-2.6.38}/.devcontainer/devcontainer.json +0 -0
  16. {naeural_client-2.6.36 → naeural_client-2.6.38}/.gitattributes +0 -0
  17. {naeural_client-2.6.36 → naeural_client-2.6.38}/.github/workflows/python-publish.yml +0 -0
  18. {naeural_client-2.6.36 → naeural_client-2.6.38}/.gitignore +0 -0
  19. {naeural_client-2.6.36 → naeural_client-2.6.38}/.vscode/launch.json +0 -0
  20. {naeural_client-2.6.36 → naeural_client-2.6.38}/LICENSE +0 -0
  21. {naeural_client-2.6.36 → naeural_client-2.6.38}/README.md +0 -0
  22. {naeural_client-2.6.36 → naeural_client-2.6.38}/TODOs.md +0 -0
  23. {naeural_client-2.6.36 → naeural_client-2.6.38}/__init__.py +0 -0
  24. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/__init__.py +0 -0
  25. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/base/__init__.py +0 -0
  26. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/base/distributed_custom_code_presets.py +0 -0
  27. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/base/generic_session.py +0 -0
  28. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/base/instance.py +0 -0
  29. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/base/payload/__init__.py +0 -0
  30. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/base/payload/payload.py +0 -0
  31. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/base/pipeline.py +0 -0
  32. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/base/plugin_template.py +0 -0
  33. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/base/responses.py +0 -0
  34. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/base/transaction.py +0 -0
  35. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/base/webapp_pipeline.py +0 -0
  36. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/base_decentra_object.py +0 -0
  37. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/bc/__init__.py +0 -0
  38. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/bc/chain.py +0 -0
  39. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/bc/ec.py +0 -0
  40. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/certs/__init__.py +0 -0
  41. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/certs/r9092118.ala.eu-central-1.emqxsl.com.crt +0 -0
  42. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/cli/README.md +0 -0
  43. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/cli/cli.py +0 -0
  44. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/cli/cli_commands.py +0 -0
  45. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/cli/nodes.py +0 -0
  46. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/cli/oracles.py +0 -0
  47. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/code_cheker/__init__.py +0 -0
  48. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/code_cheker/base.py +0 -0
  49. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/code_cheker/checker.py +0 -0
  50. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/comm/__init__.py +0 -0
  51. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/comm/amqp_wrapper.py +0 -0
  52. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/comm/mqtt_wrapper.py +0 -0
  53. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/const/README.md +0 -0
  54. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/const/__init__.py +0 -0
  55. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/const/apps.py +0 -0
  56. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/const/base.py +0 -0
  57. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/const/comms.py +0 -0
  58. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/const/environment.py +0 -0
  59. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/const/formatter.py +0 -0
  60. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/const/heartbeat.py +0 -0
  61. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/const/misc.py +0 -0
  62. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/const/payload.py +0 -0
  63. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/default/__init__.py +0 -0
  64. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/default/instance/__init__.py +0 -0
  65. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/default/instance/chain_dist_custom_job_01_plugin.py +0 -0
  66. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/default/instance/custom_webapi_01_plugin.py +0 -0
  67. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/default/instance/net_mon_01_plugin.py +0 -0
  68. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/default/instance/telegram_basic_bot_01_plugin.py +0 -0
  69. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/default/instance/telegram_conversational_bot_01_plugin.py +0 -0
  70. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/default/instance/view_scene_01_plugin.py +0 -0
  71. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/default/session/mqtt_session.py +0 -0
  72. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/io_formatter/__init__.py +0 -0
  73. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/io_formatter/base/__init__.py +0 -0
  74. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/io_formatter/base/base_formatter.py +0 -0
  75. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/io_formatter/default/__init__.py +0 -0
  76. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/io_formatter/default/a_dummy.py +0 -0
  77. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/io_formatter/default/aixp1.py +0 -0
  78. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/io_formatter/default/default.py +0 -0
  79. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/io_formatter/io_formatter_manager.py +0 -0
  80. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/__init__.py +0 -0
  81. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/logger_mixins/__init__.py +0 -0
  82. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/logger_mixins/class_instance_mixin.py +0 -0
  83. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/logger_mixins/computer_vision_mixin.py +0 -0
  84. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/logger_mixins/datetime_mixin.py +0 -0
  85. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/logger_mixins/download_mixin.py +0 -0
  86. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/logger_mixins/general_serialization_mixin.py +0 -0
  87. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/logger_mixins/json_serialization_mixin.py +0 -0
  88. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/logger_mixins/pickle_serialization_mixin.py +0 -0
  89. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/logger_mixins/process_mixin.py +0 -0
  90. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/logger_mixins/resource_size_mixin.py +0 -0
  91. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/logger_mixins/timers_mixin.py +0 -0
  92. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/logger_mixins/upload_mixin.py +0 -0
  93. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/logger_mixins/utils_mixin.py +0 -0
  94. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/small_logger.py +0 -0
  95. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/tzlocal/__init__.py +0 -0
  96. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/tzlocal/unix.py +0 -0
  97. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/tzlocal/utils.py +0 -0
  98. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/tzlocal/win32.py +0 -0
  99. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/logging/tzlocal/windows_tz.py +0 -0
  100. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/plugins_manager_mixin.py +0 -0
  101. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/utils/__init__.py +0 -0
  102. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/utils/comm_utils.py +0 -0
  103. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/utils/config.py +0 -0
  104. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/utils/dotenv.py +0 -0
  105. {naeural_client-2.6.36 → naeural_client-2.6.38}/naeural_client/utils/oracle_sync/multiple_requests.py +0 -0
  106. {naeural_client-2.6.36 → naeural_client-2.6.38}/nepctl.MD +0 -0
  107. {naeural_client-2.6.36 → naeural_client-2.6.38}/requirements.txt +0 -0
  108. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/.example_env +0 -0
  109. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/8. custom_code_fastapi_assets/index.html +0 -0
  110. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/9. code_sandbox_from_scratch_assets/index.html +0 -0
  111. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/_example_pk_sdk.pem +0 -0
  112. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/ex01_part1_connect.py +0 -0
  113. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/ex01_part2_filter.py +0 -0
  114. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/ex01_part3_adv_filter.py +0 -0
  115. /naeural_client-2.6.36/xperimental/test1.py → /naeural_client-2.6.38/tutorials/ex02_part1_deploy_webapi.py +0 -0
  116. /naeural_client-2.6.36/tutorials/ex02_deploy_existing_plugin.py → /naeural_client-2.6.38/tutorials/ex02_part2_deploy_plugin.py +0 -0
  117. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/ex03_custom_code_on_one_remote__example_1.py +0 -0
  118. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/ex04_custom_code_on_one_remote__example_2.py +0 -0
  119. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/ex05_custom_code_on_one_remote__example_3.py +0 -0
  120. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py +0 -0
  121. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/ex07_custom_code_on_multiple_remotes__example_2.py +0 -0
  122. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/ex08_custom_webapi.py +0 -0
  123. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/ex09_code_sandbox_from_scratch.py +0 -0
  124. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/ex10_telegram_echo_bot.py +0 -0
  125. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/ex11_telegram_blackjack_bot.py +0 -0
  126. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/ex12_telegram_smart_bot.py +0 -0
  127. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/ex13_launch_repo_based_webapp.py +0 -0
  128. {naeural_client-2.6.36 → naeural_client-2.6.38}/tutorials/video_presentation/1. hello_world.ipynb +0 -0
  129. {naeural_client-2.6.36 → naeural_client-2.6.38}/winrun.bat +0 -0
  130. {naeural_client-2.6.36/xperimental/various → naeural_client-2.6.38/xperimental}/README.md +0 -0
  131. /naeural_client-2.6.36/xperimental/auth/auth.py → /naeural_client-2.6.38/xperimental/_checks/auth_check.py +0 -0
  132. /naeural_client-2.6.36/xperimental/check_local_keys/check1.py → /naeural_client-2.6.38/xperimental/_checks/keys_check.py +0 -0
  133. /naeural_client-2.6.36/xperimental/enc_dec/payload_tester.py → /naeural_client-2.6.38/xperimental/_checks/payload_check.py +0 -0
  134. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/decentralized/chain_dist_example.py +0 -0
  135. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/decentralized/chain_dist_example_initiator.py +0 -0
  136. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/decentralized/chain_dist_example_worker.py +0 -0
  137. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/enc_dec/enc_dec_test.py +0 -0
  138. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/eth/eth_sign.py +0 -0
  139. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/eth/info.md +0 -0
  140. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/eth/sign.py +0 -0
  141. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/multi-enc-dec/multi_test1.py +0 -0
  142. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/multi-enc-dec/multi_test2.py +0 -0
  143. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/sign/simple_payload_checker.py +0 -0
  144. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/sign/test_sign1.py +0 -0
  145. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/sign/test_sign2.py +0 -0
  146. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/utils/get_documentation.py +0 -0
  147. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/various/attach_example.py +0 -0
  148. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/various/ex1.py +0 -0
  149. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/various/hello.py +0 -0
  150. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/various/remote_exec.py +0 -0
  151. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/various/save_images.py +0 -0
  152. {naeural_client-2.6.36 → naeural_client-2.6.38}/xperimental/wl/wl_add.py +0 -0
  153. {naeural_client-2.6.36/xperimental → naeural_client-2.6.38/xperimental/xarchive}/_tutorials/3. simple_real_time_custom_code.py +0 -0
  154. {naeural_client-2.6.36/xperimental → naeural_client-2.6.38/xperimental/xarchive}/_tutorials/4. real_time_custom_code_2.py +0 -0
  155. {naeural_client-2.6.36/xperimental → naeural_client-2.6.38/xperimental/xarchive}/_tutorials/8. chatbot.py +0 -0
  156. {naeural_client-2.6.36/xperimental/_archive → naeural_client-2.6.38/xperimental/xarchive}/test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: naeural_client
3
- Version: 2.6.36
3
+ Version: 2.6.38
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,4 +1,4 @@
1
- __VER__ = "2.6.36"
1
+ __VER__ = "2.6.38"
2
2
 
3
3
  if __name__ == "__main__":
4
4
  with open("pyproject.toml", "rt") as fd:
@@ -947,8 +947,29 @@ class BaseBlockEngine:
947
947
  True if the current address is in the list.
948
948
 
949
949
  """
950
+ return self.address_in_list(self.address, lst_addresses)
951
+
952
+ def address_in_list(self, node_address, lst_addresses):
953
+ """
954
+ Checks if the address is in the list of addresses
955
+
956
+ Parameters
957
+ ----------
958
+ node_address : str
959
+ the address.
960
+
961
+ lst_addresses : list
962
+ the list of addresses.
963
+
964
+ Returns
965
+ -------
966
+ bool
967
+ True if the address is in the list.
968
+
969
+ """
970
+ node_address = self._remove_prefix(node_address)
950
971
  lst = [self._remove_prefix(x) for x in lst_addresses if x is not None]
951
- return self.address_no_prefix in lst
972
+ return node_address in lst
952
973
 
953
974
  @property
954
975
  def address(self):
@@ -977,6 +998,14 @@ class BaseBlockEngine:
977
998
  Returns a tuple with the allowed list (prefixed) and a list with names
978
999
  """
979
1000
  return self._load_and_maybe_create_allowed(return_names=True, return_prefix=True)
1001
+
1002
+
1003
+ @property
1004
+ def whitelist_with_prefixes(self):
1005
+ """
1006
+ Returns the allowed command senders (prefixed) for the current node
1007
+ """
1008
+ return self._load_and_maybe_create_allowed(return_names=False, return_prefix=True)
980
1009
 
981
1010
 
982
1011
  def maybe_remove_prefix(self, address):
@@ -460,20 +460,37 @@ class BaseLogger(object):
460
460
  import platform
461
461
  import subprocess
462
462
  import re
463
+ import multiprocessing
463
464
  str_system = platform.system()
464
465
  if str_system == "Windows":
465
466
  self.processor_platform = platform.processor()
467
+
466
468
  elif str_system == "Darwin":
467
469
  os.environ['PATH'] = os.environ['PATH'] + os.pathsep + '/usr/sbin'
468
470
  command ="sysctl -n machdep.cpu.brand_string"
469
471
  self.processor_platform = subprocess.check_output(command, shell=True).strip().decode('utf-8')
472
+
470
473
  elif str_system == "Linux":
471
474
  command = "cat /proc/cpuinfo"
472
475
  all_info = subprocess.check_output(command, shell=True).decode().strip()
476
+ proc_platform = None
473
477
  for line in all_info.split("\n"):
474
478
  if "model name" in line:
475
- self.processor_platform = re.sub( ".*model name.*:", "", line,1)
479
+ proc_platform = re.sub( ".*model name.*:", "", line,1)
476
480
  break
481
+ if proc_platform is None:
482
+ cores = multiprocessing.cpu_count()
483
+ proc_platform = "Unknown"
484
+ try:
485
+ lscpu_out = subprocess.check_output("lscpu", shell=True).decode().strip()
486
+ match_vendor = re.search(r"Vendor ID:\s+(.*)", lscpu_out)
487
+ if match_vendor:
488
+ proc_platform = match_vendor.group(1)
489
+ except:
490
+ pass
491
+ proc_platform = f"{proc_platform} {cores} cores"
492
+ #endif no model name
493
+ self.processor_platform = proc_platform
477
494
  return
478
495
 
479
496
  def get_processor_platform(self):
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "naeural_client"
7
- version = "2.6.36"
7
+ version = "2.6.38"
8
8
  authors = [
9
9
  { name="Andrei Ionut Damian", email="andrei.damian@me.com" },
10
10
  { name="Cristan Bleotiu", email="cristibleotiu@gmail.com" },
@@ -0,0 +1,71 @@
1
+ import requests
2
+ import json
3
+ import pandas as pd
4
+
5
+ if __name__ == "__main__":
6
+
7
+ CHECK_STATUS = False
8
+ CHECK_VALUE = True
9
+
10
+ if CHECK_STATUS:
11
+ N = 4
12
+
13
+ # the provided url, note: if this does not return json directly, it might need adjustment
14
+ url_status = "https://cstore-ratio1.ngrok.app/get_status"
15
+ server_alias_counts = {}
16
+
17
+ for i in range(N):
18
+ try:
19
+ response = requests.get(url_status)
20
+ response.raise_for_status()
21
+ data = response.json()
22
+ except Exception as e:
23
+ print(f"error occurred during request {i+1}: {e}, response: {response.text}")
24
+ continue
25
+
26
+ # extract nodes data from the json response
27
+ result = data.get("result", {})
28
+ server_alias = result.get("server_alias")
29
+ ver = result.get("server_version")
30
+ if server_alias:
31
+ server_alias_counts[server_alias] = server_alias_counts.get(server_alias, 0) + 1
32
+ keys = result.get("keys", {})
33
+ # create and display the pand
34
+ print(f"Response #{i+1} from {server_alias} v{ver} with {len(keys)} keys")
35
+ # update the server_alias counts
36
+
37
+ print("\nserver_alias counts: {server_alias_counts}\n\n")
38
+
39
+ if CHECK_VALUE:
40
+ N = 2
41
+ KEY_TO_CHECK = "K3-nen-aid03-2fb8"
42
+
43
+ # the provided url, note: if this does not return json directly, it might need adjustment
44
+ url_value = "https://cstore-ratio1.ngrok.app/get_value"
45
+ server_alias_counts = {}
46
+
47
+ bearer_token = "admin"
48
+ headers = {"Authorization": f"Bearer {bearer_token}"}
49
+
50
+ params = {"cstore_key": KEY_TO_CHECK}
51
+
52
+ for i in range(N):
53
+ try:
54
+ response = requests.get(url_value, headers=headers, params=params)
55
+ response.raise_for_status()
56
+ data = response.json()
57
+ except Exception as e:
58
+ print(f"error occurred during request {i+1}: {e}, response: {response.text}")
59
+ continue
60
+
61
+ # extract nodes data from the json response
62
+ result = data.get("result", {})
63
+ server_alias = result.get("server_alias")
64
+ ver = result.get("server_version")
65
+ if server_alias:
66
+ server_alias_counts[server_alias] = server_alias_counts.get(server_alias, 0) + 1
67
+ # create and display the pand
68
+ print(f"Response #{i+1} from {server_alias} v{ver}: {result}")
69
+ # update the server_alias counts
70
+
71
+ print("\nserver_alias counts:", server_alias_counts)
@@ -38,7 +38,8 @@ if __name__ == "__main__":
38
38
 
39
39
  # create and display the pandas dataframe for this request
40
40
  df = pd.DataFrame(node_list)
41
- print(f"\nResponse #{i+1} from {server_alias}:")
41
+ ver = result.get("server_version")
42
+ print(f"\nResponse #{i+1} from {server_alias} v{ver}:")
42
43
  print(df)
43
44
 
44
45
  # update the server_alias counts
@@ -0,0 +1,49 @@
1
+ from naeural_client import Session, CustomPluginTemplate, PLUGIN_TYPES
2
+
3
+ def run_predict(plugin: CustomPluginTemplate, inputs: list[int], nr_steps: int) -> list:
4
+ """
5
+ Here we use the Ratio1 build in basic ML internal API
6
+ """
7
+ preds = plugin.basic_ts_fit_predict(inputs, nr_steps)
8
+ # now we apply some simple heuristic to get the lower and upper bounds
9
+ lower_bound = []
10
+ upper_bound = []
11
+ heuristic_factor = 0.1
12
+ for pred in preds:
13
+ lower_bound.append(int(pred - abs(pred * heuristic_factor)))
14
+ upper_bound.append(int(pred + abs(pred * heuristic_factor)))
15
+ #endfor
16
+ result = {
17
+ "predictions": [round(x,1) for x in preds],
18
+ "lower_bound": lower_bound,
19
+ "upper_bound": upper_bound
20
+ }
21
+ return result
22
+
23
+
24
+ if __name__ == '__main__':
25
+
26
+ session = Session(silent=True)
27
+ my_node = "0xai_ApM1AbzLq1VtsLIidmvzt1Nv4Cyl5Wed0fHNMoZv9u4X"
28
+
29
+ app, _ = session.create_web_app(
30
+ node=my_node,
31
+ name="ratio1_simple_predict_webapp",
32
+ endpoints=[
33
+ {
34
+ "function": run_predict,
35
+ "method": "post",
36
+ },
37
+ ]
38
+ )
39
+ try:
40
+ url = app.deploy()
41
+ print("Webapp deployed at: ", url)
42
+ except Exception as e:
43
+ print("Error deploying webapp: ", e)
44
+
45
+ session.wait(
46
+ close_pipeline_on_timeout=True,
47
+ close_session_on_timeout=True,
48
+ seconds=300
49
+ )
@@ -1,25 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "# End to end deployment example"
8
- ]
9
- },
10
- {
11
- "cell_type": "markdown",
12
- "metadata": {},
13
- "source": [
14
- "First thing first lets"
15
- ]
16
- }
17
- ],
18
- "metadata": {
19
- "language_info": {
20
- "name": "python"
21
- }
22
- },
23
- "nbformat": 4,
24
- "nbformat_minor": 2
25
- }
@@ -1,11 +0,0 @@
1
- AIXP_USERNAME=username
2
- AIXP_USER=username
3
-
4
- AIXP_PASSWORD=password
5
- AIXP_PASS=password
6
- AIXP_PWD=password
7
-
8
- AIXP_HOSTNAME=hostname
9
- AIXP_HOST=hostname
10
-
11
- AIXP_PORT=8888
@@ -1,58 +0,0 @@
1
- import random
2
- import uuid
3
- import nltk
4
- from nltk.corpus import wordnet as wn
5
- import re
6
-
7
- # Ensure WordNet is downloaded
8
- try:
9
- wn.synsets('example')
10
- except LookupError:
11
- nltk.download('wordnet')
12
-
13
- # Define a regex pattern to include only alphabetic words
14
- word_pattern = re.compile(r'^[a-zA-Z]+$')
15
-
16
- # Pre-fetch and clean adjective list from WordNet
17
- adjectives = list(set(
18
- lemma.name().lower()
19
- for synset in wn.all_synsets(pos=wn.ADJ)
20
- for lemma in synset.lemmas()
21
- if word_pattern.match(lemma.name())
22
- ))
23
-
24
- # Pre-fetch and clean noun list from WordNet
25
- nouns = list(set(
26
- lemma.name().lower()
27
- for synset in wn.all_synsets(pos=wn.NOUN)
28
- for lemma in synset.lemmas()
29
- if word_pattern.match(lemma.name())
30
- ))
31
-
32
- def generate_random_name():
33
- """
34
- Generates a random name in the format:
35
- 'adjective-noun-xx'
36
-
37
- Where:
38
- - 'adjective' is a randomly selected adjective from WordNet.
39
- - 'noun' is a randomly selected noun from WordNet.
40
- - 'xx' is a two-character hexadecimal suffix.
41
-
42
- Returns:
43
- str: The generated name.
44
- """
45
- # Select a random adjective and noun
46
- adj = random.choice(adjectives)
47
- noun = random.choice(nouns)
48
-
49
- # Generate a two-character hexadecimal suffix
50
- suffix = uuid.uuid4().hex[:2]
51
-
52
- # Combine into the final name
53
- return f"{adj}-{noun}-{suffix}"
54
-
55
- # Example usage
56
- if __name__ == "__main__":
57
- for _ in range(5):
58
- print(generate_random_name())
@@ -1,45 +0,0 @@
1
- import nltk
2
- from nltk.corpus import brown
3
- from nltk import pos_tag
4
- from collections import Counter
5
- import string
6
-
7
- nltk.download('brown') # Brown Corpus
8
- nltk.download('universal_tagset') # Universal POS Tagset
9
- nltk.download('punkt') # Tokenizer models
10
- nltk.download('averaged_perceptron_tagger_eng')
11
-
12
-
13
- # Load sentences from the Brown Corpus
14
- sentences = brown.sents()
15
-
16
-
17
- # Initialize a list to hold all nouns
18
- nouns = []
19
-
20
- # Iterate through each sentence in the corpus
21
- for sentence in sentences:
22
- # Tokenize and tag each sentence
23
- tagged_sentence = pos_tag(sentence, tagset='universal')
24
-
25
- # Extract words tagged as 'NOUN'
26
- for word, tag in tagged_sentence:
27
- if tag == 'NOUN':
28
- # Clean the word: remove punctuation and make lowercase
29
- word = word.lower().strip(string.punctuation)
30
- # Ensure the word is alphabetic and has exactly 4 letters
31
- if word.isalpha() and len(word) == 4:
32
- nouns.append(word)
33
-
34
-
35
- # Count the frequency of each noun
36
- noun_freq = Counter(nouns)
37
-
38
- # Filter nouns to ensure they have exactly 4 letters (redundant if already filtered)
39
- four_letter_nouns = {word: freq for word, freq in noun_freq.items() if len(word) == 4}
40
-
41
- lst_nouns = [(word, freq) for word, freq in four_letter_nouns.items()]
42
- lst_sorted = sorted(lst_nouns, key=lambda x: x[1], reverse=True)
43
- nouns = [word for word, freq in lst_sorted[:250]]
44
-
45
-
@@ -1,45 +0,0 @@
1
- import nltk
2
- from nltk.corpus import brown
3
- from nltk import pos_tag
4
- from collections import Counter
5
- import string
6
-
7
- nltk.download('brown') # Brown Corpus
8
- nltk.download('universal_tagset') # Universal POS Tagset
9
- nltk.download('punkt') # Tokenizer models
10
- nltk.download('averaged_perceptron_tagger_eng')
11
-
12
-
13
- # Load sentences from the Brown Corpus
14
- sentences = brown.sents()
15
-
16
-
17
- # Initialize a list to hold all adjs
18
- adjs = []
19
-
20
- # Iterate through each sentence in the corpus
21
- for sentence in sentences:
22
- # Tokenize and tag each sentence
23
- tagged_sentence = pos_tag(sentence, tagset='universal')
24
-
25
- # Extract words tagged as 'adj'
26
- for word, tag in tagged_sentence:
27
- if tag == 'ADJ':
28
- # Clean the word: remove punctuation and make lowercase
29
- word = word.lower().strip(string.punctuation)
30
- # Ensure the word is alphabetic and has exactly 4 letters
31
- if word.isalpha() and len(word) == 4:
32
- adjs.append(word)
33
-
34
-
35
- # Count the frequency of each adj
36
- adj_freq = Counter(adjs)
37
-
38
- # Filter adjs to ensure they have exactly 4 letters (redundant if already filtered)
39
- four_letter_adjs = {word: freq for word, freq in adj_freq.items() if len(word) == 4}
40
-
41
- lst_adjs = [(word, freq) for word, freq in four_letter_adjs.items()]
42
- lst_sorted = sorted(lst_adjs, key=lambda x: x[1], reverse=True)
43
- adjs = [word for word, freq in lst_sorted[:250]]
44
-
45
-
File without changes