##// END OF EJS Templates
Base of an as you type conpleter....
Base of an as you type conpleter. when invoking the completer, instead of having to chose/dismiss, you can continue typing, it will filter the result "as you type" and dismiss itself if ther is no match left. As it is now, it's only works with lowercase letters, I need to find a workaroud for this. for example if you type : * P-y-<tab>-S-o-m-e-t-h-i-n-g * it will propose PySide, but will dismiss when 'o' is pressed and pasting Pyso with a lower case 's'

File last commit:

r5390:c82649ea
r5507:6b2d9cce
Show More
syspathcontext.py
69 lines | 2.0 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
#-----------------------------------------------------------------------------
# Code
#-----------------------------------------------------------------------------
class appended_to_syspath(object):
"""A context for appending 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.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 = 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
# Returning False causes any exceptions to be re-raised.
return False