Sha256: 06b94f322edcd91026f49b0cffaa8cdf9d1b724a95a6c8db71fe4c921abc7d22

Contents?: true

Size: 786 Bytes

Versions: 1

Compression:

Stored size: 786 Bytes

Contents

module PyCall
  private_class_method def self.__initialize_pycall__
    initialized = (0 != PyCall::LibPython.Py_IsInitialized())
    return if initialized

    PyCall::LibPython.Py_InitializeEx(0)

    FFI::MemoryPointer.new(:pointer, 1) do |argv|
      argv.write_pointer(FFI::MemoryPointer.from_string(""))
      PyCall::LibPython.PySys_SetArgvEx(0, argv, 0)
    end

    @builtin = LibPython.PyImport_ImportModule(PYTHON_VERSION < '3.0.0' ? '__builtin__' : 'builtins').to_ruby

    begin
      import_module('stackless')
      @has_stackless_extension = true
    rescue PyError
      @has_stackless_extension = false
    end

    __initialize_ruby_wrapper__
  end

  class << self
    attr_reader :builtin
    attr_reader :has_stackless_extension
  end

  __initialize_pycall__
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pycall-0.1.0.alpha.20170711 lib/pycall/init.rb