def execute(self, args): # pylint: disable=unpacking-non-sequence ext_loader = ExtensionLoader(packages=settings.extension_packages, paths=settings.extension_paths) extension = ext_loader.get_extension_class(args.name) out = StringIO() term_width, term_height = get_terminal_size() format_extension(extension, out, term_width) text = out.getvalue() pager = get_pager() if len(text.split('\n')) > term_height and pager: try: sp = subprocess.Popen(pager, stdin=subprocess.PIPE) sp.communicate(text) except OSError: self.logger.warning('Could not use PAGER "{}"'.format(pager)) sys.stdout.write(text) else: sys.stdout.write(text)
def get_text_width(self): if not self._text_width: self._text_width, _ = get_terminal_size() # pylint: disable=unpacking-non-sequence return self._text_width