ratio1 3.4.119__tar.gz → 3.4.120__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 (232) hide show
  1. {ratio1-3.4.119 → ratio1-3.4.120}/.devcontainer/Dockerfile +2 -0
  2. ratio1-3.4.120/.devcontainer/start_codex.sh +213 -0
  3. {ratio1-3.4.119 → ratio1-3.4.120}/PKG-INFO +1 -1
  4. {ratio1-3.4.119 → ratio1-3.4.120}/pyproject.toml +1 -1
  5. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/_ver.py +1 -1
  6. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/cli/cli_commands.py +5 -1
  7. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/cli/nodes.py +61 -1
  8. {ratio1-3.4.119 → ratio1-3.4.120}/.devcontainer/devcontainer.json +0 -0
  9. {ratio1-3.4.119 → ratio1-3.4.120}/.gitattributes +0 -0
  10. {ratio1-3.4.119 → ratio1-3.4.120}/.github/workflows/python-publish.yml +0 -0
  11. {ratio1-3.4.119 → ratio1-3.4.120}/.gitignore +0 -0
  12. {ratio1-3.4.119 → ratio1-3.4.120}/.vscode/launch.json +0 -0
  13. {ratio1-3.4.119 → ratio1-3.4.120}/LICENSE +0 -0
  14. {ratio1-3.4.119 → ratio1-3.4.120}/README.md +0 -0
  15. {ratio1-3.4.119 → ratio1-3.4.120}/TODOs.md +0 -0
  16. {ratio1-3.4.119 → ratio1-3.4.120}/__init__.py +0 -0
  17. {ratio1-3.4.119 → ratio1-3.4.120}/r1ctl.MD +0 -0
  18. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/__init__.py +0 -0
  19. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/base/__init__.py +0 -0
  20. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/base/distributed_custom_code_presets.py +0 -0
  21. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/base/generic_session.py +0 -0
  22. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/base/instance.py +0 -0
  23. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/base/payload/__init__.py +0 -0
  24. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/base/payload/payload.py +0 -0
  25. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/base/pipeline.py +0 -0
  26. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/base/plugin_template.py +0 -0
  27. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/base/responses.py +0 -0
  28. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/base/transaction.py +0 -0
  29. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/base/webapp_pipeline.py +0 -0
  30. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/base_decentra_object.py +0 -0
  31. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/bc/__init__.py +0 -0
  32. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/bc/base.py +0 -0
  33. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/bc/chain.py +0 -0
  34. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/bc/ec.py +0 -0
  35. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/bc/evm.py +0 -0
  36. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/certs/141.136.35.100.crt +0 -0
  37. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/certs/195.35.29.4.crt +0 -0
  38. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/certs/31.97.72.187.crt +0 -0
  39. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/certs/51.15.142.167.crt +0 -0
  40. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/certs/72.60.187.24.crt +0 -0
  41. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/certs/72.60.81.67.crt +0 -0
  42. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/certs/72.60.83.78.crt +0 -0
  43. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/certs/__init__.py +0 -0
  44. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/certs/a0d9818f.ala.eu-central-1.emqxsl.com.crt +0 -0
  45. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/certs/r9092118.ala.eu-central-1.emqxsl.com.crt +0 -0
  46. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/certs/s624dbd4.ala.us-east-1.emqxsl.com.crt +0 -0
  47. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/cli/README.md +0 -0
  48. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/cli/cli.py +0 -0
  49. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/cli/oracles.py +0 -0
  50. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/cli/package_update.py +0 -0
  51. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/code_cheker/__init__.py +0 -0
  52. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/code_cheker/base.py +0 -0
  53. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/code_cheker/checker.py +0 -0
  54. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/comm/__init__.py +0 -0
  55. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/comm/amqp_wrapper.py +0 -0
  56. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/comm/base_comm_wrapper.py +0 -0
  57. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/comm/mqtt_wrapper.py +0 -0
  58. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/const/README.md +0 -0
  59. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/const/__init__.py +0 -0
  60. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/const/apps.py +0 -0
  61. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/const/base.py +0 -0
  62. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/const/comms.py +0 -0
  63. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/const/environment.py +0 -0
  64. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/const/evm_net.py +0 -0
  65. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/const/formatter.py +0 -0
  66. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/const/heartbeat.py +0 -0
  67. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/const/misc.py +0 -0
  68. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/const/payload.py +0 -0
  69. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/const/plugins/deeploy_const.py +0 -0
  70. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/default/__init__.py +0 -0
  71. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/default/instance/__init__.py +0 -0
  72. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/default/instance/chain_dist_custom_job_01_plugin.py +0 -0
  73. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/default/instance/custom_webapi_01_plugin.py +0 -0
  74. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/default/instance/generic_http_01_plugin.py +0 -0
  75. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/default/instance/net_mon_01_plugin.py +0 -0
  76. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/default/instance/telegram_basic_bot_01_plugin.py +0 -0
  77. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/default/instance/telegram_conversational_bot_01_plugin.py +0 -0
  78. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/default/instance/view_scene_01_plugin.py +0 -0
  79. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/default/session/mqtt_session.py +0 -0
  80. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/io_formatter/__init__.py +0 -0
  81. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/io_formatter/base/__init__.py +0 -0
  82. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/io_formatter/base/base_formatter.py +0 -0
  83. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/io_formatter/default/__init__.py +0 -0
  84. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/io_formatter/default/a_dummy.py +0 -0
  85. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/io_formatter/default/aixp1.py +0 -0
  86. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/io_formatter/default/default.py +0 -0
  87. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/io_formatter/io_formatter_manager.py +0 -0
  88. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/ipfs/__init__.py +0 -0
  89. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/ipfs/ifps_keygen +0 -0
  90. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/ipfs/ipfs_setup/ipfs.service +0 -0
  91. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/ipfs/ipfs_setup/launch_service.sh +0 -0
  92. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/ipfs/ipfs_setup/restart.sh +0 -0
  93. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/ipfs/ipfs_setup/run.sh +0 -0
  94. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/ipfs/ipfs_setup/setup.sh +0 -0
  95. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/ipfs/ipfs_setup/show.sh +0 -0
  96. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/ipfs/ipfs_setup/write_key.sh +0 -0
  97. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/ipfs/r1fs.py +0 -0
  98. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/__init__.py +0 -0
  99. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/base_logger.py +0 -0
  100. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/logger_mixins/__init__.py +0 -0
  101. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/logger_mixins/class_instance_mixin.py +0 -0
  102. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/logger_mixins/computer_vision_mixin.py +0 -0
  103. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/logger_mixins/datetime_mixin.py +0 -0
  104. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/logger_mixins/download_mixin.py +0 -0
  105. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/logger_mixins/general_serialization_mixin.py +0 -0
  106. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/logger_mixins/json_serialization_mixin.py +0 -0
  107. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/logger_mixins/machine_mixin.py +0 -0
  108. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/logger_mixins/pickle_serialization_mixin.py +0 -0
  109. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/logger_mixins/process_mixin.py +0 -0
  110. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/logger_mixins/resource_size_mixin.py +0 -0
  111. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/logger_mixins/timers_mixin.py +0 -0
  112. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/logger_mixins/upload_mixin.py +0 -0
  113. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/logger_mixins/utils_mixin.py +0 -0
  114. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/small_logger.py +0 -0
  115. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/tzlocal/__init__.py +0 -0
  116. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/tzlocal/unix.py +0 -0
  117. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/tzlocal/utils.py +0 -0
  118. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/tzlocal/win32.py +0 -0
  119. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/logging/tzlocal/windows_tz.py +0 -0
  120. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/plugins_manager_mixin.py +0 -0
  121. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/utils/__init__.py +0 -0
  122. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/utils/comm_utils.py +0 -0
  123. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/utils/config.py +0 -0
  124. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/utils/dotenv.py +0 -0
  125. {ratio1-3.4.119 → ratio1-3.4.120}/ratio1/utils/oracle_sync/oracle_tester.py +0 -0
  126. {ratio1-3.4.119 → ratio1-3.4.120}/requirements.txt +0 -0
  127. {ratio1-3.4.119 → ratio1-3.4.120}/template.env +0 -0
  128. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/.example_env +0 -0
  129. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/26_cerviguard_war_loopback/cerviguard_test_ui.html +0 -0
  130. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/8. custom_code_fastapi_assets/index.html +0 -0
  131. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/9. code_sandbox_from_scratch_assets/index.html +0 -0
  132. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/_example_pk_sdk.pem +0 -0
  133. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/eth2025/deploy_home_safety.py +0 -0
  134. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/eth2025/deploy_maintenance_monitoring.py +0 -0
  135. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex01_part1_connect.py +0 -0
  136. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex01_part2_filter.py +0 -0
  137. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex01_part3_adv_filter.py +0 -0
  138. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex02_part1_deploy_webapi.py +0 -0
  139. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex02_part2_deploy_plugin.py +0 -0
  140. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex02_part3_deploy_r1fs_test.py +0 -0
  141. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex03_custom_code_on_one_remote__example_1.py +0 -0
  142. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex04_custom_code_on_one_remote__example_2.py +0 -0
  143. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex05_custom_code_on_one_remote__example_3.py +0 -0
  144. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py +0 -0
  145. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex07_custom_code_on_multiple_remotes__example_2.py +0 -0
  146. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex08_custom_webapi.py +0 -0
  147. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex09_code_sandbox_from_scratch.py +0 -0
  148. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex10_telegram_echo_bot.py +0 -0
  149. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex11_telegram_blackjack_bot.py +0 -0
  150. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex12_telegram_smart_bot.py +0 -0
  151. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex13_launch_repo_based_webapp.py +0 -0
  152. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex14_wallets.py +0 -0
  153. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex15_telegram_rogue_style_game.py +0 -0
  154. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex16_launch_repo_based_http_server.py +0 -0
  155. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex17_launch_repo_based_balanced_webapp.py +0 -0
  156. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex18_deploy_container_webapi.py +0 -0
  157. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex19_deeploy_container_example.py +0 -0
  158. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex20_deeploy_telegram_bot.py +0 -0
  159. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex21_telegram_community_bot.py +0 -0
  160. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex22_deeploy_custom_code.py +0 -0
  161. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex23_deploy_worker_app.py +0 -0
  162. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex24_multi_video_stream_monitor.py +0 -0
  163. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex25_local_serving_api.py +0 -0
  164. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/ex26_cerviguard_war_loopback.py +0 -0
  165. {ratio1-3.4.119 → ratio1-3.4.120}/tutorials/video_presentation/1. hello_world.ipynb +0 -0
  166. {ratio1-3.4.119 → ratio1-3.4.120}/winrun.bat +0 -0
  167. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/README.md +0 -0
  168. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/_show_config_check.py +0 -0
  169. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/cstore_check.py +0 -0
  170. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/dauth_check.py +0 -0
  171. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/keys_check.py +0 -0
  172. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/node_info_check.py +0 -0
  173. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/ora_check.py +0 -0
  174. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/ora_intervals.py +0 -0
  175. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/ora_sign_check.py +0 -0
  176. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/owner_check.py +0 -0
  177. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/payload_check.py +0 -0
  178. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/session_check.py +0 -0
  179. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/w3_all_active_jobs_check.py +0 -0
  180. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/w3_auth_check.py +0 -0
  181. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/w3_first_closable_job_check.py +0 -0
  182. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/w3_nodes_licenses.py +0 -0
  183. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/w3_oracles_check.py +0 -0
  184. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/w3_poai_check.py +0 -0
  185. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/whitelist_check.py +0 -0
  186. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/_checks/workload_check.py +0 -0
  187. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/ai4e/delete.py +0 -0
  188. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/ai4e/launcher.py +0 -0
  189. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/dates/check_date.py +0 -0
  190. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/debug/close_pipeline.py +0 -0
  191. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/decentralized/chain_dist_example.py +0 -0
  192. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/decentralized/chain_dist_example_initiator.py +0 -0
  193. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/decentralized/chain_dist_example_worker.py +0 -0
  194. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/deeploy/checker.py +0 -0
  195. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/deeploy/checker2.py +0 -0
  196. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/deeploy/create_request.py +0 -0
  197. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/enc_dec/enc_dec_test.py +0 -0
  198. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/eth/allocate_rewards.py +0 -0
  199. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/eth/balance.py +0 -0
  200. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/eth/eth_sign.py +0 -0
  201. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/eth/info.md +0 -0
  202. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/eth/send.py +0 -0
  203. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/eth/send_many.py +0 -0
  204. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/eth/sign.py +0 -0
  205. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/log.py +0 -0
  206. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/logger/run.py +0 -0
  207. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/lp/lp_checker.py +0 -0
  208. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/multi-enc-dec/multi_test1.py +0 -0
  209. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/multi-enc-dec/multi_test2.py +0 -0
  210. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/netmon/check_netmon.py +0 -0
  211. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/netmon/netmon_data.json +0 -0
  212. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/pipelines/start.py +0 -0
  213. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/pipelines/stop.py +0 -0
  214. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/scripts/monitoring/collect_messages.py +0 -0
  215. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/scripts/monitoring/get_hb_distribution.py +0 -0
  216. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/scripts/monitoring/multithreaded_network_sniffer.py +0 -0
  217. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/sign/simple_payload_checker.py +0 -0
  218. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/sign/test_sign1.py +0 -0
  219. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/sign/test_sign2.py +0 -0
  220. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/test.py +0 -0
  221. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/tokens/get_check.py +0 -0
  222. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/utils/get_documentation.py +0 -0
  223. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/various/attach_example.py +0 -0
  224. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/various/ex1.py +0 -0
  225. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/various/hello.py +0 -0
  226. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/various/remote_exec.py +0 -0
  227. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/various/save_images.py +0 -0
  228. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/wl/wl_add.py +0 -0
  229. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py +0 -0
  230. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py +0 -0
  231. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/xarchive/_tutorials/8. chatbot.py +0 -0
  232. {ratio1-3.4.119 → ratio1-3.4.120}/xperimental/xarchive/test.py +0 -0
@@ -10,6 +10,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
10
10
  build-essential \
11
11
  libffi-dev \
12
12
  libssl-dev \
13
+ nano \
14
+ curl \
13
15
  git \
14
16
  && rm -rf /var/lib/apt/lists/*
15
17
 
@@ -0,0 +1,213 @@
1
+ #!/bin/bash
2
+
3
+ # Bash script to update Node.js, npm, install @openai/codex globally, and launch VS Code
4
+ # Optimized for Ubuntu 22.04+ with root/non-root detection
5
+ # Works in devcontainers and regular user environments
6
+ # Author: Generated script
7
+ # Date: $(date +"%Y-%m-%d")
8
+
9
+ set -e # Exit on any error
10
+
11
+ echo "=== Node.js/npm Update & OpenAI Codex Setup for Ubuntu 22.04+ ==="
12
+
13
+ # Function to print colored output
14
+ print_status() {
15
+ echo -e "\033[1;32m[INFO]\033[0m $1"
16
+ }
17
+
18
+ print_error() {
19
+ echo -e "\033[1;31m[ERROR]\033[0m $1"
20
+ }
21
+
22
+ print_warning() {
23
+ echo -e "\033[1;33m[WARNING]\033[0m $1"
24
+ }
25
+
26
+ print_success() {
27
+ echo -e "\033[1;36m[SUCCESS]\033[0m $1"
28
+ }
29
+
30
+ # Check if running as root and set appropriate command prefix
31
+ if [ "$EUID" -eq 0 ]; then
32
+ print_status "Running as root (UID=0) - no sudo needed"
33
+ SUDO_CMD=""
34
+ USER_HOME="/root"
35
+ IS_ROOT=true
36
+ else
37
+ print_status "Running as regular user - using sudo for system operations"
38
+ SUDO_CMD="sudo"
39
+ USER_HOME="$HOME"
40
+ IS_ROOT=false
41
+ fi
42
+
43
+ # Check if running on Ubuntu
44
+ if command -v lsb_release >/dev/null 2>&1; then
45
+ if ! lsb_release -d | grep -q "Ubuntu"; then
46
+ print_warning "This script is optimized for Ubuntu 22.04+. Detected: $(lsb_release -d | cut -f2)"
47
+ fi
48
+ else
49
+ print_warning "lsb_release not available - assuming Ubuntu-compatible system"
50
+ fi
51
+
52
+ # # Update system packages first
53
+ # print_status "Updating system packages..."
54
+ # $SUDO_CMD apt update && $SUDO_CMD apt upgrade -y
55
+
56
+ # # Install required dependencies
57
+ # print_status "Installing required dependencies..."
58
+ # $SUDO_CMD apt install -y curl wget software-properties-common apt-transport-https ca-certificates gnupg lsb-release
59
+
60
+ # Remove old Node.js versions if installed via apt
61
+ print_status "Removing old Node.js installations..."
62
+ $SUDO_CMD apt remove -y nodejs npm 2>/dev/null || true
63
+ $SUDO_CMD apt autoremove -y
64
+
65
+ # Install Node.js using NodeSource repository (recommended for Ubuntu)
66
+ print_status "Adding NodeSource repository for latest Node.js LTS..."
67
+ if [ "$IS_ROOT" = false ]; then
68
+ curl -fsSL https://deb.nodesource.com/setup_lts.x | $SUDO_CMD -E bash -
69
+ else
70
+ curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
71
+ fi
72
+
73
+ print_status "Installing Node.js LTS..."
74
+ $SUDO_CMD apt install -y nodejs
75
+
76
+ # Verify Node.js installation
77
+ NODE_VERSION=$(node --version)
78
+ NPM_VERSION=$(npm --version)
79
+ print_success "Node.js installed: $NODE_VERSION"
80
+ print_success "npm installed: $NPM_VERSION"
81
+
82
+ # Handle npm global packages based on user context
83
+ if [ "$IS_ROOT" = true ]; then
84
+ # Running as root - install globally without user-specific config
85
+ print_status "Running as root - updating npm globally..."
86
+ npm install -g npm@latest
87
+
88
+ print_success "Updated npm version: $(npm --version)"
89
+
90
+ # Install @openai/codex globally as root
91
+ print_status "Installing @openai/codex globally (root)..."
92
+ if npm install -g @openai/codex; then
93
+ print_success "Successfully installed @openai/codex"
94
+ print_status "Codex CLI available at: $(which codex 2>/dev/null || echo '/usr/local/bin/codex (expected)')"
95
+ else
96
+ print_error "Failed to install @openai/codex"
97
+ print_warning "This might be due to network issues or package availability"
98
+ fi
99
+ else
100
+ # Running as regular user - use user-specific npm global directory
101
+ print_status "Updating npm to latest version..."
102
+ $SUDO_CMD npm install -g npm@latest
103
+
104
+ print_success "Updated npm version: $(npm --version)"
105
+
106
+ # Fix npm permissions for global packages (Ubuntu-specific issue)
107
+ print_status "Configuring npm global packages directory..."
108
+ mkdir -p "$USER_HOME/.npm-global"
109
+ npm config set prefix "$USER_HOME/.npm-global"
110
+
111
+ # Add npm global bin to PATH if not already present
112
+ if ! echo $PATH | grep -q "$USER_HOME/.npm-global/bin"; then
113
+ print_status "Adding npm global bin to PATH..."
114
+ echo "export PATH=$USER_HOME/.npm-global/bin:\$PATH" >> "$USER_HOME/.bashrc"
115
+ export PATH="$USER_HOME/.npm-global/bin:$PATH"
116
+ print_success "PATH updated. You may need to restart your terminal or run 'source ~/.bashrc'"
117
+ fi
118
+
119
+ # Install @openai/codex globally in user directory
120
+ print_status "Installing @openai/codex globally (user)..."
121
+ if npm install -g @openai/codex; then
122
+ print_success "Successfully installed @openai/codex"
123
+ print_status "Codex CLI available at: $(which codex 2>/dev/null || echo 'Not found in current PATH - restart terminal')"
124
+ else
125
+ print_error "Failed to install @openai/codex"
126
+ print_warning "This might be due to network issues or package availability"
127
+ fi
128
+ fi
129
+
130
+ # # Install VS Code if not present
131
+ # if ! command -v code >/dev/null 2>&1; then
132
+ # print_status "VS Code not found. Installing VS Code..."
133
+
134
+ # # Add Microsoft GPG key and repository
135
+ # wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
136
+ # $SUDO_CMD install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
137
+ # $SUDO_CMD sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
138
+
139
+ # # Update package list and install VS Code
140
+ # $SUDO_CMD apt update
141
+ # $SUDO_CMD apt install -y code
142
+
143
+ # print_success "VS Code installed successfully"
144
+ # else
145
+ # print_status "VS Code already installed: $(code --version | head -n1)"
146
+ # fi
147
+
148
+ # # Handle VS Code launch based on environment
149
+ # if [ "$IS_ROOT" = true ]; then
150
+ # # In root/devcontainer context, VS Code might not be launchable or needed
151
+ # if [ -n "$DISPLAY" ] || [ -n "$WAYLAND_DISPLAY" ]; then
152
+ # print_status "Display detected - attempting to launch VS Code..."
153
+ # if command -v code >/dev/null 2>&1; then
154
+ # nohup code --no-sandbox --user-data-dir="$USER_HOME/.vscode-root" > /dev/null 2>&1 &
155
+ # print_success "VS Code launched with root-safe parameters"
156
+ # fi
157
+ # else
158
+ # print_status "No display detected (likely devcontainer/headless) - VS Code GUI not launched"
159
+ # print_status "Use 'code .' to open current directory or 'code filename' to edit files"
160
+ # fi
161
+ # else
162
+ # # Regular user context
163
+ # print_status "Launching VS Code..."
164
+ # if command -v code >/dev/null 2>&1; then
165
+ # if [ -n "$DISPLAY" ] || [ -n "$WAYLAND_DISPLAY" ]; then
166
+ # nohup code > /dev/null 2>&1 &
167
+ # print_success "VS Code launched successfully"
168
+ # else
169
+ # print_status "No display detected - VS Code available via command line"
170
+ # fi
171
+ # else
172
+ # print_error "VS Code command 'code' not found"
173
+ # print_status "Try restarting your terminal or running 'source ~/.bashrc'"
174
+ # fi
175
+ # fi
176
+
177
+ # Display final status
178
+ echo ""
179
+ echo "=== Installation Summary ==="
180
+ print_success "Node.js: $(node --version)"
181
+ print_success "npm: $(npm --version)"
182
+
183
+ # # Handle VS Code version check
184
+ # if command -v code >/dev/null 2>&1; then
185
+ # VS_CODE_VERSION=$(code --version 2>/dev/null | head -n1 || echo 'Available but version check failed')
186
+ # print_success "VS Code: $VS_CODE_VERSION"
187
+ # else
188
+ # print_warning "VS Code: Please restart terminal"
189
+ # fi
190
+
191
+ # Check if codex is available
192
+ if command -v codex >/dev/null 2>&1; then
193
+ print_success "OpenAI Codex CLI: Available"
194
+ elif [ "$IS_ROOT" = true ]; then
195
+ print_success "OpenAI Codex CLI: Available (may need full path: /usr/local/bin/codex)"
196
+ else
197
+ print_warning "OpenAI Codex CLI: Restart terminal to use 'codex' command"
198
+ fi
199
+
200
+ echo ""
201
+ if [ "$IS_ROOT" = true ]; then
202
+ print_status "Setup completed for root environment!"
203
+ print_status "- Node.js and npm are ready to use"
204
+ print_status "- Run 'codex --help' or '/usr/local/bin/codex --help' to get started"
205
+ print_status "- VS Code available via 'code' command"
206
+ else
207
+ print_status "Setup completed! If this is your first time:"
208
+ print_status "1. Restart your terminal or run: source ~/.bashrc"
209
+ print_status "2. Run 'codex --help' to get started with OpenAI Codex"
210
+ print_status "3. VS Code is ready to use"
211
+ fi
212
+
213
+ echo "=== Script execution completed ==="
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ratio1
3
- Version: 3.4.119
3
+ Version: 3.4.120
4
4
  Summary: `ratio1` or Ration1 SDK is the Python SDK required for client app development for the Ratio1 ecosystem
5
5
  Project-URL: Homepage, https://github.com/Ratio1/ratio1_sdk
6
6
  Project-URL: Bug Tracker, https://github.com/Ratio1/ratio1_sdk/issues
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "ratio1"
7
- version = "3.4.119"
7
+ version = "3.4.120"
8
8
  authors = [
9
9
  { name="Andrei Ionut Damian", email="andrei.damian@ratio1.ai" },
10
10
  { name="Cristan Bleotiu", email="cristian.bleotiu@ratio1.ai" },
@@ -1,4 +1,4 @@
1
- __VER__ = "3.4.119"
1
+ __VER__ = "3.4.120"
2
2
 
3
3
  if __name__ == "__main__":
4
4
  with open("pyproject.toml", "rt") as fd:
@@ -10,7 +10,7 @@ and it is used by cli.py
10
10
  """
11
11
 
12
12
  from ratio1.cli.nodes import (
13
- get_nodes, get_supervisors,
13
+ get_nodes, get_supervisors, get_comms,
14
14
  restart_node, shutdown_node,
15
15
  get_apps, inspect_node
16
16
  )
@@ -47,6 +47,10 @@ CLI_COMMANDS = {
47
47
  "--wide" : "Display all available information (flag)",
48
48
  }
49
49
  },
50
+ "comms": {
51
+ "func": get_comms,
52
+ "description": "Get comm relay summary for seed ownership and connected peers.",
53
+ },
50
54
  "eth" : {
51
55
  "func": get_eth_addr,
52
56
  "description": "Get the ETH address given a node address",
@@ -137,6 +137,66 @@ def get_supervisors(args):
137
137
  return
138
138
 
139
139
 
140
+ def get_comms(args):
141
+ """
142
+ This function is used to get the comm relay summary.
143
+ """
144
+ if args.verbose:
145
+ log_with_color("Getting comm relay summary...", color='b')
146
+
147
+ res = _get_netstats(
148
+ silent=not args.verbose,
149
+ online_only=False,
150
+ allowed_only=False,
151
+ return_session=True,
152
+ )
153
+ df, supervisor, super_alias, nr_supers, elapsed, sess = res
154
+
155
+ if supervisor == "ERROR":
156
+ log_with_color(f"No supervisors or no comms available in {elapsed:.1f}s. Please check your settings.", color='r')
157
+ return
158
+
159
+ if df is None or df.empty:
160
+ log_with_color("No nodes found in the network report.", color='r')
161
+ return
162
+
163
+ required_cols = ["Alias", "Comm Relay"]
164
+ missing_cols = [c for c in required_cols if c not in df.columns]
165
+ if missing_cols:
166
+ log_with_color(f"Missing columns in network report: {missing_cols}", color='r')
167
+ return
168
+
169
+ df_relays = df[required_cols].copy()
170
+ df_relays = df_relays[df_relays["Comm Relay"].notna()]
171
+
172
+ # Map each comm relay to its seed alias (seed names are r1s-XY).
173
+ seed_mask = df_relays["Alias"].str.match(r"^r1s-\d+$", case=False, na=False)
174
+ seed_alias_by_relay = {}
175
+ for _, row in df_relays[seed_mask].iterrows():
176
+ relay = row["Comm Relay"]
177
+ if relay not in seed_alias_by_relay:
178
+ seed_alias_by_relay[relay] = row["Alias"]
179
+
180
+ summary = df_relays.groupby("Comm Relay").size().reset_index(name="Connected Peers")
181
+ summary["Seed Alias"] = summary["Comm Relay"].map(seed_alias_by_relay)
182
+ summary = summary.rename(columns={"Comm Relay": "Comm relay"})
183
+ summary = summary[["Comm relay", "Seed Alias", "Connected Peers"]]
184
+
185
+ import pandas as pd
186
+ pd.set_option('display.float_format', '{:.4f}'.format)
187
+
188
+ network = sess.bc_engine.evm_network
189
+ addr = sess.bc_engine.address
190
+ log_with_color(f"Ratio1 client v{version}: {addr} \n", color='b')
191
+ log_with_color(
192
+ "Comm relays on '{}' reported by <{}> '{}' in {:.1f}s ({} supervisors seen):".format(
193
+ network, supervisor, super_alias, elapsed, nr_supers),
194
+ color='b'
195
+ )
196
+ log_with_color(f"{summary}\n")
197
+ return summary
198
+
199
+
140
200
  def get_apps(args):
141
201
  """
142
202
  Shows the apps running on a given node, if the client is allowed on that node.
@@ -421,4 +481,4 @@ def _display_node_stats_for_hb(node_hb, wide=False):
421
481
 
422
482
  log_with_color(f"\n", color='w') # Add final newline for spacing
423
483
 
424
- return
484
+ return
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes