// Copyright (c) Jupyter-Contrib Team. | |
// Distributed under the terms of the Modified BSD License. | |
// Authors: @benjaminabel | |
// Based on: code_prettify extension | |
define(['./kernel_exec_on_cell'], function(kernel_exec_on_cell) { | |
'use strict'; | |
var mod_name = 'isort'; | |
// gives default settings | |
var cfg = { | |
add_toolbar_button: true, | |
register_hotkey: false, | |
show_alerts_for_errors: false, | |
button_icon: 'fa-sort', | |
button_label: 'Sort imports with isort', | |
kbd_shortcut_text: 'Sort imports in' // ' current cell(s)' | |
}; | |
cfg.kernel_config_map = { // map of parameters for supported kernels | |
"python": { | |
"library": [ | |
"import isort", | |
"import json", | |
"def _isort_refactor_cell(src):", | |
" try:", | |
" tree = isort.SortImports(file_contents=src).output", | |
" except Exception:", | |
" return src ", | |
" else:", | |
" return str(tree)[:-1]", | |
].join('\n'), | |
"prefix": "print(json.dumps(_isort_refactor_cell(u", | |
"postfix": ")))" | |
} | |
}; | |
var converter = new kernel_exec_on_cell.define_plugin(mod_name, cfg); | |
converter.load_ipython_extension = converter.initialize_plugin; | |
return converter; | |
}); | |