matplotlib 0.1.0.alpha.20170226 → 0.1.0.alpha.20170302

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/matplotlib.rb CHANGED
@@ -5,8 +5,8 @@ module Matplotlib
5
5
  @matplotlib = PyCall.import_module('matplotlib')
6
6
  PyCall.dir(@matplotlib).each do |name|
7
7
  obj = PyCall.getattr(@matplotlib, name)
8
- next unless obj.kind_of? PyCall::PyObject
9
- next unless obj.kind_of? PyCall::LibPython.PyFunction_Type
8
+ next unless obj.kind_of?(PyCall::PyObject) || obj.kind_of?(PyCall::PyObjectWrapper)
9
+ next unless PyCall.callable?(obj)
10
10
 
11
11
  define_singleton_method(name) do |*args, **kwargs|
12
12
  obj.(*args, **kwargs)
@@ -14,6 +14,10 @@ module Matplotlib
14
14
  end
15
15
 
16
16
  class << self
17
+ def __pyobj__
18
+ @matplotlib
19
+ end
20
+
17
21
  def method_missing(name, *args, **kwargs)
18
22
  return super unless PyCall.hasattr?(@matplotlib, name)
19
23
  PyCall.getattr(@matplotlib, name)
@@ -28,8 +32,7 @@ module Matplotlib
28
32
 
29
33
  class Error < StandardError
30
34
  end
31
-
32
- class Figure
33
- include PyCall::PyObjectWrapper
34
- end
35
35
  end
36
+
37
+ require 'matplotlib/axes'
38
+ require 'matplotlib/figure'
@@ -0,0 +1,28 @@
1
+ module Matplotlib
2
+ class Axes3D
3
+ include PyCall::PyObjectWrapper
4
+
5
+ @__pyobj__ = PyCall.import_module('matplotlib.axes').Axes
6
+
7
+ PyCall.dir(@__pyobj__).each do |name|
8
+ obj = PyCall.getattr(@__pyobj__, name)
9
+ next unless obj.kind_of?(PyCall::PyObject) || obj.kind_of?(PyCall::PyObjectWrapper)
10
+ next unless PyCall.callable?(obj)
11
+
12
+ define_method(name) do |*args, **kwargs|
13
+ PyCall.getattr(__pyobj__, name).(*args, **kwargs)
14
+ end
15
+ end
16
+
17
+ class << self
18
+ attr_reader :__pyobj__
19
+
20
+ def method_missing(name, *args, **kwargs)
21
+ return super unless PyCall.hasattr?(__pyobj__, name)
22
+ PyCall.getattr(__pyobj__, name)
23
+ end
24
+ end
25
+
26
+ PyCall::Conversions.python_type_mapping(__pyobj__, self)
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ module Matplotlib
2
+ class Axes3D
3
+ include PyCall::PyObjectWrapper
4
+
5
+ @__pyobj__ = PyCall.import_module('mpl_toolkits.mplot3d').Axes3D
6
+
7
+ PyCall.dir(@__pyobj__).each do |name|
8
+ obj = PyCall.getattr(@__pyobj__, name)
9
+ next unless obj.kind_of?(PyCall::PyObject) || obj.kind_of?(PyCall::PyObjectWrapper)
10
+ next unless PyCall.callable?(obj)
11
+
12
+ define_method(name) do |*args, **kwargs|
13
+ PyCall.getattr(__pyobj__, name).(*args, **kwargs)
14
+ end
15
+ end
16
+
17
+ class << self
18
+ attr_reader :__pyobj__
19
+
20
+ def method_missing(name, *args, **kwargs)
21
+ return super unless PyCall.hasattr?(__pyobj__, name)
22
+ PyCall.getattr(__pyobj__, name)
23
+ end
24
+ end
25
+
26
+ PyCall::Conversions.python_type_mapping(__pyobj__, self)
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ module Matplotlib
2
+ class Figure
3
+ include PyCall::PyObjectWrapper
4
+
5
+ @__pyobj__ = PyCall.import_module('matplotlib.figure').Figure
6
+
7
+ PyCall.dir(@__pyobj__).each do |name|
8
+ obj = PyCall.getattr(@__pyobj__, name)
9
+ next unless obj.kind_of?(PyCall::PyObject) || obj.kind_of?(PyCall::PyObjectWrapper)
10
+ next unless PyCall.callable?(obj)
11
+
12
+ define_method(name) do |*args, **kwargs|
13
+ PyCall.getattr(__pyobj__, name).(*args, **kwargs)
14
+ end
15
+ end
16
+
17
+ class << self
18
+ attr_reader :__pyobj__
19
+
20
+ def method_missing(name, *args, **kwargs)
21
+ return super unless PyCall.hasattr?(__pyobj__, name)
22
+ PyCall.getattr(__pyobj__, name)
23
+ end
24
+ end
25
+
26
+ PyCall::Conversions.python_type_mapping(__pyobj__, self)
27
+ end
28
+ end
@@ -32,8 +32,6 @@ module Matplotlib
32
32
  # NOTE: This method is translated from `IPython.core.activate_matplotlib` function.
33
33
  def activate(gui=:inline)
34
34
  require 'matplotlib/pyplot'
35
- figure_class = Pyplot.__pyobj__.Figure
36
- PyCall::Conversions.python_type_mapping(figure_class, Figure)
37
35
  end
38
36
  end
39
37
  end
@@ -5,8 +5,8 @@ module Matplotlib
5
5
  @pyplot = PyCall.import_module('matplotlib.pyplot')
6
6
  PyCall.dir(@pyplot).each do |name|
7
7
  obj = PyCall.getattr(@pyplot, name)
8
- next unless obj.kind_of? PyCall::PyObject
9
- next unless obj.kind_of? PyCall::LibPython.PyFunction_Type
8
+ next unless obj.kind_of?(PyCall::PyObject) || obj.kind_of?(PyCall::PyObjectWrapper)
9
+ next unless PyCall.callable?(obj)
10
10
 
11
11
  define_singleton_method(name) do |*args, **kwargs|
12
12
  obj.(*args, **kwargs)
@@ -1,3 +1,3 @@
1
1
  module Matplotlib
2
- VERSION = "0.1.0.alpha.20170226"
2
+ VERSION = "0.1.0.alpha.20170302"
3
3
  end
data/matplotlib.gemspec CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ["lib"]
23
23
 
24
- spec.add_dependency "pycall", ">= 0.1.0.alpha.20170226"
24
+ spec.add_dependency "pycall", ">= 0.1.0.alpha.20170302"
25
25
 
26
26
  spec.add_development_dependency "bundler", "~> 1.13"
27
27
  spec.add_development_dependency "rake", "~> 10.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: matplotlib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.alpha.20170226
4
+ version: 0.1.0.alpha.20170302
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenta Murata
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-02-27 00:00:00.000000000 Z
11
+ date: 2017-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pycall
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.0.alpha.20170226
19
+ version: 0.1.0.alpha.20170302
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.0.alpha.20170226
26
+ version: 0.1.0.alpha.20170302
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -96,9 +96,16 @@ files:
96
96
  - Rakefile
97
97
  - bin/console
98
98
  - bin/setup
99
+ - examples/classifier_comparison.ipynb
100
+ - examples/forest_importances.ipynb
99
101
  - examples/iruby_integration.ipynb
102
+ - examples/lorenz_attractor.ipynb
100
103
  - examples/noisy_sin.rb
104
+ - examples/polar_axes.ipynb
101
105
  - lib/matplotlib.rb
106
+ - lib/matplotlib/axes.rb
107
+ - lib/matplotlib/axes_3d.rb
108
+ - lib/matplotlib/figure.rb
102
109
  - lib/matplotlib/iruby.rb
103
110
  - lib/matplotlib/pyplot.rb
104
111
  - lib/matplotlib/version.rb