summaryrefslogtreecommitdiff
path: root/octave_kernel.py
diff options
context:
space:
mode:
authorSteven Silvester2014-08-02 09:52:35 -0500
committerSteven Silvester2014-08-02 09:52:35 -0500
commit38526801f91112730acec64b96057364660a0be1 (patch)
tree5ba13cf723717cfe861c8992669faf11fab03860 /octave_kernel.py
parent2a2e2de98438ca43052158c960a4d0a81ea426a4 (diff)
downloadscilab_kernel-38526801f91112730acec64b96057364660a0be1.tar.gz
scilab_kernel-38526801f91112730acec64b96057364660a0be1.tar.bz2
scilab_kernel-38526801f91112730acec64b96057364660a0be1.zip
Handle case where local profile is not found
Diffstat (limited to 'octave_kernel.py')
-rw-r--r--octave_kernel.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/octave_kernel.py b/octave_kernel.py
index c964701..4d79676 100644
--- a/octave_kernel.py
+++ b/octave_kernel.py
@@ -49,12 +49,16 @@ class OctaveKernel(Kernel):
self.inspector = Inspector()
self.inspector.set_active_scheme("Linux")
- self.hist_file = os.path.join(locate_profile(), 'octave_kernel.hist')
+ self.log.setLevel(logging.ERROR)
+
+ try:
+ self.hist_file = os.path.join(locate_profile(), 'octave_kernel.hist')
+ except IOError:
+ self.hist_file = None
+ self.log.warn('No default profile found, history unavailable')
self.max_cache = 1000
self.cache = []
- self.log.setLevel(logging.ERROR)
-
def do_execute(self, code, silent, store_history=True,
user_expressions=None, allow_stdin=False):
code = code.strip()
@@ -169,6 +173,8 @@ class OctaveKernel(Kernel):
start=None, stop=None, n=None, pattern=None, unique=False):
"""Access history.
"""
+ if not self.hist_file:
+ return {'history': []}
if not os.path.exists(self.hist_file):
with open(self.hist_file, 'wb') as fid:
fid.write('')
@@ -186,8 +192,9 @@ class OctaveKernel(Kernel):
self.octavewrapper.restart()
else:
self.octavewrapper.close()
- with open(self.hist_file, 'wb') as fid:
- fid.write('\n'.join(self.cache))
+ if self.hist_file:
+ with open(self.hist_file, 'wb') as fid:
+ fid.write('\n'.join(self.cache))
return Kernel.do_shutdown(self, restart)
def _get_help(self, code):