summaryrefslogtreecommitdiff
path: root/git/db/pygit2/complex.py
diff options
context:
space:
mode:
Diffstat (limited to 'git/db/pygit2/complex.py')
-rw-r--r--git/db/pygit2/complex.py59
1 files changed, 30 insertions, 29 deletions
diff --git a/git/db/pygit2/complex.py b/git/db/pygit2/complex.py
index cf845ff6..78734124 100644
--- a/git/db/pygit2/complex.py
+++ b/git/db/pygit2/complex.py
@@ -3,10 +3,10 @@ __all__ = ['Pygit2GitODB', 'Pygit2GitDB', 'Pygit2CompatibilityGitDB']
from git.db.py.complex import PureGitODB
from git.db.py.base import (
- PureRepositoryPathsMixin,
- PureConfigurationMixin,
- PureIndexDB,
- )
+ PureRepositoryPathsMixin,
+ PureConfigurationMixin,
+ PureIndexDB,
+)
from git.db.py.resolve import PureReferencesMixin
from git.db.py.transport import PureTransportDB
from git.db.py.submodule import PureSubmoduleDB
@@ -20,13 +20,14 @@ from git.base import OInfo, OStream
from git.fun import type_id_to_type_map, type_to_type_id_map
from git.util import hex_to_bin
-from cStringIO import StringIO
+from cStringIO import StringIO
import os
class Pygit2GitODB(PureGitODB):
+
"""A full fledged database to read and write object files from all kinds of sources."""
-
+
def __init__(self, objects_root):
"""Initalize this instance"""
PureGitODB.__init__(self, objects_root)
@@ -34,11 +35,11 @@ class Pygit2GitODB(PureGitODB):
wd = self.git_dir
else:
wd = os.path.dirname(objects_root)
- #END try to figure out good entry for pygit2 - it needs the .gitdir
+ # END try to figure out good entry for pygit2 - it needs the .gitdir
print objects_root
print wd
self._py2_repo = Pygit2Repo(wd)
-
+
def __getattr__(self, attr):
try:
# supply LazyMixin with this call first
@@ -46,21 +47,21 @@ class Pygit2GitODB(PureGitODB):
except AttributeError:
# now assume its on the pygit2 repository ... for now
return getattr(self._py2_repo, attr)
- #END handle attr
-
+ # END handle attr
+
#{ Object DBR
-
+
def info(self, binsha):
- type_id, uncomp_data = self._py2_repo.read(binsha)
+ type_id, uncomp_data = self._py2_repo.read(binsha)
return OInfo(binsha, type_id_to_type_map[type_id], len(uncomp_data))
-
+
def stream(self, binsha):
type_id, uncomp_data = self._py2_repo.read(binsha)
return OStream(binsha, type_id_to_type_map[type_id], len(uncomp_data), StringIO(uncomp_data))
-
- # #}END object dbr
- #
- # #{ Object DBW
+
+ # }END object dbr
+ #
+ # { Object DBW
def store(self, istream):
# TODO: remove this check once the required functionality was merged in pygit2
if hasattr(self._py2_repo, 'write'):
@@ -68,26 +69,26 @@ class Pygit2GitODB(PureGitODB):
return istream
else:
return super(Pygit2GitODB, self).store(istream)
- #END handle write support
-
+ # END handle write support
+
#}END object dbw
-
-class Pygit2GitDB( PureRepositoryPathsMixin, PureConfigurationMixin,
- PureReferencesMixin, PureSubmoduleDB,
- PureIndexDB,
- PureTransportDB, # not fully implemented
- GitCommandMixin,
- CmdHighLevelRepository,
- Pygit2GitODB): # must come last, as it doesn't pass on __init__ with super
+class Pygit2GitDB(PureRepositoryPathsMixin, PureConfigurationMixin,
+ PureReferencesMixin, PureSubmoduleDB,
+ PureIndexDB,
+ PureTransportDB, # not fully implemented
+ GitCommandMixin,
+ CmdHighLevelRepository,
+ Pygit2GitODB): # must come last, as it doesn't pass on __init__ with super
+
def __init__(self, root_path):
"""Initialize ourselves on the .git directory, or the .git/objects directory."""
PureRepositoryPathsMixin._initialize(self, root_path)
super(Pygit2GitDB, self).__init__(self.objects_dir)
-
+
class Pygit2CompatibilityGitDB(RepoCompatibilityInterface, Pygit2GitDB):
+
"""Basic pygit2 compatibility database"""
pass
-