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.
Files changed (72) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ubuntu.yml +62 -0
  3. data/CHANGES +64 -0
  4. data/Gemfile +3 -1
  5. data/LICENSE +1 -1
  6. data/README.md +120 -92
  7. data/Rakefile +36 -10
  8. data/ci/Dockerfile.base.erb +41 -0
  9. data/ci/Dockerfile.main.erb +7 -0
  10. data/ci/requirements.txt +1 -0
  11. data/docker/setup.sh +15 -0
  12. data/docker/test.sh +7 -0
  13. data/iruby.gemspec +13 -18
  14. data/lib/iruby.rb +13 -6
  15. data/lib/iruby/backend.rb +38 -9
  16. data/lib/iruby/command.rb +68 -12
  17. data/lib/iruby/display.rb +81 -41
  18. data/lib/iruby/event_manager.rb +40 -0
  19. data/lib/iruby/formatter.rb +3 -3
  20. data/lib/iruby/input.rb +6 -6
  21. data/lib/iruby/input/README.ipynb +55 -3
  22. data/lib/iruby/input/README.md +299 -0
  23. data/lib/iruby/input/autoload.rb +3 -2
  24. data/lib/iruby/input/builder.rb +4 -4
  25. data/lib/iruby/input/button.rb +2 -2
  26. data/lib/iruby/input/cancel.rb +1 -1
  27. data/lib/iruby/input/checkbox.rb +22 -4
  28. data/lib/iruby/input/date.rb +17 -6
  29. data/lib/iruby/input/field.rb +5 -4
  30. data/lib/iruby/input/file.rb +3 -3
  31. data/lib/iruby/input/form.rb +6 -6
  32. data/lib/iruby/input/label.rb +9 -3
  33. data/lib/iruby/input/multiple.rb +76 -0
  34. data/lib/iruby/input/popup.rb +5 -2
  35. data/lib/iruby/input/radio.rb +18 -6
  36. data/lib/iruby/input/select.rb +26 -12
  37. data/lib/iruby/input/textarea.rb +2 -1
  38. data/lib/iruby/input/widget.rb +2 -2
  39. data/lib/iruby/jupyter.rb +77 -0
  40. data/lib/iruby/kernel.rb +171 -31
  41. data/lib/iruby/ostream.rb +29 -8
  42. data/lib/iruby/session.rb +116 -0
  43. data/lib/iruby/session/{rbczmq.rb → cztop.rb} +21 -19
  44. data/lib/iruby/session/ffi_rzmq.rb +1 -1
  45. data/lib/iruby/session_adapter.rb +72 -0
  46. data/lib/iruby/session_adapter/cztop_adapter.rb +45 -0
  47. data/lib/iruby/session_adapter/ffirzmq_adapter.rb +55 -0
  48. data/lib/iruby/session_adapter/pyzmq_adapter.rb +77 -0
  49. data/lib/iruby/session_adapter/test_adapter.rb +49 -0
  50. data/lib/iruby/utils.rb +13 -2
  51. data/lib/iruby/version.rb +1 -1
  52. data/run-test.sh +12 -0
  53. data/tasks/ci.rake +65 -0
  54. data/test/helper.rb +133 -0
  55. data/test/integration_test.rb +22 -11
  56. data/test/iruby/backend_test.rb +37 -0
  57. data/test/iruby/command_test.rb +207 -0
  58. data/test/iruby/event_manager_test.rb +92 -0
  59. data/test/iruby/jupyter_test.rb +27 -0
  60. data/test/iruby/kernel_test.rb +153 -0
  61. data/test/iruby/mime_test.rb +43 -0
  62. data/test/iruby/multi_logger_test.rb +1 -2
  63. data/test/iruby/session_adapter/cztop_adapter_test.rb +20 -0
  64. data/test/iruby/session_adapter/ffirzmq_adapter_test.rb +20 -0
  65. data/test/iruby/session_adapter/session_adapter_test_base.rb +27 -0
  66. data/test/iruby/session_adapter_test.rb +91 -0
  67. data/test/iruby/session_test.rb +48 -0
  68. data/test/run-test.rb +19 -0
  69. metadata +107 -50
  70. data/.travis.yml +0 -16
  71. data/CONTRIBUTORS +0 -19
  72. 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.2.9
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: 2016-05-03 00:00:00.000000000 Z
12
+ date: 2021-05-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: rake
15
+ name: data_uri
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '10.4'
21
- type: :development
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: '10.4'
27
+ version: '0.1'
28
28
  - !ruby/object:Gem::Dependency
29
- name: minitest
29
+ name: ffi-rzmq
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - "~>"
32
+ - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: '5.6'
35
- type: :development
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: '5.6'
41
+ version: '0'
42
42
  - !ruby/object:Gem::Dependency
43
- name: bond
43
+ name: mime-types
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - "~>"
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
- version: '0.5'
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: '0.5'
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: mimemagic
71
+ name: pycall
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - "~>"
74
+ - - ">="
75
75
  - !ruby/object:Gem::Version
76
- version: '0.3'
77
- type: :runtime
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: '0.3'
83
+ version: 1.2.1
84
84
  - !ruby/object:Gem::Dependency
85
- name: data_uri
85
+ name: rake
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - "~>"
88
+ - - ">="
89
89
  - !ruby/object:Gem::Version
90
- version: '0.1'
91
- type: :runtime
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.1'
98
- description: A Ruby kernel for Jupyter/IPython frontends (e.g. notebook). Try it at
99
- try.jupyter.org.
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/session/rbczmq.rb
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/test_helper.rb
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.1.0
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
- rubyforge_project:
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/IPython
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/test_helper.rb
194
- has_rdoc:
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>
data/test/test_helper.rb DELETED
@@ -1,5 +0,0 @@
1
- require 'iruby'
2
- require 'minitest/autorun'
3
-
4
- class IRubyTest < Minitest::Test
5
- end