�
��QTc @ s d Z d d l Z d d l Z d d l Z d d l Z d d l m Z d � Z d d l m Z m Z m
Z
m Z m Z d d l
m Z d Z d e f d � � YZ d
e f d � � YZ d e f d
� � YZ d e
f d � � YZ d � Z e � Z d � Z d d l Z d � Z d S( sd
Pexpect-based interface to Julia
EXAMPLES::
TODO
AUTHORS:
-- William Stein (2014-10-26)
i����N( t uuid4c C s
t t � � S( N( t strR ( ( ( s
./julia.pyt uuid s ( t Expectt
ExpectElementt ExpectFunctiont FunctionElementt gc_disabled( t RingElementi t Juliac B s� e Z d d d d d d � Z d � Z d � Z d � Z d � Z d � Z d � Z d � Z
d � Z d
� Z d � Z
d � Z d
� Z d � Z d � Z d � Z d � Z d � Z d � Z d � Z d � Z d � Z d d d � Z RS( i�� c C sk d | _ t j | d d d | j d d d | d | d | d
| d t d t d
| �
d | _ d | _ d S( s2
Pexpect-based interface to Julia
s julia>t nameR t promptt commandt juliat maxreadt servert
server_tmpdirt script_subdirectoryt restart_on_ctrlct
verbose_startt logfilei i N( t _promptR t __init__t Falset _Julia__seqt _Julia__in_seq( t selfR R R R R ( ( s
./julia.pyR # s c C s] t t j � } d | d <t j | j d | j d | �| _ d | j _ | j j d � d S( s
t vt100t TERMR t envi s \[0Kjulia>N(
t dictt ost environt pexpectt spawnt _Expect__commandt _Expect__logfilet _expectt delaybeforesendt expect( R t pexpect_env( ( s
./julia.pyt _start? s
$c K sw t | t � r! | j d � } n d } d } | j sC | j � n t � �%| j } t � } | d | } | j | � | j | � | j } | | _
| j | � | j
| j 7_
| j | � | j
| j 7_
| j | � } | d k r� | S| t | � | } | j
| � } | d k r)| S| | j � } | j d � ri| j d d � }
t |
� � n | SWd QXd S(
s
t utf8s [?2004l[0ms [0G[0K[0G[0Kjulia> s,
__ans__=ans;println("%s");ans=__ans__;
i����s ERROR:s in anonymous at no filet N( t
isinstancet unicodet encodeR% R) R R t sendR'