red-data-tools/pycall.rb

Calling Python functions from the Ruby language

해결하는 문제

PyCall을 사용하면 Ruby 개발자가 Ruby 애플리케이션 내에서 직접 Python 코드를 호출하고 Python 라이브러리를 사용할 수 있습니다. Python 모듈을 가져오고 마치 네이티브 Ruby 코드인 것처럼 함수를 실행할 수 있게 함으로써 두 언어 간의 간극을 메워줍니다.

작동 방식

이 라이브러리는 Python 객체와 함수를 래핑하여 숫자, 문자열, 배열, 해시와 같은 일반적인 데이터 유형에 대해 자동 유형 변환을 제공합니다. Python 구문을 Ruby 친화적인 대응 구문으로 매핑합니다. 예를 들어, Python의 classname(x)는 Ruby에서 classname.new(x)가 되며, 키워드 인자는 Ruby의 콜론 구문(예: x: 1)을 사용하여 처리됩니다. 또한 장시간 실행되는 Python 작업을 수행할 때 Ruby 전역 VM 잠금(GVL)을 관리하는 도구도 제공합니다.

대상 사용자

이 도구는 Ruby 환경을 떠나지 않고도 데이터 과학이나 과학 계산 도구와 같은 풍부한 Python 라이브러리 생태계를 활용해야 하는 Ruby 개발자를 위한 것입니다.

주요 특징

  • Ruby 객체와 Python 객체 간의 자동 유형 변환.
  • Python 생성자, 호출 가능한 객체 및 키워드 인자를 Ruby 구문으로 원활하게 매핑.
  • 장시간 실행되는 Python 함수 호출 중에 Ruby GVL을 해제하여 성능을 향상시키는 기능 지원.
  • Ruby 2.4+ 및 Python 3.7+와 호환.
  • Python 공유 라이브러리가 자동으로 감지되지 않을 때 위치를 찾는 데 도움이 되는 디버깅 도구 포함.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트