numru 0.1.4 → 0.1.5
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +28 -1
- data/lib/numru/version.rb +1 -1
- data/lib/numru.rb +26 -19
- data/numru.gemspec +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8aa49fdc1a2913c89900e9490e95f91d4a019fdb
|
4
|
+
data.tar.gz: 7dea6e54ac80ec81c637157b43dbf7d0d87204d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5f9b2e5d9c0ef85a8d748e3c53daecc0913ff84a9569cf4b874e33e058e3c7619ee2cb139cacff028f7041bd3768d3359ba9f161d644421f9b7a1e06c36876a
|
7
|
+
data.tar.gz: 9511612994ef71a501cf2728f818c0f8689e8c9d09d18ee4f6ae4c54e9a8dfe06a6eda795d0141a247d6538ba3dac382e82d4e4c81f2b29e252e54f716a3fbfb
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -24,7 +24,34 @@ Or install it yourself as:
|
|
24
24
|
|
25
25
|
## Usage
|
26
26
|
|
27
|
-
|
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
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.
|
62
|
-
|
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.
|
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.
|
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 '
|
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
|
+
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:
|
70
|
+
name: lokeshh_rubypython
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|