##// END OF EJS Templates
Merge pull request #13661 from Carreau/wn83...
Merge pull request #13661 from Carreau/wn83 whats new 8.3

File last commit:

r27504:a96dd9e4
r27653:d20dabd2 merge
Show More
syspathcontext.py
71 lines | 1.9 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
Matthias Bussonnier
MAINT: deprecate append_to_syspath
r27504 import warnings
Brian Granger
Work on startup related things....
r2252
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):
Matthias Bussonnier
MAINT: deprecate append_to_syspath
r27504 """
Deprecated since IPython 8.1, no replacements.
A context for appending a directory to sys.path for a second."""
Brian Granger
Work on startup related things....
r2252
def __init__(self, dir):
Matthias Bussonnier
MAINT: deprecate append_to_syspath
r27504 warnings.warn(
"`appended_to_syspath` is deprecated since IPython 8.1, and has no replacements",
DeprecationWarning,
stacklevel=2,
)
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