| 436 | |
| 437 | @contextlib.contextmanager |
| 438 | def get_pager_stream(self, preferred_pager=None): |
| 439 | if not preferred_pager: |
| 440 | preferred_pager = self._get_configured_pager() |
| 441 | popen_kwargs = self._get_process_pager_kwargs(preferred_pager) |
| 442 | process = LazyPager(self._popen, **popen_kwargs) |
| 443 | try: |
| 444 | yield process.stdin |
| 445 | except OSError: |
| 446 | # Ignore IOError since this can commonly be raised when a pager |
| 447 | # is closed abruptly and causes a broken pipe. |
| 448 | pass |
| 449 | finally: |
| 450 | process.communicate() |
| 451 | |
| 452 | @contextlib.contextmanager |
| 453 | def get_stdout_stream(self): |