module A2KM
Copyright Min RK, License: BSD 3-clause
Constants
- VERSION
Public Class Methods
get_kernel(name)
click to toggle source
# File lib/a2km/api.rb, line 30 def A2KM.get_kernel(name) "Get a kernel by name. Die with message if not found." if not kernels.has_key? name STDERR.puts "No such kernel: #{name}" STDERR.puts "Found kernels: #{kernels.keys.sort.join(' ')}" exit(-1) end kernels[name] end
get_kernel_json(name)
click to toggle source
# File lib/a2km/api.rb, line 46 def A2KM.get_kernel_json(name) "Return kernel.json contents for a given kernelspec" File.open(kernel_json_path(name)) do |f| return JSON.parse f.read end end
kernel_dirs()
click to toggle source
# File lib/a2km/api.rb, line 19 def A2KM.kernel_dirs paths = JSON.parse `jupyter --paths --json` paths['data'].map do |p| p + '/' + 'kernels' end end
kernel_json_path(name)
click to toggle source
# File lib/a2km/api.rb, line 40 def A2KM.kernel_json_path(name) "Return path to a kernel's kernel.json" kernel = get_kernel(name) File.join(kernel['resource_dir'], 'kernel.json') end
kernels()
click to toggle source
# File lib/a2km/api.rb, line 11 def A2KM.kernels if @kernels.nil? js = JSON.parse `jupyter kernelspec list --json` @kernels = js['kernelspecs'] end @kernels end
make_env_kernel(kernel_name, env_name, kind: 'conda', user: true)
click to toggle source
# File lib/a2km/env.rb, line 80 def self.make_env_kernel(kernel_name, env_name, kind: 'conda', user: true) v = ENV_UTILS.ipykernel_version(env_name, kind: kind) puts "Found ipykernel-#{v}" if user user_arg = '--user' else user_arg = '' end ENV_UTILS.in_env(env_name, "python -m ipykernel.kernelspec --name #{kernel_name} #{user_arg}", kind: kind) exe = ENV_UTILS.make_kernel_exe(kernel_name, env_name, kind: kind) spec = A2KM.get_kernel_json(kernel_name) spec['argv'] = [exe, '-f', '{connection_file}'] spec['display_name'] = "#{spec['display_name']} (#{kind}:#{env_name})" A2KM.save_kernel_json(kernel_name, spec) end
new()
click to toggle source
# File lib/a2km/api.rb, line 7 def initialize @kernels = nil end
run()
click to toggle source
Start the a2km entrypoint
# File lib/a2km/command.rb, line 13 def A2KM.run CLI.new.run end
save_kernel_json(name, data)
click to toggle source
# File lib/a2km/api.rb, line 53 def A2KM.save_kernel_json(name, data) "save new kernel JSON" File.open(kernel_json_path(name), 'w') do |f| f.write JSON.pretty_generate(data) end end
user_kernel_dir()
click to toggle source
# File lib/a2km/api.rb, line 26 def A2KM.user_kernel_dir kernel_dirs.first end