##// END OF EJS Templates
go to appropriate line when coming from another cell...
go to appropriate line when coming from another cell Sets the cursor on the last line of the cell when moved up from the top of the cell below, and sets the cursors to the first line when moving down from the bottom of a last line. Here, we retain the character that the cursor was on, so that users wishing to have up-down functionality like one document can still use this shortcut handler and simple adjust the at_top and at_bottom methods

File last commit:

r14693:9f62428c
r15834:869e697c
Show More
syspathcontext.py
71 lines | 2.1 KiB | text/x-python | PythonLexer
Brian Granger
Work on startup related things....
r2252 # encoding: utf-8
"""
Context managers for adding things to sys.path temporarily.
Authors:
* Brian Granger
"""
#-----------------------------------------------------------------------------
Matthias BUSSONNIER
update copyright to 2011/20xx-2011...
r5390 # Copyright (C) 2008-2011 The IPython Development Team
Brian Granger
Work on startup related things....
r2252 #
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
import sys
MinRK
don't add unicode paths to sys.path...
r14693 from IPython.utils.py3compat import cast_bytes_py2
Brian Granger
Work to address the review comments on Fernando's branch....
r2498 #-----------------------------------------------------------------------------
# Code
#-----------------------------------------------------------------------------
Brian Granger
Work on startup related things....
r2252 class appended_to_syspath(object):
"""A context for appending a directory to sys.path for a second."""
def __init__(self, dir):
MinRK
don't add unicode paths to sys.path...
r14693 self.dir = cast_bytes_py2(dir, sys.getdefaultencoding())
Brian Granger
Work on startup related things....
r2252
def __enter__(self):
if self.dir not in sys.path:
sys.path.append(self.dir)
self.added = True
else:
self.added = False
def __exit__(self, type, value, traceback):
if self.added:
try:
sys.path.remove(self.dir)
except ValueError:
pass
# Returning False causes any exceptions to be re-raised.
return False
class prepended_to_syspath(object):
"""A context for prepending a directory to sys.path for a second."""
def __init__(self, dir):
MinRK
don't add unicode paths to sys.path...
r14693 self.dir = cast_bytes_py2(dir, sys.getdefaultencoding())
Brian Granger
Work on startup related things....
r2252
def __enter__(self):
if self.dir not in sys.path:
sys.path.insert(0,self.dir)
self.added = True
else:
self.added = False
def __exit__(self, type, value, traceback):
if self.added:
try:
sys.path.remove(self.dir)
except ValueError:
pass
# Returning False causes any exceptions to be re-raised.
return False