def __repr__(self): if not config.options.interactive: return self._repr(memo=FormatMemo(get_text_repr=True)) try: result = self.execute() except com.TranslationError as e: output = ('Translation to backend failed\n' 'Error message: {0}\n' 'Expression repr follows:\n{1}'.format( e.args[0], self._repr())) return output else: return repr(result)
def _repr(self, memo=None): if memo is None: from ibis.expr.format import FormatMemo memo = FormatMemo() opname = type(self).__name__ pprint_args = [] def _pp(x): return _safe_repr(x, memo=memo) for x in self.args: if isinstance(x, (tuple, list)): pp = repr([_pp(y) for y in x]) else: pp = _pp(x) pprint_args.append(pp) return '%s(%s)' % (opname, ', '.join(pprint_args))