| | |
| | """ |
| | Context managers for adding things to sys.path temporarily. |
| | |
| | Authors: |
| | |
| | * Brian Granger |
| | """ |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | import sys |
| | import warnings |
| |
|
| |
|
| | class appended_to_syspath(object): |
| | """ |
| | Deprecated since IPython 8.1, no replacements. |
| | |
| | A context for appending a directory to sys.path for a second.""" |
| |
|
| | def __init__(self, dir): |
| | warnings.warn( |
| | "`appended_to_syspath` is deprecated since IPython 8.1, and has no replacements", |
| | DeprecationWarning, |
| | stacklevel=2, |
| | ) |
| | self.dir = dir |
| |
|
| | 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 |
| | |
| | return False |
| |
|
| | class prepended_to_syspath(object): |
| | """A context for prepending a directory to sys.path for a second.""" |
| |
|
| | def __init__(self, dir): |
| | self.dir = dir |
| |
|
| | 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 |
| | |
| | return False |
| |
|