"""Module with many useful complex databases with different useful combinations of primary implementations"""

from py.complex import PurePartialGitDB
from cmd.complex import CmdPartialGitDB
from compat import RepoCompatibilityInterface

__all__ = ['CmdGitDB', 'PureGitDB', 'CmdCompatibilityGitDB', 'PureCompatibilityGitDB']

class CmdGitDB(CmdPartialGitDB, PurePartialGitDB):
	"""A database which uses primarily the git command implementation, but falls back
	to pure python where it is more feasible"""

class CmdCompatibilityGitDB(RepoCompatibilityInterface, CmdGitDB):
	"""A database which fills in its missing implementation using the pure python 
	implementation"""
	pass

class PureGitDB(PurePartialGitDB, CmdPartialGitDB):
	"""A repository which uses the pure implementation primarily, but falls back
	on using the git command for high-level functionality"""

class PureCompatibilityGitDB(RepoCompatibilityInterface, PureGitDB):
	"""Repository which uses the pure implementation primarily, but falls back
	to the git command implementation. Please note that the CmdGitDB does it
	the opposite way around."""
