summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Silvester2016-01-16 16:05:42 -0600
committerSteven Silvester2016-01-16 16:05:42 -0600
commit6283b89c4cd612ec18b42e9fef0415a9a48e8510 (patch)
tree7962fae4691e3d40d71ff7db9cb13a55a4c285c4
parent8c0e613a93eb464430a51d64c41c5c5e0e3de147 (diff)
downloadscilab_kernel-6283b89c4cd612ec18b42e9fef0415a9a48e8510.tar.gz
scilab_kernel-6283b89c4cd612ec18b42e9fef0415a9a48e8510.tar.bz2
scilab_kernel-6283b89c4cd612ec18b42e9fef0415a9a48e8510.zip
Add flit files
-rw-r--r--flit.ini13
-rw-r--r--scilab_kernel/__init__.py3
-rw-r--r--scilab_kernel/__main__.py6
-rw-r--r--scilab_kernel/install.py51
4 files changed, 73 insertions, 0 deletions
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)