iruby 0.2.9 → 0.6.1
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 +5 -5
- data/.github/workflows/ubuntu.yml +62 -0
- data/CHANGES +64 -0
- data/Gemfile +3 -1
- data/LICENSE +1 -1
- data/README.md +120 -92
- data/Rakefile +36 -10
- data/ci/Dockerfile.base.erb +41 -0
- data/ci/Dockerfile.main.erb +7 -0
- data/ci/requirements.txt +1 -0
- data/docker/setup.sh +15 -0
- data/docker/test.sh +7 -0
- data/iruby.gemspec +13 -18
- data/lib/iruby.rb +13 -6
- data/lib/iruby/backend.rb +38 -9
- data/lib/iruby/command.rb +68 -12
- data/lib/iruby/display.rb +81 -41
- data/lib/iruby/event_manager.rb +40 -0
- data/lib/iruby/formatter.rb +3 -3
- data/lib/iruby/input.rb +6 -6
- data/lib/iruby/input/README.ipynb +55 -3
- data/lib/iruby/input/README.md +299 -0
- data/lib/iruby/input/autoload.rb +3 -2
- data/lib/iruby/input/builder.rb +4 -4
- data/lib/iruby/input/button.rb +2 -2
- data/lib/iruby/input/cancel.rb +1 -1
- data/lib/iruby/input/checkbox.rb +22 -4
- data/lib/iruby/input/date.rb +17 -6
- data/lib/iruby/input/field.rb +5 -4
- data/lib/iruby/input/file.rb +3 -3
- data/lib/iruby/input/form.rb +6 -6
- data/lib/iruby/input/label.rb +9 -3
- data/lib/iruby/input/multiple.rb +76 -0
- data/lib/iruby/input/popup.rb +5 -2
- data/lib/iruby/input/radio.rb +18 -6
- data/lib/iruby/input/select.rb +26 -12
- data/lib/iruby/input/textarea.rb +2 -1
- data/lib/iruby/input/widget.rb +2 -2
- data/lib/iruby/jupyter.rb +77 -0
- data/lib/iruby/kernel.rb +171 -31
- data/lib/iruby/ostream.rb +29 -8
- data/lib/iruby/session.rb +116 -0
- data/lib/iruby/session/{rbczmq.rb → cztop.rb} +21 -19
- data/lib/iruby/session/ffi_rzmq.rb +1 -1
- data/lib/iruby/session_adapter.rb +72 -0
- data/lib/iruby/session_adapter/cztop_adapter.rb +45 -0
- data/lib/iruby/session_adapter/ffirzmq_adapter.rb +55 -0
- data/lib/iruby/session_adapter/pyzmq_adapter.rb +77 -0
- data/lib/iruby/session_adapter/test_adapter.rb +49 -0
- data/lib/iruby/utils.rb +13 -2
- data/lib/iruby/version.rb +1 -1
- data/run-test.sh +12 -0
- data/tasks/ci.rake +65 -0
- data/test/helper.rb +133 -0
- data/test/integration_test.rb +22 -11
- data/test/iruby/backend_test.rb +37 -0
- data/test/iruby/command_test.rb +207 -0
- data/test/iruby/event_manager_test.rb +92 -0
- data/test/iruby/jupyter_test.rb +27 -0
- data/test/iruby/kernel_test.rb +153 -0
- data/test/iruby/mime_test.rb +43 -0
- data/test/iruby/multi_logger_test.rb +1 -2
- data/test/iruby/session_adapter/cztop_adapter_test.rb +20 -0
- data/test/iruby/session_adapter/ffirzmq_adapter_test.rb +20 -0
- data/test/iruby/session_adapter/session_adapter_test_base.rb +27 -0
- data/test/iruby/session_adapter_test.rb +91 -0
- data/test/iruby/session_test.rb +48 -0
- data/test/run-test.rb +19 -0
- metadata +107 -50
- data/.travis.yml +0 -16
- data/CONTRIBUTORS +0 -19
- data/test/test_helper.rb +0 -5
@@ -0,0 +1,48 @@
|
|
1
|
+
module IRubyTest
|
2
|
+
class SessionAdapterSelectionTest < TestBase
|
3
|
+
def setup
|
4
|
+
# https://jupyter-client.readthedocs.io/en/stable/kernels.html#connection-files
|
5
|
+
@session_config = {
|
6
|
+
"control_port" => 0,
|
7
|
+
"shell_port" => 0,
|
8
|
+
"transport" => "tcp",
|
9
|
+
"signature_scheme" => "hmac-sha256",
|
10
|
+
"stdin_port" => 0,
|
11
|
+
"hb_port" => 0,
|
12
|
+
"ip" => "127.0.0.1",
|
13
|
+
"iopub_port" => 0,
|
14
|
+
"key" => "a0436f6c-1916-498b-8eb9-e81ab9368e84"
|
15
|
+
}
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_new_with_session_adapter
|
19
|
+
adapter_name = ENV['IRUBY_TEST_SESSION_ADAPTER_NAME']
|
20
|
+
adapter_class = case adapter_name
|
21
|
+
when 'cztop'
|
22
|
+
IRuby::SessionAdapter::CztopAdapter
|
23
|
+
when 'ffi-rzmq'
|
24
|
+
IRuby::SessionAdapter::FfirzmqAdapter
|
25
|
+
when 'pyzmq'
|
26
|
+
omit("pyzmq adapter is disabled")
|
27
|
+
# IRuby::SessionAdapter::PyzmqAdapter
|
28
|
+
else
|
29
|
+
flunk "Unknown session adapter: #{adapter_name.inspect}"
|
30
|
+
end
|
31
|
+
|
32
|
+
session = IRuby::Session.new(@session_config, adapter_name)
|
33
|
+
assert_kind_of(adapter_class, session.adapter)
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_without_any_session_adapter
|
37
|
+
assert_rr do
|
38
|
+
stub(IRuby::SessionAdapter::CztopAdapter).available? { false }
|
39
|
+
stub(IRuby::SessionAdapter::FfirzmqAdapter).available? { false }
|
40
|
+
stub(IRuby::SessionAdapter::PyzmqAdapter).available? { false }
|
41
|
+
stub(IRuby::SessionAdapter::TestAdapter).available? { false }
|
42
|
+
assert_raises IRuby::SessionAdapterNotFound do
|
43
|
+
IRuby::Session.new(@session_config)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
data/test/run-test.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$VERBOSE = true
|
4
|
+
|
5
|
+
require "pathname"
|
6
|
+
|
7
|
+
base_dir = Pathname.new(__dir__).parent.expand_path
|
8
|
+
|
9
|
+
lib_dir = base_dir + "lib"
|
10
|
+
test_dir = base_dir + "test"
|
11
|
+
|
12
|
+
$LOAD_PATH.unshift(lib_dir.to_s)
|
13
|
+
|
14
|
+
require_relative "helper"
|
15
|
+
|
16
|
+
ENV["TEST_UNIT_MAX_DIFF_TARGET_STRING_SIZE"] ||= "10000"
|
17
|
+
ENV["IRUBY_TEST_SESSION_ADAPTER_NAME"] ||= "ffi-rzmq"
|
18
|
+
|
19
|
+
exit Test::Unit::AutoRunner.run(true, test_dir)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Mendler
|
@@ -9,50 +9,50 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-05-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: data_uri
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
21
|
-
type: :
|
20
|
+
version: '0.1'
|
21
|
+
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
27
|
+
version: '0.1'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
29
|
+
name: ffi-rzmq
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - "
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
35
|
-
type: :
|
34
|
+
version: '0'
|
35
|
+
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - "
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
41
|
+
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
43
|
+
name: mime-types
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - "
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version:
|
48
|
+
version: 3.3.1
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - "
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
55
|
+
version: 3.3.1
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: multi_json
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -68,35 +68,62 @@ dependencies:
|
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '1.11'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
71
|
+
name: pycall
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- - "
|
74
|
+
- - ">="
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
77
|
-
type: :
|
76
|
+
version: 1.2.1
|
77
|
+
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- - "
|
81
|
+
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
83
|
+
version: 1.2.1
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
|
-
name:
|
85
|
+
name: rake
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- - "
|
88
|
+
- - ">="
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: '0
|
91
|
-
type: :
|
90
|
+
version: '0'
|
91
|
+
type: :development
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- - "
|
95
|
+
- - ">="
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: '0
|
98
|
-
|
99
|
-
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: test-unit
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: test-unit-rr
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
description: A Ruby kernel for Jupyter environment. Try it at try.jupyter.org.
|
100
127
|
email:
|
101
128
|
- mail@daniel-mendler.de
|
102
129
|
executables:
|
@@ -104,15 +131,19 @@ executables:
|
|
104
131
|
extensions: []
|
105
132
|
extra_rdoc_files: []
|
106
133
|
files:
|
134
|
+
- ".github/workflows/ubuntu.yml"
|
107
135
|
- ".gitignore"
|
108
|
-
- ".travis.yml"
|
109
136
|
- CHANGES
|
110
|
-
- CONTRIBUTORS
|
111
137
|
- Gemfile
|
112
138
|
- LICENSE
|
113
139
|
- README.md
|
114
140
|
- Rakefile
|
115
141
|
- bin/iruby
|
142
|
+
- ci/Dockerfile.base.erb
|
143
|
+
- ci/Dockerfile.main.erb
|
144
|
+
- ci/requirements.txt
|
145
|
+
- docker/setup.sh
|
146
|
+
- docker/test.sh
|
116
147
|
- iruby.gemspec
|
117
148
|
- lib/iruby.rb
|
118
149
|
- lib/iruby/assets/kernel.css
|
@@ -123,9 +154,11 @@ files:
|
|
123
154
|
- lib/iruby/comm.rb
|
124
155
|
- lib/iruby/command.rb
|
125
156
|
- lib/iruby/display.rb
|
157
|
+
- lib/iruby/event_manager.rb
|
126
158
|
- lib/iruby/formatter.rb
|
127
159
|
- lib/iruby/input.rb
|
128
160
|
- lib/iruby/input/README.ipynb
|
161
|
+
- lib/iruby/input/README.md
|
129
162
|
- lib/iruby/input/autoload.rb
|
130
163
|
- lib/iruby/input/builder.rb
|
131
164
|
- lib/iruby/input/button.rb
|
@@ -136,38 +169,52 @@ files:
|
|
136
169
|
- lib/iruby/input/file.rb
|
137
170
|
- lib/iruby/input/form.rb
|
138
171
|
- lib/iruby/input/label.rb
|
172
|
+
- lib/iruby/input/multiple.rb
|
139
173
|
- lib/iruby/input/popup.rb
|
140
174
|
- lib/iruby/input/radio.rb
|
141
175
|
- lib/iruby/input/select.rb
|
142
176
|
- lib/iruby/input/textarea.rb
|
143
177
|
- lib/iruby/input/widget.rb
|
178
|
+
- lib/iruby/jupyter.rb
|
144
179
|
- lib/iruby/kernel.rb
|
145
180
|
- lib/iruby/logger.rb
|
146
181
|
- lib/iruby/ostream.rb
|
182
|
+
- lib/iruby/session.rb
|
183
|
+
- lib/iruby/session/cztop.rb
|
147
184
|
- lib/iruby/session/ffi_rzmq.rb
|
148
185
|
- lib/iruby/session/mixin.rb
|
149
|
-
- lib/iruby/
|
186
|
+
- lib/iruby/session_adapter.rb
|
187
|
+
- lib/iruby/session_adapter/cztop_adapter.rb
|
188
|
+
- lib/iruby/session_adapter/ffirzmq_adapter.rb
|
189
|
+
- lib/iruby/session_adapter/pyzmq_adapter.rb
|
190
|
+
- lib/iruby/session_adapter/test_adapter.rb
|
150
191
|
- lib/iruby/utils.rb
|
151
192
|
- lib/iruby/version.rb
|
152
193
|
- logo/logo-32x32.png
|
153
194
|
- logo/logo-64x64.png
|
154
195
|
- logo/ruby.svg
|
196
|
+
- run-test.sh
|
197
|
+
- tasks/ci.rake
|
198
|
+
- test/helper.rb
|
155
199
|
- test/integration_test.rb
|
200
|
+
- test/iruby/backend_test.rb
|
201
|
+
- test/iruby/command_test.rb
|
202
|
+
- test/iruby/event_manager_test.rb
|
203
|
+
- test/iruby/jupyter_test.rb
|
204
|
+
- test/iruby/kernel_test.rb
|
205
|
+
- test/iruby/mime_test.rb
|
156
206
|
- test/iruby/multi_logger_test.rb
|
157
|
-
- test/
|
207
|
+
- test/iruby/session_adapter/cztop_adapter_test.rb
|
208
|
+
- test/iruby/session_adapter/ffirzmq_adapter_test.rb
|
209
|
+
- test/iruby/session_adapter/session_adapter_test_base.rb
|
210
|
+
- test/iruby/session_adapter_test.rb
|
211
|
+
- test/iruby/session_test.rb
|
212
|
+
- test/run-test.rb
|
158
213
|
homepage: https://github.com/SciRuby/iruby
|
159
214
|
licenses:
|
160
215
|
- MIT
|
161
216
|
metadata: {}
|
162
|
-
post_install_message:
|
163
|
-
Consider installing the optional dependencies to get additional functionality:
|
164
|
-
* pry
|
165
|
-
* pry-doc
|
166
|
-
* awesome_print
|
167
|
-
* gnuplot
|
168
|
-
* rubyvis
|
169
|
-
* nyaplot
|
170
|
-
|
217
|
+
post_install_message:
|
171
218
|
rdoc_options: []
|
172
219
|
require_paths:
|
173
220
|
- lib
|
@@ -175,20 +222,30 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
175
222
|
requirements:
|
176
223
|
- - ">="
|
177
224
|
- !ruby/object:Gem::Version
|
178
|
-
version: 2.
|
225
|
+
version: 2.3.0
|
179
226
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
180
227
|
requirements:
|
181
228
|
- - ">="
|
182
229
|
- !ruby/object:Gem::Version
|
183
230
|
version: '0'
|
184
231
|
requirements: []
|
185
|
-
|
186
|
-
rubygems_version: 2.4.6
|
232
|
+
rubygems_version: 3.2.3
|
187
233
|
signing_key:
|
188
234
|
specification_version: 4
|
189
|
-
summary: Ruby Kernel for Jupyter
|
235
|
+
summary: Ruby Kernel for Jupyter
|
190
236
|
test_files:
|
237
|
+
- test/helper.rb
|
191
238
|
- test/integration_test.rb
|
239
|
+
- test/iruby/backend_test.rb
|
240
|
+
- test/iruby/command_test.rb
|
241
|
+
- test/iruby/event_manager_test.rb
|
242
|
+
- test/iruby/jupyter_test.rb
|
243
|
+
- test/iruby/kernel_test.rb
|
244
|
+
- test/iruby/mime_test.rb
|
192
245
|
- test/iruby/multi_logger_test.rb
|
193
|
-
- test/
|
194
|
-
|
246
|
+
- test/iruby/session_adapter/cztop_adapter_test.rb
|
247
|
+
- test/iruby/session_adapter/ffirzmq_adapter_test.rb
|
248
|
+
- test/iruby/session_adapter/session_adapter_test_base.rb
|
249
|
+
- test/iruby/session_adapter_test.rb
|
250
|
+
- test/iruby/session_test.rb
|
251
|
+
- test/run-test.rb
|
data/.travis.yml
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
|
3
|
-
rvm:
|
4
|
-
- ruby-head
|
5
|
-
- 2.2.2
|
6
|
-
- 2.1.6
|
7
|
-
- 2.0.0
|
8
|
-
|
9
|
-
before_install:
|
10
|
-
- "sudo apt-get install libzmq3-dev"
|
11
|
-
- "sudo pip install 'ipython[notebook]'"
|
12
|
-
|
13
|
-
script: bundle exec rake
|
14
|
-
|
15
|
-
notifications:
|
16
|
-
irc: "chat.freenode.net#sciruby"
|
data/CONTRIBUTORS
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
Carlos Agarie <carlos.agarie@gmail.com>
|
2
|
-
Damián Silvani <munshkr@gmail.com>
|
3
|
-
Dangyi Liu <LeedyPKU@gmail.com>
|
4
|
-
Daniel Mendler <mail@daniel-mendler.de>
|
5
|
-
Dimitris Zorbas <zorbash@skroutz.gr>
|
6
|
-
Domitry <domitry@gmail.com>
|
7
|
-
Jan Vlnas <git@jan.vlnas.cz>
|
8
|
-
John Woods <jwoods@vt.edu>
|
9
|
-
Josh Adams <josh@isotope11.com>
|
10
|
-
Julia Evans <julia@jvns.ca>
|
11
|
-
martin sarsale <martin@properati.com>
|
12
|
-
Matthias Bussonnier <bussonniermatthias@gmail.com>
|
13
|
-
Michael Hauser-Raspe <michael.hauser-raspe@cantab.net>
|
14
|
-
MinRK <benjaminrk@gmail.com>
|
15
|
-
Naoki Nishida <domitry@gmail.com>
|
16
|
-
Robby Clements <rclements@isotope11.com>
|
17
|
-
Spacewander <spacewanderlzx@gmail.com>
|
18
|
-
Takahiro Satoh <zalt50cc@gmail.com>
|
19
|
-
Robert Haines <robert.haines@manchester.ac.uk>
|