{"id":31236175,"url":"https://github.com/mahenzon/ri-sdk-python-wrapper","last_synced_at":"2025-09-22T15:03:00.909Z","repository":{"id":226163710,"uuid":"767931917","full_name":"mahenzon/ri-sdk-python-wrapper","owner":"mahenzon","description":"RoboIntellect SDK Python Wrapper (autogenerate)","archived":false,"fork":false,"pushed_at":"2024-07-19T20:04:59.000Z","size":495,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-14T06:45:06.923Z","etag":null,"topics":["codegen","codegeneration","education","robot","robotics","robotics-programming"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mahenzon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-06T06:48:58.000Z","updated_at":"2024-07-19T20:01:46.000Z","dependencies_parsed_at":"2024-03-23T13:44:10.076Z","dependency_job_id":"1d3838ac-4edc-49f1-8bf9-e16f193aa725","html_url":"https://github.com/mahenzon/ri-sdk-python-wrapper","commit_stats":null,"previous_names":["mahenzon/ri-sdk-python-wrapper"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/mahenzon/ri-sdk-python-wrapper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahenzon%2Fri-sdk-python-wrapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahenzon%2Fri-sdk-python-wrapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahenzon%2Fri-sdk-python-wrapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahenzon%2Fri-sdk-python-wrapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mahenzon","download_url":"https://codeload.github.com/mahenzon/ri-sdk-python-wrapper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahenzon%2Fri-sdk-python-wrapper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276422172,"owners_count":25639633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-22T02:00:08.972Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codegen","codegeneration","education","robot","robotics","robotics-programming"],"created_at":"2025-09-22T15:01:47.332Z","updated_at":"2025-09-22T15:03:00.891Z","avatar_url":"https://github.com/mahenzon.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RI SDK wrapper (autogenerated)\n\nParse RI SDK docs (https://docs.robointellect.ru/) and autogen Python wrapper.\n\n\n[![PyPI - Version](https://img.shields.io/pypi/v/ri-sdk?style=for-the-badge\u0026logo=pypi)](https://pypi.org/project/ri-sdk/)\n[![PyPI - Status](https://img.shields.io/pypi/status/ri-sdk?style=for-the-badge)](https://pypi.org/project/ri-sdk/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ri-sdk?style=for-the-badge\u0026logo=python)](https://pypi.org/project/ri-sdk/)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json\u0026style=for-the-badge)](https://docs.astral.sh/ruff/)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000?style=for-the-badge)](https://black.readthedocs.io/)\n[![mypy](https://img.shields.io/badge/mypy-checked-1F5082?style=for-the-badge)](https://mypy.readthedocs.io/)\n[![codecov](https://img.shields.io/codecov/c/github/mahenzon/ri-sdk-python-wrapper?token=K736Q6JF26\u0026style=for-the-badge\u0026logo=codecov)](https://codecov.io/gh/mahenzon/ri-sdk-python-wrapper)\n\n### TODO:\n\n- coverage for ri_sdk_codegen\n\n### Install\n\n```shell\npip install ri-sdk\n```\n\n### Run\n\n\n#### Other examples\n- GUI Control (PyQt / PySide) example: https://github.com/mahenzon/robohand-gui-control\n\n\n#### Minimal example\n\nFull example at [examples/robohand-example.py](https://github.com/mahenzon/ri-sdk-python-wrapper/blob/master/examples/robohand-example.py).\n\nAnother example with RoboHand class at [examples/robohand-class-example.py](https://github.com/mahenzon/ri-sdk-python-wrapper/blob/master/examples/robohand-class-example.py).\n\n```python\n\"\"\"\nСмотри полный пример в папке examples\n\"\"\"\nfrom ri_sdk import RoboIntellectSDK, contrib\n\nlib = contrib.get_lib()\nri_sdk = RoboIntellectSDK(\n    lib=lib,\n    setup_methods_args=True,\n)\nri_sdk.init_sdk(log_level=1)\n# pwm_descriptor = init_pwm(ri_sdk)\npwm_descriptor = 0\n# i2c_descriptor = init_i2c(ri_sdk, pwm_descriptor)\ni2c_descriptor = 0\n# led_descriptor = init_led(ri_sdk, pwm_descriptor)\nled_descriptor = 0\n\n# Устанавливаем фиолетовый цвет светодиода\nri_sdk.exec_rgb_led_single_pulse(\n    descriptor=led_descriptor,\n    r=255,\n    g=0,\n    b=255,\n    duration=0,\n    run_async=True,\n)\n\n# инициализируем сервоприводы\n# init_servos(ri_sdk, pwm_descriptor)\n\n# переводим сервоприводы в стартовое положение\n# servos_to_start_position(ri_sdk)\n\nservo_rotate_descriptor = 0\n# поворачиваем башню на угол 60 со скоростью 30\nri_sdk.exec_servo_drive_turn_with_relative_speed(\n    descriptor=servo_rotate_descriptor,\n    # угол 60º\n    angle=60,\n    # скорость в градусах в секунду\n    speed=30,\n)\n\n# готовимся к завершению, включаем красный свет\nri_sdk.exec_rgb_led_single_pulse(\n    descriptor=led_descriptor,\n    r=255,\n    g=0,\n    b=0,\n    duration=0,\n    run_async=True,\n)\n\n# Красиво завершаем работу через destruct\n# destruct(\n#     ri_sdk=ri_sdk,\n#     led_descriptor=led_descriptor,\n#     pwm_descriptor=pwm_descriptor,\n#     i2c_descriptor=i2c_descriptor,\n# )\nri_sdk.destroy_sdk(is_force=True)\n```\n\n### Notes\n\n#### Features to implement\n\n- TODO: handy angle control (like in adafruit-servokit)\n- TODO: code tests coverage\n\n\n## Codegen\n\n#### Install dependencies\n\n```shell\npoetry install\n```\n\n#### Full RI SDK codegen:\n\n```shell\nmain.py --update-links --parse-docs --remove-unknown-methods-cache --generate-sdk\n```\n\nEach stage can be used separately:\n\n- `--update-links`\n- `--parse-docs [--remove-unknown-methods-cache]`\n- `--generate-sdk`\n\nAdd `-v` flag for verbose output.\n\n\n## Testing\n\nRun tests\n\n```shell\nhatch run test:run\n```\n\nRun coverage\n\n```shell\nhatch run test:cov\n```\n\nRun coverage and export html report\n\n```shell\nhatch run test:cov-html\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahenzon%2Fri-sdk-python-wrapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmahenzon%2Fri-sdk-python-wrapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahenzon%2Fri-sdk-python-wrapper/lists"}