def parse_source(string):
    colons_with_no_backslashes = r'(?<!\\):'
    splits = re.split(colons_with_no_backslashes, string)
    name = splits[0]
    args = splits[1:]
    try:
        cls = name.capitalize()
        return import_module('pyunite.sources.' + name).__dict__[cls](args)
    except ImportError:
        error = 'Source "{}" is not recognized'.format(name)
        raise PyUniteError(error)
    except __HOLE__:
        error = 'Expected {} for class name in source {}'.format(cls, name)
        raise PyUniteError(error)
dataset/ETHPy150Open azure-satellite/pyunite/pyunite/source.py/parse_source