module PyBind::Import
Public Instance Methods
pyfrom(mod_name, import: nil)
click to toggle source
# File lib/pybind/import.rb, line 14 def pyfrom(mod_name, import: nil) raise ArgumentError, "missing identifiers to be imported" unless import mod = PyBind.import(mod_name) raise PyError.fetch unless mod case import when Hash import.each do |attr, as| val = mod.get_attribute(attr) define_singleton_method(as) { val } end when Array import.each do |attr| val = mod.get_attribute(attr) define_singleton_method(attr) { val } end when Symbol, String val = mod.get_attribute(import) define_singleton_method(import) { val } end end
pyimport(mod_name, as: mod_name)
click to toggle source
# File lib/pybind/import.rb, line 3 def pyimport(mod_name, as: mod_name) if as.to_s.include?('.') raise ArgumentError, "#{as.inspect} is not a valid module variable name, use pyimport #{mod_name.inspect}, as: <name>" end mod = PyBind.import(mod_name) raise PyError.fetch unless mod define_singleton_method(as) { mod } end