diff options
author | Steven Silvester | 2014-08-02 09:52:35 -0500 |
---|---|---|
committer | Steven Silvester | 2014-08-02 09:52:35 -0500 |
commit | 38526801f91112730acec64b96057364660a0be1 (patch) | |
tree | 5ba13cf723717cfe861c8992669faf11fab03860 /octave_kernel.py | |
parent | 2a2e2de98438ca43052158c960a4d0a81ea426a4 (diff) | |
download | scilab_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.py | 17 |
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): |