naeural-client 3.0.6__tar.gz → 3.0.8__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 (172) hide show
  1. {naeural_client-3.0.6 → naeural_client-3.0.8}/PKG-INFO +1 -1
  2. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/_ver.py +1 -1
  3. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/base/generic_session.py +23 -7
  4. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/base/instance.py +2 -1
  5. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/base/pipeline.py +1 -0
  6. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/cli/cli.py +10 -0
  7. {naeural_client-3.0.6 → naeural_client-3.0.8}/pyproject.toml +1 -1
  8. naeural_client-3.0.8/tutorials/ex02_part3_deploy_r1fs_test.py +75 -0
  9. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/_checks/ora_check.py +2 -2
  10. naeural_client-3.0.6/tutorials/ex02_part3_deploy_r1fs_test.py +0 -43
  11. {naeural_client-3.0.6 → naeural_client-3.0.8}/.devcontainer/Dockerfile +0 -0
  12. {naeural_client-3.0.6 → naeural_client-3.0.8}/.devcontainer/devcontainer.json +0 -0
  13. {naeural_client-3.0.6 → naeural_client-3.0.8}/.gitattributes +0 -0
  14. {naeural_client-3.0.6 → naeural_client-3.0.8}/.github/workflows/python-publish.yml +0 -0
  15. {naeural_client-3.0.6 → naeural_client-3.0.8}/.gitignore +0 -0
  16. {naeural_client-3.0.6 → naeural_client-3.0.8}/.vscode/launch.json +0 -0
  17. {naeural_client-3.0.6 → naeural_client-3.0.8}/LICENSE +0 -0
  18. {naeural_client-3.0.6 → naeural_client-3.0.8}/README.md +0 -0
  19. {naeural_client-3.0.6 → naeural_client-3.0.8}/TODOs.md +0 -0
  20. {naeural_client-3.0.6 → naeural_client-3.0.8}/__init__.py +0 -0
  21. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/__init__.py +0 -0
  22. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/base/__init__.py +0 -0
  23. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/base/distributed_custom_code_presets.py +0 -0
  24. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/base/payload/__init__.py +0 -0
  25. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/base/payload/payload.py +0 -0
  26. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/base/plugin_template.py +0 -0
  27. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/base/responses.py +0 -0
  28. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/base/transaction.py +0 -0
  29. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/base/webapp_pipeline.py +0 -0
  30. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/base_decentra_object.py +0 -0
  31. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/bc/__init__.py +0 -0
  32. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/bc/base.py +0 -0
  33. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/bc/chain.py +0 -0
  34. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/bc/ec.py +0 -0
  35. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/bc/evm.py +0 -0
  36. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/certs/__init__.py +0 -0
  37. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/certs/r9092118.ala.eu-central-1.emqxsl.com.crt +0 -0
  38. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/certs/s624dbd4.ala.us-east-1.emqxsl.com.crt +0 -0
  39. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/cli/README.md +0 -0
  40. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/cli/cli_commands.py +0 -0
  41. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/cli/nodes.py +0 -0
  42. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/cli/oracles.py +0 -0
  43. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/code_cheker/__init__.py +0 -0
  44. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/code_cheker/base.py +0 -0
  45. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/code_cheker/checker.py +0 -0
  46. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/comm/__init__.py +0 -0
  47. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/comm/amqp_wrapper.py +0 -0
  48. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/comm/mqtt_wrapper.py +0 -0
  49. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/const/README.md +0 -0
  50. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/const/__init__.py +0 -0
  51. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/const/apps.py +0 -0
  52. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/const/base.py +0 -0
  53. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/const/comms.py +0 -0
  54. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/const/environment.py +0 -0
  55. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/const/evm_net.py +0 -0
  56. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/const/formatter.py +0 -0
  57. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/const/heartbeat.py +0 -0
  58. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/const/misc.py +0 -0
  59. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/const/payload.py +0 -0
  60. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/default/__init__.py +0 -0
  61. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/default/instance/__init__.py +0 -0
  62. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/default/instance/chain_dist_custom_job_01_plugin.py +0 -0
  63. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/default/instance/custom_webapi_01_plugin.py +0 -0
  64. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/default/instance/net_mon_01_plugin.py +0 -0
  65. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/default/instance/telegram_basic_bot_01_plugin.py +0 -0
  66. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/default/instance/telegram_conversational_bot_01_plugin.py +0 -0
  67. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/default/instance/view_scene_01_plugin.py +0 -0
  68. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/default/session/mqtt_session.py +0 -0
  69. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/io_formatter/__init__.py +0 -0
  70. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/io_formatter/base/__init__.py +0 -0
  71. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/io_formatter/base/base_formatter.py +0 -0
  72. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/io_formatter/default/__init__.py +0 -0
  73. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/io_formatter/default/a_dummy.py +0 -0
  74. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/io_formatter/default/aixp1.py +0 -0
  75. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/io_formatter/default/default.py +0 -0
  76. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/io_formatter/io_formatter_manager.py +0 -0
  77. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/ipfs/__init__.py +0 -0
  78. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/ipfs/ifps_keygen +0 -0
  79. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/ipfs/ipfs_setup/ipfs.service +0 -0
  80. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/ipfs/ipfs_setup/launch_service.sh +0 -0
  81. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/ipfs/ipfs_setup/restart.sh +0 -0
  82. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/ipfs/ipfs_setup/run.sh +0 -0
  83. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/ipfs/ipfs_setup/setup.sh +0 -0
  84. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/ipfs/ipfs_setup/show.sh +0 -0
  85. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/ipfs/ipfs_setup/write_key.sh +0 -0
  86. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/ipfs/r1fs.py +0 -0
  87. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/__init__.py +0 -0
  88. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/base_logger.py +0 -0
  89. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/logger_mixins/__init__.py +0 -0
  90. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/logger_mixins/class_instance_mixin.py +0 -0
  91. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/logger_mixins/computer_vision_mixin.py +0 -0
  92. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/logger_mixins/datetime_mixin.py +0 -0
  93. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/logger_mixins/download_mixin.py +0 -0
  94. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/logger_mixins/general_serialization_mixin.py +0 -0
  95. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/logger_mixins/json_serialization_mixin.py +0 -0
  96. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/logger_mixins/pickle_serialization_mixin.py +0 -0
  97. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/logger_mixins/process_mixin.py +0 -0
  98. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/logger_mixins/resource_size_mixin.py +0 -0
  99. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/logger_mixins/timers_mixin.py +0 -0
  100. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/logger_mixins/upload_mixin.py +0 -0
  101. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/logger_mixins/utils_mixin.py +0 -0
  102. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/small_logger.py +0 -0
  103. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/tzlocal/__init__.py +0 -0
  104. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/tzlocal/unix.py +0 -0
  105. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/tzlocal/utils.py +0 -0
  106. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/tzlocal/win32.py +0 -0
  107. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/logging/tzlocal/windows_tz.py +0 -0
  108. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/plugins_manager_mixin.py +0 -0
  109. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/utils/__init__.py +0 -0
  110. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/utils/comm_utils.py +0 -0
  111. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/utils/config.py +0 -0
  112. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/utils/dotenv.py +0 -0
  113. {naeural_client-3.0.6 → naeural_client-3.0.8}/naeural_client/utils/oracle_sync/oracle_tester.py +0 -0
  114. {naeural_client-3.0.6 → naeural_client-3.0.8}/nepctl.MD +0 -0
  115. {naeural_client-3.0.6 → naeural_client-3.0.8}/requirements.txt +0 -0
  116. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/.example_env +0 -0
  117. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/8. custom_code_fastapi_assets/index.html +0 -0
  118. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/9. code_sandbox_from_scratch_assets/index.html +0 -0
  119. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/_example_pk_sdk.pem +0 -0
  120. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/ex01_part1_connect.py +0 -0
  121. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/ex01_part2_filter.py +0 -0
  122. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/ex01_part3_adv_filter.py +0 -0
  123. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/ex02_part1_deploy_webapi.py +0 -0
  124. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/ex02_part2_deploy_plugin.py +0 -0
  125. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/ex03_custom_code_on_one_remote__example_1.py +0 -0
  126. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/ex04_custom_code_on_one_remote__example_2.py +0 -0
  127. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/ex05_custom_code_on_one_remote__example_3.py +0 -0
  128. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py +0 -0
  129. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/ex07_custom_code_on_multiple_remotes__example_2.py +0 -0
  130. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/ex08_custom_webapi.py +0 -0
  131. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/ex09_code_sandbox_from_scratch.py +0 -0
  132. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/ex10_telegram_echo_bot.py +0 -0
  133. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/ex11_telegram_blackjack_bot.py +0 -0
  134. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/ex12_telegram_smart_bot.py +0 -0
  135. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/ex13_launch_repo_based_webapp.py +0 -0
  136. {naeural_client-3.0.6 → naeural_client-3.0.8}/tutorials/video_presentation/1. hello_world.ipynb +0 -0
  137. {naeural_client-3.0.6 → naeural_client-3.0.8}/winrun.bat +0 -0
  138. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/README.md +0 -0
  139. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/_checks/cstore_check.py +0 -0
  140. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/_checks/dauth_check.py +0 -0
  141. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/_checks/keys_check.py +0 -0
  142. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/_checks/ora_sign_check.py +0 -0
  143. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/_checks/payload_check.py +0 -0
  144. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/_checks/session_check.py +0 -0
  145. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/_checks/web3_check.py +0 -0
  146. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/dates/check_date.py +0 -0
  147. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/debug/close_pipeline.py +0 -0
  148. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/decentralized/chain_dist_example.py +0 -0
  149. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/decentralized/chain_dist_example_initiator.py +0 -0
  150. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/decentralized/chain_dist_example_worker.py +0 -0
  151. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/enc_dec/enc_dec_test.py +0 -0
  152. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/eth/eth_sign.py +0 -0
  153. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/eth/info.md +0 -0
  154. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/eth/sign.py +0 -0
  155. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/multi-enc-dec/multi_test1.py +0 -0
  156. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/multi-enc-dec/multi_test2.py +0 -0
  157. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/pipelines/start.py +0 -0
  158. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/pipelines/stop.py +0 -0
  159. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/sign/simple_payload_checker.py +0 -0
  160. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/sign/test_sign1.py +0 -0
  161. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/sign/test_sign2.py +0 -0
  162. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/utils/get_documentation.py +0 -0
  163. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/various/attach_example.py +0 -0
  164. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/various/ex1.py +0 -0
  165. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/various/hello.py +0 -0
  166. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/various/remote_exec.py +0 -0
  167. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/various/save_images.py +0 -0
  168. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/wl/wl_add.py +0 -0
  169. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py +0 -0
  170. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py +0 -0
  171. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/xarchive/_tutorials/8. chatbot.py +0 -0
  172. {naeural_client-3.0.6 → naeural_client-3.0.8}/xperimental/xarchive/test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: naeural_client
3
- Version: 3.0.6
3
+ Version: 3.0.8
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__ = "3.0.6"
1
+ __VER__ = "3.0.8"
2
2
 
3
3
  if __name__ == "__main__":
4
4
  with open("pyproject.toml", "rt") as fd:
@@ -89,7 +89,7 @@ class GenericSession(BaseDecentrAIObject):
89
89
  on_notification=None,
90
90
  on_heartbeat=None,
91
91
  debug_silent=True,
92
- debug=False,
92
+ debug=1,
93
93
  silent=False,
94
94
  verbosity=1,
95
95
  dotenv_path=None,
@@ -145,6 +145,7 @@ class GenericSession(BaseDecentrAIObject):
145
145
  As arguments, it has a reference to this Session object, the node name, the pipeline, signature and instance, and the payload.
146
146
  This callback acts as a default payload processor and will be called even if for a given instance
147
147
  the user has defined a specific callback.
148
+
148
149
  on_notification : Callable[[Session, str, dict], None], optional
149
150
  Callback that handles notifications received from this network.
150
151
  As arguments, it has a reference to this Session object, the node name and the notification payload.
@@ -153,6 +154,7 @@ class GenericSession(BaseDecentrAIObject):
153
154
  This callback will be called when there are notifications related to the node itself, e.g. when the node runs
154
155
  low on memory.
155
156
  Defaults to None.
157
+
156
158
  on_heartbeat : Callable[[Session, str, dict], None], optional
157
159
  Callback that handles heartbeats received from this network.
158
160
  As arguments, it has a reference to this Session object, the node name and the heartbeat payload.
@@ -162,8 +164,12 @@ class GenericSession(BaseDecentrAIObject):
162
164
  This flag will disable debug logs, set to 'False` for a more verbose log, by default True
163
165
  Observation: Obsolete, will be removed
164
166
 
165
- debug : bool, optional
166
- This flag will enable debug logs, set to 'False` for a more verbose log, by default False
167
+ debug : bool or int, optional
168
+ This flag will enable debug logs, set to 'True` or 2 for a more verbose log, by default 1
169
+ - 0 or False will disable debug logs
170
+ - 1 will enable level 1
171
+ - 2 will enable full debug
172
+
167
173
 
168
174
 
169
175
  silent : bool, optional
@@ -185,8 +191,11 @@ class GenericSession(BaseDecentrAIObject):
185
191
  If True, the SDK will use the home folder as the base folder for the local cache.
186
192
  NOTE: if you need to use development style ./_local_cache, set this to False.
187
193
  """
188
-
189
194
  debug = debug or not debug_silent
195
+ if isinstance(debug, bool):
196
+ debug = 2 if debug else 0
197
+
198
+ self.__debug = int(debug) > 0
190
199
 
191
200
  self.__at_least_one_node_peered = False
192
201
  self.__at_least_a_netmon_received = False
@@ -278,13 +287,20 @@ class GenericSession(BaseDecentrAIObject):
278
287
 
279
288
  super(GenericSession, self).__init__(
280
289
  log=log,
281
- DEBUG=debug,
290
+ DEBUG=int(debug) > 1,
282
291
  create_logger=True,
283
292
  silent=self.silent,
284
293
  local_cache_base_folder=local_cache_base_folder,
285
294
  local_cache_app_folder=local_cache_app_folder,
286
295
  )
287
296
  return
297
+
298
+ def Pd(self, *args, **kwargs):
299
+ if self.__debug:
300
+ kwargs["color"] = 'd' if kwargs.get("color") != 'r' else 'r'
301
+ self.log.P(*args, **kwargs)
302
+ return
303
+
288
304
 
289
305
  def startup(self):
290
306
  ## 1st config step - we prepare config via ~/.naeural/config or .env
@@ -830,7 +846,7 @@ class GenericSession(BaseDecentrAIObject):
830
846
  if needs_netconfig:
831
847
  lst_netconfig_request.append(node_addr)
832
848
  # end for each node in network map
833
- self.P(f"Net mon from <{sender_addr}> `{ee_id}`: {len(online_addresses)}/{len(all_addresses)}", color='y')
849
+ self.Pd(f"Net mon from <{sender_addr}> `{ee_id}`: {len(online_addresses)}/{len(all_addresses)}")
834
850
  if len(lst_netconfig_request) > 0:
835
851
  self.__request_pipelines_from_net_config_monitor(lst_netconfig_request)
836
852
  # end if needs netconfig
@@ -1607,7 +1623,7 @@ class GenericSession(BaseDecentrAIObject):
1607
1623
  )
1608
1624
  self.bc_engine.sign(msg_to_send, use_digest=True)
1609
1625
  if show_command:
1610
- self.P(
1626
+ self.Pd(
1611
1627
  "Sending command '{}' to '{}':\n{}".format(command, worker, json.dumps(msg_to_send, indent=2)),
1612
1628
  color='y',
1613
1629
  verbosity=1
@@ -77,6 +77,7 @@ class Instance():
77
77
 
78
78
  def Pd(self, *args, **kwargs):
79
79
  if self.__debug:
80
+ kwargs["color"] = 'd' if kwargs.get("color") != 'r' else 'r'
80
81
  self.log.P(*args, **kwargs)
81
82
  return
82
83
 
@@ -522,7 +523,7 @@ class Instance():
522
523
  The list of transactions generated, or None if `wait_confirmation` is False.
523
524
 
524
525
  """
525
- self.P(f'Sending command <{command}> to instance <{self.__repr__()}>', color="b")
526
+ self.Pd(f'Sending command <{command}> to instance <{self.__repr__()}>', color="b")
526
527
 
527
528
  self.__was_last_operation_successful = None
528
529
 
@@ -156,6 +156,7 @@ class Pipeline(BaseCodeChecker):
156
156
  Print debug message.
157
157
  """
158
158
  if self.__debug:
159
+ kwargs["color"] = 'd' if kwargs.get("color") != 'r' else 'r'
159
160
  self.P(*args, **kwargs)
160
161
  return
161
162
 
@@ -1,3 +1,5 @@
1
+ import signal
2
+ import sys
1
3
  import argparse
2
4
 
3
5
  from naeural_client.utils.config import maybe_init_config, log_with_color
@@ -6,6 +8,11 @@ from naeural_client.cli.cli_commands import CLI_COMMANDS
6
8
  from naeural_client import version
7
9
  import traceback
8
10
 
11
+ def handle_sigint(signum, frame):
12
+ """Handler for the SIGINT signal (Ctrl-C)."""
13
+ print("Interrupted. Exiting...")
14
+ sys.exit(1)
15
+
9
16
 
10
17
  def create_global_parser():
11
18
  """
@@ -96,6 +103,9 @@ def main():
96
103
  Ensures the configuration is initialized, builds the parser,
97
104
  and executes the appropriate command function.
98
105
  """
106
+ # Register the SIGINT handler
107
+ signal.signal(signal.SIGINT, handle_sigint)
108
+
99
109
  try:
100
110
  # Initialize configuration if necessary
101
111
  initialized = maybe_init_config()
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "naeural_client"
7
- version = "3.0.6"
7
+ version = "3.0.8"
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,75 @@
1
+ import json
2
+ from naeural_client import Instance, Payload, Pipeline, Session, PAYLOAD_DATA
3
+
4
+ class SimplePayloadHandler:
5
+ """ Simple payload handler class build for convenience """
6
+ def __init__(self):
7
+ self.n_received = 0
8
+ return
9
+
10
+ def instance_on_data(self, pipeline: Pipeline, payload: Payload):
11
+ # we extract the payload and do a minimal processing
12
+ # this is the payload key sent by the demo plugin
13
+ R1FS_DEMO_DATA_KEY = "R1FS_DATA"
14
+ # next convert to the data object for convenience
15
+ data = payload.data
16
+ # then we extract the sender alias directly from the payload
17
+ sender_alias = data[PAYLOAD_DATA.EE_ID]
18
+ # we extract the r1fs data if it is present
19
+ r1fs_data = data.get(R1FS_DEMO_DATA_KEY)
20
+ if r1fs_data is None:
21
+ # we ignore the payload if the data is not present
22
+ return
23
+ # we increment the number of received payloads
24
+ self.n_received += 1
25
+ # then we extract the R1FS file originator (creator) from the demo data
26
+ read_file_originator = r1fs_data["owner_id"]
27
+ # we print the data
28
+ pipeline.P("Data received #{} from worker '{}' from file created by '{}':\n {}".format(
29
+ self.n_received, sender_alias, read_file_originator, json.dumps(r1fs_data, indent=2)
30
+ ))
31
+ return
32
+
33
+ if __name__ == '__main__':
34
+
35
+ session: Session = Session()
36
+
37
+ payload_handler = SimplePayloadHandler()
38
+
39
+ # this code assumes the node have "allowed" the SDK to deploy the pipeline
40
+ nodes = [
41
+ '0xai_A2LfyeItL5oEp7nHONlczGgwS3SV8Ims9ujJ0soJ6Anx',
42
+ '0xai_AqgKnJMNvUvq5n1wIin_GD2i1FbZ4FBTUJaCI6cWf7i4',
43
+ ]
44
+
45
+ for node in nodes:
46
+ session.P(f"Deploying pipeline to node: {node}")
47
+ session.wait_for_node(node) # we wait for the node to be ready
48
+ pipeline: Pipeline = session.create_pipeline(
49
+ node=node, name='r1fs_demo_pipeline', data_source='Void',
50
+ debug=True,
51
+ )
52
+ # The ideea is that we create a plugin instance that listens for data
53
+ # on ChainStorage from other plugins/nodes that create R1FS demo files
54
+ # while itself also creating R1FS demo files
55
+ instance: Instance = pipeline.create_plugin_instance(
56
+ signature='R1FS_DEMO', on_data=payload_handler.instance_on_data,
57
+ instance_id='inst01',
58
+ debug=True,
59
+ )
60
+
61
+ pipeline.deploy()
62
+ WAIT_TIME = 150
63
+ session.P(f"All pipelines deployed, we wait for {WAIT_TIME} seconds...")
64
+ session.wait(
65
+ seconds=WAIT_TIME, # we wait the session for 60 seconds
66
+ close_pipelines=True, # we close the pipelines after the session
67
+ close_session=True, # we close the session after the session
68
+ )
69
+
70
+ session.P("Session closed. A total of {} payloads were received.".format(
71
+ payload_handler.n_received
72
+ ))
73
+ if payload_handler.n_received == 0:
74
+ session.P("No payloads were received. Probably your nodes do not cooperate ('allow') with each other.")
75
+ session.P("Main thread exiting...")
@@ -4,10 +4,10 @@ import pandas as pd
4
4
 
5
5
  if __name__ == "__main__":
6
6
  N = 4
7
- DEBUG = True
7
+ DEBUG = False
8
8
 
9
9
  # the provided url, note: if this does not return json directly, it might need adjustment
10
- url = "https://naeural-oracle.ngrok.app/active_nodes_list"
10
+ url = "https://devnet-oracle.ratio1.ai/active_nodes_list"
11
11
  server_alias_counts = {}
12
12
 
13
13
  for i in range(N):
@@ -1,43 +0,0 @@
1
- import json
2
- from naeural_client import Instance, Payload, Pipeline, Session
3
-
4
- def instance_on_data(pipeline: Pipeline, data: Payload):
5
- data = data.data
6
- print(f"Data received: {json.dumps(data, indent=2)}")
7
- return
8
-
9
- if __name__ == '__main__':
10
-
11
- session: Session = Session()
12
-
13
- # this code assumes the node have "allowed" the SDK to deploy the pipeline
14
- nodes = [
15
- '0xai_A2LfyeItL5oEp7nHONlczGgwS3SV8Ims9ujJ0soJ6Anx',
16
- '0xai_AqgKnJMNvUvq5n1wIin_GD2i1FbZ4FBTUJaCI6cWf7i4',
17
- ]
18
-
19
- for node in nodes:
20
- session.P(f"Deploying pipeline to node: {node}")
21
- session.wait_for_node(node) # we wait for the node to be ready
22
- pipeline: Pipeline = session.create_pipeline(
23
- node=node,
24
- name='r1fs_demo_pipeline',
25
- data_source='Void',
26
- debug=True,
27
- )
28
-
29
- instance: Instance = pipeline.create_plugin_instance(
30
- signature='R1FS_DEMO',
31
- on_data=instance_on_data,
32
- instance_id='inst01',
33
- debug=True,
34
- )
35
-
36
- pipeline.deploy()
37
-
38
- session.wait(
39
- seconds=300, # we wait the session for 60 seconds
40
- close_pipelines=True, # we close the pipelines after the session
41
- close_session=True, # we close the session after the session
42
- )
43
- session.P("Main thread exiting...")
File without changes
File without changes
File without changes
File without changes