def _relation_module(role, interface):
    """
    Return module for relation based on its role and interface, or None.

    Prefers new location (reactive/relations) over old (hooks/relations).
    """
    _append_path(hookenv.charm_dir())
    _append_path(os.path.join(hookenv.charm_dir(), 'hooks'))
    base_module = 'relations.{}.{}'.format(interface, role)
    for module in ('reactive.{}'.format(base_module), base_module):
        if module in sys.modules:
            break
        try:
            importlib.import_module(module)
            break
        except ImportError:
            continue
    else:
        hookenv.log('Unable to find implementation for relation: '
                    '{} of {}'.format(role, interface), hookenv.ERROR)
        return None
    return sys.modules[module]
def _relation_module ( role , interface ) : _append_path ( hookenv . charm_dir ( ) ) _append_path ( os . path . join ( hookenv . charm_dir ( ) , 'hooks' ) ) base_module = 'relations.{}.{}' . format ( interface , role ) for module in ( 'reactive.{}' . format ( base_module ) , base_module ) : if module in sys . modules : break try : importlib . import_module ( module ) break except ImportError : continue else : hookenv . log ( 'Unable to find implementation for relation: ' '{} of {}' . format ( role , interface ) , hookenv . ERROR ) return None return sys . modules [ module ]
Return module for relation based on its role and interface, or None.

    Prefers new location (reactive/relations) over old (hooks/relations).