# -*- coding: utf-8 -*- """ wakatime.project ~~~~~~~~~~~~~~~~ Returns a project for the given file. :copyright: (c) 2013 Alan Hamlett. :license: BSD, see LICENSE for more details. """ import logging from .projects.git import Git from .projects.mercurial import Mercurial from .projects.projectmap import ProjectMap from .projects.subversion import Subversion from .projects.wakatime import WakaTime log = logging.getLogger('WakaTime') # List of plugin classes to find a project for the current file path. # Project plugins will be processed with priority in the order below. PLUGINS = [ WakaTime, ProjectMap, Git, Mercurial, Subversion, ] def find_project(path, configs=None): for plugin in PLUGINS: plugin_name = plugin.__name__.lower() plugin_configs = None if configs and configs.has_section(plugin_name): plugin_configs = dict(configs.items(plugin_name)) project = plugin(path, configs=plugin_configs) if project.process(): return project return None