def eval(self, code, **ignored): """ """ if is_string(code): code = code.encode('utf8') START = "\x1b[?2004l\x1b[0m" END = "\x1b[0G\x1b[0K\x1b[0G\x1b[0Kjulia> " if not self._expect: self._start() with gc_disabled(): s = self._expect u = uuid() line = code + '\n\n\n\n\n__ans__=ans;println("%s");ans=__ans__;\n' % u s.send(line) s.expect(u) result = s.before self._last_result = result s.expect(u) self._last_result += s.before s.expect(u) self._last_result += s.before i = result.rfind(START) if i == -1: return result result = result[len(START) + i:] i = result.find(END) if i == -1: return result result = result[:i].rstrip() if result.startswith("ERROR:"): julia_error = result.replace("in anonymous at no file", '') raise RuntimeError(julia_error) return result
def eval(self, code, **ignored): """ """ if isinstance(code, unicode): code = code.encode('utf8') START = "\x1b[?2004l\x1b[0m" END = "\x1b[0G\x1b[0K\x1b[0G\x1b[0Kjulia> " if not self._expect: self._start() with gc_disabled(): s = self._expect u = uuid() line = code+'\n\n\n\n\n__ans__=ans;println("%s");ans=__ans__;\n'%u s.send(line) s.expect(u) result = s.before self._last_result = result s.expect(u) self._last_result += s.before s.expect(u) self._last_result += s.before i = result.rfind(START) if i == -1: return result result = result[len(START)+i:] i = result.find(END) if i == -1: return result result = result[:i].rstrip() if result.startswith("ERROR:"): julia_error = result.replace("in anonymous at no file",'') raise RuntimeError(julia_error) return result
def _eval_line(self, line, allow_use_file=True, wait_for_prompt=True, restart_if_needed=False): """ EXAMPLES:: sage: giac._eval_line('2+2') '4' sage: A = matrix([range(280)]) sage: GA = giac(A) TESTS:: sage: h1 = 'int(sin(x)^2, x)' sage: h2 = 'int(cos(x)^2, x)' sage: giac_result = giac(h1) + giac(h2) sage: bool(giac_result.sage() == x) True """ with gc_disabled(): z = Expect._eval_line(self, line, allow_use_file=allow_use_file, wait_for_prompt=wait_for_prompt) if z.lower().find("error") != -1: raise RuntimeError( "An error occurred running a Giac command:\nINPUT:\n%s\nOUTPUT:\n%s" % (line, z)) lines = (line for line in z.splitlines() if not line.startswith('Evaluation time:')) return "\n".join(lines)
def _eval_line(self, line, allow_use_file=True, wait_for_prompt=True): """ EXAMPLES:: sage: giac._eval_line('2+2') # optional - giac '4' """ with gc_disabled(): z = Expect._eval_line(self, line, allow_use_file=allow_use_file, wait_for_prompt=wait_for_prompt) if z.lower().find("error") != -1: raise RuntimeError, "An error occurred running a Giac command:\nINPUT:\n%s\nOUTPUT:\n%s"%(line, z) return z
def _eval_line(self, line, allow_use_file=True, wait_for_prompt=True, restart_if_needed=False): """ EXAMPLES:: sage: giac._eval_line('2+2') # optional - giac '4' sage: A=matrix([range(280)]) # optional - giac sage: GA=giac(A) # optional - giac """ with gc_disabled(): z = Expect._eval_line(self, line, allow_use_file=allow_use_file, wait_for_prompt=wait_for_prompt) if z.lower().find("error") != -1: raise RuntimeError("An error occurred running a Giac command:\nINPUT:\n%s\nOUTPUT:\n%s"%(line, z)) return z
def _eval_line(self, line, allow_use_file=True, wait_for_prompt=True, restart_if_needed=False): """ EXAMPLES:: sage: giac._eval_line('2+2') '4' sage: A=matrix([range(280)]) sage: GA=giac(A) """ with gc_disabled(): z = Expect._eval_line(self, line, allow_use_file=allow_use_file, wait_for_prompt=wait_for_prompt) if z.lower().find("error") != -1: raise RuntimeError("An error occurred running a Giac command:\nINPUT:\n%s\nOUTPUT:\n%s"%(line, z)) return z
def _eval_line(self, line, allow_use_file=True, wait_for_prompt=True, restart_if_needed=False): """ EXAMPLES:: sage: giac._eval_line('2+2') '4' sage: A = matrix([range(280)]) sage: GA = giac(A) TESTS:: sage: h='int(1/x*((-2*x^(1/3)+1)^(1/4))^3,x)' sage: giac(h) 12*(...) """ with gc_disabled(): z = Expect._eval_line(self, line, allow_use_file=allow_use_file, wait_for_prompt=wait_for_prompt) if z.lower().find("error") != -1: raise RuntimeError("An error occurred running a Giac command:\nINPUT:\n%s\nOUTPUT:\n%s"%(line, z)) lines = (line for line in z.splitlines() if not line.startswith('Evaluation time:')) return "\n".join(lines)