##// END OF EJS Templates
Merge pull request #11280 from meeseeksmachine/auto-backport-of-pr-11277-on-6.x...
Merge pull request #11280 from meeseeksmachine/auto-backport-of-pr-11277-on-6.x Backport PR #11277 on branch 6.x (Actually run some tests.)

File last commit:

r23666:e84c06c6
r24511:d132824d merge
Show More
syspathcontext.py
62 lines | 1.7 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.
#-----------------------------------------------------------------------------
import sys
Brian Granger
Work to address the review comments on Fernando's branch....
r2498
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):
Srinivas Reddy Thatiparthy
rm cast_bytes_py2
r23666 self.dir = dir
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):
Srinivas Reddy Thatiparthy
rm cast_bytes_py2
r23666 self.dir = dir
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