Skip to content

Commit

Permalink
get kernels from ipython kernelspec
Browse files Browse the repository at this point in the history
  • Loading branch information
slavaGanzin committed Dec 27, 2015
1 parent 8431e22 commit 530b027
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 71 deletions.
43 changes: 3 additions & 40 deletions lib/kernel-manager.coffee
@@ -1,58 +1,21 @@
fs = require 'fs'
path = require 'path'
_ = require 'lodash'

{jupyterPath} = require './paths'
child_process = require 'child_process'

Kernel = require './kernel'

module.exports = KernelManager =
kernelsDirOptions: jupyterPath('kernels')
runningKernels: {}
pythonInfo:
display_name: "Python"
language: "python"
availableKernels: null

getAvailableKernels: ->
if @availableKernels?
return @availableKernels
else
kernelLists = _.map @kernelsDirOptions, @getKernelsFromDirectory
kernels = []
kernels = kernels.concat.apply(kernels, kernelLists)
kernels = _.map kernels, (kernel) =>
kernel.language = @getTrueLanguage(kernel.language)
return kernel

pythonKernels = _.filter kernels, (kernel) ->
return kernel.language == 'python'
if pythonKernels.length == 0
kernels.push(@pythonInfo)
return kernels
out = child_process.spawnSync('ipython',['kernelspec','list', '--json']).stdout.toString()
_.pluck(JSON.parse(out).kernelspecs, 'spec')

getRunningKernels: ->
return _.clone(@runningKernels)

getKernelsFromDirectory: (directory) ->
try
kernelNames = fs.readdirSync directory
kernels = _.map kernelNames, (name) =>
kernelDirPath = path.join(directory, name)

if fs.statSync(kernelDirPath).isDirectory()
kernelFilePath = path.join(kernelDirPath, 'kernel.json')
info = JSON.parse fs.readFileSync(kernelFilePath)
info.language ?= info.display_name.toLowerCase()
return info
else
return null

kernels = _.filter(kernels)
catch error
kernels = []
return kernels

getTrueLanguage: (language) ->
languageMappings = @getLanguageMappings()
matchingLanguageKeys = _.filter languageMappings, (trueLanguage, languageKey) ->
Expand Down
31 changes: 0 additions & 31 deletions lib/paths.coffee

This file was deleted.

0 comments on commit 530b027

Please sign in to comment.