Sha256: ecc573ba2d9d24408f38b3be38f572255bfa666bd4f462bcd122d56f0856644c

Contents?: true

Size: 769 Bytes

Versions: 1

Compression:

Stored size: 769 Bytes

Contents

module Matplotlib
  class Axes3D
    include PyCall::PyObjectWrapper

    @__pyobj__ = PyCall.import_module('mpl_toolkits.mplot3d').Axes3D

    PyCall.dir(@__pyobj__).each do |name|
      obj = PyCall.getattr(@__pyobj__, name)
      next unless obj.kind_of?(PyCall::PyObject) || obj.kind_of?(PyCall::PyObjectWrapper)
      next unless PyCall.callable?(obj)

      define_method(name) do |*args, **kwargs|
        PyCall.getattr(__pyobj__, name).(*args, **kwargs)
      end
    end

    class << self
      attr_reader :__pyobj__

      def method_missing(name, *args, **kwargs)
        return super unless PyCall.hasattr?(__pyobj__, name)
        PyCall.getattr(__pyobj__, name)
      end
    end

    PyCall::Conversions.python_type_mapping(__pyobj__, self)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
matplotlib-0.1.0.alpha.20170302 lib/matplotlib/axes_3d.rb