numru 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9a715fb989185e9d112bf586b1ac0475ea773982
4
- data.tar.gz: 2b570def06cc8697a4c066835dc6c637367f4133
3
+ metadata.gz: 8aa49fdc1a2913c89900e9490e95f91d4a019fdb
4
+ data.tar.gz: 7dea6e54ac80ec81c637157b43dbf7d0d87204d7
5
5
  SHA512:
6
- metadata.gz: 8c84e8f6663e79ace46ab6bd866c3fdfeb0b232c793041656d73a68a0f17f36832d0c8fa9cfc64ca25c069c878179c643a0af2529ad1b222e9e1dfc0a959c2eb
7
- data.tar.gz: f2357e77771aafc6574e0d1818533223c5ffea97491d337f40342e599736bcc6d86fbb052fbd3597b01f4007381e756072c19e91a65e433b4563b91b33d7fa5c
6
+ metadata.gz: b5f9b2e5d9c0ef85a8d748e3c53daecc0913ff84a9569cf4b874e33e058e3c7619ee2cb139cacff028f7041bd3768d3359ba9f161d644421f9b7a1e06c36876a
7
+ data.tar.gz: 9511612994ef71a501cf2728f818c0f8689e8c9d09d18ee4f6ae4c54e9a8dfe06a6eda795d0141a247d6538ba3dac382e82d4e4c81f2b29e252e54f716a3fbfb
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- numru (0.1.3)
4
+ numru (0.1.4)
5
5
  rubypython
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -24,7 +24,34 @@ Or install it yourself as:
24
24
 
25
25
  ## Usage
26
26
 
27
- TODO: Write usage instructions here
27
+ 1. Whatever works in NumPy works here. If there's something that doesn't work let me know in the issues.
28
+ ```rb
29
+ require 'numru'
30
+ nr = NumRu
31
+
32
+ > x = nr.array 0..10
33
+ => array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
34
+
35
+ > x = nr.arange(27).reshape 3, 3, 3
36
+ => array([[[ 0, 1, 2],
37
+ [ 3, 4, 5],
38
+ [ 6, 7, 8]],
39
+
40
+ [[ 9, 10, 11],
41
+ [12, 13, 14],
42
+ [15, 16, 17]],
43
+
44
+ [[18, 19, 20],
45
+ [21, 22, 23],
46
+ [24, 25, 26]]])
47
+
48
+ ```
49
+ Keyword arguments are not supported. For that use hash.
50
+ ```rb
51
+ > x = nr.array [1, 2, 3], dtype: :complex
52
+ => array([1.+0.j, 2.+0.j, 3.+0.j])
53
+
54
+ ```
28
55
 
29
56
  ## Development
30
57
 
data/lib/numru/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Numru
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
data/lib/numru.rb CHANGED
@@ -7,13 +7,13 @@ RubyPython.start
7
7
  class NumRu
8
8
  @@np = RubyPython.import 'numpy'
9
9
  @@blt = RubyPython::PyMainClass.send(:new)
10
-
10
+
11
11
  attr_accessor :np_obj
12
-
12
+
13
13
  def initialize np_obj
14
14
  @np_obj = np_obj
15
15
  end
16
-
16
+
17
17
  def self.return_or_wrap obj
18
18
  obj.rubify
19
19
  rescue
@@ -38,7 +38,7 @@ class NumRu
38
38
  obj = @np_obj.__send__('__getitem__', args)
39
39
  NumRu.return_or_wrap obj
40
40
  end
41
-
41
+
42
42
  def []=(*args)
43
43
  args.map! do |i|
44
44
  case i
@@ -57,23 +57,30 @@ class NumRu
57
57
  obj = @np_obj.__send__('__setitem__', args[0..-2], args[-1])
58
58
  NumRu.return_or_wrap obj
59
59
  end
60
-
61
- def self.extract_np_obj obj
62
- obj.respond_to?(:class) && obj.class == NumRu ? obj.np_obj : obj
60
+
61
+ def self.preprocess_arg obj
62
+ case obj
63
+ when NumRu
64
+ obj.np_obj
65
+ when Range
66
+ @@blt.range(obj.begin, obj.end+1)
67
+ else
68
+ obj
69
+ end
63
70
  end
64
-
71
+
65
72
  def ==(arg)
66
73
  @np_obj.__send__('__eq__', NumRu.extract_np_obj(arg))
67
74
  end
68
-
75
+
69
76
  def < arg
70
77
  @np_obj.__send__('__lt__', NumRu.extract_np_obj(arg))
71
78
  end
72
-
79
+
73
80
  def > arg
74
81
  @np_obj.__send__('__gt__', NumRu.extract_np_obj(arg))
75
82
  end
76
-
83
+
77
84
  def self.arg_to_s arg
78
85
  case arg
79
86
  when Hash
@@ -83,24 +90,24 @@ class NumRu
83
90
  end
84
91
  arg.to_s
85
92
  end
86
-
93
+
87
94
  def method_missing(m, *args)
88
- args.map! { |i| NumRu.extract_np_obj i }
95
+ args.map! { |i| NumRu.preprocess_arg i }
89
96
  obj = @np_obj.__send__ "#{m}!", *args
90
97
  NumRu.return_or_wrap obj
91
- end
92
-
98
+ end
99
+
93
100
  def self.method_missing(m, *args)
94
- args.map! { |i| NumRu.extract_np_obj i }
101
+ args.map! { |i| NumRu.preprocess_arg i }
95
102
  obj = @@np.__send__ "#{m}!", *args
96
103
  return_or_wrap obj
97
104
  end
98
-
105
+
99
106
  def to_s
100
107
  @np_obj.__str__
101
108
  end
102
-
109
+
103
110
  def inspect
104
111
  @np_obj.__repr__
105
112
  end
106
- end
113
+ end
data/numru.gemspec CHANGED
@@ -27,6 +27,6 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency "rake", "~> 10.0"
28
28
  spec.add_development_dependency "rspec", "~> 3.0"
29
29
  spec.add_development_dependency 'pry', '~> 0.11'
30
-
31
- spec.add_dependency 'rubypython'
30
+
31
+ spec.add_dependency 'lokeshh_rubypython'
32
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: numru
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - lokeshh
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.11'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rubypython
70
+ name: lokeshh_rubypython
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="