ratio1 3.4.34__tar.gz → 3.4.36__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.34 → ratio1-3.4.36}/PKG-INFO +1 -1
- {ratio1-3.4.34 → ratio1-3.4.36}/pyproject.toml +1 -1
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/_ver.py +1 -1
- ratio1-3.4.34/ratio1/certs/51.15.142.167.cert → ratio1-3.4.36/ratio1/certs/51.15.142.167.crt +1 -1
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/cli/cli_commands.py +4 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/cli/nodes.py +5 -0
- ratio1-3.4.36/xperimental/lp/lp_checker.py +206 -0
- ratio1-3.4.34/xperimental/lp/lp_checker.py +0 -88
- {ratio1-3.4.34 → ratio1-3.4.36}/.devcontainer/Dockerfile +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/.devcontainer/devcontainer.json +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/.gitattributes +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/.github/workflows/python-publish.yml +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/.gitignore +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/.vscode/launch.json +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/LICENSE +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/README.md +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/TODOs.md +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/r1ctl.MD +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/base/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/base/distributed_custom_code_presets.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/base/generic_session.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/base/instance.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/base/payload/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/base/payload/payload.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/base/pipeline.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/base/plugin_template.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/base/responses.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/base/transaction.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/base/webapp_pipeline.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/base_decentra_object.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/bc/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/bc/base.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/bc/chain.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/bc/ec.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/bc/evm.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/certs/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/certs/a0d9818f.ala.eu-central-1.emqxsl.com.crt +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/certs/r9092118.ala.eu-central-1.emqxsl.com.crt +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/certs/s624dbd4.ala.us-east-1.emqxsl.com.crt +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/cli/README.md +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/cli/cli.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/cli/oracles.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/cli/package_update.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/code_cheker/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/code_cheker/base.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/code_cheker/checker.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/comm/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/comm/amqp_wrapper.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/comm/base_comm_wrapper.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/comm/mqtt_wrapper.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/const/README.md +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/const/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/const/apps.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/const/base.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/const/comms.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/const/environment.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/const/evm_net.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/const/formatter.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/const/heartbeat.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/const/misc.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/const/payload.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/const/plugins/deeploy_const.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/default/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/default/instance/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/default/instance/chain_dist_custom_job_01_plugin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/default/instance/custom_webapi_01_plugin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/default/instance/generic_http_01_plugin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/default/instance/net_mon_01_plugin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/default/instance/telegram_basic_bot_01_plugin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/default/instance/telegram_conversational_bot_01_plugin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/default/instance/view_scene_01_plugin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/default/session/mqtt_session.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/io_formatter/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/io_formatter/base/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/io_formatter/base/base_formatter.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/io_formatter/default/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/io_formatter/default/a_dummy.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/io_formatter/default/aixp1.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/io_formatter/default/default.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/io_formatter/io_formatter_manager.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/ipfs/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/ipfs/ifps_keygen +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/ipfs/ipfs_setup/ipfs.service +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/ipfs/ipfs_setup/launch_service.sh +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/ipfs/ipfs_setup/restart.sh +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/ipfs/ipfs_setup/run.sh +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/ipfs/ipfs_setup/setup.sh +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/ipfs/ipfs_setup/show.sh +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/ipfs/ipfs_setup/write_key.sh +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/ipfs/r1fs.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/base_logger.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/logger_mixins/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/logger_mixins/class_instance_mixin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/logger_mixins/computer_vision_mixin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/logger_mixins/datetime_mixin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/logger_mixins/download_mixin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/logger_mixins/general_serialization_mixin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/logger_mixins/json_serialization_mixin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/logger_mixins/machine_mixin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/logger_mixins/pickle_serialization_mixin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/logger_mixins/process_mixin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/logger_mixins/resource_size_mixin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/logger_mixins/timers_mixin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/logger_mixins/upload_mixin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/logger_mixins/utils_mixin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/small_logger.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/tzlocal/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/tzlocal/unix.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/tzlocal/utils.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/tzlocal/win32.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/logging/tzlocal/windows_tz.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/plugins_manager_mixin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/utils/__init__.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/utils/comm_utils.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/utils/config.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/utils/dotenv.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/ratio1/utils/oracle_sync/oracle_tester.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/requirements.txt +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/template.env +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/.example_env +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/8. custom_code_fastapi_assets/index.html +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/9. code_sandbox_from_scratch_assets/index.html +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/_example_pk_sdk.pem +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/eth2025/deploy_home_safety.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/eth2025/deploy_maintenance_monitoring.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex01_part1_connect.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex01_part2_filter.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex01_part3_adv_filter.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex02_part1_deploy_webapi.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex02_part2_deploy_plugin.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex02_part3_deploy_r1fs_test.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex03_custom_code_on_one_remote__example_1.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex04_custom_code_on_one_remote__example_2.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex05_custom_code_on_one_remote__example_3.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex07_custom_code_on_multiple_remotes__example_2.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex08_custom_webapi.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex09_code_sandbox_from_scratch.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex10_telegram_echo_bot.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex11_telegram_blackjack_bot.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex12_telegram_smart_bot.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex13_launch_repo_based_webapp.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex14_wallets.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex15_telegram_rogue_style_game.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex16_launch_repo_based_http_server.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex17_launch_repo_based_balanced_webapp.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex18_deploy_container_webapi.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex19_deeploy_container_example.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex20_deeploy_telegram_bot_example.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/ex21_telegram_community_bot.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/tutorials/video_presentation/1. hello_world.ipynb +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/winrun.bat +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/README.md +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/_checks/_show_config_check.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/_checks/cstore_check.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/_checks/dauth_check.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/_checks/keys_check.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/_checks/node_info_check.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/_checks/ora_check.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/_checks/ora_intervals.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/_checks/ora_sign_check.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/_checks/owner_check.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/_checks/payload_check.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/_checks/session_check.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/_checks/w3_auth_check.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/_checks/w3_nodes_licenses.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/_checks/w3_oracles_check.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/_checks/whitelist_check.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/_checks/workload_check.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/dates/check_date.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/debug/close_pipeline.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/decentralized/chain_dist_example.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/decentralized/chain_dist_example_initiator.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/decentralized/chain_dist_example_worker.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/deeploy/checker.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/deeploy/checker2.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/deeploy/create_request.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/enc_dec/enc_dec_test.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/eth/balance.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/eth/eth_sign.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/eth/info.md +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/eth/send.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/eth/send_many.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/eth/sign.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/log.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/logger/run.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/multi-enc-dec/multi_test1.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/multi-enc-dec/multi_test2.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/pipelines/start.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/pipelines/stop.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/sign/simple_payload_checker.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/sign/test_sign1.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/sign/test_sign2.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/test.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/tokens/get_check.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/utils/get_documentation.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/various/attach_example.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/various/ex1.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/various/hello.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/various/remote_exec.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/various/save_images.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/wl/wl_add.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/xperimental/xarchive/_tutorials/8. chatbot.py +0 -0
- {ratio1-3.4.34 → ratio1-3.4.36}/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.36
|
|
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.34/ratio1/certs/51.15.142.167.cert → ratio1-3.4.36/ratio1/certs/51.15.142.167.crt
RENAMED
|
@@ -17,4 +17,4 @@ APeA2A8F9zriemjFjQYaveQKW4tzXtGY68ibSMgH/qceVrfgZ8/G1vE7Qy/RtYRE
|
|
|
17
17
|
z54RLb2dZIIUQCcuRCbzX0KHB4PMbz42gSPrWA3V1anVuxXeq9NYOU87dLK7y4fp
|
|
18
18
|
lcdFmDaI1mQ3UgRRXKrv14yjvRYxSAcao6mfsx1zVVKlvcavqawNxcQp+bQD1Nxw
|
|
19
19
|
scArD5w=
|
|
20
|
-
-----END CERTIFICATE-----
|
|
20
|
+
-----END CERTIFICATE-----
|
|
@@ -42,6 +42,10 @@ CLI_COMMANDS = {
|
|
|
42
42
|
"supervisors": {
|
|
43
43
|
"func": get_supervisors, # DONE
|
|
44
44
|
"description": "Get the list of available supervisor oracles",
|
|
45
|
+
"params": {
|
|
46
|
+
"--eth" : "Use a specific node (flag)",
|
|
47
|
+
"--wide" : "Display all available information (flag)",
|
|
48
|
+
}
|
|
45
49
|
},
|
|
46
50
|
"eth" : {
|
|
47
51
|
"func": get_eth_addr,
|
|
@@ -115,10 +115,15 @@ def get_supervisors(args):
|
|
|
115
115
|
online_only=True,
|
|
116
116
|
supervisors_only=True,
|
|
117
117
|
return_session=True,
|
|
118
|
+
eth=args.eth,
|
|
119
|
+
all_info=args.wide,
|
|
118
120
|
)
|
|
119
121
|
df, supervisor, super_alias, nr_supers, elapsed, sess = res
|
|
120
122
|
FILTERED = ['Oracle', 'State']
|
|
121
123
|
df = df[[c for c in df.columns if c not in FILTERED]]
|
|
124
|
+
|
|
125
|
+
import pandas as pd
|
|
126
|
+
pd.set_option('display.float_format', '{:.4f}'.format)
|
|
122
127
|
|
|
123
128
|
if supervisor == "ERROR":
|
|
124
129
|
log_with_color(f"No supervisors or no comms available in {elapsed:.1f}s. Please check your settings.", color='r')
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Utility script for inspecting the R1/USDC liquidity pool on Base.
|
|
3
|
+
|
|
4
|
+
The script prints the current LP holders and the amount of R1 and USDC each
|
|
5
|
+
holder would receive if they removed their liquidity. Additionally it computes
|
|
6
|
+
the "lower bound price" of the R1 token which is defined as the price implied by
|
|
7
|
+
the token balances inside the pair contract (reserves plus any unclaimed
|
|
8
|
+
trading fees).
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from web3 import Web3
|
|
12
|
+
from web3.exceptions import Web3RPCError
|
|
13
|
+
from typing import Iterable, Set
|
|
14
|
+
import logging
|
|
15
|
+
import math
|
|
16
|
+
|
|
17
|
+
# Connect to Base mainnet RPC (chain ID 8453)
|
|
18
|
+
base_rpc = "https://base-mainnet.public.blastapi.io"
|
|
19
|
+
w3 = Web3(Web3.HTTPProvider(base_rpc))
|
|
20
|
+
|
|
21
|
+
logging.basicConfig(level=logging.INFO, format="%(levelname)s:%(message)s")
|
|
22
|
+
logger = logging.getLogger(__name__)
|
|
23
|
+
|
|
24
|
+
# Uniswap V2 R1/USDC pair contract address
|
|
25
|
+
pair_address = Web3.to_checksum_address("0x0feC06fd2C2bd4066c7302c08950aBaA2E4AB1d3")
|
|
26
|
+
|
|
27
|
+
# Minimal ABI for Uniswap V2 pair (token0, token1, getReserves, totalSupply, balanceOf, and Transfer event)
|
|
28
|
+
pair_abi = [
|
|
29
|
+
{
|
|
30
|
+
"constant": True,
|
|
31
|
+
"inputs": [],
|
|
32
|
+
"name": "token0",
|
|
33
|
+
"outputs": [{"name": "", "type": "address"}],
|
|
34
|
+
"type": "function",
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"constant": True,
|
|
38
|
+
"inputs": [],
|
|
39
|
+
"name": "token1",
|
|
40
|
+
"outputs": [{"name": "", "type": "address"}],
|
|
41
|
+
"type": "function",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"constant": True,
|
|
45
|
+
"inputs": [],
|
|
46
|
+
"name": "getReserves",
|
|
47
|
+
"outputs": [
|
|
48
|
+
{"name": "reserve0", "type": "uint112"},
|
|
49
|
+
{"name": "reserve1", "type": "uint112"},
|
|
50
|
+
{"name": "blockTimestampLast", "type": "uint32"},
|
|
51
|
+
],
|
|
52
|
+
"type": "function",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"constant": True,
|
|
56
|
+
"inputs": [],
|
|
57
|
+
"name": "totalSupply",
|
|
58
|
+
"outputs": [{"name": "", "type": "uint"}],
|
|
59
|
+
"type": "function",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"constant": True,
|
|
63
|
+
"inputs": [{"name": "owner", "type": "address"}],
|
|
64
|
+
"name": "balanceOf",
|
|
65
|
+
"outputs": [{"name": "", "type": "uint"}],
|
|
66
|
+
"type": "function",
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"anonymous": False,
|
|
70
|
+
"inputs": [
|
|
71
|
+
{"indexed": True, "name": "from", "type": "address"},
|
|
72
|
+
{"indexed": True, "name": "to", "type": "address"},
|
|
73
|
+
{"indexed": False, "name": "value", "type": "uint256"},
|
|
74
|
+
],
|
|
75
|
+
"name": "Transfer",
|
|
76
|
+
"type": "event",
|
|
77
|
+
},
|
|
78
|
+
]
|
|
79
|
+
pair_contract = w3.eth.contract(address=pair_address, abi=pair_abi)
|
|
80
|
+
|
|
81
|
+
erc20_abi = [
|
|
82
|
+
{
|
|
83
|
+
"constant": True,
|
|
84
|
+
"inputs": [],
|
|
85
|
+
"name": "symbol",
|
|
86
|
+
"outputs": [{"name": "", "type": "string"}],
|
|
87
|
+
"type": "function",
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"constant": True,
|
|
91
|
+
"inputs": [],
|
|
92
|
+
"name": "decimals",
|
|
93
|
+
"outputs": [{"name": "", "type": "uint8"}],
|
|
94
|
+
"type": "function",
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"constant": True,
|
|
98
|
+
"inputs": [{"name": "owner", "type": "address"}],
|
|
99
|
+
"name": "balanceOf",
|
|
100
|
+
"outputs": [{"name": "", "type": "uint256"}],
|
|
101
|
+
"type": "function",
|
|
102
|
+
},
|
|
103
|
+
]
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
def fetch_transfer_addresses(start_block: int, end_block: int, step: int = 10_000) -> Set[str]:
|
|
107
|
+
"""Return all addresses that ever transferred LP tokens."""
|
|
108
|
+
|
|
109
|
+
transfer_topic = Web3.keccak(text="Transfer(address,address,uint256)").hex()
|
|
110
|
+
addresses: Set[str] = set()
|
|
111
|
+
for from_block in range(start_block, end_block + 1, step):
|
|
112
|
+
to_block = min(from_block + step - 1, end_block)
|
|
113
|
+
logger.debug("Fetching logs %s-%s", from_block, to_block)
|
|
114
|
+
try:
|
|
115
|
+
logs = w3.eth.get_logs(
|
|
116
|
+
{
|
|
117
|
+
"fromBlock": from_block,
|
|
118
|
+
"toBlock": to_block,
|
|
119
|
+
"address": pair_address,
|
|
120
|
+
"topics": [transfer_topic],
|
|
121
|
+
}
|
|
122
|
+
)
|
|
123
|
+
except Exception as exc:
|
|
124
|
+
logger.warning("log request failed %s-%s: %s", from_block, to_block, exc)
|
|
125
|
+
break
|
|
126
|
+
for log in logs:
|
|
127
|
+
from_addr = "0x" + log["topics"][1].hex()[-40:]
|
|
128
|
+
to_addr = "0x" + log["topics"][2].hex()[-40:]
|
|
129
|
+
if from_addr != "0x0000000000000000000000000000000000000000":
|
|
130
|
+
addresses.add(Web3.to_checksum_address(from_addr))
|
|
131
|
+
if to_addr != "0x0000000000000000000000000000000000000000":
|
|
132
|
+
addresses.add(Web3.to_checksum_address(to_addr))
|
|
133
|
+
return addresses
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
def compute_lower_bound_price(
|
|
137
|
+
r1_balance: int, usdc_balance: int, r1_dec: int, usdc_dec: int
|
|
138
|
+
) -> float:
|
|
139
|
+
"""Return the minimal R1/USDC price implied by token balances."""
|
|
140
|
+
|
|
141
|
+
r1_amt = r1_balance / (10**r1_dec)
|
|
142
|
+
usdc_amt = usdc_balance / (10**usdc_dec)
|
|
143
|
+
logger.debug("R1 balance=%s (%s decimals)", r1_amt, r1_dec)
|
|
144
|
+
logger.debug("USDC balance=%s (%s decimals)", usdc_amt, usdc_dec)
|
|
145
|
+
if r1_amt == 0:
|
|
146
|
+
return 0.0
|
|
147
|
+
return usdc_amt / r1_amt
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
def main() -> None:
|
|
151
|
+
logger.info("Fetching pair metadata")
|
|
152
|
+
latest_block = w3.eth.block_number
|
|
153
|
+
|
|
154
|
+
token0 = pair_contract.functions.token0().call()
|
|
155
|
+
token1 = pair_contract.functions.token1().call()
|
|
156
|
+
reserve0, reserve1, _ = pair_contract.functions.getReserves().call()
|
|
157
|
+
total_supply = pair_contract.functions.totalSupply().call()
|
|
158
|
+
|
|
159
|
+
t0_contract = w3.eth.contract(address=token0, abi=erc20_abi)
|
|
160
|
+
t1_contract = w3.eth.contract(address=token1, abi=erc20_abi)
|
|
161
|
+
sym0 = t0_contract.functions.symbol().call().upper()
|
|
162
|
+
sym1 = t1_contract.functions.symbol().call().upper()
|
|
163
|
+
|
|
164
|
+
if sym0 == "R1":
|
|
165
|
+
r1_reserve, usdc_reserve = reserve0, reserve1
|
|
166
|
+
r1_contract, usdc_contract = t0_contract, t1_contract
|
|
167
|
+
elif sym1 == "R1":
|
|
168
|
+
r1_reserve, usdc_reserve = reserve1, reserve0
|
|
169
|
+
r1_contract, usdc_contract = t1_contract, t0_contract
|
|
170
|
+
else:
|
|
171
|
+
r1_reserve, usdc_reserve = reserve0, reserve1
|
|
172
|
+
r1_contract, usdc_contract = t0_contract, t1_contract
|
|
173
|
+
logger.info("Reserves: R1=%s, USDC=%s", r1_reserve, usdc_reserve)
|
|
174
|
+
|
|
175
|
+
r1_balance = r1_contract.functions.balanceOf(pair_address).call()
|
|
176
|
+
usdc_balance = usdc_contract.functions.balanceOf(pair_address).call()
|
|
177
|
+
|
|
178
|
+
lower_bound = compute_lower_bound_price(
|
|
179
|
+
r1_balance,
|
|
180
|
+
usdc_balance,
|
|
181
|
+
r1_contract.functions.decimals().call(),
|
|
182
|
+
usdc_contract.functions.decimals().call(),
|
|
183
|
+
)
|
|
184
|
+
logger.info("Lower bound price = %s", lower_bound)
|
|
185
|
+
|
|
186
|
+
addresses = fetch_transfer_addresses(0, latest_block)
|
|
187
|
+
logger.info("Found %d transfer addresses", len(addresses))
|
|
188
|
+
holders = {}
|
|
189
|
+
for addr in addresses:
|
|
190
|
+
bal = pair_contract.functions.balanceOf(addr).call()
|
|
191
|
+
if bal > 0 and w3.eth.get_code(addr) in (b"", b"0x", b"0x0", "0x"):
|
|
192
|
+
holders[addr] = bal
|
|
193
|
+
|
|
194
|
+
logger.info("EOA LP holders: %d", len(holders))
|
|
195
|
+
for holder, bal in holders.items():
|
|
196
|
+
share = bal / total_supply
|
|
197
|
+
r1_amt = int(share * r1_reserve)
|
|
198
|
+
usdc_amt = int(share * usdc_reserve)
|
|
199
|
+
print(f"{holder}: R1={r1_amt}, USDC={usdc_amt}")
|
|
200
|
+
|
|
201
|
+
logger.info("Lower bound price (R1/USDC) including fees: %s", lower_bound)
|
|
202
|
+
print(f"Lower bound price (R1/USDC) including fees: {lower_bound}")
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
if __name__ == "__main__":
|
|
206
|
+
main()
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
from web3 import Web3
|
|
3
|
-
|
|
4
|
-
# Connect to Base mainnet RPC (chain ID 8453)
|
|
5
|
-
base_rpc = "https://base-mainnet.public.blastapi.io"
|
|
6
|
-
w3 = Web3(Web3.HTTPProvider(base_rpc))
|
|
7
|
-
|
|
8
|
-
# Uniswap V2 R1/USDC pair contract address
|
|
9
|
-
pair_address = Web3.to_checksum_address("0x0feC06fd2C2bd4066c7302c08950aBaA2E4AB1d3")
|
|
10
|
-
|
|
11
|
-
# Minimal ABI for Uniswap V2 pair (token0, token1, getReserves, totalSupply, balanceOf, and Transfer event)
|
|
12
|
-
pair_abi = [
|
|
13
|
-
{"constant": True, "inputs": [], "name": "token0", "outputs": [{"name": "", "type": "address"}], "type": "function"},
|
|
14
|
-
{"constant": True, "inputs": [], "name": "token1", "outputs": [{"name": "", "type": "address"}], "type": "function"},
|
|
15
|
-
{"constant": True, "inputs": [], "name": "getReserves", "outputs": [
|
|
16
|
-
{"name": "reserve0", "type": "uint112"},
|
|
17
|
-
{"name": "reserve1", "type": "uint112"},
|
|
18
|
-
{"name": "blockTimestampLast", "type": "uint32"}], "type": "function"},
|
|
19
|
-
{"constant": True, "inputs": [], "name": "totalSupply", "outputs": [{"name": "", "type": "uint"}], "type": "function"},
|
|
20
|
-
{"constant": True, "inputs": [{"name": "owner", "type": "address"}], "name": "balanceOf", "outputs": [{"name": "", "type": "uint"}], "type": "function"},
|
|
21
|
-
{"anonymous": False, "inputs": [
|
|
22
|
-
{"indexed": True, "name": "from", "type": "address"},
|
|
23
|
-
{"indexed": True, "name": "to", "type": "address"},
|
|
24
|
-
{"indexed": False, "name": "value", "type": "uint256"}],
|
|
25
|
-
"name": "Transfer", "type": "event"}
|
|
26
|
-
]
|
|
27
|
-
pair_contract = w3.eth.contract(address=pair_address, abi=pair_abi)
|
|
28
|
-
|
|
29
|
-
# Fetch token addresses and pool data
|
|
30
|
-
token0 = pair_contract.functions.token0().call() # Address of R1 or USDC
|
|
31
|
-
token1 = pair_contract.functions.token1().call() # Address of the other token
|
|
32
|
-
reserve0, reserve1, _ = pair_contract.functions.getReserves().call()
|
|
33
|
-
total_supply = pair_contract.functions.totalSupply().call()
|
|
34
|
-
|
|
35
|
-
# Determine which reserve is R1 vs USDC by checking token symbols (optional)
|
|
36
|
-
erc20_abi = [{"constant": True, "inputs": [], "name": "symbol", "outputs": [{"name": "", "type": "string"}], "type": "function"}]
|
|
37
|
-
sym0 = w3.eth.contract(address=token0, abi=erc20_abi).functions.symbol().call().upper()
|
|
38
|
-
sym1 = w3.eth.contract(address=token1, abi=erc20_abi).functions.symbol().call().upper()
|
|
39
|
-
if sym0 == 'R1':
|
|
40
|
-
r1_reserve, usdc_reserve = reserve0, reserve1
|
|
41
|
-
elif sym1 == 'R1':
|
|
42
|
-
r1_reserve, usdc_reserve = reserve1, reserve0
|
|
43
|
-
else:
|
|
44
|
-
# Fallback assumption if symbol check fails
|
|
45
|
-
r1_reserve, usdc_reserve = reserve0, reserve1
|
|
46
|
-
|
|
47
|
-
# Prepare Transfer event signature hash for filtering logs
|
|
48
|
-
transfer_topic = Web3.keccak(text="Transfer(address,address,uint256)").hex()
|
|
49
|
-
|
|
50
|
-
# Fetch all Transfer events from block 0 to latest for this pair contract
|
|
51
|
-
logs = w3.eth.get_logs({
|
|
52
|
-
"fromBlock": 0,
|
|
53
|
-
"toBlock": "latest",
|
|
54
|
-
"address": pair_address,
|
|
55
|
-
"topics": [transfer_topic]
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
# Collect all addresses that appear in Transfer logs
|
|
59
|
-
all_addresses = set()
|
|
60
|
-
for log in logs:
|
|
61
|
-
# Topics[1] = from, Topics[2] = to (indexed fields)
|
|
62
|
-
from_addr = "0x" + log['topics'][1].hex()[-40:]
|
|
63
|
-
to_addr = "0x" + log['topics'][2].hex()[-40:]
|
|
64
|
-
# Convert to checksum addresses
|
|
65
|
-
from_addr = Web3.to_checksum_address(from_addr)
|
|
66
|
-
to_addr = Web3.to_checksum_address(to_addr)
|
|
67
|
-
# Add addresses if not zero address
|
|
68
|
-
if from_addr != "0x0000000000000000000000000000000000000000":
|
|
69
|
-
all_addresses.add(from_addr)
|
|
70
|
-
if to_addr != "0x0000000000000000000000000000000000000000":
|
|
71
|
-
all_addresses.add(to_addr)
|
|
72
|
-
|
|
73
|
-
# Filter for EOAs with positive LP balance
|
|
74
|
-
holders = {}
|
|
75
|
-
for addr in all_addresses:
|
|
76
|
-
balance = pair_contract.functions.balanceOf(addr).call()
|
|
77
|
-
if balance > 0:
|
|
78
|
-
code = w3.eth.get_code(addr)
|
|
79
|
-
# EOA check: get_code returns empty (0x) for EOAs:contentReference[oaicite:12]{index=12}
|
|
80
|
-
if code == b'' or code == '0x' or code == b'0x' or code == b'0x0':
|
|
81
|
-
holders[addr] = balance
|
|
82
|
-
|
|
83
|
-
# Compute and print each holder's share of R1 and USDC
|
|
84
|
-
for holder, bal in holders.items():
|
|
85
|
-
share = bal / total_supply
|
|
86
|
-
r1_amount = int(share * r1_reserve)
|
|
87
|
-
usdc_amount = int(share * usdc_reserve)
|
|
88
|
-
print(f"{holder}: R1={r1_amount}, USDC={usdc_amount}")
|
|
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.34 → ratio1-3.4.36}/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
|
|
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.34 → ratio1-3.4.36}/tutorials/ex06_custom_code_on_multiple_remotes__example_1.py
RENAMED
|
File without changes
|
{ratio1-3.4.34 → ratio1-3.4.36}/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
|
{ratio1-3.4.34 → ratio1-3.4.36}/xperimental/xarchive/_tutorials/3. simple_real_time_custom_code.py
RENAMED
|
File without changes
|
{ratio1-3.4.34 → ratio1-3.4.36}/xperimental/xarchive/_tutorials/4. real_time_custom_code_2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|