From 6283b89c4cd612ec18b42e9fef0415a9a48e8510 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Sat, 16 Jan 2016 16:05:42 -0600 Subject: Add flit files --- flit.ini | 13 ++++++++++++ scilab_kernel/__init__.py | 3 +++ scilab_kernel/__main__.py | 6 ++++++ scilab_kernel/install.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 73 insertions(+) create mode 100644 flit.ini create mode 100644 scilab_kernel/__init__.py create mode 100644 scilab_kernel/__main__.py create mode 100644 scilab_kernel/install.py diff --git a/flit.ini b/flit.ini new file mode 100644 index 0000000..56c3bfc --- /dev/null +++ b/flit.ini @@ -0,0 +1,13 @@ +[metadata] +module = scilab_kernel +author = Steven Silvester +author-email = steven.silvester@ieee.org +home-page = https://github.com/blink1073/scilab_kernel +requires = metakernel (>=0.10.5) + scilab2py (>=0.6.0) +description-file = README.rst +classifiers = Framework :: IPython + License :: OSI Approved :: BSD License + Programming Language :: Python :: 2 + Programming Language :: Python :: 3 + Topic :: System :: Shells diff --git a/scilab_kernel/__init__.py b/scilab_kernel/__init__.py new file mode 100644 index 0000000..7ea94e2 --- /dev/null +++ b/scilab_kernel/__init__.py @@ -0,0 +1,3 @@ +"""A Scilab kernel for Jupyter""" + +__version__ = '0.6.0' diff --git a/scilab_kernel/__main__.py b/scilab_kernel/__main__.py new file mode 100644 index 0000000..7ffe67e --- /dev/null +++ b/scilab_kernel/__main__.py @@ -0,0 +1,6 @@ +try: + from ipykernel.kernelapp import IPKernelApp +except ImportError: + from IPython.kernel.zmq.kernelapp import IPKernelApp +from .kernel import ScilabKernel +IPKernelApp.launch_instance(kernel_class=ScilabKernel) diff --git a/scilab_kernel/install.py b/scilab_kernel/install.py new file mode 100644 index 0000000..c57896b --- /dev/null +++ b/scilab_kernel/install.py @@ -0,0 +1,51 @@ +import json +import os +import sys + +try: + from jupyter_client.kernelspec import install_kernel_spec +except ImportError: + from IPython.kernel.kernelspec import install_kernel_spec +from IPython.utils.tempdir import TemporaryDirectory + + +kernel_json = { + "argv": [sys.executable, + "-m", "scilab_kernel", + "-f", "{connection_file}"], + "display_name": "Scilab", + "language": "scilab", + "codemirror_mode": "octave", + "name": "scilab", +} + + +def install_my_kernel_spec(user=True): + user = '--user' in sys.argv or not _is_root() + with TemporaryDirectory() as td: + os.chmod(td, 0o755) # Starts off as 700, not user readable + with open(os.path.join(td, 'kernel.json'), 'w') as f: + json.dump(kernel_json, f, sort_keys=True) + kernel_name = kernel_json['name'] + try: + install_kernel_spec(td, kernel_name, user=user, + replace=True) + except: + install_kernel_spec(td, kernel_name, user=not user, + replace=True) + + +def _is_root(): + try: + return os.geteuid() == 0 + except AttributeError: + return False # assume not an admin on non-Unix platforms + + +def main(argv=[]): + user = '--user' in argv or not _is_root() + install_my_kernel_spec(user=user) + + +if __name__ == '__main__': + main(argv=sys.argv) -- cgit