##// END OF EJS Templates
Remove extra action generation in "All Magics" menu population....
Remove extra action generation in "All Magics" menu population. The function that populates "All Magics" and "CLASS magics" menus used to create two separate QActions: one for the all-menu and one for class menu. There is no apparent reason for doing that, since single QAction can happily serve multiple menus and buttons.

File last commit:

r14693:9f62428c
r16299:55a3270a
Show More
syspathcontext.py
71 lines | 2.1 KiB | text/x-python | PythonLexer
# encoding: utf-8
"""
Context managers for adding things to sys.path temporarily.
Authors:
* Brian Granger
"""
#-----------------------------------------------------------------------------
# Copyright (C) 2008-2011 The IPython Development Team
#
# 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
from IPython.utils.py3compat import cast_bytes_py2
#-----------------------------------------------------------------------------
# Code
#-----------------------------------------------------------------------------
class appended_to_syspath(object):
"""A context for appending a directory to sys.path for a second."""
def __init__(self, dir):
self.dir = cast_bytes_py2(dir, sys.getdefaultencoding())
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):
self.dir = cast_bytes_py2(dir, sys.getdefaultencoding())
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