~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/plugin.py

Merge with bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
43
43
from bzrlib import (
44
44
    config,
45
45
    debug,
 
46
    errors,
46
47
    osutils,
47
48
    trace,
48
49
    )
172
173
 
173
174
 
174
175
def load_from_dir(d):
175
 
    """Load the plugins in directory d."""
 
176
    """Load the plugins in directory d.
 
177
    
 
178
    d must be in the plugins module path already.
 
179
    """
176
180
    # Get the list of valid python suffixes for __init__.py?
177
181
    # this includes .py, .pyc, and .pyo (depending on if we are running -O)
178
182
    # but it doesn't include compiled modules (.so, .dll, etc)
210
214
            exec "import bzrlib.plugins.%s" % name in {}
211
215
        except KeyboardInterrupt:
212
216
            raise
 
217
        except errors.IncompatibleAPI, e:
 
218
            trace.warning("Unable to load plugin %r. It requested API version "
 
219
                "%s of module %s but the minimum exported version is %s, and "
 
220
                "the maximum is %s" %
 
221
                (name, e.wanted, e.api, e.minimum, e.current))
213
222
        except Exception, e:
 
223
            trace.warning("%s" % e)
214
224
            ## import pdb; pdb.set_trace()
215
225
            if re.search('\.|-| ', name):
216
226
                sanitised_name = re.sub('[-. ]', '_', name)