summaryrefslogtreecommitdiff
path: root/git/db/complex.py
blob: 71a39c453317416edf2b58fa90ac2125c753781d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
"""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."""