diff options
author | Sebastian Thiel <byronimo@gmail.com> | 2009-10-22 11:04:30 +0200 |
---|---|---|
committer | Sebastian Thiel <byronimo@gmail.com> | 2009-10-22 11:04:30 +0200 |
commit | 33fa178eeb7bf519f5fff118ebc8e27e76098363 (patch) | |
tree | ab4e5789aa334688d71504d532312fb4ce572b71 /lib/git/objects/utils.py | |
parent | 3c9f55dd8e6697ab2f9eaf384315abd4cbefad38 (diff) | |
download | gitpython-33fa178eeb7bf519f5fff118ebc8e27e76098363.tar.gz |
added Object.data_stream property allowing to stream object data directly.Considering the implementation of the git commnd which temporarily keeps it in a cache, it doesnt make a huge diffence as the data is kept in memory while streaming. Only good thing is that it is in a different process so python will never see it if done properly
Diffstat (limited to 'lib/git/objects/utils.py')
-rw-r--r-- | lib/git/objects/utils.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/git/objects/utils.py b/lib/git/objects/utils.py index 367ed2b7..7bb4e8e2 100644 --- a/lib/git/objects/utils.py +++ b/lib/git/objects/utils.py @@ -52,3 +52,21 @@ def parse_actor_and_date(line): m = _re_actor_epoch.search(line) actor, epoch = m.groups() return (Actor._from_string(actor), int(epoch)) + + + +class ProcessStreamAdapter(object): + """ + Class wireing all calls to the contained Process instance. + + Use this type to hide the underlying process to provide access only to a specified + stream. The process is usually wrapped into an AutoInterrupt class to kill + it if the instance goes out of scope. + """ + __slots__ = ("_proc", "_stream") + def __init__(self, process, stream_name): + self._proc = process + self._stream = getattr(process, stream_name) + + def __getattr__(self, attr): + return getattr(self._stream, attr) |