Show More
@@ -175,16 +175,22 b' class _divertopener:' | |||||
175 | return getattr(self._opener, attr) |
|
175 | return getattr(self._opener, attr) | |
176 |
|
176 | |||
177 |
|
177 | |||
178 | def _delayopener(opener, target, buf): |
|
178 | class _delayopener: | |
179 | """build an opener that stores chunks in 'buf' instead of 'target'""" |
|
179 | """build an opener that stores chunks in 'buf' instead of 'target'""" | |
180 |
|
180 | |||
181 | def _delay(name, mode=b'r', checkambig=False, **kwargs): |
|
181 | def __init__(self, opener, target, buf): | |
182 | if name != target: |
|
182 | self._opener = opener | |
183 | return opener(name, mode, **kwargs) |
|
183 | self._target = target | |
|
184 | self._buf = buf | |||
|
185 | ||||
|
186 | def __call__(self, name, mode=b'r', checkambig=False, **kwargs): | |||
|
187 | if name != self._target: | |||
|
188 | return self._opener(name, mode, **kwargs) | |||
184 | assert not kwargs |
|
189 | assert not kwargs | |
185 | return appender(opener, name, mode, buf) |
|
190 | return appender(self._opener, name, mode, self._buf) | |
186 |
|
191 | |||
187 | return _delay |
|
192 | def __getattr__(self, attr): | |
|
193 | return getattr(self._opener, attr) | |||
188 |
|
194 | |||
189 |
|
195 | |||
190 | @attr.s |
|
196 | @attr.s |
General Comments 0
You need to be logged in to leave comments.
Login now