ratio1 3.4.113__tar.gz → 3.4.114__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.
- {ratio1-3.4.113 → ratio1-3.4.114}/PKG-INFO +1 -1
- {ratio1-3.4.113 → ratio1-3.4.114}/pyproject.toml +1 -1
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/_ver.py +1 -1
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/26_cerviguard_war_loopback/cerviguard_test_ui.html +67 -52
- {ratio1-3.4.113 → ratio1-3.4.114}/.devcontainer/Dockerfile +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/.devcontainer/devcontainer.json +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/.gitattributes +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/.github/workflows/python-publish.yml +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/.gitignore +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/.vscode/launch.json +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/LICENSE +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/README.md +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/TODOs.md +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/r1ctl.MD +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/base/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/base/distributed_custom_code_presets.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/base/generic_session.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/base/instance.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/base/payload/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/base/payload/payload.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/base/pipeline.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/base/plugin_template.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/base/responses.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/base/transaction.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/base/webapp_pipeline.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/base_decentra_object.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/bc/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/bc/base.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/bc/chain.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/bc/ec.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/bc/evm.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/certs/141.136.35.100.crt +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/certs/195.35.29.4.crt +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/certs/31.97.72.187.crt +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/certs/51.15.142.167.crt +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/certs/72.60.187.24.crt +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/certs/72.60.81.67.crt +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/certs/72.60.83.78.crt +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/certs/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/certs/a0d9818f.ala.eu-central-1.emqxsl.com.crt +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/certs/r9092118.ala.eu-central-1.emqxsl.com.crt +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/certs/s624dbd4.ala.us-east-1.emqxsl.com.crt +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/cli/README.md +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/cli/cli.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/cli/cli_commands.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/cli/nodes.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/cli/oracles.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/cli/package_update.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/code_cheker/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/code_cheker/base.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/code_cheker/checker.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/comm/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/comm/amqp_wrapper.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/comm/base_comm_wrapper.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/comm/mqtt_wrapper.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/const/README.md +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/const/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/const/apps.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/const/base.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/const/comms.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/const/environment.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/const/evm_net.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/const/formatter.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/const/heartbeat.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/const/misc.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/const/payload.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/const/plugins/deeploy_const.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/default/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/default/instance/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/default/instance/chain_dist_custom_job_01_plugin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/default/instance/custom_webapi_01_plugin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/default/instance/generic_http_01_plugin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/default/instance/net_mon_01_plugin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/default/instance/telegram_basic_bot_01_plugin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/default/instance/telegram_conversational_bot_01_plugin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/default/instance/view_scene_01_plugin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/default/session/mqtt_session.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/io_formatter/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/io_formatter/base/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/io_formatter/base/base_formatter.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/io_formatter/default/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/io_formatter/default/a_dummy.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/io_formatter/default/aixp1.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/io_formatter/default/default.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/io_formatter/io_formatter_manager.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/ipfs/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/ipfs/ifps_keygen +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/ipfs/ipfs_setup/ipfs.service +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/ipfs/ipfs_setup/launch_service.sh +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/ipfs/ipfs_setup/restart.sh +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/ipfs/ipfs_setup/run.sh +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/ipfs/ipfs_setup/setup.sh +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/ipfs/ipfs_setup/show.sh +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/ipfs/ipfs_setup/write_key.sh +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/ipfs/r1fs.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/base_logger.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/logger_mixins/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/logger_mixins/class_instance_mixin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/logger_mixins/computer_vision_mixin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/logger_mixins/datetime_mixin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/logger_mixins/download_mixin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/logger_mixins/general_serialization_mixin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/logger_mixins/json_serialization_mixin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/logger_mixins/machine_mixin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/logger_mixins/pickle_serialization_mixin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/logger_mixins/process_mixin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/logger_mixins/resource_size_mixin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/logger_mixins/timers_mixin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/logger_mixins/upload_mixin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/logger_mixins/utils_mixin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/small_logger.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/tzlocal/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/tzlocal/unix.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/tzlocal/utils.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/tzlocal/win32.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/tzlocal/windows_tz.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/plugins_manager_mixin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/utils/__init__.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/utils/comm_utils.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/utils/config.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/utils/dotenv.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/ratio1/utils/oracle_sync/oracle_tester.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/requirements.txt +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/template.env +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/.example_env +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/8. custom_code_fastapi_assets/index.html +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/9. code_sandbox_from_scratch_assets/index.html +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/_example_pk_sdk.pem +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/eth2025/deploy_home_safety.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/eth2025/deploy_maintenance_monitoring.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex01_part1_connect.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex01_part2_filter.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex01_part3_adv_filter.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex02_part1_deploy_webapi.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex02_part2_deploy_plugin.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex02_part3_deploy_r1fs_test.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex03_custom_code_on_one_remote__example_1.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex04_custom_code_on_one_remote__example_2.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex05_custom_code_on_one_remote__example_3.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex07_custom_code_on_multiple_remotes__example_2.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex08_custom_webapi.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex09_code_sandbox_from_scratch.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex10_telegram_echo_bot.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex11_telegram_blackjack_bot.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex12_telegram_smart_bot.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex13_launch_repo_based_webapp.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex14_wallets.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex15_telegram_rogue_style_game.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex16_launch_repo_based_http_server.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex17_launch_repo_based_balanced_webapp.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex18_deploy_container_webapi.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex19_deeploy_container_example.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex20_deeploy_telegram_bot.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex21_telegram_community_bot.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex22_deeploy_custom_code.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex23_deploy_worker_app.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex24_multi_video_stream_monitor.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex25_local_serving_api.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex26_cerviguard_war_loopback.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/tutorials/video_presentation/1. hello_world.ipynb +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/winrun.bat +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/README.md +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/_show_config_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/cstore_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/dauth_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/keys_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/node_info_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/ora_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/ora_intervals.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/ora_sign_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/owner_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/payload_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/session_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/w3_all_active_jobs_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/w3_auth_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/w3_first_closable_job_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/w3_nodes_licenses.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/w3_oracles_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/w3_poai_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/whitelist_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/_checks/workload_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/ai4e/delete.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/ai4e/launcher.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/dates/check_date.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/debug/close_pipeline.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/decentralized/chain_dist_example.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/decentralized/chain_dist_example_initiator.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/decentralized/chain_dist_example_worker.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/deeploy/checker.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/deeploy/checker2.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/deeploy/create_request.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/enc_dec/enc_dec_test.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/eth/allocate_rewards.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/eth/balance.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/eth/eth_sign.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/eth/info.md +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/eth/send.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/eth/send_many.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/eth/sign.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/log.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/logger/run.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/lp/lp_checker.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/multi-enc-dec/multi_test1.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/multi-enc-dec/multi_test2.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/netmon/check_netmon.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/netmon/netmon_data.json +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/pipelines/start.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/pipelines/stop.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/scripts/monitoring/collect_messages.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/scripts/monitoring/get_hb_distribution.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/scripts/monitoring/multithreaded_network_sniffer.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/sign/simple_payload_checker.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/sign/test_sign1.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/sign/test_sign2.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/test.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/tokens/get_check.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/utils/get_documentation.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/various/attach_example.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/various/ex1.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/various/hello.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/various/remote_exec.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/various/save_images.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/wl/wl_add.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/xarchive/_tutorials/8. chatbot.py +0 -0
- {ratio1-3.4.113 → ratio1-3.4.114}/xperimental/xarchive/test.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ratio1
|
|
3
|
-
Version: 3.4.
|
|
3
|
+
Version: 3.4.114
|
|
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
|
{ratio1-3.4.113 → ratio1-3.4.114}/tutorials/26_cerviguard_war_loopback/cerviguard_test_ui.html
RENAMED
|
@@ -224,10 +224,10 @@
|
|
|
224
224
|
<body>
|
|
225
225
|
<div class="container">
|
|
226
226
|
<h1>🔬 CerviGuard WAR</h1>
|
|
227
|
-
<p class="subtitle">Cervical Image Analysis - Loopback Pipeline
|
|
227
|
+
<p class="subtitle">Cervical Image Analysis - Loopback Pipeline + PostponedRequest</p>
|
|
228
228
|
|
|
229
229
|
<div style="text-align: center;">
|
|
230
|
-
<span class="loopback-indicator">🔄 LOOPBACK
|
|
230
|
+
<span class="loopback-indicator">🔄 LOOPBACK + PostponedRequest Pattern</span>
|
|
231
231
|
</div>
|
|
232
232
|
|
|
233
233
|
<!-- API Configuration -->
|
|
@@ -269,9 +269,9 @@
|
|
|
269
269
|
|
|
270
270
|
<!-- Footer -->
|
|
271
271
|
<div class="footer">
|
|
272
|
-
<p>CerviGuard WAR Test Interface | Naeural Edge Node Loopback Demo</p>
|
|
272
|
+
<p>CerviGuard WAR Test Interface | Naeural Edge Node Loopback + PostponedRequest Demo</p>
|
|
273
273
|
<p style="font-size: 12px; margin-top: 5px;">
|
|
274
|
-
Flow: UI → API (
|
|
274
|
+
Flow: UI → API (PostponedRequest) → Loopback Queue → Processor → Auto-polling → Results
|
|
275
275
|
</p>
|
|
276
276
|
</div>
|
|
277
277
|
</div>
|
|
@@ -289,7 +289,6 @@
|
|
|
289
289
|
const apiUrlInput = document.getElementById('apiUrl');
|
|
290
290
|
|
|
291
291
|
let selectedImage = null;
|
|
292
|
-
let currentRequestId = null;
|
|
293
292
|
|
|
294
293
|
// Upload zone click
|
|
295
294
|
uploadZone.addEventListener('click', () => imageInput.click());
|
|
@@ -338,7 +337,7 @@
|
|
|
338
337
|
reader.readAsDataURL(file);
|
|
339
338
|
}
|
|
340
339
|
|
|
341
|
-
// Submit image
|
|
340
|
+
// Submit image using PostponedRequest pattern
|
|
342
341
|
submitBtn.addEventListener('click', async () => {
|
|
343
342
|
if (!selectedImage) return;
|
|
344
343
|
|
|
@@ -352,9 +351,12 @@
|
|
|
352
351
|
const apiUrl = apiUrlInput.value;
|
|
353
352
|
|
|
354
353
|
try {
|
|
355
|
-
showStatus('Submitting image to CerviGuard API...', 'processing');
|
|
354
|
+
showStatus('Submitting image to CerviGuard API (PostponedRequest)...', 'processing');
|
|
355
|
+
showStatus('⏳ Connection open - waiting for processing to complete...', 'processing');
|
|
356
356
|
|
|
357
|
-
|
|
357
|
+
// With PostponedRequest, the server keeps the connection open until processing is done
|
|
358
|
+
// No manual polling needed - the framework handles it server-side
|
|
359
|
+
const response = await fetch(`${apiUrl}/predict`, {
|
|
358
360
|
method: 'POST',
|
|
359
361
|
headers: {
|
|
360
362
|
'Content-Type': 'application/json',
|
|
@@ -371,70 +373,83 @@
|
|
|
371
373
|
const data = await response.json();
|
|
372
374
|
const result = data.result;
|
|
373
375
|
|
|
374
|
-
|
|
375
|
-
currentRequestId = result.request_id;
|
|
376
|
-
showStatus(`Image submitted successfully! Request ID: ${currentRequestId}`, 'success');
|
|
377
|
-
showStatus('Polling for results (loopback processing)...', 'processing');
|
|
378
|
-
pollForResults(currentRequestId);
|
|
379
|
-
} else {
|
|
380
|
-
showStatus(`Error: ${result.error || 'Unknown error'}`, 'error');
|
|
381
|
-
loader.style.display = 'none';
|
|
382
|
-
submitBtn.disabled = false;
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
} catch (error) {
|
|
386
|
-
showStatus(`Network Error: ${error.message}`, 'error');
|
|
387
|
-
showStatus('Make sure the API is running on the specified URL', 'error');
|
|
388
|
-
loader.style.display = 'none';
|
|
389
|
-
submitBtn.disabled = false;
|
|
390
|
-
}
|
|
391
|
-
});
|
|
392
|
-
|
|
393
|
-
// Poll for results
|
|
394
|
-
async function pollForResults(requestId, attempt = 1, maxAttempts = 20) {
|
|
395
|
-
const apiUrl = apiUrlInput.value;
|
|
396
|
-
|
|
397
|
-
try {
|
|
398
|
-
const response = await fetch(`${apiUrl}/cerviguard_get_result?request_id=${requestId}`);
|
|
399
|
-
const data = await response.json();
|
|
400
|
-
const result = data.result;
|
|
401
|
-
|
|
376
|
+
// PostponedRequest returns the final result directly (or error)
|
|
402
377
|
if (result.status === 'completed') {
|
|
403
378
|
loader.style.display = 'none';
|
|
404
379
|
showStatus('✓ Processing completed successfully!', 'success');
|
|
405
|
-
displayResults(result
|
|
380
|
+
displayResults(result);
|
|
406
381
|
submitBtn.disabled = false;
|
|
407
|
-
} else if (result.status === 'processing') {
|
|
408
|
-
showStatus(`⏳ Processing... (attempt ${attempt}/${maxAttempts})`, 'processing');
|
|
409
|
-
if (attempt < maxAttempts) {
|
|
410
|
-
setTimeout(() => pollForResults(requestId, attempt + 1, maxAttempts), 1000);
|
|
411
|
-
} else {
|
|
412
|
-
loader.style.display = 'none';
|
|
413
|
-
showStatus('Timeout: Processing is taking too long', 'error');
|
|
414
|
-
submitBtn.disabled = false;
|
|
415
|
-
}
|
|
416
382
|
} else if (result.status === 'error') {
|
|
417
383
|
loader.style.display = 'none';
|
|
418
384
|
showStatus(`✗ Processing Error: ${result.error}`, 'error');
|
|
419
385
|
submitBtn.disabled = false;
|
|
420
386
|
} else {
|
|
421
387
|
loader.style.display = 'none';
|
|
422
|
-
showStatus(`
|
|
388
|
+
showStatus(`Error: ${result.error || 'Unknown error'}`, 'error');
|
|
423
389
|
submitBtn.disabled = false;
|
|
424
390
|
}
|
|
425
391
|
|
|
426
392
|
} catch (error) {
|
|
393
|
+
showStatus(`Network Error: ${error.message}`, 'error');
|
|
394
|
+
showStatus('Make sure the API is running on the specified URL', 'error');
|
|
427
395
|
loader.style.display = 'none';
|
|
428
|
-
showStatus(`Polling Error: ${error.message}`, 'error');
|
|
429
396
|
submitBtn.disabled = false;
|
|
430
397
|
}
|
|
431
|
-
}
|
|
398
|
+
});
|
|
432
399
|
|
|
433
400
|
// Display results
|
|
434
401
|
function displayResults(result) {
|
|
435
|
-
const
|
|
402
|
+
const analysis = result.analysis || {};
|
|
403
|
+
const imgInfo = analysis.image_info || {};
|
|
404
|
+
|
|
405
|
+
// Determine risk color based on lesion assessment
|
|
406
|
+
const getRiskColor = (assessment) => {
|
|
407
|
+
switch(assessment) {
|
|
408
|
+
case 'none': return '#28a745';
|
|
409
|
+
case 'low': return '#ffc107';
|
|
410
|
+
case 'moderate': return '#fd7e14';
|
|
411
|
+
case 'high': return '#dc3545';
|
|
412
|
+
default: return '#6c757d';
|
|
413
|
+
}
|
|
414
|
+
};
|
|
415
|
+
|
|
416
|
+
const riskColor = getRiskColor(analysis.lesion_assessment);
|
|
436
417
|
|
|
437
418
|
resultsContent.innerHTML = `
|
|
419
|
+
<h4 style="color: #667eea; margin-bottom: 15px;">📊 Cervical Screening Analysis</h4>
|
|
420
|
+
|
|
421
|
+
<div class="result-item" style="background: #f0f8ff; border-left: 4px solid ${riskColor};">
|
|
422
|
+
<span class="result-label">Transformation Zone Type:</span>
|
|
423
|
+
<span class="result-value" style="font-weight: bold; color: ${riskColor};">${analysis.tz_type || 'N/A'}</span>
|
|
424
|
+
</div>
|
|
425
|
+
|
|
426
|
+
<div class="result-item" style="background: #f0f8ff; border-left: 4px solid ${riskColor};">
|
|
427
|
+
<span class="result-label">Lesion Assessment:</span>
|
|
428
|
+
<span class="result-value" style="font-weight: bold; color: ${riskColor}; text-transform: uppercase;">${analysis.lesion_assessment || 'N/A'}</span>
|
|
429
|
+
</div>
|
|
430
|
+
|
|
431
|
+
<div class="result-item" style="background: #f0f8ff; border-left: 4px solid ${riskColor};">
|
|
432
|
+
<span class="result-label">Risk Score:</span>
|
|
433
|
+
<span class="result-value" style="font-weight: bold; color: ${riskColor};">${analysis.risk_score || 0}/100</span>
|
|
434
|
+
</div>
|
|
435
|
+
|
|
436
|
+
<div class="result-item" style="background: #f0f8ff; border-left: 4px solid ${riskColor};">
|
|
437
|
+
<span class="result-label">Image Dimensions:</span>
|
|
438
|
+
<span class="result-value" style="font-weight: bold;">${imgInfo.width} × ${imgInfo.height} pixels</span>
|
|
439
|
+
</div>
|
|
440
|
+
|
|
441
|
+
<div class="result-item" style="background: #f0f8ff; border-left: 4px solid ${riskColor};">
|
|
442
|
+
<span class="result-label">Image Quality:</span>
|
|
443
|
+
<span class="result-value" style="font-weight: bold; ${analysis.image_quality_sufficient ? '' : 'color: #ff9800;'}">${analysis.image_quality || 'N/A'}${!analysis.image_quality_sufficient ? ' ⚠️' : ' ✓'}</span>
|
|
444
|
+
</div>
|
|
445
|
+
|
|
446
|
+
<div class="result-item" style="background: #fffbf0; padding: 15px; border-left: 4px solid ${riskColor};">
|
|
447
|
+
<span class="result-label" style="display: block; margin-bottom: 8px;">Clinical Summary:</span>
|
|
448
|
+
<span class="result-value" style="display: block; line-height: 1.6; color: #333;">${analysis.lesion_summary || 'No summary available'}</span>
|
|
449
|
+
</div>
|
|
450
|
+
|
|
451
|
+
<h4 style="color: #667eea; margin: 20px 0 15px 0;">🖼️ Image Information</h4>
|
|
452
|
+
|
|
438
453
|
<div class="result-item">
|
|
439
454
|
<span class="result-label">Width:</span>
|
|
440
455
|
<span class="result-value">${imgInfo.width} pixels</span>
|
|
@@ -482,12 +497,12 @@
|
|
|
482
497
|
|
|
483
498
|
try {
|
|
484
499
|
showStatus('Checking system status...', 'processing');
|
|
485
|
-
const response = await fetch(`${apiUrl}/
|
|
500
|
+
const response = await fetch(`${apiUrl}/status`);
|
|
486
501
|
const data = await response.json();
|
|
487
502
|
const status = data.result;
|
|
488
503
|
|
|
489
504
|
showStatus(`✓ System Online | Service: ${status.service} | Version: ${status.version}`, 'success');
|
|
490
|
-
showStatus(`Total
|
|
505
|
+
showStatus(`Total: ${status.total_requests} | Pending: ${status.pending_requests} | Completed: ${status.completed_requests || 0} | Uptime: ${Math.round(status.uptime_seconds)}s`, 'info');
|
|
491
506
|
|
|
492
507
|
} catch (error) {
|
|
493
508
|
showStatus(`✗ Cannot connect to API: ${error.message}`, 'error');
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
{ratio1-3.4.113 → ratio1-3.4.114}/ratio1/default/instance/chain_dist_custom_job_01_plugin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ratio1-3.4.113 → ratio1-3.4.114}/ratio1/default/instance/telegram_conversational_bot_01_plugin.py
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/logger_mixins/general_serialization_mixin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ratio1-3.4.113 → ratio1-3.4.114}/ratio1/logging/logger_mixins/pickle_serialization_mixin.py
RENAMED
|
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
|
|
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
|
{ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py
RENAMED
|
File without changes
|
{ratio1-3.4.113 → ratio1-3.4.114}/tutorials/ex07_custom_code_on_multiple_remotes__example_2.py
RENAMED
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ratio1-3.4.113 → ratio1-3.4.114}/xperimental/scripts/monitoring/multithreaded_network_sniffer.py
RENAMED
|
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
|
{ratio1-3.4.113 → ratio1-3.4.114}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py
RENAMED
|
File without changes
|
{ratio1-3.4.113 → ratio1-3.4.114}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|