diff options
author | Sebastian Thiel <byronimo@gmail.com> | 2011-05-10 10:21:26 +0200 |
---|---|---|
committer | Sebastian Thiel <byronimo@gmail.com> | 2011-05-10 10:21:26 +0200 |
commit | cd26aaebbda94dc3740e41bbd3f91ba6b1a25c10 (patch) | |
tree | 7ea33a01a8a33b3cea92e0f6872bb1c7b5279a5e /git/db/py/submodule.py | |
parent | 7ae36c3e019a5cc16924d1b6007774bfb625036f (diff) | |
download | gitpython-cd26aaebbda94dc3740e41bbd3f91ba6b1a25c10.tar.gz |
Made repository paths methods a property to be compatible with the existing repo interface. Added submodule interface ... goal is to provide all of the extra repo functionality in custom interfaces
Diffstat (limited to 'git/db/py/submodule.py')
-rw-r--r-- | git/db/py/submodule.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/git/db/py/submodule.py b/git/db/py/submodule.py new file mode 100644 index 00000000..735f90b1 --- /dev/null +++ b/git/db/py/submodule.py @@ -0,0 +1,33 @@ +# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors +# +# This module is part of GitDB and is released under +# the New BSD License: http://www.opensource.org/licenses/bsd-license.php +from git.objects.submodule.base import Submodule +from git.objects.submodule.root import RootModule +from git.db.interface import SubmoduleDB + +__all__ = ["PureSubmoduleDB"] + +class PureSubmoduleDB(SubmoduleDB): + """Pure python implementation of submodule functionality""" + + @property + def submodules(self): + return Submodule.list_items(self) + + def submodule(self, name): + try: + return self.submodules[name] + except IndexError: + raise ValueError("Didn't find submodule named %r" % name) + # END exception handling + + def create_submodule(self, *args, **kwargs): + return Submodule.add(self, *args, **kwargs) + + def iter_submodules(self, *args, **kwargs): + return RootModule(self).traverse(*args, **kwargs) + + def submodule_update(self, *args, **kwargs): + return RootModule(self).update(*args, **kwargs) + |