##// END OF EJS Templates
diff parser: redefined operations stats for changes...
diff parser: redefined operations stats for changes - don't loose info about multiple operations like rename + chmod - new Binary flag when dealing with binary file operations - fixed diffs after mercurial 2.6 when GIT binary diffs were fixed - added more tests for multiple operations - refactored the way diffprocessor returns data. It's now easier to extract type of operation on binary files - diffprocessor doesn't append that information into the diff itself

File last commit:

r2007:324ac367 beta
r3821:ce4b7023 beta
Show More
imports.py
27 lines | 781 B | text/x-python | PythonLexer
from rhodecode.lib.vcs.exceptions import VCSError
def import_class(class_path):
"""
Returns class from the given path.
For example, in order to get class located at
``vcs.backends.hg.MercurialRepository``:
try:
hgrepo = import_class('vcs.backends.hg.MercurialRepository')
except VCSError:
# hadle error
"""
splitted = class_path.split('.')
mod_path = '.'.join(splitted[:-1])
class_name = splitted[-1]
try:
class_mod = __import__(mod_path, {}, {}, [class_name])
except ImportError, err:
msg = "There was problem while trying to import backend class. "\
"Original error was:\n%s" % err
raise VCSError(msg)
cls = getattr(class_mod, class_name)
return cls