示例#1
0
    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
示例#2
0
    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
示例#3
0
    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)
示例#4
0
    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
示例#5
0
    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
示例#6
0
文件: giac.py 项目: yjjcc/sage
    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
示例#7
0
文件: giac.py 项目: timgates42/sage
    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)