Show More
1 | NO CONTENT: new file 100644, binary diff hidden |
|
NO CONTENT: new file 100644, binary diff hidden |
This diff has been collapsed as it changes many lines, (3667 lines changed) Show them Hide them | |||||
@@ -0,0 +1,3667 b'' | |||||
|
1 | <?xml version="1.0" encoding="utf-8"?> | |||
|
2 | <!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> | |||
|
3 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [ | |||
|
4 | <!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/"> | |||
|
5 | <!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/"> | |||
|
6 | <!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/"> | |||
|
7 | <!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/"> | |||
|
8 | <!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/"> | |||
|
9 | <!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/"> | |||
|
10 | <!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/"> | |||
|
11 | <!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/"> | |||
|
12 | ]> | |||
|
13 | <svg version="1.1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;" | |||
|
14 | xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="432px" height="432px" | |||
|
15 | viewBox="0 0 432 432" enable-background="new 0 0 432 432" xml:space="preserve"> | |||
|
16 | <switch> | |||
|
17 | <foreignObject requiredExtensions="&ns_ai;" x="0" y="0" width="1" height="1"> | |||
|
18 | <i:pgfRef xlink:href="#adobe_illustrator_pgf"> | |||
|
19 | </i:pgfRef> | |||
|
20 | </foreignObject> | |||
|
21 | <g i:extraneous="self"> | |||
|
22 | <g id="BG"> | |||
|
23 | <rect x="-6" y="116" fill="#A7A9AC" width="446" height="160"/> | |||
|
24 | </g> | |||
|
25 | <g id="Fade"> | |||
|
26 | <g> | |||
|
27 | <rect x="-20" y="-14" opacity="0.8" fill="#FFFFFF" width="468" height="457"/> | |||
|
28 | </g> | |||
|
29 | </g> | |||
|
30 | <g id="Reg"> | |||
|
31 | <g> | |||
|
32 | <g> | |||
|
33 | ||||
|
34 | <line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="182.195" y1="73.999" x2="182.195" y2="177.963"/> | |||
|
35 | <g> | |||
|
36 | <path d="M182.195,183.998c-1.054-2.84-2.852-6.363-4.756-8.547l4.756,1.72l4.755-1.72 | |||
|
37 | C185.046,177.635,183.248,181.158,182.195,183.998z"/> | |||
|
38 | </g> | |||
|
39 | </g> | |||
|
40 | </g> | |||
|
41 | <g> | |||
|
42 | <g> | |||
|
43 | <path fill="#00A651" d="M164.195,208.318c-0.552,0-1-0.448-1-1v-21.6c0-0.552,0.448-1,1-1h36c0.552,0,1,0.448,1,1v21.6 | |||
|
44 | c0,0.552-0.448,1-1,1H164.195z"/> | |||
|
45 | <path d="M200.195,185.719v21.6h-36v-21.6H200.195 M200.195,183.719h-36c-1.104,0-2,0.896-2,2v21.6c0,1.104,0.896,2,2,2h36 | |||
|
46 | c1.104,0,2-0.896,2-2v-21.6C202.195,184.614,201.3,183.719,200.195,183.719L200.195,183.719z"/> | |||
|
47 | </g> | |||
|
48 | <text transform="matrix(1 0 0 1 168.7729 200.041)" font-family="'MyriadPro-Semibold'" font-size="12">XREP</text> | |||
|
49 | </g> | |||
|
50 | <g> | |||
|
51 | <g> | |||
|
52 | <path fill="#ED1C24" d="M163.194,329.488c-0.552,0-1-0.447-1-1v-21.6c0-0.552,0.448-1,1-1h36c0.552,0,1,0.448,1,1v21.6 | |||
|
53 | c0,0.553-0.448,1-1,1H163.194z"/> | |||
|
54 | <path d="M199.194,306.889v21.6h-36v-21.6H199.194 M199.194,304.889h-36c-1.104,0-2,0.896-2,2v21.6c0,1.104,0.896,2,2,2h36 | |||
|
55 | c1.104,0,2-0.896,2-2v-21.6C201.194,305.784,200.299,304.889,199.194,304.889L199.194,304.889z"/> | |||
|
56 | </g> | |||
|
57 | <text transform="matrix(1 0 0 1 169.0273 321.2109)" font-family="'MyriadPro-Semibold'" font-size="12">PAIR</text> | |||
|
58 | </g> | |||
|
59 | <text transform="matrix(1 0 0 1 172.6064 340.0781)" font-family="'MyriadPro-Regular'" font-size="12">Reg</text> | |||
|
60 | <g> | |||
|
61 | <g> | |||
|
62 | <path fill="#ED1C24" d="M163.195,97.486c-0.552,0-1-0.448-1-1v-21.6c0-0.552,0.448-1,1-1h36c0.552,0,1,0.448,1,1v21.6 | |||
|
63 | c0,0.552-0.448,1-1,1H163.195z"/> | |||
|
64 | <path d="M199.195,74.886v21.6h-36v-21.6H199.195 M199.195,72.886h-36c-1.104,0-2,0.896-2,2v21.6c0,1.104,0.896,2,2,2h36 | |||
|
65 | c1.104,0,2-0.896,2-2v-21.6C201.195,73.782,200.3,72.886,199.195,72.886L199.195,72.886z"/> | |||
|
66 | </g> | |||
|
67 | <text transform="matrix(1 0 0 1 169.0269 89.2085)" font-family="'MyriadPro-Semibold'" font-size="12">PAIR</text> | |||
|
68 | </g> | |||
|
69 | <g> | |||
|
70 | <g> | |||
|
71 | ||||
|
72 | <line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="182.195" y1="305" x2="182.195" y2="214.035"/> | |||
|
73 | <g> | |||
|
74 | <path d="M182.195,208c1.054,2.84,2.852,6.363,4.756,8.547l-4.756-1.72l-4.755,1.72 | |||
|
75 | C179.345,214.363,181.143,210.84,182.195,208z"/> | |||
|
76 | </g> | |||
|
77 | </g> | |||
|
78 | </g> | |||
|
79 | <text transform="matrix(1 0 0 1 172 71)" font-family="'MyriadPro-Regular'" font-size="12">Reg</text> | |||
|
80 | <text transform="matrix(1 0 0 1 203 200)" font-family="'MyriadPro-Regular'" font-size="12">Reg</text> | |||
|
81 | </g> | |||
|
82 | <g id="HB"> | |||
|
83 | <g> | |||
|
84 | <g> | |||
|
85 | <path fill="#00A651" d="M195,245.619c-0.552,0-1-0.448-1-1v-21.601c0-0.552,0.448-1,1-1h36c0.552,0,1,0.448,1,1v21.601 | |||
|
86 | c0,0.552-0.448,1-1,1H195z"/> | |||
|
87 | <path d="M231,223.019v21.601h-36v-21.601H231 M231,221.019h-36c-1.104,0-2,0.896-2,2v21.601c0,1.104,0.896,2,2,2h36 | |||
|
88 | c1.104,0,2-0.896,2-2v-21.601C233,221.914,232.104,221.019,231,221.019L231,221.019z"/> | |||
|
89 | </g> | |||
|
90 | <text transform="matrix(1 0 0 1 199.5781 237.3408)" font-family="'MyriadPro-Semibold'" font-size="12">XREP</text> | |||
|
91 | </g> | |||
|
92 | <g> | |||
|
93 | <g> | |||
|
94 | <path fill="#00AEEF" d="M131.449,245.619c-0.552,0-1-0.448-1-1v-21.601c0-0.552,0.448-1,1-1h36c0.552,0,1,0.448,1,1v21.601 | |||
|
95 | c0,0.552-0.448,1-1,1H131.449z"/> | |||
|
96 | <path d="M167.449,223.019v21.601h-36v-21.601H167.449 M167.449,221.019h-36c-1.104,0-2,0.896-2,2v21.601c0,1.104,0.896,2,2,2 | |||
|
97 | h36c1.104,0,2-0.896,2-2v-21.601C169.449,221.914,168.553,221.019,167.449,221.019L167.449,221.019z"/> | |||
|
98 | </g> | |||
|
99 | <text transform="matrix(1 0 0 1 138.6436 237.3413)" font-family="'MyriadPro-Semibold'" font-size="12">PUB</text> | |||
|
100 | </g> | |||
|
101 | <g> | |||
|
102 | <g> | |||
|
103 | <g> | |||
|
104 | <path fill="#006838" d="M197.05,378.868c-0.552,0-1-0.447-1-1v-21.601c0-0.553,0.448-1,1-1h36c0.552,0,1,0.447,1,1v21.601 | |||
|
105 | c0,0.553-0.448,1-1,1H197.05z"/> | |||
|
106 | <path d="M233.05,356.268v21.601h-36v-21.601H233.05 M233.05,354.268h-36c-1.104,0-2,0.896-2,2v21.601c0,1.104,0.896,2,2,2h36 | |||
|
107 | c1.104,0,2-0.896,2-2v-21.601C235.05,355.163,234.154,354.268,233.05,354.268L233.05,354.268z"/> | |||
|
108 | </g> | |||
|
109 | <text transform="matrix(1 0 0 1 200.7568 370.5898)" fill="#FFFFFF" font-family="'MyriadPro-Semibold'" font-size="12">XREQ</text> | |||
|
110 | </g> | |||
|
111 | <g> | |||
|
112 | <g> | |||
|
113 | <path fill="#262262" d="M131.331,378.867c-0.552,0-1-0.447-1-1v-21.601c0-0.553,0.448-1,1-1h36c0.552,0,1,0.447,1,1v21.601 | |||
|
114 | c0,0.553-0.448,1-1,1H131.331z"/> | |||
|
115 | <path d="M167.331,356.267v21.601h-36v-21.601H167.331 M167.331,354.267h-36c-1.104,0-2,0.896-2,2v21.601c0,1.104,0.896,2,2,2 | |||
|
116 | h36c1.104,0,2-0.896,2-2v-21.601C169.331,355.162,168.436,354.267,167.331,354.267L167.331,354.267z"/> | |||
|
117 | </g> | |||
|
118 | <text transform="matrix(1 0 0 1 138.7646 370.5898)" fill="#FFFFFF" font-family="'MyriadPro-Semibold'" font-size="12">SUB</text> | |||
|
119 | </g> | |||
|
120 | <text transform="matrix(1 0 0 1 141.1099 389.8672)" font-family="'AnonymousPro'" font-size="12">ZMQ_FORWARDER</text> | |||
|
121 | <path fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" d="M235.351,382.873c0,6.628-5.373,12-12,12H141.04 | |||
|
122 | c-6.627,0-12-5.372-12-12V358.33c0-6.628,5.374-12,12-12h82.311c6.627,0,12,5.372,12,12V382.873z"/> | |||
|
123 | <g> | |||
|
124 | <g> | |||
|
125 | ||||
|
126 | <line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="168.846" y1="366.232" x2="170.846" y2="366.232"/> | |||
|
127 | ||||
|
128 | <line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="3.3328,3.3328" x1="174.179" y1="366.232" x2="185.843" y2="366.232"/> | |||
|
129 | ||||
|
130 | <line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="187.51" y1="366.232" x2="189.51" y2="366.232"/> | |||
|
131 | <g> | |||
|
132 | <path d="M195.545,366.232c-2.84,1.054-6.363,2.852-8.547,4.756l1.72-4.756l-1.72-4.755 | |||
|
133 | C189.182,363.382,192.705,365.18,195.545,366.232z"/> | |||
|
134 | </g> | |||
|
135 | </g> | |||
|
136 | </g> | |||
|
137 | </g> | |||
|
138 | <text transform="matrix(1 0 0 1 157.1396 409.9219)" font-family="'MyriadPro-Regular'" font-size="12">Heartbeat</text> | |||
|
139 | <g> | |||
|
140 | <g> | |||
|
141 | <line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="149" y1="356" x2="149" y2="253.035"/> | |||
|
142 | <g> | |||
|
143 | <path d="M149,247c1.054,2.84,2.852,6.363,4.756,8.547l-4.756-1.72l-4.755,1.72C146.149,253.363,147.947,249.84,149,247z"/> | |||
|
144 | </g> | |||
|
145 | </g> | |||
|
146 | </g> | |||
|
147 | <g> | |||
|
148 | <g> | |||
|
149 | <line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="215" y1="356" x2="215" y2="253.035"/> | |||
|
150 | <g> | |||
|
151 | <path d="M215,247c1.054,2.84,2.852,6.363,4.756,8.547l-4.756-1.72l-4.755,1.72C212.149,253.363,213.947,249.84,215,247z"/> | |||
|
152 | </g> | |||
|
153 | </g> | |||
|
154 | </g> | |||
|
155 | <text transform="matrix(1 0 0 1 102.9263 257.5835)" font-family="'MyriadPro-Regular'" font-size="12">HB(ping)</text> | |||
|
156 | <text transform="matrix(1 0 0 1 218.0361 259.25)" font-family="'MyriadPro-Regular'" font-size="12">HB(pong)</text> | |||
|
157 | </g> | |||
|
158 | <g id="Queues"> | |||
|
159 | <path fill="none" d="M359.449,266.519c0,6.627-4.632,12-10.345,12H19.794c-5.713,0-10.345-5.373-10.345-12v-140 | |||
|
160 | c0-6.627,4.632-12,10.345-12h329.311c5.713,0,10.345,5.373,10.345,12V266.519z"/> | |||
|
161 | <g> | |||
|
162 | <path fill="#E6E7E8" stroke="#000000" stroke-width="2" stroke-miterlimit="10" d="M350.089,238.519c0,6.627-4.275,12-9.548,12 | |||
|
163 | h-66.839c-5.272,0-9.548-5.373-9.548-12v-84c0-6.627,4.275-12,9.548-12h66.839c5.272,0,9.548,5.373,9.548,12V238.519z"/> | |||
|
164 | <g> | |||
|
165 | <g> | |||
|
166 | <path fill="#00A651" d="M302.089,166.053c-0.553,0-1-0.448-1-1v-21.6c0-0.552,0.447-1,1-1h36c0.553,0,1,0.448,1,1v21.6 | |||
|
167 | c0,0.552-0.447,1-1,1H302.089z"/> | |||
|
168 | <path d="M338.089,143.453v21.6h-36v-21.6H338.089 M338.089,141.453h-36c-1.104,0-2,0.896-2,2v21.6c0,1.104,0.896,2,2,2h36 | |||
|
169 | c1.104,0,2-0.896,2-2v-21.6C340.089,142.348,339.193,141.453,338.089,141.453L338.089,141.453z"/> | |||
|
170 | </g> | |||
|
171 | <text transform="matrix(1 0 0 1 306.667 157.7749)" font-family="'MyriadPro-Semibold'" font-size="12">XREP</text> | |||
|
172 | </g> | |||
|
173 | <g> | |||
|
174 | <g> | |||
|
175 | <g> | |||
|
176 | <path fill="none" stroke="#666766" stroke-width="2" stroke-miterlimit="10" d="M332.089,169.546 | |||
|
177 | c0,15.394-2.769,25.252-23.59,26.768"/> | |||
|
178 | <g> | |||
|
179 | <path fill="#666766" d="M302.464,196.519c2.793-1.174,6.236-3.119,8.338-5.114l-1.517,4.824l1.92,4.678 | |||
|
180 | C308.942,199.097,305.346,197.45,302.464,196.519z"/> | |||
|
181 | </g> | |||
|
182 | </g> | |||
|
183 | </g> | |||
|
184 | <g> | |||
|
185 | <g> | |||
|
186 | <path fill="none" stroke="#666766" stroke-width="2" stroke-miterlimit="10" d="M332.089,222.491 | |||
|
187 | c0-15.395-2.769-25.253-23.59-26.769"/> | |||
|
188 | <g> | |||
|
189 | <path fill="#666766" d="M302.464,195.519c2.882-0.933,6.479-2.579,8.741-4.389l-1.92,4.679l1.517,4.823 | |||
|
190 | C308.7,198.637,305.257,196.691,302.464,195.519z"/> | |||
|
191 | </g> | |||
|
192 | </g> | |||
|
193 | </g> | |||
|
194 | <g> | |||
|
195 | <g> | |||
|
196 | ||||
|
197 | <line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="332.089" y1="172.088" x2="332.089" y2="220.704"/> | |||
|
198 | <g> | |||
|
199 | <path d="M332.089,166.053c-1.054,2.84-2.852,6.363-4.756,8.547l4.756-1.72l4.755,1.72 | |||
|
200 | C334.939,172.416,333.142,168.893,332.089,166.053z"/> | |||
|
201 | </g> | |||
|
202 | <g> | |||
|
203 | <path d="M332.089,226.739c-1.054-2.84-2.852-6.363-4.756-8.548l4.756,1.721l4.755-1.721 | |||
|
204 | C334.939,220.376,333.142,223.899,332.089,226.739z"/> | |||
|
205 | </g> | |||
|
206 | </g> | |||
|
207 | </g> | |||
|
208 | </g> | |||
|
209 | <g> | |||
|
210 | <g> | |||
|
211 | <path fill="#00A651" d="M302.089,250.019c-0.553,0-1-0.447-1-1v-21.6c0-0.553,0.447-1,1-1h36c0.553,0,1,0.447,1,1v21.6 | |||
|
212 | c0,0.553-0.447,1-1,1H302.089z"/> | |||
|
213 | <path d="M338.089,227.419v21.6h-36v-21.6H338.089 M338.089,225.419h-36c-1.104,0-2,0.896-2,2v21.6c0,1.104,0.896,2,2,2h36 | |||
|
214 | c1.104,0,2-0.896,2-2v-21.6C340.089,226.314,339.193,225.419,338.089,225.419L338.089,225.419z"/> | |||
|
215 | </g> | |||
|
216 | <text transform="matrix(1 0 0 1 306.667 241.7407)" font-family="'MyriadPro-Semibold'" font-size="12">XREP</text> | |||
|
217 | </g> | |||
|
218 | <g> | |||
|
219 | <g> | |||
|
220 | <path fill="#00AEEF" d="M265.449,206.319c-0.553,0-1-0.447-1-1v-21.601c0-0.553,0.447-1,1-1h36c0.553,0,1,0.447,1,1v21.601 | |||
|
221 | c0,0.553-0.447,1-1,1H265.449z"/> | |||
|
222 | <path d="M301.449,183.719v21.601h-36v-21.601H301.449 M301.449,181.719h-36c-1.104,0-2,0.896-2,2v21.601c0,1.104,0.896,2,2,2 | |||
|
223 | h36c1.104,0,2-0.896,2-2v-21.601C303.449,182.614,302.554,181.719,301.449,181.719L301.449,181.719z"/> | |||
|
224 | </g> | |||
|
225 | <text transform="matrix(1 0 0 1 272.6431 198.041)" font-family="'MyriadPro-Semibold'" font-size="12">PUB</text> | |||
|
226 | </g> | |||
|
227 | </g> | |||
|
228 | <g> | |||
|
229 | <path fill="#E6E7E8" stroke="#000000" stroke-width="2" stroke-miterlimit="10" d="M104.668,238.52c0,6.627-4.275,12-9.548,12 | |||
|
230 | H28.281c-5.273,0-9.548-5.373-9.548-12v-84.001c0-6.627,4.275-12,9.548-12H95.12c5.272,0,9.548,5.373,9.548,12V238.52z"/> | |||
|
231 | <g> | |||
|
232 | <g> | |||
|
233 | <path fill="#00A651" d="M30.668,166.053c-0.552,0-1-0.448-1-1v-21.6c0-0.552,0.448-1,1-1h36c0.552,0,1,0.448,1,1v21.6 | |||
|
234 | c0,0.552-0.448,1-1,1H30.668z"/> | |||
|
235 | <path d="M66.668,143.453v21.6h-36v-21.6H66.668 M66.668,141.453h-36c-1.104,0-2,0.896-2,2v21.6c0,1.104,0.896,2,2,2h36 | |||
|
236 | c1.104,0,2-0.896,2-2v-21.6C68.668,142.348,67.772,141.453,66.668,141.453L66.668,141.453z"/> | |||
|
237 | </g> | |||
|
238 | <text transform="matrix(1 0 0 1 35.2461 157.7749)" font-family="'MyriadPro-Semibold'" font-size="12">XREP</text> | |||
|
239 | </g> | |||
|
240 | <g> | |||
|
241 | <g> | |||
|
242 | <path fill="#006838" d="M30.668,250.02c-0.552,0-1-0.447-1-1v-21.602c0-0.553,0.448-1,1-1h36c0.552,0,1,0.447,1,1v21.602 | |||
|
243 | c0,0.553-0.448,1-1,1H30.668z"/> | |||
|
244 | <path d="M66.668,227.418v21.602h-36v-21.602H66.668 M66.668,225.418h-36c-1.104,0-2,0.896-2,2v21.602c0,1.104,0.896,2,2,2h36 | |||
|
245 | c1.104,0,2-0.896,2-2v-21.602C68.668,226.313,67.772,225.418,66.668,225.418L66.668,225.418z"/> | |||
|
246 | </g> | |||
|
247 | <text transform="matrix(1 0 0 1 34.376 241.7402)" fill="#FFFFFF" font-family="'MyriadPro-Semibold'" font-size="12">XREQ</text> | |||
|
248 | </g> | |||
|
249 | <g> | |||
|
250 | <g> | |||
|
251 | <g> | |||
|
252 | <path fill="none" stroke="#666766" stroke-width="2" stroke-miterlimit="10" d="M37.043,169.546 | |||
|
253 | c0,15.394,2.769,25.252,23.59,26.768"/> | |||
|
254 | <g> | |||
|
255 | <path fill="#666766" d="M66.668,196.519c-2.882,0.933-6.479,2.579-8.742,4.389l1.921-4.679l-1.517-4.823 | |||
|
256 | C60.432,193.4,63.875,195.346,66.668,196.519z"/> | |||
|
257 | </g> | |||
|
258 | </g> | |||
|
259 | </g> | |||
|
260 | <g> | |||
|
261 | <g> | |||
|
262 | <path fill="none" stroke="#666766" stroke-width="2" stroke-miterlimit="10" d="M37.043,222.492 | |||
|
263 | c0-15.396,2.769-25.254,23.59-26.77"/> | |||
|
264 | <g> | |||
|
265 | <path fill="#666766" d="M66.668,195.519c-2.792,1.174-6.236,3.119-8.338,5.114l1.517-4.824l-1.921-4.678 | |||
|
266 | C60.189,192.94,63.786,194.587,66.668,195.519z"/> | |||
|
267 | </g> | |||
|
268 | </g> | |||
|
269 | </g> | |||
|
270 | <g> | |||
|
271 | <g> | |||
|
272 | ||||
|
273 | <line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="37.043" y1="172.088" x2="37.043" y2="220.705"/> | |||
|
274 | <g> | |||
|
275 | <path d="M37.043,166.053c-1.054,2.84-2.852,6.363-4.756,8.547l4.756-1.72l4.755,1.72 | |||
|
276 | C39.894,172.416,38.096,168.893,37.043,166.053z"/> | |||
|
277 | </g> | |||
|
278 | <g> | |||
|
279 | <path d="M37.043,226.74c-1.054-2.84-2.852-6.363-4.756-8.547l4.756,1.72l4.755-1.72 | |||
|
280 | C39.894,220.377,38.096,223.9,37.043,226.74z"/> | |||
|
281 | </g> | |||
|
282 | </g> | |||
|
283 | </g> | |||
|
284 | </g> | |||
|
285 | <g> | |||
|
286 | <g> | |||
|
287 | <path fill="#00AEEF" d="M67.668,207.32c-0.552,0-1-0.447-1-1v-21.602c0-0.553,0.448-1,1-1h36c0.552,0,1,0.447,1,1v21.602 | |||
|
288 | c0,0.553-0.448,1-1,1H67.668z"/> | |||
|
289 | <path d="M103.668,184.719v21.602h-36v-21.602H103.668 M103.668,182.719h-36c-1.104,0-2,0.896-2,2v21.602c0,1.104,0.896,2,2,2 | |||
|
290 | h36c1.104,0,2-0.896,2-2v-21.602C105.668,183.614,104.772,182.719,103.668,182.719L103.668,182.719z"/> | |||
|
291 | </g> | |||
|
292 | <text transform="matrix(1 0 0 1 74.8623 199.041)" font-family="'MyriadPro-Semibold'" font-size="12">PUB</text> | |||
|
293 | </g> | |||
|
294 | </g> | |||
|
295 | <text transform="matrix(1 0 0 1 76 161.0527)" font-family="'MyriadPro-Regular'" font-size="12">Task</text> | |||
|
296 | <text transform="matrix(1 0 0 1 272 163.0527)" font-family="'MyriadPro-Regular'" font-size="12">MUX</text> | |||
|
297 | <g> | |||
|
298 | <g> | |||
|
299 | <path fill="#ED1C24" d="M80.277,379.887c-0.552,0-1-0.447-1-1v-21.6c0-0.553,0.448-1,1-1h36c0.552,0,1,0.447,1,1v21.6 | |||
|
300 | c0,0.553-0.448,1-1,1H80.277z"/> | |||
|
301 | <path d="M116.277,357.287v21.6h-36v-21.6H116.277 M116.277,355.287h-36c-1.104,0-2,0.896-2,2v21.6c0,1.104,0.896,2,2,2h36 | |||
|
302 | c1.104,0,2-0.896,2-2v-21.6C118.277,356.183,117.381,355.287,116.277,355.287L116.277,355.287z"/> | |||
|
303 | </g> | |||
|
304 | <text transform="matrix(1 0 0 1 86.1089 371.6094)" font-family="'MyriadPro-Semibold'" font-size="12">PAIR</text> | |||
|
305 | </g> | |||
|
306 | <g> | |||
|
307 | <g> | |||
|
308 | <path fill="#ED1C24" d="M246.986,379.004c-0.553,0-1-0.447-1-1v-21.6c0-0.553,0.447-1,1-1h35.999c0.553,0,1,0.447,1,1v21.6 | |||
|
309 | c0,0.553-0.447,1-1,1H246.986z"/> | |||
|
310 | <path d="M282.985,356.404v21.6h-35.999v-21.6H282.985 M282.985,354.404h-35.999c-1.104,0-2,0.896-2,2v21.6c0,1.104,0.896,2,2,2 | |||
|
311 | h35.999c1.104,0,2-0.896,2-2v-21.6C284.985,355.3,284.09,354.404,282.985,354.404L282.985,354.404z"/> | |||
|
312 | </g> | |||
|
313 | <text transform="matrix(1 0 0 1 252.8174 370.7266)" font-family="'MyriadPro-Semibold'" font-size="12">PAIR</text> | |||
|
314 | </g> | |||
|
315 | <text transform="matrix(1 0 0 1 87.2129 391.9609)"><tspan x="0" y="0" font-family="'MyriadPro-Regular'" font-size="12">Task</tspan><tspan x="-5.694" y="14.4" font-family="'MyriadPro-Regular'" font-size="12">Queue</tspan></text> | |||
|
316 | <text transform="matrix(1 0 0 1 252.853 391.9609)"><tspan x="0" y="0" font-family="'MyriadPro-Regular'" font-size="12">MUX</tspan><tspan x="-4.626" y="14.4" font-family="'MyriadPro-Regular'" font-size="12">Queue</tspan></text> | |||
|
317 | <g> | |||
|
318 | <g> | |||
|
319 | <path fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" d="M269,354c0,0,45.82-66.568,52.253-96.011"/> | |||
|
320 | <g> | |||
|
321 | <path d="M322,252c0.66,2.957,1.964,6.691,3.555,9.112l-4.479-2.348l-4.944,1.061C318.314,257.919,320.573,254.671,322,252z"/> | |||
|
322 | </g> | |||
|
323 | </g> | |||
|
324 | </g> | |||
|
325 | <g> | |||
|
326 | <g> | |||
|
327 | <path fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" d="M97,356c0,0-39.939-67.723-45.387-97.996"/> | |||
|
328 | <g> | |||
|
329 | <path d="M51,252c1.363,2.705,3.542,6.006,5.677,7.965l-4.917-1.181l-4.534,2.239C48.875,258.641,50.27,254.939,51,252z"/> | |||
|
330 | </g> | |||
|
331 | </g> | |||
|
332 | </g> | |||
|
333 | <g> | |||
|
334 | <g> | |||
|
335 | <path fill="#ED1C24" d="M247.835,73.486c-0.553,0-1-0.448-1-1v-21.6c0-0.552,0.447-1,1-1h36c0.553,0,1,0.448,1,1v21.6 | |||
|
336 | c0,0.552-0.447,1-1,1H247.835z"/> | |||
|
337 | <path d="M283.835,50.886v21.6h-36v-21.6H283.835 M283.835,48.886h-36c-1.104,0-2,0.896-2,2v21.6c0,1.104,0.896,2,2,2h36 | |||
|
338 | c1.104,0,2-0.896,2-2v-21.6C285.835,49.782,284.939,48.886,283.835,48.886L283.835,48.886z"/> | |||
|
339 | </g> | |||
|
340 | <text transform="matrix(1 0 0 1 253.667 65.2085)" font-family="'MyriadPro-Semibold'" font-size="12">PAIR</text> | |||
|
341 | </g> | |||
|
342 | <g> | |||
|
343 | <g> | |||
|
344 | <path fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" d="M264,73c0,0,47.594,37.395,55.028,62.041"/> | |||
|
345 | <g> | |||
|
346 | <path d="M320,141c-1.537-2.61-3.927-5.762-6.187-7.577l4.984,0.856l4.378-2.53C321.686,134.234,320.536,138.019,320,141z"/> | |||
|
347 | </g> | |||
|
348 | </g> | |||
|
349 | </g> | |||
|
350 | <g> | |||
|
351 | <g> | |||
|
352 | <path fill="#ED1C24" d="M75.835,73.486c-0.552,0-1-0.448-1-1v-21.6c0-0.552,0.448-1,1-1h36c0.552,0,1,0.448,1,1v21.6 | |||
|
353 | c0,0.552-0.448,1-1,1H75.835z"/> | |||
|
354 | <path d="M111.835,50.886v21.6h-36v-21.6H111.835 M111.835,48.886h-36c-1.104,0-2,0.896-2,2v21.6c0,1.104,0.896,2,2,2h36 | |||
|
355 | c1.104,0,2-0.896,2-2v-21.6C113.835,49.782,112.939,48.886,111.835,48.886L111.835,48.886z"/> | |||
|
356 | </g> | |||
|
357 | <text transform="matrix(1 0 0 1 81.667 65.2085)" font-family="'MyriadPro-Semibold'" font-size="12">PAIR</text> | |||
|
358 | </g> | |||
|
359 | <g> | |||
|
360 | <g> | |||
|
361 | <path fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" d="M93,74c0,0-37.146,37.146-43.177,61.018"/> | |||
|
362 | <g> | |||
|
363 | <path d="M49,141c-0.622-2.964-1.878-6.715-3.438-9.157l4.449,2.405l4.957-0.997C52.761,135.129,50.461,138.347,49,141z"/> | |||
|
364 | </g> | |||
|
365 | </g> | |||
|
366 | </g> | |||
|
367 | <text transform="matrix(1 0 0 1 81.936 48)" font-family="'MyriadPro-Regular'" font-size="12">Task</text> | |||
|
368 | <text transform="matrix(1 0 0 1 254 48)" font-family="'MyriadPro-Regular'" font-size="12">MUX</text> | |||
|
369 | <g> | |||
|
370 | <g> | |||
|
371 | <path fill="#262262" d="M121.887,202.726c-0.552,0-1-0.448-1-1v-21.6c0-0.552,0.448-1,1-1h36c0.552,0,1,0.448,1,1v21.6 | |||
|
372 | c0,0.552-0.448,1-1,1H121.887z"/> | |||
|
373 | <path d="M157.887,180.125v21.6h-36v-21.6H157.887 M157.887,178.125h-36c-1.104,0-2,0.896-2,2v21.6c0,1.104,0.896,2,2,2h36 | |||
|
374 | c1.104,0,2-0.896,2-2v-21.6C159.887,179.021,158.991,178.125,157.887,178.125L157.887,178.125z"/> | |||
|
375 | </g> | |||
|
376 | <text transform="matrix(1 0 0 1 129.3208 194.4478)" fill="#FFFFFF" font-family="'MyriadPro-Semibold'" font-size="12">SUB</text> | |||
|
377 | </g> | |||
|
378 | <g> | |||
|
379 | <g> | |||
|
380 | <path fill="none" stroke="#58595B" stroke-width="2" stroke-miterlimit="10" d="M105,195c0,0,1.333,6.333,9.333,11.333 | |||
|
381 | c4.908,3.067,11.572-0.389,15.99-3.519"/> | |||
|
382 | <g> | |||
|
383 | <path fill="#58595B" d="M135,199c-1.562,2.595-3.193,6.199-3.711,9.05l-1.624-4.79l-4.311-2.642 | |||
|
384 | C128.249,200.743,132.124,199.949,135,199z"/> | |||
|
385 | </g> | |||
|
386 | </g> | |||
|
387 | </g> | |||
|
388 | <g> | |||
|
389 | <g> | |||
|
390 | <path fill="none" stroke="#58595B" stroke-width="2" stroke-miterlimit="10" d="M263,195c0,0-43.263-38.136-99.398-20.817"/> | |||
|
391 | <g> | |||
|
392 | <path fill="#58595B" d="M157.887,176.125c2.36-1.899,5.132-4.72,6.601-7.219l-0.125,5.056l3.138,3.965 | |||
|
393 | C164.825,176.813,160.914,176.225,157.887,176.125z"/> | |||
|
394 | </g> | |||
|
395 | </g> | |||
|
396 | </g> | |||
|
397 | <text transform="matrix(1 0 0 1 50.8691 221)"><tspan x="0" y="0" font-family="'AnonymousPro'" font-size="10">Monitored</tspan><tspan x="21.836" y="12" font-family="'AnonymousPro'" font-size="10">Queue</tspan></text> | |||
|
398 | <text transform="matrix(1 0 0 1 270 221)"><tspan x="0" y="0" font-family="'AnonymousPro'" font-size="10">Monitored</tspan><tspan x="0" y="12" font-family="'AnonymousPro'" font-size="10">Queue</tspan></text> | |||
|
399 | <text transform="matrix(1 0 0 1 120.2549 177.333)" font-family="'MyriadPro-Regular'" font-size="10">Monitor</text> | |||
|
400 | </g> | |||
|
401 | <g id="Client"> | |||
|
402 | <g> | |||
|
403 | <g> | |||
|
404 | <path fill="#00A651" d="M131.449,166.041c-0.552,0-1-0.448-1-1v-21.6c0-0.552,0.448-1,1-1h36c0.552,0,1,0.448,1,1v21.6 | |||
|
405 | c0,0.552-0.448,1-1,1H131.449z"/> | |||
|
406 | <path d="M167.449,143.44v21.6h-36v-21.6H167.449 M167.449,141.44h-36c-1.104,0-2,0.896-2,2v21.6c0,1.104,0.896,2,2,2h36 | |||
|
407 | c1.104,0,2-0.896,2-2v-21.6C169.449,142.336,168.554,141.44,167.449,141.44L167.449,141.44z"/> | |||
|
408 | </g> | |||
|
409 | <text transform="matrix(1 0 0 1 136.0273 157.7627)" font-family="'MyriadPro-Semibold'" font-size="12">XREP</text> | |||
|
410 | </g> | |||
|
411 | <g> | |||
|
412 | <g> | |||
|
413 | <path fill="#00AEEF" d="M195,166.041c-0.552,0-1-0.448-1-1v-21.6c0-0.552,0.448-1,1-1h36c0.552,0,1,0.448,1,1v21.6 | |||
|
414 | c0,0.552-0.448,1-1,1H195z"/> | |||
|
415 | <path d="M231,143.44v21.6h-36v-21.6H231 M231,141.44h-36c-1.104,0-2,0.896-2,2v21.6c0,1.104,0.896,2,2,2h36 | |||
|
416 | c1.104,0,2-0.896,2-2v-21.6C233,142.336,232.104,141.44,231,141.44L231,141.44z"/> | |||
|
417 | </g> | |||
|
418 | <text transform="matrix(1 0 0 1 202.1943 157.7627)" font-family="'MyriadPro-Semibold'" font-size="12">PUB</text> | |||
|
419 | </g> | |||
|
420 | <g> | |||
|
421 | <g> | |||
|
422 | <path fill="#262262" d="M195.335,65.986c-0.552,0-1-0.448-1-1v-21.6c0-0.552,0.448-1,1-1h36c0.552,0,1,0.448,1,1v21.6 | |||
|
423 | c0,0.552-0.448,1-1,1H195.335z"/> | |||
|
424 | <path d="M231.335,43.386v21.6h-36v-21.6H231.335 M231.335,41.386h-36c-1.104,0-2,0.896-2,2v21.6c0,1.104,0.896,2,2,2h36 | |||
|
425 | c1.104,0,2-0.896,2-2v-21.6C233.335,42.282,232.439,41.386,231.335,41.386L231.335,41.386z"/> | |||
|
426 | </g> | |||
|
427 | <text transform="matrix(1 0 0 1 202.769 57.7085)" fill="#FFFFFF" font-family="'MyriadPro-Semibold'" font-size="12">SUB</text> | |||
|
428 | </g> | |||
|
429 | <g> | |||
|
430 | <g> | |||
|
431 | <path fill="#ED1C24" d="M130.335,65.986c-0.552,0-1-0.448-1-1v-21.6c0-0.552,0.448-1,1-1h36c0.552,0,1,0.448,1,1v21.6 | |||
|
432 | c0,0.552-0.448,1-1,1H130.335z"/> | |||
|
433 | <path d="M166.335,43.386v21.6h-36v-21.6H166.335 M166.335,41.386h-36c-1.104,0-2,0.896-2,2v21.6c0,1.104,0.896,2,2,2h36 | |||
|
434 | c1.104,0,2-0.896,2-2v-21.6C168.335,42.282,167.439,41.386,166.335,41.386L166.335,41.386z"/> | |||
|
435 | </g> | |||
|
436 | <text transform="matrix(1 0 0 1 136.167 57.7085)" font-family="'MyriadPro-Semibold'" font-size="12">PAIR</text> | |||
|
437 | </g> | |||
|
438 | <g> | |||
|
439 | <g> | |||
|
440 | <line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="214" y1="67" x2="214" y2="134.965"/> | |||
|
441 | <g> | |||
|
442 | <path d="M214,141c-1.054-2.84-2.852-6.363-4.756-8.547l4.756,1.72l4.755-1.72C216.851,134.637,215.053,138.16,214,141z"/> | |||
|
443 | </g> | |||
|
444 | </g> | |||
|
445 | </g> | |||
|
446 | <g> | |||
|
447 | <g> | |||
|
448 | <line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="148" y1="65" x2="148" y2="133.965"/> | |||
|
449 | <g> | |||
|
450 | <path d="M148,140c-1.054-2.84-2.852-6.363-4.756-8.547l4.756,1.72l4.755-1.72C150.851,133.637,149.053,137.16,148,140z"/> | |||
|
451 | </g> | |||
|
452 | </g> | |||
|
453 | </g> | |||
|
454 | <text transform="matrix(1 0 0 1 133 39)" font-family="'MyriadPro-Regular'" font-size="12">Query</text> | |||
|
455 | <text transform="matrix(1 0 0 1 201 39)" font-family="'MyriadPro-Regular'" font-size="12">Notif.</text> | |||
|
456 | <text transform="matrix(1 0 0 1 219 140.334)" font-family="'MyriadPro-Regular'" font-size="10">Notification</text> | |||
|
457 | </g> | |||
|
458 | <g id="overlay"> | |||
|
459 | ||||
|
460 | <rect x="-5" y="116" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="4" width="446" height="160"/> | |||
|
461 | <text transform="matrix(1 0 0 1 367.5454 61)" font-family="'MyriadPro-Bold'" font-size="12">Client(s)</text> | |||
|
462 | <text transform="matrix(1 0 0 1 362.4268 201)" font-family="'MyriadPro-Bold'" font-size="12">Controller</text> | |||
|
463 | <text transform="matrix(1 0 0 1 364.7368 355)" font-family="'MyriadPro-Bold'" font-size="12">Engine(s)</text> | |||
|
464 | </g> | |||
|
465 | </g> | |||
|
466 | </switch> | |||
|
467 | <i:pgf id="adobe_illustrator_pgf"> | |||
|
468 | <![CDATA[ | |||
|
469 | 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 | |||
|
497 | uDczv7M4+8X9N/TAv4GKOS6uH16ReptiAcchTvl/Hp6+fjhLJfDNr4gHffn5t480/V9e6N8727bq | |||
|
498 | vH5J8/xrOlgs9je/+mYjVsKvX72nX/3jm9fvv/nF01evNz9Vs+K3xLZ4nj7707+QRCKzAIDlX5+/ | |||
|
499 | f/nu4fz+5Tc/+yAi0jzePJzpL+lh+dH+/u6nrx++IuV3eVyhN09/fXj1+psVWocQ/zv73/dvvvlu | |||
|
500 | 1L9+df9EB0ngjvnuJakuv76nOVpwL7CPQEqK3Dcswv9qxO0N8IEbVr/6iIHu3/2ZLB2SX28dt/64 | |||
|
501 | S7jCvhvf589ZQXxzdvXm/ds/n/329etXjnb3V44dYIHy/f81xvi1PPD02ZNO0OFIuGF/JDIP/suN | |||
|
502 | QnefHoF++V8Z+/aelDDRXF8+PzbAkd/7SPq7T9lYwvJevn1c9tMK8mtmyc9fPXz+LenMjx/CxrNB | |||
|
503 | /P4FbUThbgu1rx+/Yf/E2ed/vv/mQXC++/Ot3Pm5I6wsYNY89tmzDzDfGM6unla//0cWAKT5/Jx4 | |||
|
504 | IynyZ+9eqyPjZ5u9n4mrp7MrEn6bsAlnP/ny6g3/c2Vjsk19FoP8jsy6L4/+7urt6plI8FTPjjzh | |||
|
505 | v6H7r679LY3Y4/T/I4nSp/8Od8x/P/vszT3JKnqP43BC3vV9/mETQoghhRxKqKGFHkaY4TJchW24 | |||
|
506 | DjfhNoYYY4o5llhJbHcSujNexqu4jdfxJt6mkGJKKaeSamqpb9JIM12mq7RN1+km3eaQY05kZZdc | |||
|
507 | c8s9jzzzZb7K23ydb/JtCSWWVHIppZZWehlllstyVbblutyU200NNdZUcy211lZ7HXXWy3pVt/W6 | |||
|
508 | 3tTbFlpsqeVWWm2t9TbabJftqm3bdbtptz302FPPvfTaW++bPvrsl/2qb/t1v+m3I4w40sijjDra | |||
|
509 | 6GOMOS7H1diO63EzbmeYcaaZZ5l1ttnnmHNezqu5ndfzZt5uLsNlvEyX+bJc1st22S/H5by8vLy6 | |||
|
510 | 3F5eX95c3l6Fq3iVrvJVuapX7apfjat5dXl1dbW9ur66ubrdhm3cpm3elm3dtm3fbMd2bi+3V9vt | |||
|
511 | 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 | |||
|
541 | ]]> | |||
|
542 | <![CDATA[ | |||
|
543 | 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 | |||
|
615 | ]]> | |||
|
616 | <![CDATA[ | |||
|
617 | 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 | |||
|
689 | ]]> | |||
|
690 | <![CDATA[ | |||
|
691 | z5jgbRit7I7uHmeHwGh6VrGQPquKodk+JkUPlZiS5wagRlRY5KTQ/SDA0BehU+zehOkTf5uCUCvD | |||
|
692 | CcJlyTRlixOn0zZ8dZElnkLAkInMJ6O06MeYZhfgYU7mamY373dTkdjpqjIOZpgxEvEk6dYG02Va | |||
|
693 | Zx021dWS3oPv4eSc1NmD2DDOSLJGBqTu0aV+1YI+VUmnF2PUkOeugsKcrFcEdfviil0yk9kUHVbt | |||
|
694 | oI7Gss5qzV3lW1Y+9Nz07+KJ+H2YuQMPoAhpV3viiEAg5pSz7WK6xMpeGurh5kDxyKZkNvhfq6ZW | |||
|
695 | GwUJxQ59MSE4h2giOc2zdaGLcV4YE2WTbQZjMQeiwOIKZlO9soBKN6O7t2DcwvL3u/l++FRWc5tL | |||
|
696 | 4UxEpHvxe1SkO2f3+3OcBOkvknW6xCvt3qR51wqkGYaItOxatuPBg7Ialhb9MG2W6xUQzebsyG7K | |||
|
697 | XIsmonPtIFVqFVxGq3Wc4S3ReSF9HsaS5SCw3CvmLa1jiYaH2GBoMIt6hRW0JSDe3DXxipUE6Gl9 | |||
|
698 | rTkgLYCrrhbVYVpWrJxYCM5pi8gJ+mlY1AyhNFYSGKvpPkiVlW9qw8PAaboVih7pzwPAMgxB40Qu | |||
|
699 | U76CJjPmlc0dLO+U89zgJQrmIGHmXtr0N8hD3fNtMRQaV3VZystUlbIXTTGSKRy5LrpHSQHulDan | |||
|
700 | HXlsOAP+FavYYjJLwcJwqLrR+S4wlYLl7nAYYzazFLgRywSDMLWMvaC6tjn55hrZaql4DutcvCxV | |||
|
701 | k28kGd8CuBNMfxUHL5YbKVt+LBHggphLdq/DWqVxl3OyqgMWG56+x0urBm9uai7iKGquR0FXEvDX | |||
|
702 | bk65sMQRqzvVigbNDRgd6OLQq2BW2guHWbER2cQcRu1AYVRb787sSnjRRjs6MwgS8HRbosW+0bVr | |||
|
703 | mC3/WurlpXyxYUxRzsRQk8jLDvgOYDuVyPtnYHQ7q7kLhY373sEYQ86YeQZPS6CzKCG7LaZZ2eZj | |||
|
704 | FU9Agjm6PB90FVS2Kq/h8ccwVVLnV06MiWaJxci6iUdswKPgRTviU7PsTFl5AyMnQbhN7w5e0qBM | |||
|
705 | aWMUYK3VdH/mcU0PdVGviNJQLV7NnplktRPsR50KFLNUgcUirRyI5CQ2uzfGAN4GZZSdsyUZc9ec | |||
|
706 | ouJVixkp+UpB0x0jDHepZGW3cbHkNdH+DZxzg7Ujng0DIxSekVvBwK7JUwpEDi3HJIbpXhKDUirY | |||
|
707 | lA+IM0pA6g5g8ywHrU9RMAo/FAkLCbu7rMA6E9weqIMZFzgDuCei5kDwW7B3UImYppbyvLOuegdw | |||
|
708 | y+aQEhPRwH16HSDnaAm4LlVx2R2WFfmasnTiYnwm+YExmWq1pNdKrneFB0+KAe4ARhLPzr4ksDTc | |||
|
709 | gQxZoKZIVZsJTghy5c4yhDkhKHoDGM+mYnCK8FVJn0xFm03B5MBxs6qMKkk8liI4x3Cw5LrqsUPF | |||
|
710 | US3O7ZeIEZdiaDyTVQkuylcqioXdsmiWZ4q0z2RGDoLE1c0/Y1D6fLP8sx2+Jb1pPLUVdaiysaeJ | |||
|
711 | R2iOnKHpzjE5G1vjW8P1vKE57xz0juZJrCgq46A5vBtd8063e3wW4Ls98NDeBAqefmT2wBJiFrA5 | |||
|
712 | oNl2TZqsMD0RlRcrG6Mb1bb7ajiA96iQPi7Wh4iHa2MeAaMchmP5CMqxh7ZkM7BRKs6DJPNJSlBi | |||
|
713 | jwoD71ORNU3nDiy/ryyfFXgWM1Qt5snLFKJVeUAzEFFkMrzEdEgFwPtUIAXrzjaAx9R3wciLaF6O | |||
|
714 | z6Q1ix2b11heY+khdGQuAN6nYmiGp710QtLxGszBALX4pYRE60J4X6AUZ6rBpUDcKd1n0np35rkC | |||
|
715 | 3x2Axadn4NxT/AA4aj3qPpITYK5ZMzCvsap2u+BiTr+61K+yyIzTgDWZzEOVgSEwRj80frSDtwbL | |||
|
716 | f5YiOVT0+GHnIh7jYmhSsYeXOYuWwO7izcyZLSlzql3HXRiiJWWaTcMss9ubSXb63r4w8N6+sJYO | |||
|
717 | d2CbKBveBbODwtoTeMVFW5Xkjaw6HH8Lr/c1AqGidXU77+FdwJzC6U24WjftkAt/hjp+pM2b5otW | |||
|
718 | 9UYZAs0EbKvUgAVsvIYTBVVgHkJaV9PewCiG4cy8YFXlTR2qDb0bFTi6TBXXunCYY7vZBZP481pH | |||
|
719 | Tvuush0bF3Sg8HroZEqut3GZBUGPyjb38Ip72BQMQSEqgzhgNK2bgSoo2SSOC94h1VK9rzLTF/C6 | |||
|
720 | 7QjTrvvgJFRc+1bMD9/NabDj4GIl9SmdgCbNKDYwEv05goEKMcmQF5HE1vLiR0ZKKKe+er+FBVrU | |||
|
721 | FX8HDyZCDKfA8i2rBVyrqEkc2mie/I8eCn16DQM7K7Tkl63gWpfeEwDvDscZ+fkDYGnOZXXDHK2L | |||
|
722 | kt3EA1pcg0vExYph0jzhSJr86luYWb8Ad8Ya5kw8BebMu1XHuJiFx41VZGZalfpAGOuZxoB0A464 | |||
|
723 | mogVeD3ciKYenAJH9VQa2JYjLf6YZPYYD4geCBwJqzJl/IxXli7QndFY7Z+HtC3goKXNBi4tAwwX | |||
|
724 | nCRcCJPsyxHnwKk6dDgEltISkEXVsDQmGeYlQQ14WypzmJqmSdtF/b0WJjRwZzNyaTWFoCIX1aEh | |||
|
725 | xeD6VWWRw2LXxXPn67n36uAsCi3g5KzxEv1pbenTEDBToDivBSiuNnNfoUUVg4c1MmQnxZBoTpNO | |||
|
726 | Y1aNz168kA3clpL1rIXa3LjDIpheU8YViJ6aIKeKM6urtUcYwdLduFbS9WPmCkOEVZuryn9OeOtW | |||
|
727 | ViOOSAMjCcwalTzrWsQujqm+lNBxeLmJh5mbrWSrkRrBCjc6R3zT0k0rRzGBe9QkXYs6F/V8cm0O | |||
|
728 | bxIDS7tNqeSJlsvdrYaGa35QustAbSjIjWdKWeo0gnY44ShZssYnO+DVVmf/qFYI5XPn4gxVpshx | |||
|
729 | H/R6YcoguIq3NuK30MwF2dNzdeijvkXR0LExE3Q17MX6VSgSuATFY9ZXjRs0QYljEsPGC5qyww4z | |||
|
730 | BNVpi3fZJswv2dVpNCQt1OCIRPZa7qD9UhTDzMlXHyYhi8/aF3DQVH72y/u2RJkTe/0833FqOIgz | |||
|
731 | NHJuq42pi0wvE/P0s4HUEnanehMEObOi5fextM1htqNNPiSh0ZMD4LqQwqJpfEcSElUeelyV02Fb | |||
|
732 | hcBYOUznAIsaS3YNtF9hZqs0yKTtJMRXni3rBkXJ0hwlD+dbimCce/eUBWpqmMygKEaHEClPqz77 | |||
|
733 | TbNKePaz50xNbS5kqVrPJLWDVPGuO1Z8R5ailqysLkerEUMZoFSHoNaH/V8TZSBS/mrprgbmqh+T | |||
|
734 | icMlcEvum2eOrHU9aNwCUlV9rVM9IZaHMoasKLewaJ4DJMWwYp0NO17BOu8U5LXZtupxIOu5Re+4 | |||
|
735 | UbVJkRptq9w7zQ7iwttWbBLgENsljPNNM0qeghV3JAsTt+peVxZb1dh4dEcF74XZMeMV9V28mTUo | |||
|
736 | zsqWhamm9apgHZa7GVgsQ95d9kGLXpaXsFU9EydZFgVTklfp3Gh1xEesW61Sc5XCSxWD5cvyr7NH | |||
|
737 | T4d1PmRtJ0/P5taksT68rooj/epuZxlfrca7JytrH0slTOd+8qZjTpDVva5KFBUP5kTzzqpcFS2e | |||
|
738 | tQiJOKypCtaBo08Nf3ukX4WbzLBH+heOFdADhJMKNIlVeFNYCEBrDc7sQ3QjmG0mOTFapM6Uao6f | |||
|
739 | BEzr0rUvRStFXQWgUS7Kv4ZxJw30CoS52LYekAsT9akThjkzc/TV4zTIZFFhnI4Kh43pvV2TBNkh | |||
|
740 | yJayKbjItK/ZhSgD1R/PRvewFNKkBchslVt9Ou/iYQ09LTGVN6nuLSmKNNjSsnO6x2hJ/mfnLtKj | |||
|
741 | u/cx4Xst2M1A68oZi/cb5KoyBfbiJ6sP6+FakzemslY6cUmW5eGH9TAOw4fvGvJhpAkbi46gZhCo | |||
|
742 | C9mfn62gzelE340urV2s0ZDlCkwV7ergmaseWsjDkc6IHqy2otal2RFLUG+F6uVCHADPDS9glZ8M | |||
|
743 | 1PYp3HKlWrJB0qg6Ozaqb6uqVRtS25ssAl+sWId3kI2fvc1R0Rbcz2HajjThzmhow8FuBHWSs+8L | |||
|
744 | RjdKALqWLlhDzVbVx6dJyLV73xBNB2U/IrKuGnufvYSoWOCTu8YhXTovbdi8ja80yfS2fMWj6hId | |||
|
745 | eQ5T3ihIXsTPjLpGZDsk21jBg79xXQEZPLmE49tnhjOZ97d4HxI0gORgkFf7cHsRZSPiEJ3mDxlI | |||
|
746 | LocerHdmTT2UzPDiz6MiX1o22J2xWQ6LVdCJZB9eMOZpVJw3bdnDFmBi3qY2toQCo7c6RKPwuKp3 | |||
|
747 | YntBSxplrpJ1UkE9osQ9pzUqRPWkhd+fw0fVtYqPFwaVlmy1VWthPsBZuKGg+uClr46FKNjjpXqO | |||
|
748 | gdVJEz2NInhpKRemN6uls/QSPujBa9amHW9mX9UTXKrmL1bP9ZSYtCLgSvVoLeBE8mtsdVi2JftQ | |||
|
749 | 0augyFdRUHQlfv0/bBQc0dVjSnT2mXpeVURJnEzlFieEq1LFp4tN1ufw5+ba4FnuSFspHv8uKL99 | |||
|
750 | huBshYNc+voogrzysXsUNmqYQo8tkhhk5qp1bguWDCMp5R0sWiJYCrQSgamMX4Fo11DQAsVD0aho | |||
|
751 | mJ7RVrwdBk1XhwXKJ617V7tgZ7kkrxLMnnXCwTc1pPjYQFVjCtD3iY4vG4T2CtIyVKI5EplVIGxK | |||
|
752 | zu5GHixHvWZDynoxOV+ida/lQlH0+uIknugnHLGL6lUeUVtu6vPdAq18QjrCi7zjrIcKKvdqMo2G | |||
|
753 | CelWzs27O1iUC84BbufjueVIk2scUYpIgAh+kpsVRkkHzm4aDdoIc0omcjiWNwpaoWhOxqq+NY6q | |||
|
754 | rJu6omtBrt5IgPk20l3h5d8lK2uRl9IVzN/AkeZgTYoaAvZLsKp2bTOKRAKriZXGfJZqKGCL70Im | |||
|
755 | Mormkx3Rs2rp1saFgdGA01mncIVRjVxNkOGdp/yYo9RoHqG9weY+Yavg4ZqwwwyS1dcFuNNWthaU | |||
|
756 | EmTTbj5LF+t17K0OT8EpXg5cp/mjpc/bsJ5LONQWFNxiOHQv2IkVtmoBekaBrgiteoHLkjV2SK/1 | |||
|
757 | QuN3m9aC0lsacGw7GXdawneidWQE+5p1JuLMkIayQ2++xu7/YsW+ns3P7dS0mn4n3Mjvh5rM5hne | |||
|
758 | ElfJKB8VPnGUXrwIa1SLusOs2V4Esaky3UARjayBHYqBgjtRSIwYpB1HGCg7ocnmAXluvAmdj3te | |||
|
759 | oKvo1J0EPazOdQxSj8M0GnZCk3XoWylpqMStw0r0WSohk5D2GoLQu3gP5uHOO3FJL6kluvl4ABZ1 | |||
|
760 | x0JstTWzCWAWcXKDf/oDFfirWBzQbo+PZmR0q4LbJcOr+7iZINi7dFwwIkRaKmZoOgwsdWG6C3gJ | |||
|
761 | 3h4OBzqau0R36FiB11Fd7l6BVkEnwOtBD3HboJ5StjvoAl5jl+4YvX0AvDPoAW4b1PvV7A66gHew | |||
|
762 | J+s1fgq8M+gB7jvvsVjHkeldwDvY3TVwCrwz6AFuG7SaT3N30AW8g517GIwPgXcGPQ== | |||
|
763 | ]]> | |||
|
764 | <![CDATA[ | |||
|
765 | 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 | |||
|
837 | ]]> | |||
|
838 | <![CDATA[ | |||
|
839 | 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 | |||
|
911 | ]]> | |||
|
912 | <![CDATA[ | |||
|
913 | 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 | |||
|
985 | ]]> | |||
|
986 | <![CDATA[ | |||
|
987 | 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 | |||
|
1059 | ]]> | |||
|
1060 | <![CDATA[ | |||
|
1061 | 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 | |||
|
1133 | ]]> | |||
|
1134 | <![CDATA[ | |||
|
1135 | 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 | |||
|
1207 | ]]> | |||
|
1208 | <![CDATA[ | |||
|
1209 | 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 | |||
|
1265 | Axcs4OeJCrhKkp97itYkqIqsJcQs8cJF6ofQMPoETNBKcdDFk5aVEiNHZTaJBFskPzcqHFTUFmz5 | |||
|
1266 | zplNsiPz5IwSdt6UkpNB/OKPN9d/vr24vru4/uroiMmUqbP8i4M/foO/8Y7/6vP/+P3vLi7Haw5+ | |||
|
1267 | bX88/NeDX//9Dyd/vHlxPv74y5dE/NXhrz+/G+/46vCX319dXo+/O8L/IennV4f/crD7b789vXxN | |||
|
1268 | f+0Pf/3v13ebf3n3wzf0d7/+ze3t6Q/3P3r+19e3X76+PL8+O/8JPv3Z/Puzry8uX9yeX9Pf//bi | |||
|
1269 | 7O7i5vr09v74+A2//tv1xdmg/Njwfnm3nMiP/MBGHN7biBcPDV65vfjy9d35Kzw2/sLeuJjV7fmr | |||
|
1270 | 15d3j5jXqmako9+c06u7i7uzr/96cYnnHjSx65vP6TermtzGNDZneP366k9nd6ffPniCYVUzWw5/ | |||
|
1271 | c2Jfnr46/93t+f97PQ7PDw+cG5TDVU3v3iT+5cce/pd7MvD5zdU3N68u7lYpAi+uH7gln9+8vj07 | |||
|
1272 | //3t6TdfX5ytam8uru+z3MX1Ww7HesUfDX1zNjffnN+e3t3cPnBKb9vRn3hCc/RvOTSPZt3vLl7c | |||
|
1273 | vUW826J4536xqmWRwW/u9NfnF199/dCbe3VT0tFvzunBIn9dk/nh/jy+/zjn8f2WbHzxlmvol7/5 | |||
|
1274 | 9y9+c/nN16df+FXNBAP/lx02zRjh3UN1ppsv//v87O7ZzevrF+OhZzdv2dSfeIYb8/lRafnr356/ | |||
|
1275 | PPxsb+19KGvv5e3pUGYv/3hz8Wpv7+3tvVXYe2lVM3vf9t667pq9ubc39/bm3t7c25t7e3Pvo5rH | |||
|
1276 | U8y9dSkYe3Nv9ebe709fv3p1cXr97PL1T/HxR98YjzKMvuRJrIc9dhtGj1Tg6GSvalrb6turuxe/ | |||
|
1277 | Pf/24hS//yhtoc0JPMpY+NPLl6/O7z76w3ND03j2iR2h1YmE7bPz4qH61rpOzIstfevFQxWulU3k | |||
|
1278 | +0ce+M+/OT97fXl6ewLleYz+J7+0/3xzcX13IobH6qTOQ9n5aJhDzq2KFd7ZhDjKa5vKlhXxPw+d | |||
|
1279 | SljdtvzP+/dEPOpqfDUO/J9ev+Xp/b34vnVKEbPPb65f3Z1eP9jJsqppbU/i3iRf3748PTv//Oz0 | |||
|
1280 | 8qGBrXVlVW1OYPcO/tv339xcnz98B9clfbZncd/2+eHBe3cpKsPR2c3lze2/fvc1xw== | |||
|
1281 | ]]> | |||
|
1282 | <![CDATA[ | |||
|
1283 | GFY0WZ7MpxMt+bkL+jVO6Snhn/X6RH6uUaBPVRhcXtz9+fTibbfWxyUNPs2Q8Dpl3FPlwentxd3X | |||
|
1284 | V+d3K9uopVxYzu4f8aNU0DHsexN5i3tqxg3XNZG0NZG3rPRaJ+K3JvJQQbAy1gqPvDv/cH771U9x | |||
|
1285 | b+74Kv5zjTf2g2+2lYYvLh4bTfo0dmOVutMD9uKp3/jQOVFpZbkq7yEnam1TelpO1FFY2XTePaSx | |||
|
1286 | tpm8W17Us/Nvzy8///r0xc13qyyG+fhShv5wc/vN1zeXN1/9sMYr6lEm/rpcSG+w7V98lJPZzv37 | |||
|
1287 | BNOeHmnRv7i4PF2Zv/9N1vzt6YuL1w/N0fTH6wIy0ME/TvH+dMTauuojnijW1jWZJ4i1vTDbC7Of | |||
|
1288 | Sph9IjmpX65LY3+qJFvXbJ4gylYmk989pfZoZamojy1U3Vfrf+gteXK1/pcru072tfofY5rd+67V | |||
|
1289 | XxdTbtXqv9v9uq5JPeV+XZmm8Ngg1m8vXn1zeXp2fnV+ffeH02/WeDc9Toa/JbdhFTL84edkXbP5 | |||
|
1290 | 1M7Ju+UwrU14bacvvXpEjvq6OOzVruT0759/fXp9fX75+fnl+dnD3R5/WdXMtidxL2z5bpP8zaom | |||
|
1291 | uT2JR2akXt7c/uF0PPT9Gi+iRxhJVzqJ9ezN082jdVngT71a1zWbp1yt6xLh21crDeChxpw71P8d | |||
|
1292 | bv3Rb/xxVbPWOT5K3v3EkB7Lj59eX1ydrjP1/+XF5eWDfVHn5/+zLi8Uj35LzN6d3j441eHyu9Mf | |||
|
1293 | 3nJcfnpZyxPYnNfpixcXdxffPvRSvD0nU3NVM5tTuHc4b2+uPspUZh745mSGUn32h5sXD92ny4vr | |||
|
1294 | 89N1JefOGdxzqaEhy0NvlnWdKRn6vXDI25Kip9NzXbOhgd+TDvrMH2nMD6sPejA60U8tJzYnc2+m | |||
|
1295 | Z2evr16/Pci+cMlfr0wMLmawObe7m4/SC49h/1ORKL5c13o81Vpa12yeYi2tzO57HwBt69JA9gBt | |||
|
1296 | Z+vakCee/ZXNZp8Mc/DLo7aqmeyTYT69ZJizdUW59skwD9UF1uUX/bl1Kny3G3ZdZ+0JN+zadIWf | |||
|
1297 | ezrM2bpiQ0/VRNc1m0/tnLxbOszahNfT0mHWpVjv02H26TD7dJgPsjdPN5DW5Uh86tW6rtk85Wpd | |||
|
1298 | mZLwntNh/D4d5uPQvNdlqD5VPKxrNk8RDysTdPv4z0IC7GH13h3IbW1H9J32/qPfhbUFyn+eu7BG | |||
|
1299 | AI+n56K832yWR6EZ+pUhzO3RDO9HhNc2nSc0aFrXRN4NzPD5zc3ls/Vlp+/7vO5BG3+aK/hj6l+w | |||
|
1300 | x9Oiea3LcfZANK3Hc/BDxPdvaYu/WNeK7GFo9xJtL9EeI9HKqqa0Bom2rhXZS7S9RPswEu389uZt | |||
|
1301 | 9Y4fo0Bbl0LyTxVo/4Yd3mtoe3m2l2cfrzxblzqyAnm2rgX5WOXZ2jNJ3iHGv660hUfF+D/MeVnu | |||
|
1302 | 8RfrWp39sVnNsamrYoy1HZt1rc7HeWw+DSSt2/Orm7cBOa0CSeub89O73z4YJefi+sX5y4vri5U5 | |||
|
1303 | NxfTuD+/PVLYR4YU9qh0bn/oPwvu0Ofx/+5w/PPZ+PP492fjLw5XNd2Zwf0EJLFX3wBLbFXz2iOJ | |||
|
1304 | bfHkyqbznqDEWBn4y9uO5h5H7L1ObwNH7EfV24/L9Hgc9tfaeps/Ff1rbfP5WbQs/XlZu/dLX6++ | |||
|
1305 | uXl1sU6z6nF1YDqTP71+y0/WIRMeXOiwOpnwBAyDNQeOtuAMHhk5etuO/hPDRj97gbCuwr0nSoTV | |||
|
1306 | SrqnS4Y1qgtPlQuntxd3X1+d361M4L0prPyPt2R6rLQYFsO+N5G3xKqml2FdE0lbE3nLSq91In5r | |||
|
1307 | Ig8VBitjrfDIO3RfXf2E6urV3trrrC59oPdtose7w7wuObGYwQ63ydvCrH+++P788s+Xpz98sTJu | |||
|
1308 | 2RcA7sPJ+3DyzT6cvD27fTj5p4yUvI9wMt2aCCgH99n6btD3EkLeN6Pah5D3IeR9CHkfQv6n38T7 | |||
|
1309 | EPLafcL3p/RzDiH/9uLly9evzk+AqjSmsTfjbGn2ZtzejNubcSsy4344v7y8+e6zr27Pz68/Gzfl | |||
|
1310 | +WeDQy++uvns24uby/O7z27PX3x2c3t6/dW65r6373429t2n2W34UnSDozN0WljVDPdG3pu0unGT | |||
|
1311 | XN+dCNLn6pSr0/+5uHr9cFzVti6PnY1+c9nPL8dAHmFDlHXNajH8911y+RgJcu+6X9US3Z/Hlv45 | |||
|
1312 | bP/PH9FGaV1Bz43x37sD2Up8fnNNcuWjnN7WHHbt3gNnJu9a1fye6Hpa45Se0sR4dZ60bbfT69uX | |||
|
1313 | w1B7jMBYF2z+5gQepaB8/s352VBsbvd+p73fae93+qfPbO93+nF+hJeJ/U7ihCL3097vtPc77f1O | |||
|
1314 | e7/T/bnu/U57v9Pe7/ROfqd3Ml0v397QaG0YXT+VE23oJqtamId40B44tVdiQq6tjvLTrxjXlX+s | |||
|
1315 | O3Bdcmd7Fk92z/h1+2d27eG/ff/N0D4evocrm+HWLH6m5fKfqDBc67T2tfK7HSWrmtDPHkPj8uLu | |||
|
1316 | z6cXb5PtH5dEWDMGzbvLhFUG3/bYGW/yHq5qOnvsjLVlGjwBO2NlO/JY7IxP7+5cF2c98fJcpULw | |||
|
1317 | lHtzvfbB/u78KCT1/u5c20T2uFMf+N78FHGn1nlb7zGnPsy6vi/MqbcIln96susec2pVmFN77IRV | |||
|
1318 | Gzfr9avfn9I74A2sS1Q9AW/gTy9fvjpfZW7Qow7PDU0DcuD2/MX6eO7Tz0F48cMD57KunpcY9r2J | |||
|
1319 | vOWOXutEvt+bNz+ZebNyafMAO+dT3JW1hyLXZng+yDr7/OvTFzff7eGA96bZ3jRbD3vsTbMfSadf | |||
|
1320 | 1ZT2ptnKlaW9aWZzaauayBNMs5VNZG+a7U2zvWm2N80evrDfXbx4eFVkcr9Y1ZLK4Dc5+evztxcF | |||
|
1321 | zinFlU1JR785p4feq0c+r2s6WzfrQy/W1c3k+y3F7RFOjXUFcfZOjdU7Nf76+vbL15fn12c/tXa2 | |||
|
1322 | x0f6cCy5x0f68cTXPT7STzezN+Ejvby9uXpo+ujxukqCeeib0/l0QY8eDhL0aWIEfXn66vx3t+f/ | |||
|
1323 | 7/W4JN+iHu8hgt7r9DYggpZzu7t5sORYVxcVDPx9g7bwKB+0HC9vT8/uTi//eHOxskJQe+O7euTP | |||
|
1324 | 1mX47PbAv7q7uDv7+q8Xlw9OjL6++Zx+s6rJbUxjc4bXr6/+NDjs2wdPcGWALcvxb87sEbfAavWW | |||
|
1325 | e3PY4WX4CI/aEwCcz1aWAvJYR/qqS2Efvgsr46c97spOh8CqJvRg3JXHs+2DnK13p2urmt27Wveu | |||
|
1326 | 1ifJ60eYEXfLiayHQZ5sRGBeq5rR3oz4KLNj3rcV4VZuRvzsVNbVCYq90vqzVloflVvjVpaI8h5y | |||
|
1327 | a9Y2pafl1qxsMu+cWbOyebxbXs1U2r94C/7Q3uDbG3yfqMH36caNVqfJ7U2+B05wXbXq79vkW9fs | |||
|
1328 | 9hbf6uTE3uLbW3wfq3m0t/jWbSntLT6x+Nbld91bfKu3+PYQET+9bfTgxKXVzecJqUtrrz59IuDF | |||
|
1329 | usyfPeDFykvQnygYbnST1jOjJ4iG9Ym5d4fvWJcc+PkiK/7u8ubmbbrz+qXY+pp8P1FwrW9C23Lr | |||
|
1330 | 1d0PD25u+hJsxn17//XLy9Ozf3x2yKSbb07PLu5++Ne1OUZlcp+OQ3SvFdjsXhGiwvOP4Ig9PNV+ | |||
|
1331 | fZN5ght75ez38/Vmb8q733LjyRNpy/6T+2R+e0G9t0/Evbw6kXv6PxdXrx/uzI/rckra6De3/fxy | |||
|
1332 | DOQxCJfrqgNcDP8db49LsNvKKptevPXkPpp5L+VUHz3garG1+e7rtQGL3J/GrowS6XH/sFO6qtlt | |||
|
1333 | jP+eAcvC+fnNNQnJj3J6W3N4Qj7QGrskP1GPXeOUPm331qvXty9Pz84fIzDWdalvTuBR2t7n0i51 | |||
|
1334 | r+7t1b2fm7q3qjnttb0naXsPdRKttDv0pw8Bryv/Uauu25P4xDWJXTv4b99/c3N9/vAdXNfdsT2L | |||
|
1335 | n2k04BMVhWud1j4BfNfMPg2X+acjFLRr+qp25b20mvo4cu8eLhNW6SZ6sjw4vb24+/rqfG1oTUu5 | |||
|
1336 | sJzdP95SYzwz7Vc1HQz73kTekqex1omkrYm8xWBYqWGBYd+byEMFwcp2JOzvzjXtxxPvzlXO6SnX | |||
|
1337 | 5nrNg/3V+VEI6v3VubaJvPvVuTLWeuzVuW/S+O4AAatPRnwXXvjod2XF6sbTI3OP2M09EtGH3tQn | |||
|
1338 | IxH9dZ2guns8oo8zLPV+AYlWD0H7BEfuJ3BZU5HKH07HQ99/5PL9Siexnt14smT//RjIq7dH8Fch | |||
|
1339 | 2B98dlZ6XW27cmgADxbih07+t+tPRlnVlHWCj5IYnxRQyWqtrvcSaFzftPYQH58gxMef1u3AeOJR | |||
|
1340 | Wu28ngCOcbQunfwJ6BhH6xIGj4bH+HRijpgJzspf14Z3+sTzv04d/CmBx5XL630q3yeoaC+lw7pq | |||
|
1341 | m58oHlYr9t6Lqu1X1of2Cco23bRIs//r7en1q5f/BIjP372+PvvLGk/yI7xsd6dfruwm3OVko1H+ | |||
|
1342 | x2PcN+FwXU74jRk8DnBtcNnv91y2Si47rofucF3zehKfPdvz2Tr5zH/E4uzDK6J/H7f/7y5u17Xz | |||
|
1343 | n7CZ+rP1h7Ab/lNjtdUeoacXNq6zNGvvD9nnmD4tm3HFwuh95TS+s6CmHf7N5eWqVmWK6Pe7Mo/q | |||
|
1344 | /pRX1pXnPXR/WtuUntb96civbDrv3P9pdTN5tw5Q/3lz8+Kr29OVXbj79k/zUWn/9Ivf/Lt3X/zb | |||
|
1345 | 9QtrAwVSBuWLP95c/3nMiHCejpj87Pyri+vlXxz88Rt6R+K/+vyHqy9vLgcL3N7efHfof3XgDn8z | |||
|
1346 | /vn7dwevD2Ye2N9/GP/xv8Yf/nuQvjtMh384/D//1x2+wJN/OfD5sB5eHRzRv0/o30f4w+Lf+Nf1 | |||
|
1347 | ePov45/fjyfSeNfVQT1Opdc4/nx50I6ddzXRnz8fT/1p/PPVgU/HLuVOT3t/HFzxh/7Y5Vj9YT0u | |||
|
1348 | LZRwGI5b9rkc5uPUW06H6bjm3Mrh2Xh/8K1meqf+7RH+OrU2SPqCI7zBja/oF47wiTAGNj9/dvDy | |||
|
1349 | 4G8Hv/hi7Pzdxub+4gtllLGo8c9j185vrwGMc3v3V+GWX3yRtx/5y1j9V3e3FBCYD7rDXz+7ubnc | |||
|
1350 | fNk1fBC/f33xglnhF18MLvjioB/+8leHf//PBUPwVr4Pbnh2890GJ+j/eFs88cU/Hswf/Tg0HwYz | |||
|
1351 | lOOQewWv9OPUSozYjcEBoR624+pTS9iL1Hooh+UY/z344biHHHocO3DkjnMtvobDftxqGFs+3phy | |||
|
1352 | 9PEwjse6r4fjkdZK9f0wDoaqtRw+H9x2XHwO46Gxm24woz+OJYZ2GNr49fjUfxyE4+6D94cxHHtf | |||
|
1353 | 6mCtUOL4dxzvx2v/46AcRzeY9TCMyfQxrHLcaxqsEvxx870dfju4KcfuyqHPx9n7MGZUah08NH5Q | |||
|
1354 | E/FWrePjaXw8DZ58fuDHx3oPh/E4xNjGE+G4RofhNRfGcvnIf+/GKYljUmMFBqnH8Q== | |||
|
1355 | ]]> | |||
|
1356 | <![CDATA[ | |||
|
1357 | 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 | |||
|
1429 | ]]> | |||
|
1430 | <![CDATA[ | |||
|
1431 | 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 | |||
|
1503 | ]]> | |||
|
1504 | <![CDATA[ | |||
|
1505 | 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 | |||
|
1577 | ]]> | |||
|
1578 | <![CDATA[ | |||
|
1579 | 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 | |||
|
1651 | ]]> | |||
|
1652 | <![CDATA[ | |||
|
1653 | 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 | |||
|
1725 | ]]> | |||
|
1726 | <![CDATA[ | |||
|
1727 | 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 | |||
|
1799 | ]]> | |||
|
1800 | <![CDATA[ | |||
|
1801 | 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 | |||
|
1873 | ]]> | |||
|
1874 | <![CDATA[ | |||
|
1875 | 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 | |||
|
1947 | ]]> | |||
|
1948 | <![CDATA[ | |||
|
1949 | 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 | |||
|
2021 | ]]> | |||
|
2022 | <![CDATA[ | |||
|
2023 | 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 | |||
|
2095 | ]]> | |||
|
2096 | <![CDATA[ | |||
|
2097 | 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 | |||
|
2169 | ]]> | |||
|
2170 | <![CDATA[ | |||
|
2171 | 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 | |||
|
2243 | ]]> | |||
|
2244 | <![CDATA[ | |||
|
2245 | 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 | |||
|
2317 | ]]> | |||
|
2318 | <![CDATA[ | |||
|
2319 | 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 | |||
|
2391 | ]]> | |||
|
2392 | <![CDATA[ | |||
|
2393 | 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 | |||
|
2465 | ]]> | |||
|
2466 | <![CDATA[ | |||
|
2467 | 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 | |||
|
2539 | ]]> | |||
|
2540 | <![CDATA[ | |||
|
2541 | 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 | |||
|
2613 | ]]> | |||
|
2614 | <![CDATA[ | |||
|
2615 | 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 | |||
|
2687 | ]]> | |||
|
2688 | <![CDATA[ | |||
|
2689 | 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 | |||
|
2761 | ]]> | |||
|
2762 | <![CDATA[ | |||
|
2763 | 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 | |||
|
2835 | ]]> | |||
|
2836 | <![CDATA[ | |||
|
2837 | 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 | |||
|
2909 | ]]> | |||
|
2910 | <![CDATA[ | |||
|
2911 | +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 | |||
|
2983 | ]]> | |||
|
2984 | <![CDATA[ | |||
|
2985 | ebaczheXXFmYfjzzx7MZOeLTTLS6bLS6EZ5mISlXdywdv6vffwj5/16S/224apb6js+e5OEwFw61 | |||
|
2986 | 7/Pp6ezyefRoGO2IV/f26Xp+wty36y7+w6QBmZ3mu9j4Sa/hzjawmD+GSHGxwjzMG5T9eR5BdulW | |||
|
2987 | 6Wfu/ur7paQWDdvrgj5d7nK9fJG4ouUqXdazL1bL1dHL9epktqt/u82jxaeGxy66U69x4NR9dqkl | |||
|
2988 | 5tqxVBd890of3E47QDpTNMl+1k9Uf2l9v1p/ey/T8i/4Io/BI/FQPFge9UyUER6LeTzEV0hi8RUy | |||
|
2989 | ari6lht93ZVs9XoeUGt36T0XrO8DWFnvPlt9d/mX2eUnm/6K7qXBN5nZxLH9tfbta/PtGAl692i9 | |||
|
2990 | ejbdPJy+mq2vNR/lKb7mdAwzedF+f73ZeTyYi15r+wBok5rsg+N+G82fz6MSciUz2T3Bl3KGcqbG | |||
|
2991 | B/T1vVej6xABEpSLsmMQLmQa1wimvGwr35+dbeZLjc4azq6/dAKwPX/EVnmNu0K3NA3vuBsHV/tl | |||
|
2992 | g7qApeQDvOxx3RewO4x52k7T/fXjK3a72S67rV7n2olHP5NoEQne76fD6anEg8/f7Dp4eLmFuJBK | |||
|
2993 | rnF1JCEDB+/uOh74py/7/k96OXCyeTmbqNdl0vcEQzibfP9ytpycTb/D+Zkuc1i8CVZ4Mj0DWTDz | |||
|
2994 | +g+kQOCDSS+X4pX9v8uXvVqdT0775Zn0h2YmM8VPy+teAAZxXnzoo0n/sfTosh8tsF76VxzNJnPq | |||
|
2995 | KNPJYvoKQce9eNhvGzmQZ+dHL9G9B8v7NOwMr5GvLfsJPe97t3o+fH5+NjlffgtctYPrMcL+1Ufr | |||
|
2996 | +em1Db/xOQUze7Ud9L5r1frWuYx6geF6LNL+afbafD1jTEXPrth9P/oCuYbW0p/vP82eIYgzWYN6 | |||
|
2997 | uvDsw6QbbqnhT6bfzb7od/S8P9Z3S3tSarUVZvNy9f1v58dblohubFU6nS6jo+v2cASkTzDvr0Qx | |||
|
2998 | Hmvjuc58QYz79eyEvXa7ONscHA2h0NFG9mD57QSAHZl5zFw43OXY1DpuIRkSDBHTvl6CTen/95f/ | |||
|
2999 | +tf/+M8/ffJvv57++aPfuX/98s6936w/P3n5qxfLf/rdZ//00e1/O5xPD87+pf7jbz+t//lXv/nj | |||
|
3000 | 5//1hf/fv3r4t3/74jfr86Pms0/tF+0Hxvt/rqqz+3+//+Kj6l9+8+v/e/Dvv/nPj07PfnP2e/vx | |||
|
3001 | rQ9+8+uH/7SOjX63uffit//98Df/6WdPDuef/NfR/YODf3ux9amHx3/pv9fc/+yDXzX/5/PN/b9/ | |||
|
3002 | fc//nzsf3T1ZPTzrd8rm5X/8V/3P55/d9//yp3t/X/zbn259cP959btnO1/2L033vPnqv//6t7tP | |||
|
3003 | Dw++uvijebtfff2b//z2s69/86uzg5P/uP/RB+ef3f78+PmtDzhZn/2//aG4//zrP/3/7H3XdupK | |||
|
3004 | t+YT8BDkDArknCRyxgRjosEJY2PCGOeqn72rSllIQoTVf5/TfbHXxkhUrpm/OcO578z3MPaW+zjm | |||
|
3005 | P8LPuGQ55rbCK177yyTS9gHTDhjyIT99n/6CT7a/QnlVNua8kS9Ltus1/zBjGC5WJ4M1+uVwv1Kv | |||
|
3006 | wbYj/xGYxRNZK2lz5xqeuTuTtz/R+fXJlepXzB/x19fFBn76dFNvtQ+mZxzzL8L7T8s89jmtrHLf | |||
|
3007 | 1rTdu3e/nLK1ru0Pjt+ZiVc+SIM1FO9PMtmfV/vWnazH/eHtS/IzHPYf3sjs/rWMuzcxnG/xtVA5 | |||
|
3008 | 9MGyhe3r8IDEVrHPvH8B9hevJx1ezzr3HW5tmRmMatZMvpwwDyhPNHgA+1Ieh8ypcP536k70V+MY | |||
|
3009 | sTRPULOpHyuYUCrkMsMtGYcGofYPXKdUbuMMedmj2V/VMHxirhf8i4SNNrqf97CXEHwwRa2gVwxW | |||
|
3010 | bGkqB9Bnd4pOsJ8SA6rKvJ73UHOmMWJElMHRHWLuVIryEIX0e5JtZ5BMxFdfjSnaSX7AoL1mLsj2 | |||
|
3011 | Al7KVfgBTIQB4I5kB760DqDvgsZcYYaWGlDpdCD0HPp6zfYKX+7Cm7/6Ry0WdksutHxqJ0qFWSrb | |||
|
3012 | +3g9ZluW13q2R5Bg97PhycgMfrN6pobz9IlfIubUSo7pdCM0Fvn27Uvcho1+C29daoXWEzS7cLpT | |||
|
3013 | 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 | |||
|
3057 | ]]> | |||
|
3058 | <![CDATA[ | |||
|
3059 | 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 | |||
|
3131 | ]]> | |||
|
3132 | <![CDATA[ | |||
|
3133 | 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 | |||
|
3205 | ]]> | |||
|
3206 | <![CDATA[ | |||
|
3207 | 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 | |||
|
3279 | ]]> | |||
|
3280 | <![CDATA[ | |||
|
3281 | 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 | |||
|
3353 | ]]> | |||
|
3354 | <![CDATA[ | |||
|
3355 | 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 | |||
|
3427 | ]]> | |||
|
3428 | <![CDATA[ | |||
|
3429 | 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 | |||
|
3471 | vXF/exk7gstuhPLu559ULdwyBb+QzcX+zy+4XzjqpALRI2R68xvVsczdZeOHQPlNV73CiW5nL5hz | |||
|
3472 | 1659cKPET+9v7obJhV/ZoL6DgeTFK57N61eWfGwNXlAJwoub0IvxK/Zg4dXdgXjx/ozZoPzwlF/O | |||
|
3473 | TwnB3Lv9Aw3A4yWJvbj4kRLTuPLxsny1a+OkyOMBGS48WdP1uer+5bsGXyiSnbp/4xk+PpW0P+5e | |||
|
3474 | wpMlnzrnW22dK6/EmNLyI7oP7Da0wFWFiVbITcAYALpdTz3ZracviKzBtnGWghHUnfoR5mWLVuC3 | |||
|
3475 | y5wpjTonOn/MrW8NAaqF9I/zjSgVrka81iAKepmf7NPRanuMXO3een507vOdN9tPXDxZnLX2Qb87 | |||
|
3476 | en/TV4HX701w43+zQghrN8qtoLqX3lytPR3iJMzLFe+X0jKLj+9w8cVL1QunvOUvydH5hr9M/GUd | |||
|
3477 | iTtX9wr0iT3FjS2qAm9WwrdvsvhL1Dv9Qb//zHXsjZGv1r6c8+3zy195KMt8902HsiRO94AzpY34 | |||
|
3478 | iGUhVPNOxV9apnu0a8c67L2FcS777XAiX7xKyMnk4Z4PPEAzdW3Inc6LATaf5PcfGDbFqR6MHoH/ | |||
|
3479 | 57zxFfbCfEAexm9U0eCP1e/kijn7BN6jdT4xuLY/gjm+eXnl8+rHRbwD4Q00vd8PgttRXguzPJ9e | |||
|
3480 | XHnbcdrfEK3XH80xDVliGBliffp1UbT45foQvYJfL0lsdAkb6a/hTBW1vLu6svbw2resYcLMufrL | |||
|
3481 | 19tff9m/i5G7P6PpWSTxO8ni8hFcyXEpW7l38xLWg0foxpXeMN+7e9lJbNEb5nujlSz/+Cs2zceZ | |||
|
3482 | t1TFiGlr9g7/93qvLOu8X1ZV3l95dvR152D94PPu5/3+cu9qb+XWA6Ve7G9/u3uws/Pbzv8crn3b | |||
|
3483 | Otrb2T/sX+mv3Ho+fPCgytd2tr5t7/SX3SaMMnpdy+lIwozzOZ0RWPtU3/ty/+yz1c21T9nr682Z | |||
|
3484 | sQvff/uBE8EwIMAJsgUMnr3FSeHnZy7e/7mMj6/Raz4j/N5WVJFcj6WzazsHt4/uXHo0etkwYmH5 | |||
|
3485 | 8b3V3sKdl7d3nt1c+bl7beX+rTe/rr25+/vzmyuH2bcQHxaLtL7HCPe4HQ3Owz/vF7msXPgdD1uH | |||
|
3486 | YceZc2vVypnlxZs3EX2Iq14euwlAeHED179sn1l+9Or+maUfZw9kzNGtdfAxRwX18qq3jXc3NoKa | |||
|
3487 | n3wjyxIuuFve3b3uGhs1g5UvbknSOaiAe4cYH15xTWhnc+Oi//XXzpIPlUAVwvDIJT8kpccrF7GG | |||
|
3488 | 33dmERvTyHoS0KwOQyt8kHFdhyHpYR368XJR9P2iBNdXL4kXm+eGq+HF8HLiFNx+8+JGePVgRbao | |||
|
3489 | q7u3wot1FV+89+up762y1/Fe5nxvuEwv3ALG9zLvew8GaKOW/D1Z2NTe/fzrCF48U/QIbtQZeHxy | |||
|
3490 | k2lvwBcWmueTu+QcLbGBRLtUuYFa5ZdiPFlfQdO2jCs7z8HjCyK75JSz8uStAdfyC/Y7v10STsH2 | |||
|
3491 | +QF0Bq9Hl2OmH5KDUd+AxCbbsUKeX/xD7ljBwfn+8NKxm+X8kpxJKYaBRXJ4680LO7+tPdhePcOn | |||
|
3492 | kcVeXosDJMDZ+bpx1lev15s2Fn1TVq+P6+SbLvvoxscXK77af3yV0anS8Out8l3Tx/f6ev1Ag64+ | |||
|
3493 | buJkpv+9bYmEV+2XZ0Txsl9j9OXVSoiov83Cr/dc2z5Kp/XLthEv0GmFslBk/sOjHwvBFTjpofSr | |||
|
3494 | gWgvW76yHL7PfPzicFOFX9ua0/k+ZIqofk8YXLeRQITe5GTQcctl3dFX5YUr579pC9b3x+9gbpfW | |||
|
3495 | LtW5vQa/rj3sLYA5/n4DXj16uHa0+WQdXq3euFufe7Y9fPfw7P3rP87tjZJdHrM4IW65t3NDTs8J | |||
|
3496 | oSMEvBtyek4IHuUY3JDTc0Igl+iGzOiE/HvNaU1lp+GqR+e96QmVirryS6vP72xn2wv7awcHq1vn | |||
|
3497 | pUNAte3ary/pM0qsh799tPKqeULP/iiOHgUSHxaaJI4+PvmBc3ZHzks5/0Y/FOE9ws6svkZ//dkh | |||
|
3498 | Tvq9gMSfrjWOpH39RJLIv91tkjAP3jKJ50SCw+FOss7K3d244GZyVtZ3MER37/1uhm7Jokc3fyx5 | |||
|
3499 | 7MsvNIufx9q9nUgeuncq89GHK4qaDwrjz6WbL5c2QdmX7sKLwWVyMXoL9Grx4o23X1l2bhkEMn/p | |||
|
3500 | 2tU9jKW9OoKSLr5DH+0X9+Lq1xePkdFf8MVrV6p0NoI08OrMt5U7uIjp1i93Dg5uvw== | |||
|
3501 | ]]> | |||
|
3502 | <![CDATA[ | |||
|
3503 | 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 | |||
|
3575 | ]]> | |||
|
3576 | <![CDATA[ | |||
|
3577 | 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 | |||
|
3649 | ]]> | |||
|
3650 | <![CDATA[ | |||
|
3651 | NwJCuB0JhwGFXybm2nRJkwsBQyQkyt0VuwHwi46oYTvI4mnp/r7bAOHonW5N9IRRze4e1zymMH5a | |||
|
3652 | ke5LEJBr4pWbtvAYVg9JmZ8N09EpiyMB+WIw4VDSmHsAhm0JdbX4NPc9hjh3ptOGWGYtWsIA+Bcq | |||
|
3653 | ZMKfKyly7eYuVBCxiaLSFPiPQJRVhCRrASrcncBMuShCrchjEi8rLnYhhU6LhiOGt+okpBmwTMi0 | |||
|
3654 | JdMoCFMOZW3JaNgW2+SGIuUpHMzfkJMAmVXxeScoP58rgGNnD+BMaTfENeN0909qMXTdtBh0cYy0 | |||
|
3655 | GBFgixEgYTEi5C1GJBwtRsidLQb2MA2LgVBqMdzFKoJyfOZWECDRCiIUihEJx5KG3IXFaEqoY5hR | |||
|
3656 | pLnvMSRyj3TakJBZkxYPLoq06u+Jz5UUecNi6KphMSLAsgqQYC1CwWJEytFixAJFi8HFLqTQU4vh | |||
|
3657 | rnOSpIuqVZuKqi2ZZkEi5VjWpoyGbbFNPHxoKNANHloqFKA0Dh1q7KA596ynnf2UnqksRvt+Cuv0 | |||
|
3658 | WfuIIU0u4lwkzUqOu6PCnS9MH+A+WwqkmWqgigysPc2oVp4QnQCK4WJt6URw48+C2eK8cKcjXUdR | |||
|
3659 | Dcqc5hFDoq90B0ZFV+cwMeXP4ZBZeoamnwaFr/LazLi6JRWeB5CPY666mC7PCVeH4sWPYNbo4haa | |||
|
3660 | wjbHa9Clgkq3RxerBA2WTpyKDlByGjRO6OhlBw2qoMGYl9egwhlrr0EVNIgXwwQNRmJ11GDM0jP0 | |||
|
3661 | 39Ugy83/RhZOT3lThHInPiLmNC40mfhEitPIfOIlfqd3m0qBQecQfxbB529/7xx83fxnouhzTDtZ | |||
|
3662 | +Fm17XNn/FnH+LPtcwSaWqamK08v5+7XiH4phb9cw+Wf7v3PYyQ4Rc81v7owph7C6bPuaPi/rLH/ | |||
|
3663 | lQq78GRzd+e3g83PX6G67v7c/Hunv7m/j0Zn5zu86e8e7PwELnb6P//89h9E4JOQfGHhzvrd3v8D | |||
|
3664 | A/7B9w== | |||
|
3665 | ]]> | |||
|
3666 | </i:pgf> | |||
|
3667 | </svg> |
1 | NO CONTENT: new file 100644, binary diff hidden |
|
NO CONTENT: new file 100644, binary diff hidden |
1 | NO CONTENT: new file 100644, binary diff hidden |
|
NO CONTENT: new file 100644, binary diff hidden |
1 | NO CONTENT: new file 100644, binary diff hidden |
|
NO CONTENT: new file 100644, binary diff hidden |
1 | NO CONTENT: new file 100644, binary diff hidden |
|
NO CONTENT: new file 100644, binary diff hidden |
1 | NO CONTENT: new file 100644, binary diff hidden |
|
NO CONTENT: new file 100644, binary diff hidden |
1 | NO CONTENT: new file 100644, binary diff hidden |
|
NO CONTENT: new file 100644, binary diff hidden |
@@ -0,0 +1,94 b'' | |||||
|
1 | .. _parallel_connections: | |||
|
2 | ||||
|
3 | ============================================== | |||
|
4 | Connection Diagrams of The IPython ZMQ Cluster | |||
|
5 | ============================================== | |||
|
6 | ||||
|
7 | This is a quick summary and illustration of the connections involved in the ZeroMQ based IPython cluster for parallel computing. | |||
|
8 | ||||
|
9 | All Connections | |||
|
10 | =============== | |||
|
11 | ||||
|
12 | The Parallel Computing code is currently under development in Min RK's IPython fork_ on GitHub. | |||
|
13 | ||||
|
14 | .. _fork: http://github.com/minrk/ipython | |||
|
15 | ||||
|
16 | The IPython cluster consists of a Controller and one or more clients and engines. The goal of the Controller is to manage and monitor the connections and communications between the clients and the engines. | |||
|
17 | ||||
|
18 | It is important for security/practicality reasons that all connections be inbound to the controller process. The arrows in the figures indicate the direction of the connection. | |||
|
19 | ||||
|
20 | ||||
|
21 | .. figure:: figs/allconnections.png | |||
|
22 | :width: 432px | |||
|
23 | :alt: IPython cluster connections | |||
|
24 | :align: center | |||
|
25 | ||||
|
26 | All the connections involved in connecting one client to one engine. | |||
|
27 | ||||
|
28 | The Controller consists of two ZMQ Devices - both MonitoredQueues, one for Tasks (load balanced, engine agnostic), one for Multiplexing (explicit targets), a Python device for monitoring (the Heartbeat Monitor). | |||
|
29 | ||||
|
30 | ||||
|
31 | ||||
|
32 | Registration | |||
|
33 | ------------ | |||
|
34 | ||||
|
35 | .. figure:: figs/regfade.png | |||
|
36 | :width: 432px | |||
|
37 | :alt: IPython Registration connections | |||
|
38 | :align: center | |||
|
39 | ||||
|
40 | Engines and Clients only need to know where the Registrar ``XREP`` is located to start connecting. | |||
|
41 | ||||
|
42 | Once a controller is launched, the only information needed for connecting clients and/or engines to the controller is the IP/port of the ``XREP`` socket called the Registrar. This socket handles connections from both clients and engines, and replies with the remaining information necessary to establish the remaining connections. | |||
|
43 | ||||
|
44 | Heartbeat | |||
|
45 | --------- | |||
|
46 | ||||
|
47 | .. figure:: figs/hbfade.png | |||
|
48 | :width: 432px | |||
|
49 | :alt: IPython Registration connections | |||
|
50 | :align: center | |||
|
51 | ||||
|
52 | The heartbeat sockets. | |||
|
53 | ||||
|
54 | The heartbeat process has been described elsewhere. To summarize: the controller publishes a distinct message periodically via a ``PUB`` socket. Each engine has a ``zmq.FORWARDER`` device with a ``SUB`` socket for input, and ``XREQ`` socket for output. The ``SUB`` socket is connected to the ``PUB`` socket labeled *HB(ping)*, and the ``XREQ`` is connected to the ``XREP`` labeled *HB(pong)*. This results in the same message being relayed back to the Heartbeat Monitor with the addition of the ``XREQ`` prefix. The Heartbeat Monitor receives all the replies via an ``XREP`` socket, and identifies which hearts are still beating by the ``zmq.IDENTITY`` prefix of the ``XREQ`` sockets. | |||
|
55 | ||||
|
56 | Queues | |||
|
57 | ------ | |||
|
58 | ||||
|
59 | .. figure:: figs/queuefade.png | |||
|
60 | :width: 432px | |||
|
61 | :alt: IPython Queue connections | |||
|
62 | :align: center | |||
|
63 | ||||
|
64 | Load balanced Task queue on the left, explicitly multiplexed queue on the right. | |||
|
65 | ||||
|
66 | The controller has two MonitoredQueue devices. These devices are primarily for relaying messages between clients and engines, but the controller needs to see those messages for its own purposes. Since no Python code may exist between the two sockets in a queue, all messages sent through these queues (both directions) are also sent via a ``PUB`` socket to a monitor, which allows the Controller to monitor queue traffic without interfering with it. | |||
|
67 | ||||
|
68 | For tasks, the engine need not be specified. Messages sent to the ``XREP`` socket from the client side are assigned to an engine via ZMQ's ``XREQ`` round-robin load balancing. Engine replies are directed to specific clients via the IDENTITY of the client, which is received as a prefix at the Engine. | |||
|
69 | ||||
|
70 | For Multiplexing, ``XREP`` is used for both in and output sockets in the device. Clients must specify the destination by the ``zmq.IDENTITY`` of the ``PAIR`` socket connected to the downstream end of the device. | |||
|
71 | ||||
|
72 | At the Kernel level, both of these PAIR sockets are treated in the same way as the ``REP`` socket in the serial version (except using ZMQStreams instead of explicit sockets). | |||
|
73 | ||||
|
74 | Client connections | |||
|
75 | ------------------ | |||
|
76 | ||||
|
77 | .. figure:: figs/queryfade.png | |||
|
78 | :width: 432px | |||
|
79 | :alt: IPython client query connections | |||
|
80 | :align: center | |||
|
81 | ||||
|
82 | Clients connect to an ``XREP`` socket to query the controller | |||
|
83 | ||||
|
84 | The controller listens on an ``XREP`` socket for queries from clients as to queue status, and control instructions. Clients can connect to this via a PAIR socket or ``XREQ``. | |||
|
85 | ||||
|
86 | .. figure:: figs/notiffade.png | |||
|
87 | :width: 432px | |||
|
88 | :alt: IPython Registration connections | |||
|
89 | :align: center | |||
|
90 | ||||
|
91 | Engine registration events are published via a ``PUB`` socket. | |||
|
92 | ||||
|
93 | The controller publishes all registration/unregistration events via a ``PUB`` socket. This allows clients to stay up to date with what engines are available by subscribing to the feed with a ``SUB`` socket. Other processes could selectively subscribe to just registration or unregistration events. | |||
|
94 |
@@ -0,0 +1,209 b'' | |||||
|
1 | .. _parallel_messages: | |||
|
2 | ||||
|
3 | Messaging for Parallel Computing | |||
|
4 | ================================ | |||
|
5 | ||||
|
6 | This is an extension of the :ref:`messaging <messaging>` doc. Diagrams of the connections can be found in the :ref:`parallel connections <parallel_connections>` doc. | |||
|
7 | ||||
|
8 | ||||
|
9 | ||||
|
10 | ZMQ messaging is also used in the parallel computing IPython system. All messages to/from kernels remain the same as the single kernel model, and are forwarded through a ZMQ Queue device. The controller receives all messages and replies in these channels, and saves results for future use. | |||
|
11 | ||||
|
12 | The Controller | |||
|
13 | -------------- | |||
|
14 | ||||
|
15 | The controller is the central process of the IPython parallel computing model. It has 3 Devices: | |||
|
16 | ||||
|
17 | * Heartbeater | |||
|
18 | * Multiplexed Queue | |||
|
19 | * Task Queue | |||
|
20 | ||||
|
21 | and 3 sockets: | |||
|
22 | ||||
|
23 | * ``XREP`` for both engine and client registration | |||
|
24 | * ``PUB`` for notification of engine changes | |||
|
25 | * ``XREP`` for client requests | |||
|
26 | ||||
|
27 | ||||
|
28 | ||||
|
29 | Registration (``XREP``) | |||
|
30 | *********************** | |||
|
31 | ||||
|
32 | The first function of the Controller is to facilitate and monitor connections of clients and engines. Both client and engine registration are handled by the same socket, so only one ip/port pair is needed to connect any number of connections and clients. | |||
|
33 | ||||
|
34 | Engines register with the ``zmq.IDENTITY`` of their two ``XREQ`` sockets, one for the queue, which receives execute requests, and one for the heartbeat, which is used to monitor the survival of the Engine process. | |||
|
35 | ||||
|
36 | Message type: ``registration_request``:: | |||
|
37 | ||||
|
38 | content = { | |||
|
39 | 'queue' : 'abcd-1234-...', # the queue XREQ id | |||
|
40 | 'heartbeat' : '1234-abcd-...' # the heartbeat XREQ id | |||
|
41 | } | |||
|
42 | ||||
|
43 | The Controller replies to an Engine's registration request with the engine's integer ID, and all the remaining connection information for connecting the heartbeat process, and kernel socket(s). The message status will be an error if the Engine requests IDs that already in use. | |||
|
44 | ||||
|
45 | Message type: ``registration_reply``:: | |||
|
46 | ||||
|
47 | content = { | |||
|
48 | 'status' : 'ok', # or 'error' | |||
|
49 | # if ok: | |||
|
50 | 'id' : 0, # int, the engine id | |||
|
51 | 'queue' : 'tcp://127.0.0.1:12345', # connection for engine side of the queue | |||
|
52 | 'heartbeat' : (a,b), # tuple containing two interfaces needed for heartbeat | |||
|
53 | 'task' : 'tcp...', # addr for task queue, or None if no task queue running | |||
|
54 | # if error: | |||
|
55 | 'reason' : 'queue_id already registered' | |||
|
56 | } | |||
|
57 | ||||
|
58 | Clients use the same socket to start their connections. Connection requests from clients need no information: | |||
|
59 | ||||
|
60 | Message type: ``connection_request``:: | |||
|
61 | ||||
|
62 | content = {} | |||
|
63 | ||||
|
64 | The reply to a Client registration request contains the connection information for the multiplexer and load balanced queues, as well as the address for direct controller queries. If any of these addresses is `None`, that functionality is not available. | |||
|
65 | ||||
|
66 | Message type: ``connection_reply``:: | |||
|
67 | ||||
|
68 | content = { | |||
|
69 | 'status' : 'ok', # or 'error' | |||
|
70 | # if ok: | |||
|
71 | 'queue' : 'tcp://127.0.0.1:12345', # connection for client side of the queue | |||
|
72 | 'task' : 'tcp...', # addr for task queue, or None if no task queue running | |||
|
73 | 'controller' : 'tcp...' # addr for controller methods, like queue_request, etc. | |||
|
74 | } | |||
|
75 | ||||
|
76 | Heartbeat | |||
|
77 | ********* | |||
|
78 | ||||
|
79 | The controller uses a heartbeat system to monitor engines, and track when they become unresponsive. As described in :ref:`messages <messages>`, and shown in :ref:`connections <parallel_connections>`. | |||
|
80 | ||||
|
81 | Notification (``PUB``) | |||
|
82 | ********************** | |||
|
83 | ||||
|
84 | The controller published all engine registration/unregistration events on a PUB socket. This allows clients to have up-to-date engine ID sets without polling. Registration notifications contain both the integer engine ID and the queue ID, which is necessary for sending messages via the Multiplexer Queue. | |||
|
85 | ||||
|
86 | Message type: ``registration_notification``:: | |||
|
87 | ||||
|
88 | content = { | |||
|
89 | 'id' : 0, # engine ID that has been registered | |||
|
90 | 'queue' : 'engine_id' # the IDENT for the engine's queue | |||
|
91 | } | |||
|
92 | ||||
|
93 | Message type : ``unregistration_notification``:: | |||
|
94 | ||||
|
95 | content = { | |||
|
96 | 'id' : 0 # engine ID that has been unregistered | |||
|
97 | } | |||
|
98 | ||||
|
99 | ||||
|
100 | Client Queries (``XREP``) | |||
|
101 | ************************* | |||
|
102 | ||||
|
103 | The controller monitors and logs all queue traffic, so that clients can retrieve past results or monitor pending tasks. Currently, this information resides in memory on the Controller, but will ultimately be offloaded to a database over an additional ZMQ connection. The interface should remain the same or at least similar. | |||
|
104 | ||||
|
105 | :func:`queue_request` requests can specify multiple engines to query via the `targets` element. A verbose flag can be passed, to determine whether the result should be the list of `msg_ids` in the queue or simply the length of each list. | |||
|
106 | ||||
|
107 | Message type: ``queue_request``:: | |||
|
108 | ||||
|
109 | content = { | |||
|
110 | 'verbose' : True, # whether return should be lists themselves or just lens | |||
|
111 | 'targets' : [0,3,1] # list of ints | |||
|
112 | } | |||
|
113 | ||||
|
114 | The content of a reply to a :func:queue_request request is a dict, keyed by the engine IDs. Note that they will be the string representation of the integer keys, since JSON cannot handle number keys. | |||
|
115 | ||||
|
116 | Message type: ``queue_reply``:: | |||
|
117 | ||||
|
118 | content = { | |||
|
119 | '0' : {'completed' : 1, 'queue' : 7}, | |||
|
120 | '1' : {'completed' : 10, 'queue' : 1} | |||
|
121 | } | |||
|
122 | ||||
|
123 | Clients can request individual results directly from the controller. This is primarily for use gathering results of executions not submitted by the particular client, as the client will have all its own results already. Requests are made by msg_id, and can contain one or more msg_id. | |||
|
124 | ||||
|
125 | Message type: ``result_request``:: | |||
|
126 | ||||
|
127 | content = { | |||
|
128 | 'msg_ids' : [uuid,'...'] # list of strs | |||
|
129 | } | |||
|
130 | ||||
|
131 | The :func:`result_request` reply contains the content objects of the actual execution reply messages | |||
|
132 | ||||
|
133 | ||||
|
134 | Message type: ``result_reply``:: | |||
|
135 | ||||
|
136 | content = { | |||
|
137 | 'status' : 'ok', # else error | |||
|
138 | # if ok: | |||
|
139 | msg_id : msg, # the content dict is keyed by msg_ids, | |||
|
140 | # values are the result messages | |||
|
141 | 'pending' : ['msg_id','...'], # msg_ids still pending | |||
|
142 | # if error: | |||
|
143 | 'reason' : "explanation" | |||
|
144 | } | |||
|
145 | ||||
|
146 | Clients can also instruct the controller to forget the results of messages. This can be done by message ID or engine ID. Individual messages are dropped by msg_id, and all messages completed on an engine are dropped by engine ID. | |||
|
147 | ||||
|
148 | If the msg_ids element is the string ``'all'`` instead of a list, then all completed results are forgotten. | |||
|
149 | ||||
|
150 | Message type: ``purge_request``:: | |||
|
151 | ||||
|
152 | content = { | |||
|
153 | 'msg_ids' : ['id1', 'id2',...], # list of msg_ids or 'all' | |||
|
154 | 'engine_ids' : [0,2,4] # list of engine IDs | |||
|
155 | } | |||
|
156 | ||||
|
157 | The reply to a purge request is simply the status 'ok' if the request succeeded, or an explanation of why it failed, such as requesting the purge of a nonexistent or pending message. | |||
|
158 | ||||
|
159 | Message type: ``purge_reply``:: | |||
|
160 | ||||
|
161 | content = { | |||
|
162 | 'status' : 'ok', # or 'error' | |||
|
163 | ||||
|
164 | # if error: | |||
|
165 | 'reason' : "KeyError: no such msg_id 'whoda'" | |||
|
166 | } | |||
|
167 | ||||
|
168 | :func:`apply` and :func:`apply_bound` | |||
|
169 | ************************************* | |||
|
170 | ||||
|
171 | The `Namespace <http://gist.github.com/483294>`_ model suggests that execution be able to use the model:: | |||
|
172 | ||||
|
173 | client.apply(f, *args, **kwargs) | |||
|
174 | ||||
|
175 | which takes `f`, a function in the user's namespace, and executes ``f(*args, **kwargs)`` on a remote engine, returning the result (or, for non-blocking, information facilitating later retrieval of the result). This model, unlike the execute message which just uses a code string, must be able to send arbitrary (pickleable) Python objects. And ideally, copy as little data as we can. The `buffers` property of a Message was introduced for this purpose. | |||
|
176 | ||||
|
177 | Utility method :func:`build_apply_message` in :mod:`IPython.zmq.streamsession` wraps a function signature and builds the correct buffer format. | |||
|
178 | ||||
|
179 | Message type: ``apply_request``:: | |||
|
180 | ||||
|
181 | content = { | |||
|
182 | 'bound' : True # whether to execute in the engine's namespace or unbound | |||
|
183 | } | |||
|
184 | buffers = ['...'] # at least 3 in length | |||
|
185 | # as built by build_apply_message(f,args,kwargs) | |||
|
186 | ||||
|
187 | Message type: ``apply_reply``:: | |||
|
188 | ||||
|
189 | content = { | |||
|
190 | 'status' : 'ok' # 'ok' or 'error' | |||
|
191 | # other error info here, as in other messages | |||
|
192 | } | |||
|
193 | buffers = ['...'] # either 1 or 2 in length | |||
|
194 | # a serialization of the return value of f(*args,**kwargs) | |||
|
195 | # only populated if status is 'ok' | |||
|
196 | ||||
|
197 | ||||
|
198 | ||||
|
199 | ||||
|
200 | Implementation | |||
|
201 | -------------- | |||
|
202 | ||||
|
203 | There are a few differences in implementation between the `StreamSession` object used in the parallel computing fork and the `Session` object, the main one being that messages are sent in parts, rather than as a single serialized object. `StreamSession` objects also take pack/unpack functions, which are to be used when serializing/deserializing objects. These can be any functions that translate to/from formats that ZMQ sockets can send (buffers,bytes, etc.). | |||
|
204 | ||||
|
205 | Split Sends | |||
|
206 | *********** | |||
|
207 | ||||
|
208 | Previously, messages were bundled as a single json object and one call to :func:`socket.send_json`. Since the controller inspects all messages, and doesn't need to see the content of the messages, which can be large, messages are serialized and sent in pieces. All messages are sent in at least 3 parts: the header, the parent header, and the content. This allows the controller to unpack and inspect the (always small) header, without spending time unpacking the content unless the message is bound for the controller. Buffers are added on to the end of the message, and can be any objects that present the buffer interface. | |||
|
209 |
@@ -1,817 +1,839 b'' | |||||
1 | """Analysis of text input into executable blocks. |
|
1 | """Analysis of text input into executable blocks. | |
2 |
|
2 | |||
3 | The main class in this module, :class:`InputSplitter`, is designed to break |
|
3 | The main class in this module, :class:`InputSplitter`, is designed to break | |
4 | input from either interactive, line-by-line environments or block-based ones, |
|
4 | input from either interactive, line-by-line environments or block-based ones, | |
5 | into standalone blocks that can be executed by Python as 'single' statements |
|
5 | into standalone blocks that can be executed by Python as 'single' statements | |
6 | (thus triggering sys.displayhook). |
|
6 | (thus triggering sys.displayhook). | |
7 |
|
7 | |||
8 | A companion, :class:`IPythonInputSplitter`, provides the same functionality but |
|
8 | A companion, :class:`IPythonInputSplitter`, provides the same functionality but | |
9 | with full support for the extended IPython syntax (magics, system calls, etc). |
|
9 | with full support for the extended IPython syntax (magics, system calls, etc). | |
10 |
|
10 | |||
11 | For more details, see the class docstring below. |
|
11 | For more details, see the class docstring below. | |
12 |
|
12 | |||
|
13 | Syntax Transformations | |||
|
14 | ---------------------- | |||
|
15 | ||||
|
16 | One of the main jobs of the code in this file is to apply all syntax | |||
|
17 | transformations that make up 'the IPython language', i.e. magics, shell | |||
|
18 | escapes, etc. All transformations should be implemented as *fully stateless* | |||
|
19 | entities, that simply take one line as their input and return a line. | |||
|
20 | Internally for implementation purposes they may be a normal function or a | |||
|
21 | callable object, but the only input they receive will be a single line and they | |||
|
22 | should only return a line, without holding any data-dependent state between | |||
|
23 | calls. | |||
|
24 | ||||
|
25 | As an example, the EscapedTransformer is a class so we can more clearly group | |||
|
26 | together the functionality of dispatching to individual functions based on the | |||
|
27 | starting escape character, but the only method for public use is its call | |||
|
28 | method. | |||
|
29 | ||||
|
30 | ||||
13 | ToDo |
|
31 | ToDo | |
14 | ---- |
|
32 | ---- | |
15 |
|
33 | |||
|
34 | - Should we make push() actually raise an exception once push_accepts_more() | |||
|
35 | returns False? | |||
|
36 | ||||
16 | - Naming cleanups. The tr_* names aren't the most elegant, though now they are |
|
37 | - Naming cleanups. The tr_* names aren't the most elegant, though now they are | |
17 | at least just attributes of a class so not really very exposed. |
|
38 | at least just attributes of a class so not really very exposed. | |
18 |
|
39 | |||
19 | - Think about the best way to support dynamic things: automagic, autocall, |
|
40 | - Think about the best way to support dynamic things: automagic, autocall, | |
20 | macros, etc. |
|
41 | macros, etc. | |
21 |
|
42 | |||
22 | - Think of a better heuristic for the application of the transforms in |
|
43 | - Think of a better heuristic for the application of the transforms in | |
23 | IPythonInputSplitter.push() than looking at the buffer ending in ':'. Idea: |
|
44 | IPythonInputSplitter.push() than looking at the buffer ending in ':'. Idea: | |
24 | track indentation change events (indent, dedent, nothing) and apply them only |
|
45 | track indentation change events (indent, dedent, nothing) and apply them only | |
25 | if the indentation went up, but not otherwise. |
|
46 | if the indentation went up, but not otherwise. | |
26 |
|
47 | |||
27 | - Think of the cleanest way for supporting user-specified transformations (the |
|
48 | - Think of the cleanest way for supporting user-specified transformations (the | |
28 | user prefilters we had before). |
|
49 | user prefilters we had before). | |
29 |
|
50 | |||
30 | Authors |
|
51 | Authors | |
31 | ------- |
|
52 | ------- | |
32 |
|
53 | |||
33 | * Fernando Perez |
|
54 | * Fernando Perez | |
34 | * Brian Granger |
|
55 | * Brian Granger | |
35 | """ |
|
56 | """ | |
36 | #----------------------------------------------------------------------------- |
|
57 | #----------------------------------------------------------------------------- | |
37 | # Copyright (C) 2010 The IPython Development Team |
|
58 | # Copyright (C) 2010 The IPython Development Team | |
38 | # |
|
59 | # | |
39 | # Distributed under the terms of the BSD License. The full license is in |
|
60 | # Distributed under the terms of the BSD License. The full license is in | |
40 | # the file COPYING, distributed as part of this software. |
|
61 | # the file COPYING, distributed as part of this software. | |
41 | #----------------------------------------------------------------------------- |
|
62 | #----------------------------------------------------------------------------- | |
42 |
|
63 | |||
43 | #----------------------------------------------------------------------------- |
|
64 | #----------------------------------------------------------------------------- | |
44 | # Imports |
|
65 | # Imports | |
45 | #----------------------------------------------------------------------------- |
|
66 | #----------------------------------------------------------------------------- | |
46 | # stdlib |
|
67 | # stdlib | |
47 | import codeop |
|
68 | import codeop | |
48 | import re |
|
69 | import re | |
49 | import sys |
|
70 | import sys | |
50 |
|
71 | |||
51 | # IPython modules |
|
72 | # IPython modules | |
52 | from IPython.utils.text import make_quoted_expr |
|
73 | from IPython.utils.text import make_quoted_expr | |
53 |
|
74 | |||
54 | #----------------------------------------------------------------------------- |
|
75 | #----------------------------------------------------------------------------- | |
55 | # Globals |
|
76 | # Globals | |
56 | #----------------------------------------------------------------------------- |
|
77 | #----------------------------------------------------------------------------- | |
57 |
|
78 | |||
58 | # The escape sequences that define the syntax transformations IPython will |
|
79 | # The escape sequences that define the syntax transformations IPython will | |
59 | # apply to user input. These can NOT be just changed here: many regular |
|
80 | # apply to user input. These can NOT be just changed here: many regular | |
60 | # expressions and other parts of the code may use their hardcoded values, and |
|
81 | # expressions and other parts of the code may use their hardcoded values, and | |
61 | # for all intents and purposes they constitute the 'IPython syntax', so they |
|
82 | # for all intents and purposes they constitute the 'IPython syntax', so they | |
62 | # should be considered fixed. |
|
83 | # should be considered fixed. | |
63 |
|
84 | |||
64 | ESC_SHELL = '!' |
|
85 | ESC_SHELL = '!' | |
65 | ESC_SH_CAP = '!!' |
|
86 | ESC_SH_CAP = '!!' | |
66 | ESC_HELP = '?' |
|
87 | ESC_HELP = '?' | |
67 | ESC_HELP2 = '??' |
|
88 | ESC_HELP2 = '??' | |
68 | ESC_MAGIC = '%' |
|
89 | ESC_MAGIC = '%' | |
69 | ESC_QUOTE = ',' |
|
90 | ESC_QUOTE = ',' | |
70 | ESC_QUOTE2 = ';' |
|
91 | ESC_QUOTE2 = ';' | |
71 | ESC_PAREN = '/' |
|
92 | ESC_PAREN = '/' | |
72 |
|
93 | |||
73 | #----------------------------------------------------------------------------- |
|
94 | #----------------------------------------------------------------------------- | |
74 | # Utilities |
|
95 | # Utilities | |
75 | #----------------------------------------------------------------------------- |
|
96 | #----------------------------------------------------------------------------- | |
76 |
|
97 | |||
77 | # FIXME: These are general-purpose utilities that later can be moved to the |
|
98 | # FIXME: These are general-purpose utilities that later can be moved to the | |
78 | # general ward. Kept here for now because we're being very strict about test |
|
99 | # general ward. Kept here for now because we're being very strict about test | |
79 | # coverage with this code, and this lets us ensure that we keep 100% coverage |
|
100 | # coverage with this code, and this lets us ensure that we keep 100% coverage | |
80 | # while developing. |
|
101 | # while developing. | |
81 |
|
102 | |||
82 | # compiled regexps for autoindent management |
|
103 | # compiled regexps for autoindent management | |
83 | dedent_re = re.compile(r'^\s+raise|^\s+return|^\s+pass') |
|
104 | dedent_re = re.compile(r'^\s+raise|^\s+return|^\s+pass') | |
84 | ini_spaces_re = re.compile(r'^([ \t\r\f\v]+)') |
|
105 | ini_spaces_re = re.compile(r'^([ \t\r\f\v]+)') | |
85 |
|
106 | |||
86 |
|
107 | |||
87 | def num_ini_spaces(s): |
|
108 | def num_ini_spaces(s): | |
88 | """Return the number of initial spaces in a string. |
|
109 | """Return the number of initial spaces in a string. | |
89 |
|
110 | |||
90 | Note that tabs are counted as a single space. For now, we do *not* support |
|
111 | Note that tabs are counted as a single space. For now, we do *not* support | |
91 | mixing of tabs and spaces in the user's input. |
|
112 | mixing of tabs and spaces in the user's input. | |
92 |
|
113 | |||
93 | Parameters |
|
114 | Parameters | |
94 | ---------- |
|
115 | ---------- | |
95 | s : string |
|
116 | s : string | |
96 |
|
117 | |||
97 | Returns |
|
118 | Returns | |
98 | ------- |
|
119 | ------- | |
99 | n : int |
|
120 | n : int | |
100 | """ |
|
121 | """ | |
101 |
|
122 | |||
102 | ini_spaces = ini_spaces_re.match(s) |
|
123 | ini_spaces = ini_spaces_re.match(s) | |
103 | if ini_spaces: |
|
124 | if ini_spaces: | |
104 | return ini_spaces.end() |
|
125 | return ini_spaces.end() | |
105 | else: |
|
126 | else: | |
106 | return 0 |
|
127 | return 0 | |
107 |
|
128 | |||
108 |
|
129 | |||
109 | def remove_comments(src): |
|
130 | def remove_comments(src): | |
110 | """Remove all comments from input source. |
|
131 | """Remove all comments from input source. | |
111 |
|
132 | |||
112 | Note: comments are NOT recognized inside of strings! |
|
133 | Note: comments are NOT recognized inside of strings! | |
113 |
|
134 | |||
114 | Parameters |
|
135 | Parameters | |
115 | ---------- |
|
136 | ---------- | |
116 | src : string |
|
137 | src : string | |
117 | A single or multiline input string. |
|
138 | A single or multiline input string. | |
118 |
|
139 | |||
119 | Returns |
|
140 | Returns | |
120 | ------- |
|
141 | ------- | |
121 | String with all Python comments removed. |
|
142 | String with all Python comments removed. | |
122 | """ |
|
143 | """ | |
123 |
|
144 | |||
124 | return re.sub('#.*', '', src) |
|
145 | return re.sub('#.*', '', src) | |
125 |
|
146 | |||
126 |
|
147 | |||
127 | def get_input_encoding(): |
|
148 | def get_input_encoding(): | |
128 | """Return the default standard input encoding. |
|
149 | """Return the default standard input encoding. | |
129 |
|
150 | |||
130 | If sys.stdin has no encoding, 'ascii' is returned.""" |
|
151 | If sys.stdin has no encoding, 'ascii' is returned.""" | |
131 | # There are strange environments for which sys.stdin.encoding is None. We |
|
152 | # There are strange environments for which sys.stdin.encoding is None. We | |
132 | # ensure that a valid encoding is returned. |
|
153 | # ensure that a valid encoding is returned. | |
133 | encoding = getattr(sys.stdin, 'encoding', None) |
|
154 | encoding = getattr(sys.stdin, 'encoding', None) | |
134 | if encoding is None: |
|
155 | if encoding is None: | |
135 | encoding = 'ascii' |
|
156 | encoding = 'ascii' | |
136 | return encoding |
|
157 | return encoding | |
137 |
|
158 | |||
138 | #----------------------------------------------------------------------------- |
|
159 | #----------------------------------------------------------------------------- | |
139 | # Classes and functions for normal Python syntax handling |
|
160 | # Classes and functions for normal Python syntax handling | |
140 | #----------------------------------------------------------------------------- |
|
161 | #----------------------------------------------------------------------------- | |
141 |
|
162 | |||
142 | class InputSplitter(object): |
|
163 | class InputSplitter(object): | |
143 | """An object that can split Python source input in executable blocks. |
|
164 | """An object that can split Python source input in executable blocks. | |
144 |
|
165 | |||
145 | This object is designed to be used in one of two basic modes: |
|
166 | This object is designed to be used in one of two basic modes: | |
146 |
|
167 | |||
147 | 1. By feeding it python source line-by-line, using :meth:`push`. In this |
|
168 | 1. By feeding it python source line-by-line, using :meth:`push`. In this | |
148 | mode, it will return on each push whether the currently pushed code |
|
169 | mode, it will return on each push whether the currently pushed code | |
149 | could be executed already. In addition, it provides a method called |
|
170 | could be executed already. In addition, it provides a method called | |
150 | :meth:`push_accepts_more` that can be used to query whether more input |
|
171 | :meth:`push_accepts_more` that can be used to query whether more input | |
151 | can be pushed into a single interactive block. |
|
172 | can be pushed into a single interactive block. | |
152 |
|
173 | |||
153 | 2. By calling :meth:`split_blocks` with a single, multiline Python string, |
|
174 | 2. By calling :meth:`split_blocks` with a single, multiline Python string, | |
154 | that is then split into blocks each of which can be executed |
|
175 | that is then split into blocks each of which can be executed | |
155 | interactively as a single statement. |
|
176 | interactively as a single statement. | |
156 |
|
177 | |||
157 | This is a simple example of how an interactive terminal-based client can use |
|
178 | This is a simple example of how an interactive terminal-based client can use | |
158 | this tool:: |
|
179 | this tool:: | |
159 |
|
180 | |||
160 | isp = InputSplitter() |
|
181 | isp = InputSplitter() | |
161 | while isp.push_accepts_more(): |
|
182 | while isp.push_accepts_more(): | |
162 | indent = ' '*isp.indent_spaces |
|
183 | indent = ' '*isp.indent_spaces | |
163 | prompt = '>>> ' + indent |
|
184 | prompt = '>>> ' + indent | |
164 | line = indent + raw_input(prompt) |
|
185 | line = indent + raw_input(prompt) | |
165 | isp.push(line) |
|
186 | isp.push(line) | |
166 | print 'Input source was:\n', isp.source_reset(), |
|
187 | print 'Input source was:\n', isp.source_reset(), | |
167 | """ |
|
188 | """ | |
168 | # Number of spaces of indentation computed from input that has been pushed |
|
189 | # Number of spaces of indentation computed from input that has been pushed | |
169 | # so far. This is the attributes callers should query to get the current |
|
190 | # so far. This is the attributes callers should query to get the current | |
170 | # indentation level, in order to provide auto-indent facilities. |
|
191 | # indentation level, in order to provide auto-indent facilities. | |
171 | indent_spaces = 0 |
|
192 | indent_spaces = 0 | |
172 | # String, indicating the default input encoding. It is computed by default |
|
193 | # String, indicating the default input encoding. It is computed by default | |
173 | # at initialization time via get_input_encoding(), but it can be reset by a |
|
194 | # at initialization time via get_input_encoding(), but it can be reset by a | |
174 | # client with specific knowledge of the encoding. |
|
195 | # client with specific knowledge of the encoding. | |
175 | encoding = '' |
|
196 | encoding = '' | |
176 | # String where the current full source input is stored, properly encoded. |
|
197 | # String where the current full source input is stored, properly encoded. | |
177 | # Reading this attribute is the normal way of querying the currently pushed |
|
198 | # Reading this attribute is the normal way of querying the currently pushed | |
178 | # source code, that has been properly encoded. |
|
199 | # source code, that has been properly encoded. | |
179 | source = '' |
|
200 | source = '' | |
180 | # Code object corresponding to the current source. It is automatically |
|
201 | # Code object corresponding to the current source. It is automatically | |
181 | # synced to the source, so it can be queried at any time to obtain the code |
|
202 | # synced to the source, so it can be queried at any time to obtain the code | |
182 | # object; it will be None if the source doesn't compile to valid Python. |
|
203 | # object; it will be None if the source doesn't compile to valid Python. | |
183 | code = None |
|
204 | code = None | |
184 | # Input mode |
|
205 | # Input mode | |
185 | input_mode = 'append' |
|
206 | input_mode = 'append' | |
186 |
|
207 | |||
187 | # Private attributes |
|
208 | # Private attributes | |
188 |
|
209 | |||
189 | # List with lines of input accumulated so far |
|
210 | # List with lines of input accumulated so far | |
190 | _buffer = None |
|
211 | _buffer = None | |
191 | # Command compiler |
|
212 | # Command compiler | |
192 | _compile = None |
|
213 | _compile = None | |
193 | # Mark when input has changed indentation all the way back to flush-left |
|
214 | # Mark when input has changed indentation all the way back to flush-left | |
194 | _full_dedent = False |
|
215 | _full_dedent = False | |
195 | # Boolean indicating whether the current block is complete |
|
216 | # Boolean indicating whether the current block is complete | |
196 | _is_complete = None |
|
217 | _is_complete = None | |
197 |
|
218 | |||
198 | def __init__(self, input_mode=None): |
|
219 | def __init__(self, input_mode=None): | |
199 | """Create a new InputSplitter instance. |
|
220 | """Create a new InputSplitter instance. | |
200 |
|
221 | |||
201 | Parameters |
|
222 | Parameters | |
202 | ---------- |
|
223 | ---------- | |
203 | input_mode : str |
|
224 | input_mode : str | |
204 |
|
225 | |||
205 | One of 'append', 'replace', default is 'append'. This controls how |
|
226 | One of 'append', 'replace', default is 'append'. This controls how | |
206 | new inputs are used: in 'append' mode, they are appended to the |
|
227 | new inputs are used: in 'append' mode, they are appended to the | |
207 | existing buffer and the whole buffer is compiled; in 'replace' mode, |
|
228 | existing buffer and the whole buffer is compiled; in 'replace' mode, | |
208 | each new input completely replaces all prior inputs. Replace mode is |
|
229 | each new input completely replaces all prior inputs. Replace mode is | |
209 | thus equivalent to prepending a full reset() to every push() call. |
|
230 | thus equivalent to prepending a full reset() to every push() call. | |
210 |
|
231 | |||
211 | In practice, line-oriented clients likely want to use 'append' mode |
|
232 | In practice, line-oriented clients likely want to use 'append' mode | |
212 | while block-oriented ones will want to use 'replace'. |
|
233 | while block-oriented ones will want to use 'replace'. | |
213 | """ |
|
234 | """ | |
214 | self._buffer = [] |
|
235 | self._buffer = [] | |
215 | self._compile = codeop.CommandCompiler() |
|
236 | self._compile = codeop.CommandCompiler() | |
216 | self.encoding = get_input_encoding() |
|
237 | self.encoding = get_input_encoding() | |
217 | self.input_mode = InputSplitter.input_mode if input_mode is None \ |
|
238 | self.input_mode = InputSplitter.input_mode if input_mode is None \ | |
218 | else input_mode |
|
239 | else input_mode | |
219 |
|
240 | |||
220 | def reset(self): |
|
241 | def reset(self): | |
221 | """Reset the input buffer and associated state.""" |
|
242 | """Reset the input buffer and associated state.""" | |
222 | self.indent_spaces = 0 |
|
243 | self.indent_spaces = 0 | |
223 | self._buffer[:] = [] |
|
244 | self._buffer[:] = [] | |
224 | self.source = '' |
|
245 | self.source = '' | |
225 | self.code = None |
|
246 | self.code = None | |
226 | self._is_complete = False |
|
247 | self._is_complete = False | |
227 | self._full_dedent = False |
|
248 | self._full_dedent = False | |
228 |
|
249 | |||
229 | def source_reset(self): |
|
250 | def source_reset(self): | |
230 | """Return the input source and perform a full reset. |
|
251 | """Return the input source and perform a full reset. | |
231 | """ |
|
252 | """ | |
232 | out = self.source |
|
253 | out = self.source | |
233 | self.reset() |
|
254 | self.reset() | |
234 | return out |
|
255 | return out | |
235 |
|
256 | |||
236 | def push(self, lines): |
|
257 | def push(self, lines): | |
237 | """Push one ore more lines of input. |
|
258 | """Push one ore more lines of input. | |
238 |
|
259 | |||
239 | This stores the given lines and returns a status code indicating |
|
260 | This stores the given lines and returns a status code indicating | |
240 | whether the code forms a complete Python block or not. |
|
261 | whether the code forms a complete Python block or not. | |
241 |
|
262 | |||
242 | Any exceptions generated in compilation are swallowed, but if an |
|
263 | Any exceptions generated in compilation are swallowed, but if an | |
243 | exception was produced, the method returns True. |
|
264 | exception was produced, the method returns True. | |
244 |
|
265 | |||
245 | Parameters |
|
266 | Parameters | |
246 | ---------- |
|
267 | ---------- | |
247 | lines : string |
|
268 | lines : string | |
248 | One or more lines of Python input. |
|
269 | One or more lines of Python input. | |
249 |
|
270 | |||
250 | Returns |
|
271 | Returns | |
251 | ------- |
|
272 | ------- | |
252 | is_complete : boolean |
|
273 | is_complete : boolean | |
253 | True if the current input source (the result of the current input |
|
274 | True if the current input source (the result of the current input | |
254 | plus prior inputs) forms a complete Python execution block. Note that |
|
275 | plus prior inputs) forms a complete Python execution block. Note that | |
255 | this value is also stored as a private attribute (_is_complete), so it |
|
276 | this value is also stored as a private attribute (_is_complete), so it | |
256 | can be queried at any time. |
|
277 | can be queried at any time. | |
257 | """ |
|
278 | """ | |
258 | if self.input_mode == 'replace': |
|
279 | if self.input_mode == 'replace': | |
259 | self.reset() |
|
280 | self.reset() | |
260 |
|
281 | |||
261 | # If the source code has leading blanks, add 'if 1:\n' to it |
|
282 | # If the source code has leading blanks, add 'if 1:\n' to it | |
262 | # this allows execution of indented pasted code. It is tempting |
|
283 | # this allows execution of indented pasted code. It is tempting | |
263 | # to add '\n' at the end of source to run commands like ' a=1' |
|
284 | # to add '\n' at the end of source to run commands like ' a=1' | |
264 | # directly, but this fails for more complicated scenarios |
|
285 | # directly, but this fails for more complicated scenarios | |
265 | if not self._buffer and lines[:1] in [' ', '\t']: |
|
286 | if not self._buffer and lines[:1] in [' ', '\t']: | |
266 | lines = 'if 1:\n%s' % lines |
|
287 | lines = 'if 1:\n%s' % lines | |
267 |
|
288 | |||
268 | self._store(lines) |
|
289 | self._store(lines) | |
269 | source = self.source |
|
290 | source = self.source | |
270 |
|
291 | |||
271 | # Before calling _compile(), reset the code object to None so that if an |
|
292 | # Before calling _compile(), reset the code object to None so that if an | |
272 | # exception is raised in compilation, we don't mislead by having |
|
293 | # exception is raised in compilation, we don't mislead by having | |
273 | # inconsistent code/source attributes. |
|
294 | # inconsistent code/source attributes. | |
274 | self.code, self._is_complete = None, None |
|
295 | self.code, self._is_complete = None, None | |
275 |
|
296 | |||
276 | self._update_indent(lines) |
|
297 | self._update_indent(lines) | |
277 | try: |
|
298 | try: | |
278 | self.code = self._compile(source) |
|
299 | self.code = self._compile(source) | |
279 | # Invalid syntax can produce any of a number of different errors from |
|
300 | # Invalid syntax can produce any of a number of different errors from | |
280 | # inside the compiler, so we have to catch them all. Syntax errors |
|
301 | # inside the compiler, so we have to catch them all. Syntax errors | |
281 | # immediately produce a 'ready' block, so the invalid Python can be |
|
302 | # immediately produce a 'ready' block, so the invalid Python can be | |
282 | # sent to the kernel for evaluation with possible ipython |
|
303 | # sent to the kernel for evaluation with possible ipython | |
283 | # special-syntax conversion. |
|
304 | # special-syntax conversion. | |
284 | except (SyntaxError, OverflowError, ValueError, TypeError, |
|
305 | except (SyntaxError, OverflowError, ValueError, TypeError, | |
285 | MemoryError): |
|
306 | MemoryError): | |
286 | self._is_complete = True |
|
307 | self._is_complete = True | |
287 | else: |
|
308 | else: | |
288 | # Compilation didn't produce any exceptions (though it may not have |
|
309 | # Compilation didn't produce any exceptions (though it may not have | |
289 | # given a complete code object) |
|
310 | # given a complete code object) | |
290 | self._is_complete = self.code is not None |
|
311 | self._is_complete = self.code is not None | |
291 |
|
312 | |||
292 | return self._is_complete |
|
313 | return self._is_complete | |
293 |
|
314 | |||
294 | def push_accepts_more(self): |
|
315 | def push_accepts_more(self): | |
295 | """Return whether a block of interactive input can accept more input. |
|
316 | """Return whether a block of interactive input can accept more input. | |
296 |
|
317 | |||
297 | This method is meant to be used by line-oriented frontends, who need to |
|
318 | This method is meant to be used by line-oriented frontends, who need to | |
298 | guess whether a block is complete or not based solely on prior and |
|
319 | guess whether a block is complete or not based solely on prior and | |
299 | current input lines. The InputSplitter considers it has a complete |
|
320 | current input lines. The InputSplitter considers it has a complete | |
300 | interactive block and will not accept more input only when either a |
|
321 | interactive block and will not accept more input only when either a | |
301 | SyntaxError is raised, or *all* of the following are true: |
|
322 | SyntaxError is raised, or *all* of the following are true: | |
302 |
|
323 | |||
303 | 1. The input compiles to a complete statement. |
|
324 | 1. The input compiles to a complete statement. | |
304 |
|
325 | |||
305 | 2. The indentation level is flush-left (because if we are indented, |
|
326 | 2. The indentation level is flush-left (because if we are indented, | |
306 | like inside a function definition or for loop, we need to keep |
|
327 | like inside a function definition or for loop, we need to keep | |
307 | reading new input). |
|
328 | reading new input). | |
308 |
|
329 | |||
309 | 3. There is one extra line consisting only of whitespace. |
|
330 | 3. There is one extra line consisting only of whitespace. | |
310 |
|
331 | |||
311 | Because of condition #3, this method should be used only by |
|
332 | Because of condition #3, this method should be used only by | |
312 | *line-oriented* frontends, since it means that intermediate blank lines |
|
333 | *line-oriented* frontends, since it means that intermediate blank lines | |
313 | are not allowed in function definitions (or any other indented block). |
|
334 | are not allowed in function definitions (or any other indented block). | |
314 |
|
335 | |||
315 | Block-oriented frontends that have a separate keyboard event to |
|
336 | Block-oriented frontends that have a separate keyboard event to | |
316 | indicate execution should use the :meth:`split_blocks` method instead. |
|
337 | indicate execution should use the :meth:`split_blocks` method instead. | |
317 |
|
338 | |||
318 | If the current input produces a syntax error, this method immediately |
|
339 | If the current input produces a syntax error, this method immediately | |
319 | returns False but does *not* raise the syntax error exception, as |
|
340 | returns False but does *not* raise the syntax error exception, as | |
320 | typically clients will want to send invalid syntax to an execution |
|
341 | typically clients will want to send invalid syntax to an execution | |
321 | backend which might convert the invalid syntax into valid Python via |
|
342 | backend which might convert the invalid syntax into valid Python via | |
322 | one of the dynamic IPython mechanisms. |
|
343 | one of the dynamic IPython mechanisms. | |
323 | """ |
|
344 | """ | |
324 |
|
345 | |||
325 | if not self._is_complete: |
|
346 | if not self._is_complete: | |
326 | return True |
|
347 | return True | |
327 |
|
348 | |||
328 | if self.indent_spaces==0: |
|
349 | if self.indent_spaces==0: | |
329 | return False |
|
350 | return False | |
330 |
|
351 | |||
331 | last_line = self.source.splitlines()[-1] |
|
352 | last_line = self.source.splitlines()[-1] | |
332 | return bool(last_line and not last_line.isspace()) |
|
353 | return bool(last_line and not last_line.isspace()) | |
333 |
|
354 | |||
334 | def split_blocks(self, lines): |
|
355 | def split_blocks(self, lines): | |
335 | """Split a multiline string into multiple input blocks. |
|
356 | """Split a multiline string into multiple input blocks. | |
336 |
|
357 | |||
337 | Note: this method starts by performing a full reset(). |
|
358 | Note: this method starts by performing a full reset(). | |
338 |
|
359 | |||
339 | Parameters |
|
360 | Parameters | |
340 | ---------- |
|
361 | ---------- | |
341 | lines : str |
|
362 | lines : str | |
342 | A possibly multiline string. |
|
363 | A possibly multiline string. | |
343 |
|
364 | |||
344 | Returns |
|
365 | Returns | |
345 | ------- |
|
366 | ------- | |
346 | blocks : list |
|
367 | blocks : list | |
347 | A list of strings, each possibly multiline. Each string corresponds |
|
368 | A list of strings, each possibly multiline. Each string corresponds | |
348 | to a single block that can be compiled in 'single' mode (unless it |
|
369 | to a single block that can be compiled in 'single' mode (unless it | |
349 | has a syntax error).""" |
|
370 | has a syntax error).""" | |
350 |
|
371 | |||
351 | # This code is fairly delicate. If you make any changes here, make |
|
372 | # This code is fairly delicate. If you make any changes here, make | |
352 | # absolutely sure that you do run the full test suite and ALL tests |
|
373 | # absolutely sure that you do run the full test suite and ALL tests | |
353 | # pass. |
|
374 | # pass. | |
354 |
|
375 | |||
355 | self.reset() |
|
376 | self.reset() | |
356 | blocks = [] |
|
377 | blocks = [] | |
357 |
|
378 | |||
358 | # Reversed copy so we can use pop() efficiently and consume the input |
|
379 | # Reversed copy so we can use pop() efficiently and consume the input | |
359 | # as a stack |
|
380 | # as a stack | |
360 | lines = lines.splitlines()[::-1] |
|
381 | lines = lines.splitlines()[::-1] | |
361 | # Outer loop over all input |
|
382 | # Outer loop over all input | |
362 | while lines: |
|
383 | while lines: | |
363 | # Inner loop to build each block |
|
384 | # Inner loop to build each block | |
364 | while True: |
|
385 | while True: | |
365 | # Safety exit from inner loop |
|
386 | # Safety exit from inner loop | |
366 | if not lines: |
|
387 | if not lines: | |
367 | break |
|
388 | break | |
368 | # Grab next line but don't push it yet |
|
389 | # Grab next line but don't push it yet | |
369 | next_line = lines.pop() |
|
390 | next_line = lines.pop() | |
370 | # Blank/empty lines are pushed as-is |
|
391 | # Blank/empty lines are pushed as-is | |
371 | if not next_line or next_line.isspace(): |
|
392 | if not next_line or next_line.isspace(): | |
372 | self.push(next_line) |
|
393 | self.push(next_line) | |
373 | continue |
|
394 | continue | |
374 |
|
395 | |||
375 | # Check indentation changes caused by the *next* line |
|
396 | # Check indentation changes caused by the *next* line | |
376 | indent_spaces, _full_dedent = self._find_indent(next_line) |
|
397 | indent_spaces, _full_dedent = self._find_indent(next_line) | |
377 |
|
398 | |||
378 | # If the next line causes a dedent, it can be for two differnt |
|
399 | # If the next line causes a dedent, it can be for two differnt | |
379 | # reasons: either an explicit de-dent by the user or a |
|
400 | # reasons: either an explicit de-dent by the user or a | |
380 | # return/raise/pass statement. These MUST be handled |
|
401 | # return/raise/pass statement. These MUST be handled | |
381 | # separately: |
|
402 | # separately: | |
382 | # |
|
403 | # | |
383 | # 1. the first case is only detected when the actual explicit |
|
404 | # 1. the first case is only detected when the actual explicit | |
384 | # dedent happens, and that would be the *first* line of a *new* |
|
405 | # dedent happens, and that would be the *first* line of a *new* | |
385 | # block. Thus, we must put the line back into the input buffer |
|
406 | # block. Thus, we must put the line back into the input buffer | |
386 | # so that it starts a new block on the next pass. |
|
407 | # so that it starts a new block on the next pass. | |
387 | # |
|
408 | # | |
388 | # 2. the second case is detected in the line before the actual |
|
409 | # 2. the second case is detected in the line before the actual | |
389 | # dedent happens, so , we consume the line and we can break out |
|
410 | # dedent happens, so , we consume the line and we can break out | |
390 | # to start a new block. |
|
411 | # to start a new block. | |
391 |
|
412 | |||
392 | # Case 1, explicit dedent causes a break |
|
413 | # Case 1, explicit dedent causes a break | |
393 | if _full_dedent and not next_line.startswith(' '): |
|
414 | if _full_dedent and not next_line.startswith(' '): | |
394 | lines.append(next_line) |
|
415 | lines.append(next_line) | |
395 | break |
|
416 | break | |
396 |
|
417 | |||
397 | # Otherwise any line is pushed |
|
418 | # Otherwise any line is pushed | |
398 | self.push(next_line) |
|
419 | self.push(next_line) | |
399 |
|
420 | |||
400 | # Case 2, full dedent with full block ready: |
|
421 | # Case 2, full dedent with full block ready: | |
401 | if _full_dedent or \ |
|
422 | if _full_dedent or \ | |
402 | self.indent_spaces==0 and not self.push_accepts_more(): |
|
423 | self.indent_spaces==0 and not self.push_accepts_more(): | |
403 | break |
|
424 | break | |
404 | # Form the new block with the current source input |
|
425 | # Form the new block with the current source input | |
405 | blocks.append(self.source_reset()) |
|
426 | blocks.append(self.source_reset()) | |
406 |
|
427 | |||
407 | return blocks |
|
428 | return blocks | |
408 |
|
429 | |||
409 | #------------------------------------------------------------------------ |
|
430 | #------------------------------------------------------------------------ | |
410 | # Private interface |
|
431 | # Private interface | |
411 | #------------------------------------------------------------------------ |
|
432 | #------------------------------------------------------------------------ | |
412 |
|
433 | |||
413 | def _find_indent(self, line): |
|
434 | def _find_indent(self, line): | |
414 | """Compute the new indentation level for a single line. |
|
435 | """Compute the new indentation level for a single line. | |
415 |
|
436 | |||
416 | Parameters |
|
437 | Parameters | |
417 | ---------- |
|
438 | ---------- | |
418 | line : str |
|
439 | line : str | |
419 | A single new line of non-whitespace, non-comment Python input. |
|
440 | A single new line of non-whitespace, non-comment Python input. | |
420 |
|
441 | |||
421 | Returns |
|
442 | Returns | |
422 | ------- |
|
443 | ------- | |
423 | indent_spaces : int |
|
444 | indent_spaces : int | |
424 | New value for the indent level (it may be equal to self.indent_spaces |
|
445 | New value for the indent level (it may be equal to self.indent_spaces | |
425 | if indentation doesn't change. |
|
446 | if indentation doesn't change. | |
426 |
|
447 | |||
427 | full_dedent : boolean |
|
448 | full_dedent : boolean | |
428 | Whether the new line causes a full flush-left dedent. |
|
449 | Whether the new line causes a full flush-left dedent. | |
429 | """ |
|
450 | """ | |
430 | indent_spaces = self.indent_spaces |
|
451 | indent_spaces = self.indent_spaces | |
431 | full_dedent = self._full_dedent |
|
452 | full_dedent = self._full_dedent | |
432 |
|
453 | |||
433 | inisp = num_ini_spaces(line) |
|
454 | inisp = num_ini_spaces(line) | |
434 | if inisp < indent_spaces: |
|
455 | if inisp < indent_spaces: | |
435 | indent_spaces = inisp |
|
456 | indent_spaces = inisp | |
436 | if indent_spaces <= 0: |
|
457 | if indent_spaces <= 0: | |
437 | #print 'Full dedent in text',self.source # dbg |
|
458 | #print 'Full dedent in text',self.source # dbg | |
438 | full_dedent = True |
|
459 | full_dedent = True | |
439 |
|
460 | |||
440 | if line[-1] == ':': |
|
461 | if line[-1] == ':': | |
441 | indent_spaces += 4 |
|
462 | indent_spaces += 4 | |
442 | elif dedent_re.match(line): |
|
463 | elif dedent_re.match(line): | |
443 | indent_spaces -= 4 |
|
464 | indent_spaces -= 4 | |
444 | if indent_spaces <= 0: |
|
465 | if indent_spaces <= 0: | |
445 | full_dedent = True |
|
466 | full_dedent = True | |
446 |
|
467 | |||
447 | # Safety |
|
468 | # Safety | |
448 | if indent_spaces < 0: |
|
469 | if indent_spaces < 0: | |
449 | indent_spaces = 0 |
|
470 | indent_spaces = 0 | |
450 | #print 'safety' # dbg |
|
471 | #print 'safety' # dbg | |
451 |
|
472 | |||
452 | return indent_spaces, full_dedent |
|
473 | return indent_spaces, full_dedent | |
453 |
|
474 | |||
454 | def _update_indent(self, lines): |
|
475 | def _update_indent(self, lines): | |
455 | for line in remove_comments(lines).splitlines(): |
|
476 | for line in remove_comments(lines).splitlines(): | |
456 | if line and not line.isspace(): |
|
477 | if line and not line.isspace(): | |
457 | self.indent_spaces, self._full_dedent = self._find_indent(line) |
|
478 | self.indent_spaces, self._full_dedent = self._find_indent(line) | |
458 |
|
479 | |||
459 | def _store(self, lines): |
|
480 | def _store(self, lines): | |
460 | """Store one or more lines of input. |
|
481 | """Store one or more lines of input. | |
461 |
|
482 | |||
462 | If input lines are not newline-terminated, a newline is automatically |
|
483 | If input lines are not newline-terminated, a newline is automatically | |
463 | appended.""" |
|
484 | appended.""" | |
464 |
|
485 | |||
465 | if lines.endswith('\n'): |
|
486 | if lines.endswith('\n'): | |
466 | self._buffer.append(lines) |
|
487 | self._buffer.append(lines) | |
467 | else: |
|
488 | else: | |
468 | self._buffer.append(lines+'\n') |
|
489 | self._buffer.append(lines+'\n') | |
469 | self._set_source() |
|
490 | self._set_source() | |
470 |
|
491 | |||
471 | def _set_source(self): |
|
492 | def _set_source(self): | |
472 | self.source = ''.join(self._buffer).encode(self.encoding) |
|
493 | self.source = ''.join(self._buffer).encode(self.encoding) | |
473 |
|
494 | |||
474 |
|
495 | |||
475 | #----------------------------------------------------------------------------- |
|
496 | #----------------------------------------------------------------------------- | |
476 | # Functions and classes for IPython-specific syntactic support |
|
497 | # Functions and classes for IPython-specific syntactic support | |
477 | #----------------------------------------------------------------------------- |
|
498 | #----------------------------------------------------------------------------- | |
478 |
|
499 | |||
479 | # RegExp for splitting line contents into pre-char//first word-method//rest. |
|
500 | # RegExp for splitting line contents into pre-char//first word-method//rest. | |
480 | # For clarity, each group in on one line. |
|
501 | # For clarity, each group in on one line. | |
481 |
|
502 | |||
482 | line_split = re.compile(""" |
|
503 | line_split = re.compile(""" | |
483 | ^(\s*) # any leading space |
|
504 | ^(\s*) # any leading space | |
484 | ([,;/%]|!!?|\?\??) # escape character or characters |
|
505 | ([,;/%]|!!?|\?\??) # escape character or characters | |
485 | \s*([\w\.]*) # function/method part (mix of \w and '.') |
|
506 | \s*([\w\.]*) # function/method part (mix of \w and '.') | |
486 | (\s+.*$|$) # rest of line |
|
507 | (\s+.*$|$) # rest of line | |
487 | """, re.VERBOSE) |
|
508 | """, re.VERBOSE) | |
488 |
|
509 | |||
489 |
|
510 | |||
490 | def split_user_input(line): |
|
511 | def split_user_input(line): | |
491 | """Split user input into early whitespace, esc-char, function part and rest. |
|
512 | """Split user input into early whitespace, esc-char, function part and rest. | |
492 |
|
513 | |||
493 | This is currently handles lines with '=' in them in a very inconsistent |
|
514 | This is currently handles lines with '=' in them in a very inconsistent | |
494 | manner. |
|
515 | manner. | |
495 |
|
516 | |||
496 | Examples |
|
517 | Examples | |
497 | ======== |
|
518 | ======== | |
498 | >>> split_user_input('x=1') |
|
519 | >>> split_user_input('x=1') | |
499 | ('', '', 'x=1', '') |
|
520 | ('', '', 'x=1', '') | |
500 | >>> split_user_input('?') |
|
521 | >>> split_user_input('?') | |
501 | ('', '?', '', '') |
|
522 | ('', '?', '', '') | |
502 | >>> split_user_input('??') |
|
523 | >>> split_user_input('??') | |
503 | ('', '??', '', '') |
|
524 | ('', '??', '', '') | |
504 | >>> split_user_input(' ?') |
|
525 | >>> split_user_input(' ?') | |
505 | (' ', '?', '', '') |
|
526 | (' ', '?', '', '') | |
506 | >>> split_user_input(' ??') |
|
527 | >>> split_user_input(' ??') | |
507 | (' ', '??', '', '') |
|
528 | (' ', '??', '', '') | |
508 | >>> split_user_input('??x') |
|
529 | >>> split_user_input('??x') | |
509 | ('', '??', 'x', '') |
|
530 | ('', '??', 'x', '') | |
510 | >>> split_user_input('?x=1') |
|
531 | >>> split_user_input('?x=1') | |
511 | ('', '', '?x=1', '') |
|
532 | ('', '', '?x=1', '') | |
512 | >>> split_user_input('!ls') |
|
533 | >>> split_user_input('!ls') | |
513 | ('', '!', 'ls', '') |
|
534 | ('', '!', 'ls', '') | |
514 | >>> split_user_input(' !ls') |
|
535 | >>> split_user_input(' !ls') | |
515 | (' ', '!', 'ls', '') |
|
536 | (' ', '!', 'ls', '') | |
516 | >>> split_user_input('!!ls') |
|
537 | >>> split_user_input('!!ls') | |
517 | ('', '!!', 'ls', '') |
|
538 | ('', '!!', 'ls', '') | |
518 | >>> split_user_input(' !!ls') |
|
539 | >>> split_user_input(' !!ls') | |
519 | (' ', '!!', 'ls', '') |
|
540 | (' ', '!!', 'ls', '') | |
520 | >>> split_user_input(',ls') |
|
541 | >>> split_user_input(',ls') | |
521 | ('', ',', 'ls', '') |
|
542 | ('', ',', 'ls', '') | |
522 | >>> split_user_input(';ls') |
|
543 | >>> split_user_input(';ls') | |
523 | ('', ';', 'ls', '') |
|
544 | ('', ';', 'ls', '') | |
524 | >>> split_user_input(' ;ls') |
|
545 | >>> split_user_input(' ;ls') | |
525 | (' ', ';', 'ls', '') |
|
546 | (' ', ';', 'ls', '') | |
526 | >>> split_user_input('f.g(x)') |
|
547 | >>> split_user_input('f.g(x)') | |
527 | ('', '', 'f.g(x)', '') |
|
548 | ('', '', 'f.g(x)', '') | |
528 | >>> split_user_input('f.g (x)') |
|
549 | >>> split_user_input('f.g (x)') | |
529 | ('', '', 'f.g', '(x)') |
|
550 | ('', '', 'f.g', '(x)') | |
530 | """ |
|
551 | """ | |
531 | match = line_split.match(line) |
|
552 | match = line_split.match(line) | |
532 | if match: |
|
553 | if match: | |
533 | lspace, esc, fpart, rest = match.groups() |
|
554 | lspace, esc, fpart, rest = match.groups() | |
534 | else: |
|
555 | else: | |
535 | # print "match failed for line '%s'" % line |
|
556 | # print "match failed for line '%s'" % line | |
536 | try: |
|
557 | try: | |
537 | fpart, rest = line.split(None, 1) |
|
558 | fpart, rest = line.split(None, 1) | |
538 | except ValueError: |
|
559 | except ValueError: | |
539 | # print "split failed for line '%s'" % line |
|
560 | # print "split failed for line '%s'" % line | |
540 | fpart, rest = line,'' |
|
561 | fpart, rest = line,'' | |
541 | lspace = re.match('^(\s*)(.*)', line).groups()[0] |
|
562 | lspace = re.match('^(\s*)(.*)', line).groups()[0] | |
542 | esc = '' |
|
563 | esc = '' | |
543 |
|
564 | |||
544 | # fpart has to be a valid python identifier, so it better be only pure |
|
565 | # fpart has to be a valid python identifier, so it better be only pure | |
545 | # ascii, no unicode: |
|
566 | # ascii, no unicode: | |
546 | try: |
|
567 | try: | |
547 | fpart = fpart.encode('ascii') |
|
568 | fpart = fpart.encode('ascii') | |
548 | except UnicodeEncodeError: |
|
569 | except UnicodeEncodeError: | |
549 | lspace = unicode(lspace) |
|
570 | lspace = unicode(lspace) | |
550 | rest = fpart + u' ' + rest |
|
571 | rest = fpart + u' ' + rest | |
551 | fpart = u'' |
|
572 | fpart = u'' | |
552 |
|
573 | |||
553 | #print 'line:<%s>' % line # dbg |
|
574 | #print 'line:<%s>' % line # dbg | |
554 | #print 'esc <%s> fpart <%s> rest <%s>' % (esc,fpart.strip(),rest) # dbg |
|
575 | #print 'esc <%s> fpart <%s> rest <%s>' % (esc,fpart.strip(),rest) # dbg | |
555 | return lspace, esc, fpart.strip(), rest.lstrip() |
|
576 | return lspace, esc, fpart.strip(), rest.lstrip() | |
556 |
|
577 | |||
557 |
|
578 | |||
558 | # The escaped translators ALL receive a line where their own escape has been |
|
579 | # The escaped translators ALL receive a line where their own escape has been | |
559 | # stripped. Only '?' is valid at the end of the line, all others can only be |
|
580 | # stripped. Only '?' is valid at the end of the line, all others can only be | |
560 | # placed at the start. |
|
581 | # placed at the start. | |
561 |
|
582 | |||
562 | class LineInfo(object): |
|
583 | class LineInfo(object): | |
563 | """A single line of input and associated info. |
|
584 | """A single line of input and associated info. | |
564 |
|
585 | |||
565 | This is a utility class that mostly wraps the output of |
|
586 | This is a utility class that mostly wraps the output of | |
566 | :func:`split_user_input` into a convenient object to be passed around |
|
587 | :func:`split_user_input` into a convenient object to be passed around | |
567 | during input transformations. |
|
588 | during input transformations. | |
568 |
|
589 | |||
569 | Includes the following as properties: |
|
590 | Includes the following as properties: | |
570 |
|
591 | |||
571 | line |
|
592 | line | |
572 | The original, raw line |
|
593 | The original, raw line | |
573 |
|
594 | |||
574 | lspace |
|
595 | lspace | |
575 | Any early whitespace before actual text starts. |
|
596 | Any early whitespace before actual text starts. | |
576 |
|
597 | |||
577 | esc |
|
598 | esc | |
578 | The initial esc character (or characters, for double-char escapes like |
|
599 | The initial esc character (or characters, for double-char escapes like | |
579 | '??' or '!!'). |
|
600 | '??' or '!!'). | |
580 |
|
601 | |||
581 | fpart |
|
602 | fpart | |
582 | The 'function part', which is basically the maximal initial sequence |
|
603 | The 'function part', which is basically the maximal initial sequence | |
583 | of valid python identifiers and the '.' character. This is what is |
|
604 | of valid python identifiers and the '.' character. This is what is | |
584 | checked for alias and magic transformations, used for auto-calling, |
|
605 | checked for alias and magic transformations, used for auto-calling, | |
585 | etc. |
|
606 | etc. | |
586 |
|
607 | |||
587 | rest |
|
608 | rest | |
588 | Everything else on the line. |
|
609 | Everything else on the line. | |
589 | """ |
|
610 | """ | |
590 | def __init__(self, line): |
|
611 | def __init__(self, line): | |
591 | self.line = line |
|
612 | self.line = line | |
592 | self.lspace, self.esc, self.fpart, self.rest = \ |
|
613 | self.lspace, self.esc, self.fpart, self.rest = \ | |
593 | split_user_input(line) |
|
614 | split_user_input(line) | |
594 |
|
615 | |||
595 | def __str__(self): |
|
616 | def __str__(self): | |
596 | return "LineInfo [%s|%s|%s|%s]" % (self.lspace, self.esc, |
|
617 | return "LineInfo [%s|%s|%s|%s]" % (self.lspace, self.esc, | |
597 | self.fpart, self.rest) |
|
618 | self.fpart, self.rest) | |
598 |
|
619 | |||
599 |
|
620 | |||
600 | # Transformations of the special syntaxes that don't rely on an explicit escape |
|
621 | # Transformations of the special syntaxes that don't rely on an explicit escape | |
601 | # character but instead on patterns on the input line |
|
622 | # character but instead on patterns on the input line | |
602 |
|
623 | |||
603 | # The core transformations are implemented as standalone functions that can be |
|
624 | # The core transformations are implemented as standalone functions that can be | |
604 | # tested and validated in isolation. Each of these uses a regexp, we |
|
625 | # tested and validated in isolation. Each of these uses a regexp, we | |
605 | # pre-compile these and keep them close to each function definition for clarity |
|
626 | # pre-compile these and keep them close to each function definition for clarity | |
606 |
|
627 | |||
607 | _assign_system_re = re.compile(r'(?P<lhs>(\s*)([\w\.]+)((\s*,\s*[\w\.]+)*))' |
|
628 | _assign_system_re = re.compile(r'(?P<lhs>(\s*)([\w\.]+)((\s*,\s*[\w\.]+)*))' | |
608 | r'\s*=\s*!\s*(?P<cmd>.*)') |
|
629 | r'\s*=\s*!\s*(?P<cmd>.*)') | |
609 |
|
630 | |||
610 | def transform_assign_system(line): |
|
631 | def transform_assign_system(line): | |
611 | """Handle the `files = !ls` syntax.""" |
|
632 | """Handle the `files = !ls` syntax.""" | |
612 | # FIXME: This transforms the line to use %sc, but we've listed that magic |
|
633 | # FIXME: This transforms the line to use %sc, but we've listed that magic | |
613 | # as deprecated. We should then implement this functionality in a |
|
634 | # as deprecated. We should then implement this functionality in a | |
614 | # standalone api that we can transform to, without going through a |
|
635 | # standalone api that we can transform to, without going through a | |
615 | # deprecated magic. |
|
636 | # deprecated magic. | |
616 | m = _assign_system_re.match(line) |
|
637 | m = _assign_system_re.match(line) | |
617 | if m is not None: |
|
638 | if m is not None: | |
618 | cmd = m.group('cmd') |
|
639 | cmd = m.group('cmd') | |
619 | lhs = m.group('lhs') |
|
640 | lhs = m.group('lhs') | |
620 | expr = make_quoted_expr("sc -l = %s" % cmd) |
|
641 | expr = make_quoted_expr("sc -l = %s" % cmd) | |
621 | new_line = '%s = get_ipython().magic(%s)' % (lhs, expr) |
|
642 | new_line = '%s = get_ipython().magic(%s)' % (lhs, expr) | |
622 | return new_line |
|
643 | return new_line | |
623 | return line |
|
644 | return line | |
624 |
|
645 | |||
625 |
|
646 | |||
626 | _assign_magic_re = re.compile(r'(?P<lhs>(\s*)([\w\.]+)((\s*,\s*[\w\.]+)*))' |
|
647 | _assign_magic_re = re.compile(r'(?P<lhs>(\s*)([\w\.]+)((\s*,\s*[\w\.]+)*))' | |
627 | r'\s*=\s*%\s*(?P<cmd>.*)') |
|
648 | r'\s*=\s*%\s*(?P<cmd>.*)') | |
628 |
|
649 | |||
629 | def transform_assign_magic(line): |
|
650 | def transform_assign_magic(line): | |
630 | """Handle the `a = %who` syntax.""" |
|
651 | """Handle the `a = %who` syntax.""" | |
631 | m = _assign_magic_re.match(line) |
|
652 | m = _assign_magic_re.match(line) | |
632 | if m is not None: |
|
653 | if m is not None: | |
633 | cmd = m.group('cmd') |
|
654 | cmd = m.group('cmd') | |
634 | lhs = m.group('lhs') |
|
655 | lhs = m.group('lhs') | |
635 | expr = make_quoted_expr(cmd) |
|
656 | expr = make_quoted_expr(cmd) | |
636 | new_line = '%s = get_ipython().magic(%s)' % (lhs, expr) |
|
657 | new_line = '%s = get_ipython().magic(%s)' % (lhs, expr) | |
637 | return new_line |
|
658 | return new_line | |
638 | return line |
|
659 | return line | |
639 |
|
660 | |||
640 |
|
661 | |||
641 | _classic_prompt_re = re.compile(r'^([ \t]*>>> |^[ \t]*\.\.\. )') |
|
662 | _classic_prompt_re = re.compile(r'^([ \t]*>>> |^[ \t]*\.\.\. )') | |
642 |
|
663 | |||
643 | def transform_classic_prompt(line): |
|
664 | def transform_classic_prompt(line): | |
644 | """Handle inputs that start with '>>> ' syntax.""" |
|
665 | """Handle inputs that start with '>>> ' syntax.""" | |
645 |
|
666 | |||
646 | if not line or line.isspace(): |
|
667 | if not line or line.isspace(): | |
647 | return line |
|
668 | return line | |
648 | m = _classic_prompt_re.match(line) |
|
669 | m = _classic_prompt_re.match(line) | |
649 | if m: |
|
670 | if m: | |
650 | return line[len(m.group(0)):] |
|
671 | return line[len(m.group(0)):] | |
651 | else: |
|
672 | else: | |
652 | return line |
|
673 | return line | |
653 |
|
674 | |||
654 |
|
675 | |||
655 | _ipy_prompt_re = re.compile(r'^([ \t]*In \[\d+\]: |^[ \t]*\ \ \ \.\.\.+: )') |
|
676 | _ipy_prompt_re = re.compile(r'^([ \t]*In \[\d+\]: |^[ \t]*\ \ \ \.\.\.+: )') | |
656 |
|
677 | |||
657 | def transform_ipy_prompt(line): |
|
678 | def transform_ipy_prompt(line): | |
658 | """Handle inputs that start classic IPython prompt syntax.""" |
|
679 | """Handle inputs that start classic IPython prompt syntax.""" | |
659 |
|
680 | |||
660 | if not line or line.isspace(): |
|
681 | if not line or line.isspace(): | |
661 | return line |
|
682 | return line | |
662 | m = _ipy_prompt_re.match(line) |
|
683 | m = _ipy_prompt_re.match(line) | |
663 | if m: |
|
684 | if m: | |
664 | return line[len(m.group(0)):] |
|
685 | return line[len(m.group(0)):] | |
665 | else: |
|
686 | else: | |
666 | return line |
|
687 | return line | |
667 |
|
688 | |||
668 |
|
689 | |||
669 | class EscapedTransformer(object): |
|
690 | class EscapedTransformer(object): | |
670 | """Class to transform lines that are explicitly escaped out.""" |
|
691 | """Class to transform lines that are explicitly escaped out.""" | |
671 |
|
692 | |||
672 | def __init__(self): |
|
693 | def __init__(self): | |
673 | tr = { ESC_SHELL : self.tr_system, |
|
694 | tr = { ESC_SHELL : self._tr_system, | |
674 | ESC_SH_CAP : self.tr_system2, |
|
695 | ESC_SH_CAP : self._tr_system2, | |
675 | ESC_HELP : self.tr_help, |
|
696 | ESC_HELP : self._tr_help, | |
676 | ESC_HELP2 : self.tr_help, |
|
697 | ESC_HELP2 : self._tr_help, | |
677 | ESC_MAGIC : self.tr_magic, |
|
698 | ESC_MAGIC : self._tr_magic, | |
678 | ESC_QUOTE : self.tr_quote, |
|
699 | ESC_QUOTE : self._tr_quote, | |
679 | ESC_QUOTE2 : self.tr_quote2, |
|
700 | ESC_QUOTE2 : self._tr_quote2, | |
680 | ESC_PAREN : self.tr_paren } |
|
701 | ESC_PAREN : self._tr_paren } | |
681 | self.tr = tr |
|
702 | self.tr = tr | |
682 |
|
703 | |||
683 | # Support for syntax transformations that use explicit escapes typed by the |
|
704 | # Support for syntax transformations that use explicit escapes typed by the | |
684 | # user at the beginning of a line |
|
705 | # user at the beginning of a line | |
685 | @staticmethod |
|
706 | @staticmethod | |
686 | def tr_system(line_info): |
|
707 | def _tr_system(line_info): | |
687 | "Translate lines escaped with: !" |
|
708 | "Translate lines escaped with: !" | |
688 | cmd = line_info.line.lstrip().lstrip(ESC_SHELL) |
|
709 | cmd = line_info.line.lstrip().lstrip(ESC_SHELL) | |
689 | return '%sget_ipython().system(%s)' % (line_info.lspace, |
|
710 | return '%sget_ipython().system(%s)' % (line_info.lspace, | |
690 | make_quoted_expr(cmd)) |
|
711 | make_quoted_expr(cmd)) | |
691 |
|
712 | |||
692 | @staticmethod |
|
713 | @staticmethod | |
693 | def tr_system2(line_info): |
|
714 | def _tr_system2(line_info): | |
694 | "Translate lines escaped with: !!" |
|
715 | "Translate lines escaped with: !!" | |
695 | cmd = line_info.line.lstrip()[2:] |
|
716 | cmd = line_info.line.lstrip()[2:] | |
696 | return '%sget_ipython().getoutput(%s)' % (line_info.lspace, |
|
717 | return '%sget_ipython().getoutput(%s)' % (line_info.lspace, | |
697 | make_quoted_expr(cmd)) |
|
718 | make_quoted_expr(cmd)) | |
698 |
|
719 | |||
699 | @staticmethod |
|
720 | @staticmethod | |
700 | def tr_help(line_info): |
|
721 | def _tr_help(line_info): | |
701 | "Translate lines escaped with: ?/??" |
|
722 | "Translate lines escaped with: ?/??" | |
702 | # A naked help line should just fire the intro help screen |
|
723 | # A naked help line should just fire the intro help screen | |
703 | if not line_info.line[1:]: |
|
724 | if not line_info.line[1:]: | |
704 | return 'get_ipython().show_usage()' |
|
725 | return 'get_ipython().show_usage()' | |
705 |
|
726 | |||
706 | # There may be one or two '?' at the end, move them to the front so that |
|
727 | # There may be one or two '?' at the end, move them to the front so that | |
707 | # the rest of the logic can assume escapes are at the start |
|
728 | # the rest of the logic can assume escapes are at the start | |
708 | line = line_info.line |
|
729 | line = line_info.line | |
709 | if line.endswith('?'): |
|
730 | if line.endswith('?'): | |
710 | line = line[-1] + line[:-1] |
|
731 | line = line[-1] + line[:-1] | |
711 | if line.endswith('?'): |
|
732 | if line.endswith('?'): | |
712 | line = line[-1] + line[:-1] |
|
733 | line = line[-1] + line[:-1] | |
713 | line_info = LineInfo(line) |
|
734 | line_info = LineInfo(line) | |
714 |
|
735 | |||
715 | # From here on, simply choose which level of detail to get. |
|
736 | # From here on, simply choose which level of detail to get. | |
716 | if line_info.esc == '?': |
|
737 | if line_info.esc == '?': | |
717 | pinfo = 'pinfo' |
|
738 | pinfo = 'pinfo' | |
718 | elif line_info.esc == '??': |
|
739 | elif line_info.esc == '??': | |
719 | pinfo = 'pinfo2' |
|
740 | pinfo = 'pinfo2' | |
720 |
|
741 | |||
721 | tpl = '%sget_ipython().magic("%s %s")' |
|
742 | tpl = '%sget_ipython().magic("%s %s")' | |
722 | return tpl % (line_info.lspace, pinfo, |
|
743 | return tpl % (line_info.lspace, pinfo, | |
723 | ' '.join([line_info.fpart, line_info.rest]).strip()) |
|
744 | ' '.join([line_info.fpart, line_info.rest]).strip()) | |
724 |
|
745 | |||
725 | @staticmethod |
|
746 | @staticmethod | |
726 | def tr_magic(line_info): |
|
747 | def _tr_magic(line_info): | |
727 | "Translate lines escaped with: %" |
|
748 | "Translate lines escaped with: %" | |
728 | tpl = '%sget_ipython().magic(%s)' |
|
749 | tpl = '%sget_ipython().magic(%s)' | |
729 | cmd = make_quoted_expr(' '.join([line_info.fpart, |
|
750 | cmd = make_quoted_expr(' '.join([line_info.fpart, | |
730 |
line_info.rest]) |
|
751 | line_info.rest]).strip()) | |
731 | return tpl % (line_info.lspace, cmd) |
|
752 | return tpl % (line_info.lspace, cmd) | |
732 |
|
753 | |||
733 | @staticmethod |
|
754 | @staticmethod | |
734 | def tr_quote(line_info): |
|
755 | def _tr_quote(line_info): | |
735 | "Translate lines escaped with: ," |
|
756 | "Translate lines escaped with: ," | |
736 | return '%s%s("%s")' % (line_info.lspace, line_info.fpart, |
|
757 | return '%s%s("%s")' % (line_info.lspace, line_info.fpart, | |
737 | '", "'.join(line_info.rest.split()) ) |
|
758 | '", "'.join(line_info.rest.split()) ) | |
738 |
|
759 | |||
739 | @staticmethod |
|
760 | @staticmethod | |
740 | def tr_quote2(line_info): |
|
761 | def _tr_quote2(line_info): | |
741 | "Translate lines escaped with: ;" |
|
762 | "Translate lines escaped with: ;" | |
742 | return '%s%s("%s")' % (line_info.lspace, line_info.fpart, |
|
763 | return '%s%s("%s")' % (line_info.lspace, line_info.fpart, | |
743 | line_info.rest) |
|
764 | line_info.rest) | |
744 |
|
765 | |||
745 | @staticmethod |
|
766 | @staticmethod | |
746 | def tr_paren(line_info): |
|
767 | def _tr_paren(line_info): | |
747 | "Translate lines escaped with: /" |
|
768 | "Translate lines escaped with: /" | |
748 | return '%s%s(%s)' % (line_info.lspace, line_info.fpart, |
|
769 | return '%s%s(%s)' % (line_info.lspace, line_info.fpart, | |
749 | ", ".join(line_info.rest.split())) |
|
770 | ", ".join(line_info.rest.split())) | |
750 |
|
771 | |||
751 | def __call__(self, line): |
|
772 | def __call__(self, line): | |
752 | """Class to transform lines that are explicitly escaped out. |
|
773 | """Class to transform lines that are explicitly escaped out. | |
753 |
|
774 | |||
754 | This calls the above tr_* static methods for the actual line |
|
775 | This calls the above _tr_* static methods for the actual line | |
755 | translations.""" |
|
776 | translations.""" | |
756 |
|
777 | |||
757 | # Empty lines just get returned unmodified |
|
778 | # Empty lines just get returned unmodified | |
758 | if not line or line.isspace(): |
|
779 | if not line or line.isspace(): | |
759 | return line |
|
780 | return line | |
760 |
|
781 | |||
761 | # Get line endpoints, where the escapes can be |
|
782 | # Get line endpoints, where the escapes can be | |
762 | line_info = LineInfo(line) |
|
783 | line_info = LineInfo(line) | |
763 |
|
784 | |||
764 | # If the escape is not at the start, only '?' needs to be special-cased. |
|
785 | # If the escape is not at the start, only '?' needs to be special-cased. | |
765 | # All other escapes are only valid at the start |
|
786 | # All other escapes are only valid at the start | |
766 | if not line_info.esc in self.tr: |
|
787 | if not line_info.esc in self.tr: | |
767 | if line.endswith(ESC_HELP): |
|
788 | if line.endswith(ESC_HELP): | |
768 | return self.tr_help(line_info) |
|
789 | return self._tr_help(line_info) | |
769 | else: |
|
790 | else: | |
770 | # If we don't recognize the escape, don't modify the line |
|
791 | # If we don't recognize the escape, don't modify the line | |
771 | return line |
|
792 | return line | |
772 |
|
793 | |||
773 | return self.tr[line_info.esc](line_info) |
|
794 | return self.tr[line_info.esc](line_info) | |
774 |
|
795 | |||
|
796 | ||||
775 | # A function-looking object to be used by the rest of the code. The purpose of |
|
797 | # A function-looking object to be used by the rest of the code. The purpose of | |
776 | # the class in this case is to organize related functionality, more than to |
|
798 | # the class in this case is to organize related functionality, more than to | |
777 | # manage state. |
|
799 | # manage state. | |
778 | transform_escaped = EscapedTransformer() |
|
800 | transform_escaped = EscapedTransformer() | |
779 |
|
801 | |||
780 |
|
802 | |||
781 | class IPythonInputSplitter(InputSplitter): |
|
803 | class IPythonInputSplitter(InputSplitter): | |
782 | """An input splitter that recognizes all of IPython's special syntax.""" |
|
804 | """An input splitter that recognizes all of IPython's special syntax.""" | |
783 |
|
805 | |||
784 | def push(self, lines): |
|
806 | def push(self, lines): | |
785 | """Push one or more lines of IPython input. |
|
807 | """Push one or more lines of IPython input. | |
786 | """ |
|
808 | """ | |
787 | if not lines: |
|
809 | if not lines: | |
788 | return super(IPythonInputSplitter, self).push(lines) |
|
810 | return super(IPythonInputSplitter, self).push(lines) | |
789 |
|
811 | |||
790 | lines_list = lines.splitlines() |
|
812 | lines_list = lines.splitlines() | |
791 |
|
813 | |||
792 | transforms = [transform_escaped, transform_assign_system, |
|
814 | transforms = [transform_escaped, transform_assign_system, | |
793 | transform_assign_magic, transform_ipy_prompt, |
|
815 | transform_assign_magic, transform_ipy_prompt, | |
794 | transform_classic_prompt] |
|
816 | transform_classic_prompt] | |
795 |
|
817 | |||
796 | # Transform logic |
|
818 | # Transform logic | |
797 | # |
|
819 | # | |
798 | # We only apply the line transformers to the input if we have either no |
|
820 | # We only apply the line transformers to the input if we have either no | |
799 | # input yet, or complete input, or if the last line of the buffer ends |
|
821 | # input yet, or complete input, or if the last line of the buffer ends | |
800 | # with ':' (opening an indented block). This prevents the accidental |
|
822 | # with ':' (opening an indented block). This prevents the accidental | |
801 | # transformation of escapes inside multiline expressions like |
|
823 | # transformation of escapes inside multiline expressions like | |
802 | # triple-quoted strings or parenthesized expressions. |
|
824 | # triple-quoted strings or parenthesized expressions. | |
803 | # |
|
825 | # | |
804 | # The last heuristic, while ugly, ensures that the first line of an |
|
826 | # The last heuristic, while ugly, ensures that the first line of an | |
805 | # indented block is correctly transformed. |
|
827 | # indented block is correctly transformed. | |
806 | # |
|
828 | # | |
807 | # FIXME: try to find a cleaner approach for this last bit. |
|
829 | # FIXME: try to find a cleaner approach for this last bit. | |
808 |
|
830 | |||
809 | for line in lines_list: |
|
831 | for line in lines_list: | |
810 | if self._is_complete or not self._buffer or \ |
|
832 | if self._is_complete or not self._buffer or \ | |
811 | (self._buffer and self._buffer[-1].rstrip().endswith(':')): |
|
833 | (self._buffer and self._buffer[-1].rstrip().endswith(':')): | |
812 | for f in transforms: |
|
834 | for f in transforms: | |
813 | line = f(line) |
|
835 | line = f(line) | |
814 |
|
836 | |||
815 | out = super(IPythonInputSplitter, self).push(line) |
|
837 | out = super(IPythonInputSplitter, self).push(line) | |
816 |
|
838 | |||
817 | return out |
|
839 | return out |
@@ -1,621 +1,622 b'' | |||||
1 | # -*- coding: utf-8 -*- |
|
1 | # -*- coding: utf-8 -*- | |
2 | """Tests for the inputsplitter module. |
|
2 | """Tests for the inputsplitter module. | |
3 | """ |
|
3 | """ | |
4 | #----------------------------------------------------------------------------- |
|
4 | #----------------------------------------------------------------------------- | |
5 | # Copyright (C) 2010 The IPython Development Team |
|
5 | # Copyright (C) 2010 The IPython Development Team | |
6 | # |
|
6 | # | |
7 | # Distributed under the terms of the BSD License. The full license is in |
|
7 | # Distributed under the terms of the BSD License. The full license is in | |
8 | # the file COPYING, distributed as part of this software. |
|
8 | # the file COPYING, distributed as part of this software. | |
9 | #----------------------------------------------------------------------------- |
|
9 | #----------------------------------------------------------------------------- | |
10 |
|
10 | |||
11 | #----------------------------------------------------------------------------- |
|
11 | #----------------------------------------------------------------------------- | |
12 | # Imports |
|
12 | # Imports | |
13 | #----------------------------------------------------------------------------- |
|
13 | #----------------------------------------------------------------------------- | |
14 | # stdlib |
|
14 | # stdlib | |
15 | import unittest |
|
15 | import unittest | |
16 | import sys |
|
16 | import sys | |
17 |
|
17 | |||
18 | # Third party |
|
18 | # Third party | |
19 | import nose.tools as nt |
|
19 | import nose.tools as nt | |
20 |
|
20 | |||
21 | # Our own |
|
21 | # Our own | |
22 | from IPython.core import inputsplitter as isp |
|
22 | from IPython.core import inputsplitter as isp | |
23 |
|
23 | |||
24 | #----------------------------------------------------------------------------- |
|
24 | #----------------------------------------------------------------------------- | |
25 | # Semi-complete examples (also used as tests) |
|
25 | # Semi-complete examples (also used as tests) | |
26 | #----------------------------------------------------------------------------- |
|
26 | #----------------------------------------------------------------------------- | |
27 |
|
27 | |||
28 | # Note: at the bottom, there's a slightly more complete version of this that |
|
28 | # Note: at the bottom, there's a slightly more complete version of this that | |
29 | # can be useful during development of code here. |
|
29 | # can be useful during development of code here. | |
30 |
|
30 | |||
31 | def mini_interactive_loop(raw_input): |
|
31 | def mini_interactive_loop(raw_input): | |
32 | """Minimal example of the logic of an interactive interpreter loop. |
|
32 | """Minimal example of the logic of an interactive interpreter loop. | |
33 |
|
33 | |||
34 | This serves as an example, and it is used by the test system with a fake |
|
34 | This serves as an example, and it is used by the test system with a fake | |
35 | raw_input that simulates interactive input.""" |
|
35 | raw_input that simulates interactive input.""" | |
36 |
|
36 | |||
37 | from IPython.core.inputsplitter import InputSplitter |
|
37 | from IPython.core.inputsplitter import InputSplitter | |
38 |
|
38 | |||
39 | isp = InputSplitter() |
|
39 | isp = InputSplitter() | |
40 | # In practice, this input loop would be wrapped in an outside loop to read |
|
40 | # In practice, this input loop would be wrapped in an outside loop to read | |
41 | # input indefinitely, until some exit/quit command was issued. Here we |
|
41 | # input indefinitely, until some exit/quit command was issued. Here we | |
42 | # only illustrate the basic inner loop. |
|
42 | # only illustrate the basic inner loop. | |
43 | while isp.push_accepts_more(): |
|
43 | while isp.push_accepts_more(): | |
44 | indent = ' '*isp.indent_spaces |
|
44 | indent = ' '*isp.indent_spaces | |
45 | prompt = '>>> ' + indent |
|
45 | prompt = '>>> ' + indent | |
46 | line = indent + raw_input(prompt) |
|
46 | line = indent + raw_input(prompt) | |
47 | isp.push(line) |
|
47 | isp.push(line) | |
48 |
|
48 | |||
49 | # Here we just return input so we can use it in a test suite, but a real |
|
49 | # Here we just return input so we can use it in a test suite, but a real | |
50 | # interpreter would instead send it for execution somewhere. |
|
50 | # interpreter would instead send it for execution somewhere. | |
51 | src = isp.source_reset() |
|
51 | src = isp.source_reset() | |
52 | #print 'Input source was:\n', src # dbg |
|
52 | #print 'Input source was:\n', src # dbg | |
53 | return src |
|
53 | return src | |
54 |
|
54 | |||
55 | #----------------------------------------------------------------------------- |
|
55 | #----------------------------------------------------------------------------- | |
56 | # Test utilities, just for local use |
|
56 | # Test utilities, just for local use | |
57 | #----------------------------------------------------------------------------- |
|
57 | #----------------------------------------------------------------------------- | |
58 |
|
58 | |||
59 | def assemble(block): |
|
59 | def assemble(block): | |
60 | """Assemble a block into multi-line sub-blocks.""" |
|
60 | """Assemble a block into multi-line sub-blocks.""" | |
61 | return ['\n'.join(sub_block)+'\n' for sub_block in block] |
|
61 | return ['\n'.join(sub_block)+'\n' for sub_block in block] | |
62 |
|
62 | |||
63 |
|
63 | |||
64 | def pseudo_input(lines): |
|
64 | def pseudo_input(lines): | |
65 | """Return a function that acts like raw_input but feeds the input list.""" |
|
65 | """Return a function that acts like raw_input but feeds the input list.""" | |
66 | ilines = iter(lines) |
|
66 | ilines = iter(lines) | |
67 | def raw_in(prompt): |
|
67 | def raw_in(prompt): | |
68 | try: |
|
68 | try: | |
69 | return next(ilines) |
|
69 | return next(ilines) | |
70 | except StopIteration: |
|
70 | except StopIteration: | |
71 | return '' |
|
71 | return '' | |
72 | return raw_in |
|
72 | return raw_in | |
73 |
|
73 | |||
74 | #----------------------------------------------------------------------------- |
|
74 | #----------------------------------------------------------------------------- | |
75 | # Tests |
|
75 | # Tests | |
76 | #----------------------------------------------------------------------------- |
|
76 | #----------------------------------------------------------------------------- | |
77 | def test_spaces(): |
|
77 | def test_spaces(): | |
78 | tests = [('', 0), |
|
78 | tests = [('', 0), | |
79 | (' ', 1), |
|
79 | (' ', 1), | |
80 | ('\n', 0), |
|
80 | ('\n', 0), | |
81 | (' \n', 1), |
|
81 | (' \n', 1), | |
82 | ('x', 0), |
|
82 | ('x', 0), | |
83 | (' x', 1), |
|
83 | (' x', 1), | |
84 | (' x',2), |
|
84 | (' x',2), | |
85 | (' x',4), |
|
85 | (' x',4), | |
86 | # Note: tabs are counted as a single whitespace! |
|
86 | # Note: tabs are counted as a single whitespace! | |
87 | ('\tx', 1), |
|
87 | ('\tx', 1), | |
88 | ('\t x', 2), |
|
88 | ('\t x', 2), | |
89 | ] |
|
89 | ] | |
90 |
|
90 | |||
91 | for s, nsp in tests: |
|
91 | for s, nsp in tests: | |
92 | nt.assert_equal(isp.num_ini_spaces(s), nsp) |
|
92 | nt.assert_equal(isp.num_ini_spaces(s), nsp) | |
93 |
|
93 | |||
94 |
|
94 | |||
95 | def test_remove_comments(): |
|
95 | def test_remove_comments(): | |
96 | tests = [('text', 'text'), |
|
96 | tests = [('text', 'text'), | |
97 | ('text # comment', 'text '), |
|
97 | ('text # comment', 'text '), | |
98 | ('text # comment\n', 'text \n'), |
|
98 | ('text # comment\n', 'text \n'), | |
99 | ('text # comment \n', 'text \n'), |
|
99 | ('text # comment \n', 'text \n'), | |
100 | ('line # c \nline\n','line \nline\n'), |
|
100 | ('line # c \nline\n','line \nline\n'), | |
101 | ('line # c \nline#c2 \nline\nline #c\n\n', |
|
101 | ('line # c \nline#c2 \nline\nline #c\n\n', | |
102 | 'line \nline\nline\nline \n\n'), |
|
102 | 'line \nline\nline\nline \n\n'), | |
103 | ] |
|
103 | ] | |
104 |
|
104 | |||
105 | for inp, out in tests: |
|
105 | for inp, out in tests: | |
106 | nt.assert_equal(isp.remove_comments(inp), out) |
|
106 | nt.assert_equal(isp.remove_comments(inp), out) | |
107 |
|
107 | |||
108 |
|
108 | |||
109 | def test_get_input_encoding(): |
|
109 | def test_get_input_encoding(): | |
110 | encoding = isp.get_input_encoding() |
|
110 | encoding = isp.get_input_encoding() | |
111 | nt.assert_true(isinstance(encoding, basestring)) |
|
111 | nt.assert_true(isinstance(encoding, basestring)) | |
112 | # simple-minded check that at least encoding a simple string works with the |
|
112 | # simple-minded check that at least encoding a simple string works with the | |
113 | # encoding we got. |
|
113 | # encoding we got. | |
114 | nt.assert_equal('test'.encode(encoding), 'test') |
|
114 | nt.assert_equal('test'.encode(encoding), 'test') | |
115 |
|
115 | |||
116 |
|
116 | |||
117 | class NoInputEncodingTestCase(unittest.TestCase): |
|
117 | class NoInputEncodingTestCase(unittest.TestCase): | |
118 | def setUp(self): |
|
118 | def setUp(self): | |
119 | self.old_stdin = sys.stdin |
|
119 | self.old_stdin = sys.stdin | |
120 | class X: pass |
|
120 | class X: pass | |
121 | fake_stdin = X() |
|
121 | fake_stdin = X() | |
122 | sys.stdin = fake_stdin |
|
122 | sys.stdin = fake_stdin | |
123 |
|
123 | |||
124 | def test(self): |
|
124 | def test(self): | |
125 | # Verify that if sys.stdin has no 'encoding' attribute we do the right |
|
125 | # Verify that if sys.stdin has no 'encoding' attribute we do the right | |
126 | # thing |
|
126 | # thing | |
127 | enc = isp.get_input_encoding() |
|
127 | enc = isp.get_input_encoding() | |
128 | self.assertEqual(enc, 'ascii') |
|
128 | self.assertEqual(enc, 'ascii') | |
129 |
|
129 | |||
130 | def tearDown(self): |
|
130 | def tearDown(self): | |
131 | sys.stdin = self.old_stdin |
|
131 | sys.stdin = self.old_stdin | |
132 |
|
132 | |||
133 |
|
133 | |||
134 | class InputSplitterTestCase(unittest.TestCase): |
|
134 | class InputSplitterTestCase(unittest.TestCase): | |
135 | def setUp(self): |
|
135 | def setUp(self): | |
136 | self.isp = isp.InputSplitter() |
|
136 | self.isp = isp.InputSplitter() | |
137 |
|
137 | |||
138 | def test_reset(self): |
|
138 | def test_reset(self): | |
139 | isp = self.isp |
|
139 | isp = self.isp | |
140 | isp.push('x=1') |
|
140 | isp.push('x=1') | |
141 | isp.reset() |
|
141 | isp.reset() | |
142 | self.assertEqual(isp._buffer, []) |
|
142 | self.assertEqual(isp._buffer, []) | |
143 | self.assertEqual(isp.indent_spaces, 0) |
|
143 | self.assertEqual(isp.indent_spaces, 0) | |
144 | self.assertEqual(isp.source, '') |
|
144 | self.assertEqual(isp.source, '') | |
145 | self.assertEqual(isp.code, None) |
|
145 | self.assertEqual(isp.code, None) | |
146 | self.assertEqual(isp._is_complete, False) |
|
146 | self.assertEqual(isp._is_complete, False) | |
147 |
|
147 | |||
148 | def test_source(self): |
|
148 | def test_source(self): | |
149 | self.isp._store('1') |
|
149 | self.isp._store('1') | |
150 | self.isp._store('2') |
|
150 | self.isp._store('2') | |
151 | self.assertEqual(self.isp.source, '1\n2\n') |
|
151 | self.assertEqual(self.isp.source, '1\n2\n') | |
152 | self.assertTrue(len(self.isp._buffer)>0) |
|
152 | self.assertTrue(len(self.isp._buffer)>0) | |
153 | self.assertEqual(self.isp.source_reset(), '1\n2\n') |
|
153 | self.assertEqual(self.isp.source_reset(), '1\n2\n') | |
154 | self.assertEqual(self.isp._buffer, []) |
|
154 | self.assertEqual(self.isp._buffer, []) | |
155 | self.assertEqual(self.isp.source, '') |
|
155 | self.assertEqual(self.isp.source, '') | |
156 |
|
156 | |||
157 | def test_indent(self): |
|
157 | def test_indent(self): | |
158 | isp = self.isp # shorthand |
|
158 | isp = self.isp # shorthand | |
159 | isp.push('x=1') |
|
159 | isp.push('x=1') | |
160 | self.assertEqual(isp.indent_spaces, 0) |
|
160 | self.assertEqual(isp.indent_spaces, 0) | |
161 | isp.push('if 1:\n x=1') |
|
161 | isp.push('if 1:\n x=1') | |
162 | self.assertEqual(isp.indent_spaces, 4) |
|
162 | self.assertEqual(isp.indent_spaces, 4) | |
163 | isp.push('y=2\n') |
|
163 | isp.push('y=2\n') | |
164 | self.assertEqual(isp.indent_spaces, 0) |
|
164 | self.assertEqual(isp.indent_spaces, 0) | |
165 | isp.push('if 1:') |
|
165 | isp.push('if 1:') | |
166 | self.assertEqual(isp.indent_spaces, 4) |
|
166 | self.assertEqual(isp.indent_spaces, 4) | |
167 | isp.push(' x=1') |
|
167 | isp.push(' x=1') | |
168 | self.assertEqual(isp.indent_spaces, 4) |
|
168 | self.assertEqual(isp.indent_spaces, 4) | |
169 | # Blank lines shouldn't change the indent level |
|
169 | # Blank lines shouldn't change the indent level | |
170 | isp.push(' '*2) |
|
170 | isp.push(' '*2) | |
171 | self.assertEqual(isp.indent_spaces, 4) |
|
171 | self.assertEqual(isp.indent_spaces, 4) | |
172 |
|
172 | |||
173 | def test_indent2(self): |
|
173 | def test_indent2(self): | |
174 | isp = self.isp |
|
174 | isp = self.isp | |
175 | # When a multiline statement contains parens or multiline strings, we |
|
175 | # When a multiline statement contains parens or multiline strings, we | |
176 | # shouldn't get confused. |
|
176 | # shouldn't get confused. | |
177 | isp.push("if 1:") |
|
177 | isp.push("if 1:") | |
178 | isp.push(" x = (1+\n 2)") |
|
178 | isp.push(" x = (1+\n 2)") | |
179 | self.assertEqual(isp.indent_spaces, 4) |
|
179 | self.assertEqual(isp.indent_spaces, 4) | |
180 |
|
180 | |||
181 | def test_dedent(self): |
|
181 | def test_dedent(self): | |
182 | isp = self.isp # shorthand |
|
182 | isp = self.isp # shorthand | |
183 | isp.push('if 1:') |
|
183 | isp.push('if 1:') | |
184 | self.assertEqual(isp.indent_spaces, 4) |
|
184 | self.assertEqual(isp.indent_spaces, 4) | |
185 | isp.push(' pass') |
|
185 | isp.push(' pass') | |
186 | self.assertEqual(isp.indent_spaces, 0) |
|
186 | self.assertEqual(isp.indent_spaces, 0) | |
187 |
|
187 | |||
188 | def test_push(self): |
|
188 | def test_push(self): | |
189 | isp = self.isp |
|
189 | isp = self.isp | |
190 | self.assertTrue(isp.push('x=1')) |
|
190 | self.assertTrue(isp.push('x=1')) | |
191 |
|
191 | |||
192 | def test_push2(self): |
|
192 | def test_push2(self): | |
193 | isp = self.isp |
|
193 | isp = self.isp | |
194 | self.assertFalse(isp.push('if 1:')) |
|
194 | self.assertFalse(isp.push('if 1:')) | |
195 | for line in [' x=1', '# a comment', ' y=2']: |
|
195 | for line in [' x=1', '# a comment', ' y=2']: | |
196 | self.assertTrue(isp.push(line)) |
|
196 | self.assertTrue(isp.push(line)) | |
197 |
|
197 | |||
198 | def test_push3(self): |
|
198 | def test_push3(self): | |
199 | """Test input with leading whitespace""" |
|
199 | """Test input with leading whitespace""" | |
200 | isp = self.isp |
|
200 | isp = self.isp | |
201 | isp.push(' x=1') |
|
201 | isp.push(' x=1') | |
202 | isp.push(' y=2') |
|
202 | isp.push(' y=2') | |
203 | self.assertEqual(isp.source, 'if 1:\n x=1\n y=2\n') |
|
203 | self.assertEqual(isp.source, 'if 1:\n x=1\n y=2\n') | |
204 |
|
204 | |||
205 | def test_replace_mode(self): |
|
205 | def test_replace_mode(self): | |
206 | isp = self.isp |
|
206 | isp = self.isp | |
207 | isp.input_mode = 'replace' |
|
207 | isp.input_mode = 'replace' | |
208 | isp.push('x=1') |
|
208 | isp.push('x=1') | |
209 | self.assertEqual(isp.source, 'x=1\n') |
|
209 | self.assertEqual(isp.source, 'x=1\n') | |
210 | isp.push('x=2') |
|
210 | isp.push('x=2') | |
211 | self.assertEqual(isp.source, 'x=2\n') |
|
211 | self.assertEqual(isp.source, 'x=2\n') | |
212 |
|
212 | |||
213 | def test_push_accepts_more(self): |
|
213 | def test_push_accepts_more(self): | |
214 | isp = self.isp |
|
214 | isp = self.isp | |
215 | isp.push('x=1') |
|
215 | isp.push('x=1') | |
216 | self.assertFalse(isp.push_accepts_more()) |
|
216 | self.assertFalse(isp.push_accepts_more()) | |
217 |
|
217 | |||
218 | def test_push_accepts_more2(self): |
|
218 | def test_push_accepts_more2(self): | |
219 | isp = self.isp |
|
219 | isp = self.isp | |
220 | isp.push('if 1:') |
|
220 | isp.push('if 1:') | |
221 | self.assertTrue(isp.push_accepts_more()) |
|
221 | self.assertTrue(isp.push_accepts_more()) | |
222 | isp.push(' x=1') |
|
222 | isp.push(' x=1') | |
223 | self.assertTrue(isp.push_accepts_more()) |
|
223 | self.assertTrue(isp.push_accepts_more()) | |
224 | isp.push('') |
|
224 | isp.push('') | |
225 | self.assertFalse(isp.push_accepts_more()) |
|
225 | self.assertFalse(isp.push_accepts_more()) | |
226 |
|
226 | |||
227 | def test_push_accepts_more3(self): |
|
227 | def test_push_accepts_more3(self): | |
228 | isp = self.isp |
|
228 | isp = self.isp | |
229 | isp.push("x = (2+\n3)") |
|
229 | isp.push("x = (2+\n3)") | |
230 | self.assertFalse(isp.push_accepts_more()) |
|
230 | self.assertFalse(isp.push_accepts_more()) | |
231 |
|
231 | |||
232 | def test_push_accepts_more4(self): |
|
232 | def test_push_accepts_more4(self): | |
233 | isp = self.isp |
|
233 | isp = self.isp | |
234 | # When a multiline statement contains parens or multiline strings, we |
|
234 | # When a multiline statement contains parens or multiline strings, we | |
235 | # shouldn't get confused. |
|
235 | # shouldn't get confused. | |
236 | # FIXME: we should be able to better handle de-dents in statements like |
|
236 | # FIXME: we should be able to better handle de-dents in statements like | |
237 | # multiline strings and multiline expressions (continued with \ or |
|
237 | # multiline strings and multiline expressions (continued with \ or | |
238 | # parens). Right now we aren't handling the indentation tracking quite |
|
238 | # parens). Right now we aren't handling the indentation tracking quite | |
239 | # correctly with this, though in practice it may not be too much of a |
|
239 | # correctly with this, though in practice it may not be too much of a | |
240 | # problem. We'll need to see. |
|
240 | # problem. We'll need to see. | |
241 | isp.push("if 1:") |
|
241 | isp.push("if 1:") | |
242 | isp.push(" x = (2+") |
|
242 | isp.push(" x = (2+") | |
243 | isp.push(" 3)") |
|
243 | isp.push(" 3)") | |
244 | self.assertTrue(isp.push_accepts_more()) |
|
244 | self.assertTrue(isp.push_accepts_more()) | |
245 | isp.push(" y = 3") |
|
245 | isp.push(" y = 3") | |
246 | self.assertTrue(isp.push_accepts_more()) |
|
246 | self.assertTrue(isp.push_accepts_more()) | |
247 | isp.push('') |
|
247 | isp.push('') | |
248 | self.assertFalse(isp.push_accepts_more()) |
|
248 | self.assertFalse(isp.push_accepts_more()) | |
249 |
|
249 | |||
250 | def test_syntax_error(self): |
|
250 | def test_syntax_error(self): | |
251 | isp = self.isp |
|
251 | isp = self.isp | |
252 | # Syntax errors immediately produce a 'ready' block, so the invalid |
|
252 | # Syntax errors immediately produce a 'ready' block, so the invalid | |
253 | # Python can be sent to the kernel for evaluation with possible ipython |
|
253 | # Python can be sent to the kernel for evaluation with possible ipython | |
254 | # special-syntax conversion. |
|
254 | # special-syntax conversion. | |
255 | isp.push('run foo') |
|
255 | isp.push('run foo') | |
256 | self.assertFalse(isp.push_accepts_more()) |
|
256 | self.assertFalse(isp.push_accepts_more()) | |
257 |
|
257 | |||
258 | def check_split(self, block_lines, compile=True): |
|
258 | def check_split(self, block_lines, compile=True): | |
259 | blocks = assemble(block_lines) |
|
259 | blocks = assemble(block_lines) | |
260 | lines = ''.join(blocks) |
|
260 | lines = ''.join(blocks) | |
261 | oblock = self.isp.split_blocks(lines) |
|
261 | oblock = self.isp.split_blocks(lines) | |
262 | self.assertEqual(oblock, blocks) |
|
262 | self.assertEqual(oblock, blocks) | |
263 | if compile: |
|
263 | if compile: | |
264 | for block in blocks: |
|
264 | for block in blocks: | |
265 | self.isp._compile(block) |
|
265 | self.isp._compile(block) | |
266 |
|
266 | |||
267 | def test_split(self): |
|
267 | def test_split(self): | |
268 | # All blocks of input we want to test in a list. The format for each |
|
268 | # All blocks of input we want to test in a list. The format for each | |
269 | # block is a list of lists, with each inner lists consisting of all the |
|
269 | # block is a list of lists, with each inner lists consisting of all the | |
270 | # lines (as single-lines) that should make up a sub-block. |
|
270 | # lines (as single-lines) that should make up a sub-block. | |
271 |
|
271 | |||
272 | # Note: do NOT put here sub-blocks that don't compile, as the |
|
272 | # Note: do NOT put here sub-blocks that don't compile, as the | |
273 | # check_split() routine makes a final verification pass to check that |
|
273 | # check_split() routine makes a final verification pass to check that | |
274 | # each sub_block, as returned by split_blocks(), does compile |
|
274 | # each sub_block, as returned by split_blocks(), does compile | |
275 | # correctly. |
|
275 | # correctly. | |
276 | all_blocks = [ [['x=1']], |
|
276 | all_blocks = [ [['x=1']], | |
277 |
|
277 | |||
278 | [['x=1'], |
|
278 | [['x=1'], | |
279 | ['y=2']], |
|
279 | ['y=2']], | |
280 |
|
280 | |||
281 | [['x=1'], |
|
281 | [['x=1'], | |
282 | ['# a comment'], |
|
282 | ['# a comment'], | |
283 | ['y=11']], |
|
283 | ['y=11']], | |
284 |
|
284 | |||
285 | [['if 1:', |
|
285 | [['if 1:', | |
286 | ' x=1'], |
|
286 | ' x=1'], | |
287 | ['y=3']], |
|
287 | ['y=3']], | |
288 |
|
288 | |||
289 | [['def f(x):', |
|
289 | [['def f(x):', | |
290 | ' return x'], |
|
290 | ' return x'], | |
291 | ['x=1']], |
|
291 | ['x=1']], | |
292 |
|
292 | |||
293 | [['def f(x):', |
|
293 | [['def f(x):', | |
294 | ' x+=1', |
|
294 | ' x+=1', | |
295 | ' ', |
|
295 | ' ', | |
296 | ' return x'], |
|
296 | ' return x'], | |
297 | ['x=1']], |
|
297 | ['x=1']], | |
298 |
|
298 | |||
299 | [['def f(x):', |
|
299 | [['def f(x):', | |
300 | ' if x>0:', |
|
300 | ' if x>0:', | |
301 | ' y=1', |
|
301 | ' y=1', | |
302 | ' # a comment', |
|
302 | ' # a comment', | |
303 | ' else:', |
|
303 | ' else:', | |
304 | ' y=4', |
|
304 | ' y=4', | |
305 | ' ', |
|
305 | ' ', | |
306 | ' return y'], |
|
306 | ' return y'], | |
307 | ['x=1'], |
|
307 | ['x=1'], | |
308 | ['if 1:', |
|
308 | ['if 1:', | |
309 | ' y=11'] ], |
|
309 | ' y=11'] ], | |
310 |
|
310 | |||
311 | [['for i in range(10):' |
|
311 | [['for i in range(10):' | |
312 | ' x=i**2']], |
|
312 | ' x=i**2']], | |
313 |
|
313 | |||
314 | [['for i in range(10):' |
|
314 | [['for i in range(10):' | |
315 | ' x=i**2'], |
|
315 | ' x=i**2'], | |
316 | ['z = 1']], |
|
316 | ['z = 1']], | |
317 | ] |
|
317 | ] | |
318 | for block_lines in all_blocks: |
|
318 | for block_lines in all_blocks: | |
319 | self.check_split(block_lines) |
|
319 | self.check_split(block_lines) | |
320 |
|
320 | |||
321 | def test_split_syntax_errors(self): |
|
321 | def test_split_syntax_errors(self): | |
322 | # Block splitting with invalid syntax |
|
322 | # Block splitting with invalid syntax | |
323 | all_blocks = [ [['a syntax error']], |
|
323 | all_blocks = [ [['a syntax error']], | |
324 |
|
324 | |||
325 | [['x=1'], |
|
325 | [['x=1'], | |
326 | ['a syntax error']], |
|
326 | ['a syntax error']], | |
327 |
|
327 | |||
328 | [['for i in range(10):' |
|
328 | [['for i in range(10):' | |
329 | ' an error']], |
|
329 | ' an error']], | |
330 |
|
330 | |||
331 | ] |
|
331 | ] | |
332 | for block_lines in all_blocks: |
|
332 | for block_lines in all_blocks: | |
333 | self.check_split(block_lines, compile=False) |
|
333 | self.check_split(block_lines, compile=False) | |
334 |
|
334 | |||
335 |
|
335 | |||
336 | class InteractiveLoopTestCase(unittest.TestCase): |
|
336 | class InteractiveLoopTestCase(unittest.TestCase): | |
337 | """Tests for an interactive loop like a python shell. |
|
337 | """Tests for an interactive loop like a python shell. | |
338 | """ |
|
338 | """ | |
339 | def check_ns(self, lines, ns): |
|
339 | def check_ns(self, lines, ns): | |
340 | """Validate that the given input lines produce the resulting namespace. |
|
340 | """Validate that the given input lines produce the resulting namespace. | |
341 |
|
341 | |||
342 | Note: the input lines are given exactly as they would be typed in an |
|
342 | Note: the input lines are given exactly as they would be typed in an | |
343 | auto-indenting environment, as mini_interactive_loop above already does |
|
343 | auto-indenting environment, as mini_interactive_loop above already does | |
344 | auto-indenting and prepends spaces to the input. |
|
344 | auto-indenting and prepends spaces to the input. | |
345 | """ |
|
345 | """ | |
346 | src = mini_interactive_loop(pseudo_input(lines)) |
|
346 | src = mini_interactive_loop(pseudo_input(lines)) | |
347 | test_ns = {} |
|
347 | test_ns = {} | |
348 | exec src in test_ns |
|
348 | exec src in test_ns | |
349 | # We can't check that the provided ns is identical to the test_ns, |
|
349 | # We can't check that the provided ns is identical to the test_ns, | |
350 | # because Python fills test_ns with extra keys (copyright, etc). But |
|
350 | # because Python fills test_ns with extra keys (copyright, etc). But | |
351 | # we can check that the given dict is *contained* in test_ns |
|
351 | # we can check that the given dict is *contained* in test_ns | |
352 | for k,v in ns.items(): |
|
352 | for k,v in ns.items(): | |
353 | self.assertEqual(test_ns[k], v) |
|
353 | self.assertEqual(test_ns[k], v) | |
354 |
|
354 | |||
355 | def test_simple(self): |
|
355 | def test_simple(self): | |
356 | self.check_ns(['x=1'], dict(x=1)) |
|
356 | self.check_ns(['x=1'], dict(x=1)) | |
357 |
|
357 | |||
358 | def test_simple2(self): |
|
358 | def test_simple2(self): | |
359 | self.check_ns(['if 1:', 'x=2'], dict(x=2)) |
|
359 | self.check_ns(['if 1:', 'x=2'], dict(x=2)) | |
360 |
|
360 | |||
361 | def test_xy(self): |
|
361 | def test_xy(self): | |
362 | self.check_ns(['x=1; y=2'], dict(x=1, y=2)) |
|
362 | self.check_ns(['x=1; y=2'], dict(x=1, y=2)) | |
363 |
|
363 | |||
364 | def test_abc(self): |
|
364 | def test_abc(self): | |
365 | self.check_ns(['if 1:','a=1','b=2','c=3'], dict(a=1, b=2, c=3)) |
|
365 | self.check_ns(['if 1:','a=1','b=2','c=3'], dict(a=1, b=2, c=3)) | |
366 |
|
366 | |||
367 | def test_multi(self): |
|
367 | def test_multi(self): | |
368 | self.check_ns(['x =(1+','1+','2)'], dict(x=4)) |
|
368 | self.check_ns(['x =(1+','1+','2)'], dict(x=4)) | |
369 |
|
369 | |||
370 |
|
370 | |||
371 | def test_LineInfo(): |
|
371 | def test_LineInfo(): | |
372 | """Simple test for LineInfo construction and str()""" |
|
372 | """Simple test for LineInfo construction and str()""" | |
373 | linfo = isp.LineInfo(' %cd /home') |
|
373 | linfo = isp.LineInfo(' %cd /home') | |
374 | nt.assert_equals(str(linfo), 'LineInfo [ |%|cd|/home]') |
|
374 | nt.assert_equals(str(linfo), 'LineInfo [ |%|cd|/home]') | |
375 |
|
375 | |||
376 |
|
376 | |||
377 | def test_split_user_input(): |
|
377 | def test_split_user_input(): | |
378 | """Unicode test - split_user_input already has good doctests""" |
|
378 | """Unicode test - split_user_input already has good doctests""" | |
379 | line = u"PΓ©rez Fernando" |
|
379 | line = u"PΓ©rez Fernando" | |
380 | parts = isp.split_user_input(line) |
|
380 | parts = isp.split_user_input(line) | |
381 | parts_expected = (u'', u'', u'', line) |
|
381 | parts_expected = (u'', u'', u'', line) | |
382 | nt.assert_equal(parts, parts_expected) |
|
382 | nt.assert_equal(parts, parts_expected) | |
383 |
|
383 | |||
384 |
|
384 | |||
385 | # Transformer tests |
|
385 | # Transformer tests | |
386 | def transform_checker(tests, func): |
|
386 | def transform_checker(tests, func): | |
387 | """Utility to loop over test inputs""" |
|
387 | """Utility to loop over test inputs""" | |
388 | for inp, tr in tests: |
|
388 | for inp, tr in tests: | |
389 | nt.assert_equals(func(inp), tr) |
|
389 | nt.assert_equals(func(inp), tr) | |
390 |
|
390 | |||
391 | # Data for all the syntax tests in the form of lists of pairs of |
|
391 | # Data for all the syntax tests in the form of lists of pairs of | |
392 | # raw/transformed input. We store it here as a global dict so that we can use |
|
392 | # raw/transformed input. We store it here as a global dict so that we can use | |
393 | # it both within single-function tests and also to validate the behavior of the |
|
393 | # it both within single-function tests and also to validate the behavior of the | |
394 | # larger objects |
|
394 | # larger objects | |
395 |
|
395 | |||
396 | syntax = \ |
|
396 | syntax = \ | |
397 | dict(assign_system = |
|
397 | dict(assign_system = | |
398 | [('a =! ls', 'a = get_ipython().magic("sc -l = ls")'), |
|
398 | [('a =! ls', 'a = get_ipython().magic("sc -l = ls")'), | |
399 | ('b = !ls', 'b = get_ipython().magic("sc -l = ls")'), |
|
399 | ('b = !ls', 'b = get_ipython().magic("sc -l = ls")'), | |
400 | ('x=1', 'x=1'), # normal input is unmodified |
|
400 | ('x=1', 'x=1'), # normal input is unmodified | |
401 | (' ',' '), # blank lines are kept intact |
|
401 | (' ',' '), # blank lines are kept intact | |
402 | ], |
|
402 | ], | |
403 |
|
403 | |||
404 | assign_magic = |
|
404 | assign_magic = | |
405 | [('a =% who', 'a = get_ipython().magic("who")'), |
|
405 | [('a =% who', 'a = get_ipython().magic("who")'), | |
406 | ('b = %who', 'b = get_ipython().magic("who")'), |
|
406 | ('b = %who', 'b = get_ipython().magic("who")'), | |
407 | ('x=1', 'x=1'), # normal input is unmodified |
|
407 | ('x=1', 'x=1'), # normal input is unmodified | |
408 | (' ',' '), # blank lines are kept intact |
|
408 | (' ',' '), # blank lines are kept intact | |
409 | ], |
|
409 | ], | |
410 |
|
410 | |||
411 | classic_prompt = |
|
411 | classic_prompt = | |
412 | [('>>> x=1', 'x=1'), |
|
412 | [('>>> x=1', 'x=1'), | |
413 | ('x=1', 'x=1'), # normal input is unmodified |
|
413 | ('x=1', 'x=1'), # normal input is unmodified | |
414 | (' ',' '), # blank lines are kept intact |
|
414 | (' ',' '), # blank lines are kept intact | |
415 | ], |
|
415 | ], | |
416 |
|
416 | |||
417 | ipy_prompt = |
|
417 | ipy_prompt = | |
418 | [('In [1]: x=1', 'x=1'), |
|
418 | [('In [1]: x=1', 'x=1'), | |
419 | ('x=1', 'x=1'), # normal input is unmodified |
|
419 | ('x=1', 'x=1'), # normal input is unmodified | |
420 | (' ',' '), # blank lines are kept intact |
|
420 | (' ',' '), # blank lines are kept intact | |
421 | ], |
|
421 | ], | |
422 |
|
422 | |||
423 | # Tests for the escape transformer to leave normal code alone |
|
423 | # Tests for the escape transformer to leave normal code alone | |
424 | escaped_noesc = |
|
424 | escaped_noesc = | |
425 | [ (' ', ' '), |
|
425 | [ (' ', ' '), | |
426 | ('x=1', 'x=1'), |
|
426 | ('x=1', 'x=1'), | |
427 | ], |
|
427 | ], | |
428 |
|
428 | |||
429 | # System calls |
|
429 | # System calls | |
430 | escaped_shell = |
|
430 | escaped_shell = | |
431 | [ ('!ls', 'get_ipython().system("ls")'), |
|
431 | [ ('!ls', 'get_ipython().system("ls")'), | |
432 | # Double-escape shell, this means to capture the output of the |
|
432 | # Double-escape shell, this means to capture the output of the | |
433 | # subprocess and return it |
|
433 | # subprocess and return it | |
434 | ('!!ls', 'get_ipython().getoutput("ls")'), |
|
434 | ('!!ls', 'get_ipython().getoutput("ls")'), | |
435 | ], |
|
435 | ], | |
436 |
|
436 | |||
437 | # Help/object info |
|
437 | # Help/object info | |
438 | escaped_help = |
|
438 | escaped_help = | |
439 | [ ('?', 'get_ipython().show_usage()'), |
|
439 | [ ('?', 'get_ipython().show_usage()'), | |
440 | ('?x1', 'get_ipython().magic("pinfo x1")'), |
|
440 | ('?x1', 'get_ipython().magic("pinfo x1")'), | |
441 | ('??x2', 'get_ipython().magic("pinfo2 x2")'), |
|
441 | ('??x2', 'get_ipython().magic("pinfo2 x2")'), | |
442 | ('x3?', 'get_ipython().magic("pinfo x3")'), |
|
442 | ('x3?', 'get_ipython().magic("pinfo x3")'), | |
443 | ('x4??', 'get_ipython().magic("pinfo2 x4")'), |
|
443 | ('x4??', 'get_ipython().magic("pinfo2 x4")'), | |
444 | ], |
|
444 | ], | |
445 |
|
445 | |||
446 | # Explicit magic calls |
|
446 | # Explicit magic calls | |
447 | escaped_magic = |
|
447 | escaped_magic = | |
448 | [ ('%cd', 'get_ipython().magic("cd")'), |
|
448 | [ ('%cd', 'get_ipython().magic("cd")'), | |
449 | ('%cd /home', 'get_ipython().magic("cd /home")'), |
|
449 | ('%cd /home', 'get_ipython().magic("cd /home")'), | |
450 | (' %magic', ' get_ipython().magic("magic")'), |
|
450 | (' %magic', ' get_ipython().magic("magic")'), | |
451 | ], |
|
451 | ], | |
452 |
|
452 | |||
453 | # Quoting with separate arguments |
|
453 | # Quoting with separate arguments | |
454 | escaped_quote = |
|
454 | escaped_quote = | |
455 | [ (',f', 'f("")'), |
|
455 | [ (',f', 'f("")'), | |
456 | (',f x', 'f("x")'), |
|
456 | (',f x', 'f("x")'), | |
457 | (' ,f y', ' f("y")'), |
|
457 | (' ,f y', ' f("y")'), | |
458 | (',f a b', 'f("a", "b")'), |
|
458 | (',f a b', 'f("a", "b")'), | |
459 | ], |
|
459 | ], | |
460 |
|
460 | |||
461 | # Quoting with single argument |
|
461 | # Quoting with single argument | |
462 | escaped_quote2 = |
|
462 | escaped_quote2 = | |
463 | [ (';f', 'f("")'), |
|
463 | [ (';f', 'f("")'), | |
464 | (';f x', 'f("x")'), |
|
464 | (';f x', 'f("x")'), | |
465 | (' ;f y', ' f("y")'), |
|
465 | (' ;f y', ' f("y")'), | |
466 | (';f a b', 'f("a b")'), |
|
466 | (';f a b', 'f("a b")'), | |
467 | ], |
|
467 | ], | |
468 |
|
468 | |||
469 | # Simply apply parens |
|
469 | # Simply apply parens | |
470 | escaped_paren = |
|
470 | escaped_paren = | |
471 | [ ('/f', 'f()'), |
|
471 | [ ('/f', 'f()'), | |
472 | ('/f x', 'f(x)'), |
|
472 | ('/f x', 'f(x)'), | |
473 | (' /f y', ' f(y)'), |
|
473 | (' /f y', ' f(y)'), | |
474 | ('/f a b', 'f(a, b)'), |
|
474 | ('/f a b', 'f(a, b)'), | |
475 | ], |
|
475 | ], | |
476 |
|
476 | |||
477 | # More complex multiline tests |
|
477 | # More complex multiline tests | |
478 | ## escaped_multiline = |
|
478 | ## escaped_multiline = | |
479 | ## [()], |
|
479 | ## [()], | |
480 | ) |
|
480 | ) | |
481 |
|
481 | |||
482 | # multiline syntax examples. Each of these should be a list of lists, with |
|
482 | # multiline syntax examples. Each of these should be a list of lists, with | |
483 | # each entry itself having pairs of raw/transformed input. The union (with |
|
483 | # each entry itself having pairs of raw/transformed input. The union (with | |
484 | # '\n'.join() of the transformed inputs is what the splitter should produce |
|
484 | # '\n'.join() of the transformed inputs is what the splitter should produce | |
485 | # when fed the raw lines one at a time via push. |
|
485 | # when fed the raw lines one at a time via push. | |
486 | syntax_ml = \ |
|
486 | syntax_ml = \ | |
487 | dict(classic_prompt = |
|
487 | dict(classic_prompt = | |
488 | [ [('>>> for i in range(10):','for i in range(10):'), |
|
488 | [ [('>>> for i in range(10):','for i in range(10):'), | |
489 | ('... print i',' print i'), |
|
489 | ('... print i',' print i'), | |
490 | ('... ', ''), |
|
490 | ('... ', ''), | |
491 | ], |
|
491 | ], | |
492 | ], |
|
492 | ], | |
493 |
|
493 | |||
494 | ipy_prompt = |
|
494 | ipy_prompt = | |
495 | [ [('In [24]: for i in range(10):','for i in range(10):'), |
|
495 | [ [('In [24]: for i in range(10):','for i in range(10):'), | |
496 | (' ....: print i',' print i'), |
|
496 | (' ....: print i',' print i'), | |
497 | (' ....: ', ''), |
|
497 | (' ....: ', ''), | |
498 | ], |
|
498 | ], | |
499 | ], |
|
499 | ], | |
500 | ) |
|
500 | ) | |
501 |
|
501 | |||
502 |
|
502 | |||
503 | def test_assign_system(): |
|
503 | def test_assign_system(): | |
504 | transform_checker(syntax['assign_system'], isp.transform_assign_system) |
|
504 | transform_checker(syntax['assign_system'], isp.transform_assign_system) | |
505 |
|
505 | |||
506 |
|
506 | |||
507 | def test_assign_magic(): |
|
507 | def test_assign_magic(): | |
508 | transform_checker(syntax['assign_magic'], isp.transform_assign_magic) |
|
508 | transform_checker(syntax['assign_magic'], isp.transform_assign_magic) | |
509 |
|
509 | |||
510 |
|
510 | |||
511 | def test_classic_prompt(): |
|
511 | def test_classic_prompt(): | |
512 | transform_checker(syntax['classic_prompt'], isp.transform_classic_prompt) |
|
512 | transform_checker(syntax['classic_prompt'], isp.transform_classic_prompt) | |
513 | for example in syntax_ml['classic_prompt']: |
|
513 | for example in syntax_ml['classic_prompt']: | |
514 | transform_checker(example, isp.transform_classic_prompt) |
|
514 | transform_checker(example, isp.transform_classic_prompt) | |
515 |
|
515 | |||
516 |
|
516 | |||
517 | def test_ipy_prompt(): |
|
517 | def test_ipy_prompt(): | |
518 | transform_checker(syntax['ipy_prompt'], isp.transform_ipy_prompt) |
|
518 | transform_checker(syntax['ipy_prompt'], isp.transform_ipy_prompt) | |
519 | for example in syntax_ml['ipy_prompt']: |
|
519 | for example in syntax_ml['ipy_prompt']: | |
520 | transform_checker(example, isp.transform_ipy_prompt) |
|
520 | transform_checker(example, isp.transform_ipy_prompt) | |
521 |
|
521 | |||
522 |
|
522 | |||
523 | def test_escaped_noesc(): |
|
523 | def test_escaped_noesc(): | |
524 | transform_checker(syntax['escaped_noesc'], isp.transform_escaped) |
|
524 | transform_checker(syntax['escaped_noesc'], isp.transform_escaped) | |
525 |
|
525 | |||
526 |
|
526 | |||
527 | def test_escaped_shell(): |
|
527 | def test_escaped_shell(): | |
528 | transform_checker(syntax['escaped_shell'], isp.transform_escaped) |
|
528 | transform_checker(syntax['escaped_shell'], isp.transform_escaped) | |
529 |
|
529 | |||
530 |
|
530 | |||
531 | def test_escaped_help(): |
|
531 | def test_escaped_help(): | |
532 | transform_checker(syntax['escaped_help'], isp.transform_escaped) |
|
532 | transform_checker(syntax['escaped_help'], isp.transform_escaped) | |
533 |
|
533 | |||
534 |
|
534 | |||
535 | def test_escaped_magic(): |
|
535 | def test_escaped_magic(): | |
536 | transform_checker(syntax['escaped_magic'], isp.transform_escaped) |
|
536 | transform_checker(syntax['escaped_magic'], isp.transform_escaped) | |
537 |
|
537 | |||
538 |
|
538 | |||
539 | def test_escaped_quote(): |
|
539 | def test_escaped_quote(): | |
540 | transform_checker(syntax['escaped_quote'], isp.transform_escaped) |
|
540 | transform_checker(syntax['escaped_quote'], isp.transform_escaped) | |
541 |
|
541 | |||
542 |
|
542 | |||
543 | def test_escaped_quote2(): |
|
543 | def test_escaped_quote2(): | |
544 | transform_checker(syntax['escaped_quote2'], isp.transform_escaped) |
|
544 | transform_checker(syntax['escaped_quote2'], isp.transform_escaped) | |
545 |
|
545 | |||
546 |
|
546 | |||
547 | def test_escaped_paren(): |
|
547 | def test_escaped_paren(): | |
548 | transform_checker(syntax['escaped_paren'], isp.transform_escaped) |
|
548 | transform_checker(syntax['escaped_paren'], isp.transform_escaped) | |
549 |
|
549 | |||
550 |
|
550 | |||
551 | class IPythonInputTestCase(InputSplitterTestCase): |
|
551 | class IPythonInputTestCase(InputSplitterTestCase): | |
552 | """By just creating a new class whose .isp is a different instance, we |
|
552 | """By just creating a new class whose .isp is a different instance, we | |
553 | re-run the same test battery on the new input splitter. |
|
553 | re-run the same test battery on the new input splitter. | |
554 |
|
554 | |||
555 | In addition, this runs the tests over the syntax and syntax_ml dicts that |
|
555 | In addition, this runs the tests over the syntax and syntax_ml dicts that | |
556 | were tested by individual functions, as part of the OO interface. |
|
556 | were tested by individual functions, as part of the OO interface. | |
557 | """ |
|
557 | """ | |
558 | def setUp(self): |
|
558 | def setUp(self): | |
559 | self.isp = isp.IPythonInputSplitter() |
|
559 | self.isp = isp.IPythonInputSplitter() | |
560 |
|
560 | |||
561 | def test_syntax(self): |
|
561 | def test_syntax(self): | |
562 | """Call all single-line syntax tests from the main object""" |
|
562 | """Call all single-line syntax tests from the main object""" | |
563 | isp = self.isp |
|
563 | isp = self.isp | |
564 | for example in syntax.itervalues(): |
|
564 | for example in syntax.itervalues(): | |
565 | for raw, out_t in example: |
|
565 | for raw, out_t in example: | |
566 | if raw.startswith(' '): |
|
566 | if raw.startswith(' '): | |
567 | continue |
|
567 | continue | |
568 |
|
568 | |||
569 | isp.push(raw) |
|
569 | isp.push(raw) | |
570 | out = isp.source_reset().rstrip() |
|
570 | out = isp.source_reset().rstrip() | |
571 | self.assertEqual(out, out_t) |
|
571 | self.assertEqual(out, out_t) | |
572 |
|
572 | |||
573 | def test_syntax_multiline(self): |
|
573 | def test_syntax_multiline(self): | |
574 | isp = self.isp |
|
574 | isp = self.isp | |
575 | for example in syntax_ml.itervalues(): |
|
575 | for example in syntax_ml.itervalues(): | |
576 | out_t_parts = [] |
|
576 | out_t_parts = [] | |
577 | for line_pairs in example: |
|
577 | for line_pairs in example: | |
578 | for raw, out_t_part in line_pairs: |
|
578 | for raw, out_t_part in line_pairs: | |
579 | isp.push(raw) |
|
579 | isp.push(raw) | |
580 | out_t_parts.append(out_t_part) |
|
580 | out_t_parts.append(out_t_part) | |
581 |
|
581 | |||
582 | out = isp.source_reset().rstrip() |
|
582 | out = isp.source_reset().rstrip() | |
583 | out_t = '\n'.join(out_t_parts).rstrip() |
|
583 | out_t = '\n'.join(out_t_parts).rstrip() | |
584 | self.assertEqual(out, out_t) |
|
584 | self.assertEqual(out, out_t) | |
585 |
|
585 | |||
586 |
|
586 | |||
587 | #----------------------------------------------------------------------------- |
|
587 | #----------------------------------------------------------------------------- | |
588 | # Main - use as a script |
|
588 | # Main - use as a script | |
589 | #----------------------------------------------------------------------------- |
|
589 | #----------------------------------------------------------------------------- | |
590 |
|
590 | |||
591 | if __name__ == '__main__': |
|
591 | if __name__ == '__main__': | |
592 | # A simple demo for interactive experimentation. This code will not get |
|
592 | # A simple demo for interactive experimentation. This code will not get | |
593 | # picked up by any test suite. Useful mostly for illustration and during |
|
593 | # picked up by any test suite. Useful mostly for illustration and during | |
594 | # development. |
|
594 | # development. | |
595 | from IPython.core.inputsplitter import InputSplitter, IPythonInputSplitter |
|
595 | from IPython.core.inputsplitter import InputSplitter, IPythonInputSplitter | |
596 |
|
596 | |||
597 | # configure here the syntax to use, prompt and whether to autoindent |
|
597 | # configure here the syntax to use, prompt and whether to autoindent | |
598 | #isp, start_prompt = InputSplitter(), '>>> ' |
|
598 | #isp, start_prompt = InputSplitter(), '>>> ' | |
599 | isp, start_prompt = IPythonInputSplitter(), 'In> ' |
|
599 | isp, start_prompt = IPythonInputSplitter(), 'In> ' | |
600 |
|
600 | |||
601 | autoindent = True |
|
601 | autoindent = True | |
602 | #autoindent = False |
|
602 | #autoindent = False | |
603 |
|
603 | |||
604 | try: |
|
604 | try: | |
605 | while True: |
|
605 | while True: | |
606 | prompt = start_prompt |
|
606 | prompt = start_prompt | |
607 | while isp.push_accepts_more(): |
|
607 | while isp.push_accepts_more(): | |
608 | indent = ' '*isp.indent_spaces |
|
608 | indent = ' '*isp.indent_spaces | |
609 | if autoindent: |
|
609 | if autoindent: | |
610 | line = indent + raw_input(prompt+indent) |
|
610 | line = indent + raw_input(prompt+indent) | |
611 | else: |
|
611 | else: | |
612 | line = raw_input(prompt) |
|
612 | line = raw_input(prompt) | |
613 | isp.push(line) |
|
613 | isp.push(line) | |
614 | prompt = '... ' |
|
614 | prompt = '... ' | |
615 |
|
615 | |||
616 | # Here we just return input so we can use it in a test suite, but a |
|
616 | # Here we just return input so we can use it in a test suite, but a | |
617 | # real interpreter would instead send it for execution somewhere. |
|
617 | # real interpreter would instead send it for execution somewhere. | |
|
618 | #src = isp.source; raise EOFError # dbg | |||
618 | src = isp.source_reset() |
|
619 | src = isp.source_reset() | |
619 | print 'Input source was:\n', src |
|
620 | print 'Input source was:\n', src | |
620 | except EOFError: |
|
621 | except EOFError: | |
621 | print 'Bye' |
|
622 | print 'Bye' |
@@ -1,490 +1,489 b'' | |||||
1 | # encoding: utf-8 |
|
1 | # encoding: utf-8 | |
2 | """ |
|
2 | """ | |
3 | Utilities for working with strings and text. |
|
3 | Utilities for working with strings and text. | |
4 | """ |
|
4 | """ | |
5 |
|
5 | |||
6 | #----------------------------------------------------------------------------- |
|
6 | #----------------------------------------------------------------------------- | |
7 | # Copyright (C) 2008-2009 The IPython Development Team |
|
7 | # Copyright (C) 2008-2009 The IPython Development Team | |
8 | # |
|
8 | # | |
9 | # Distributed under the terms of the BSD License. The full license is in |
|
9 | # Distributed under the terms of the BSD License. The full license is in | |
10 | # the file COPYING, distributed as part of this software. |
|
10 | # the file COPYING, distributed as part of this software. | |
11 | #----------------------------------------------------------------------------- |
|
11 | #----------------------------------------------------------------------------- | |
12 |
|
12 | |||
13 | #----------------------------------------------------------------------------- |
|
13 | #----------------------------------------------------------------------------- | |
14 | # Imports |
|
14 | # Imports | |
15 | #----------------------------------------------------------------------------- |
|
15 | #----------------------------------------------------------------------------- | |
16 |
|
16 | |||
17 | import __main__ |
|
17 | import __main__ | |
18 |
|
18 | |||
19 | import os |
|
19 | import os | |
20 | import re |
|
20 | import re | |
21 | import shutil |
|
21 | import shutil | |
22 | import types |
|
22 | import types | |
23 |
|
23 | |||
24 | from IPython.external.path import path |
|
24 | from IPython.external.path import path | |
25 |
|
25 | |||
26 | from IPython.utils.io import nlprint |
|
26 | from IPython.utils.io import nlprint | |
27 | from IPython.utils.data import flatten |
|
27 | from IPython.utils.data import flatten | |
28 |
|
28 | |||
29 | #----------------------------------------------------------------------------- |
|
29 | #----------------------------------------------------------------------------- | |
30 | # Code |
|
30 | # Code | |
31 | #----------------------------------------------------------------------------- |
|
31 | #----------------------------------------------------------------------------- | |
32 |
|
32 | |||
33 | StringTypes = types.StringTypes |
|
33 | StringTypes = types.StringTypes | |
34 |
|
34 | |||
35 |
|
35 | |||
36 | def unquote_ends(istr): |
|
36 | def unquote_ends(istr): | |
37 | """Remove a single pair of quotes from the endpoints of a string.""" |
|
37 | """Remove a single pair of quotes from the endpoints of a string.""" | |
38 |
|
38 | |||
39 | if not istr: |
|
39 | if not istr: | |
40 | return istr |
|
40 | return istr | |
41 | if (istr[0]=="'" and istr[-1]=="'") or \ |
|
41 | if (istr[0]=="'" and istr[-1]=="'") or \ | |
42 | (istr[0]=='"' and istr[-1]=='"'): |
|
42 | (istr[0]=='"' and istr[-1]=='"'): | |
43 | return istr[1:-1] |
|
43 | return istr[1:-1] | |
44 | else: |
|
44 | else: | |
45 | return istr |
|
45 | return istr | |
46 |
|
46 | |||
47 |
|
47 | |||
48 | class LSString(str): |
|
48 | class LSString(str): | |
49 | """String derivative with a special access attributes. |
|
49 | """String derivative with a special access attributes. | |
50 |
|
50 | |||
51 | These are normal strings, but with the special attributes: |
|
51 | These are normal strings, but with the special attributes: | |
52 |
|
52 | |||
53 | .l (or .list) : value as list (split on newlines). |
|
53 | .l (or .list) : value as list (split on newlines). | |
54 | .n (or .nlstr): original value (the string itself). |
|
54 | .n (or .nlstr): original value (the string itself). | |
55 | .s (or .spstr): value as whitespace-separated string. |
|
55 | .s (or .spstr): value as whitespace-separated string. | |
56 | .p (or .paths): list of path objects |
|
56 | .p (or .paths): list of path objects | |
57 |
|
57 | |||
58 | Any values which require transformations are computed only once and |
|
58 | Any values which require transformations are computed only once and | |
59 | cached. |
|
59 | cached. | |
60 |
|
60 | |||
61 | Such strings are very useful to efficiently interact with the shell, which |
|
61 | Such strings are very useful to efficiently interact with the shell, which | |
62 | typically only understands whitespace-separated options for commands.""" |
|
62 | typically only understands whitespace-separated options for commands.""" | |
63 |
|
63 | |||
64 | def get_list(self): |
|
64 | def get_list(self): | |
65 | try: |
|
65 | try: | |
66 | return self.__list |
|
66 | return self.__list | |
67 | except AttributeError: |
|
67 | except AttributeError: | |
68 | self.__list = self.split('\n') |
|
68 | self.__list = self.split('\n') | |
69 | return self.__list |
|
69 | return self.__list | |
70 |
|
70 | |||
71 | l = list = property(get_list) |
|
71 | l = list = property(get_list) | |
72 |
|
72 | |||
73 | def get_spstr(self): |
|
73 | def get_spstr(self): | |
74 | try: |
|
74 | try: | |
75 | return self.__spstr |
|
75 | return self.__spstr | |
76 | except AttributeError: |
|
76 | except AttributeError: | |
77 | self.__spstr = self.replace('\n',' ') |
|
77 | self.__spstr = self.replace('\n',' ') | |
78 | return self.__spstr |
|
78 | return self.__spstr | |
79 |
|
79 | |||
80 | s = spstr = property(get_spstr) |
|
80 | s = spstr = property(get_spstr) | |
81 |
|
81 | |||
82 | def get_nlstr(self): |
|
82 | def get_nlstr(self): | |
83 | return self |
|
83 | return self | |
84 |
|
84 | |||
85 | n = nlstr = property(get_nlstr) |
|
85 | n = nlstr = property(get_nlstr) | |
86 |
|
86 | |||
87 | def get_paths(self): |
|
87 | def get_paths(self): | |
88 | try: |
|
88 | try: | |
89 | return self.__paths |
|
89 | return self.__paths | |
90 | except AttributeError: |
|
90 | except AttributeError: | |
91 | self.__paths = [path(p) for p in self.split('\n') if os.path.exists(p)] |
|
91 | self.__paths = [path(p) for p in self.split('\n') if os.path.exists(p)] | |
92 | return self.__paths |
|
92 | return self.__paths | |
93 |
|
93 | |||
94 | p = paths = property(get_paths) |
|
94 | p = paths = property(get_paths) | |
95 |
|
95 | |||
96 | # FIXME: We need to reimplement type specific displayhook and then add this |
|
96 | # FIXME: We need to reimplement type specific displayhook and then add this | |
97 | # back as a custom printer. This should also be moved outside utils into the |
|
97 | # back as a custom printer. This should also be moved outside utils into the | |
98 | # core. |
|
98 | # core. | |
99 |
|
99 | |||
100 | # def print_lsstring(arg): |
|
100 | # def print_lsstring(arg): | |
101 | # """ Prettier (non-repr-like) and more informative printer for LSString """ |
|
101 | # """ Prettier (non-repr-like) and more informative printer for LSString """ | |
102 | # print "LSString (.p, .n, .l, .s available). Value:" |
|
102 | # print "LSString (.p, .n, .l, .s available). Value:" | |
103 | # print arg |
|
103 | # print arg | |
104 | # |
|
104 | # | |
105 | # |
|
105 | # | |
106 | # print_lsstring = result_display.when_type(LSString)(print_lsstring) |
|
106 | # print_lsstring = result_display.when_type(LSString)(print_lsstring) | |
107 |
|
107 | |||
108 |
|
108 | |||
109 | class SList(list): |
|
109 | class SList(list): | |
110 | """List derivative with a special access attributes. |
|
110 | """List derivative with a special access attributes. | |
111 |
|
111 | |||
112 | These are normal lists, but with the special attributes: |
|
112 | These are normal lists, but with the special attributes: | |
113 |
|
113 | |||
114 | .l (or .list) : value as list (the list itself). |
|
114 | .l (or .list) : value as list (the list itself). | |
115 | .n (or .nlstr): value as a string, joined on newlines. |
|
115 | .n (or .nlstr): value as a string, joined on newlines. | |
116 | .s (or .spstr): value as a string, joined on spaces. |
|
116 | .s (or .spstr): value as a string, joined on spaces. | |
117 | .p (or .paths): list of path objects |
|
117 | .p (or .paths): list of path objects | |
118 |
|
118 | |||
119 | Any values which require transformations are computed only once and |
|
119 | Any values which require transformations are computed only once and | |
120 | cached.""" |
|
120 | cached.""" | |
121 |
|
121 | |||
122 | def get_list(self): |
|
122 | def get_list(self): | |
123 | return self |
|
123 | return self | |
124 |
|
124 | |||
125 | l = list = property(get_list) |
|
125 | l = list = property(get_list) | |
126 |
|
126 | |||
127 | def get_spstr(self): |
|
127 | def get_spstr(self): | |
128 | try: |
|
128 | try: | |
129 | return self.__spstr |
|
129 | return self.__spstr | |
130 | except AttributeError: |
|
130 | except AttributeError: | |
131 | self.__spstr = ' '.join(self) |
|
131 | self.__spstr = ' '.join(self) | |
132 | return self.__spstr |
|
132 | return self.__spstr | |
133 |
|
133 | |||
134 | s = spstr = property(get_spstr) |
|
134 | s = spstr = property(get_spstr) | |
135 |
|
135 | |||
136 | def get_nlstr(self): |
|
136 | def get_nlstr(self): | |
137 | try: |
|
137 | try: | |
138 | return self.__nlstr |
|
138 | return self.__nlstr | |
139 | except AttributeError: |
|
139 | except AttributeError: | |
140 | self.__nlstr = '\n'.join(self) |
|
140 | self.__nlstr = '\n'.join(self) | |
141 | return self.__nlstr |
|
141 | return self.__nlstr | |
142 |
|
142 | |||
143 | n = nlstr = property(get_nlstr) |
|
143 | n = nlstr = property(get_nlstr) | |
144 |
|
144 | |||
145 | def get_paths(self): |
|
145 | def get_paths(self): | |
146 | try: |
|
146 | try: | |
147 | return self.__paths |
|
147 | return self.__paths | |
148 | except AttributeError: |
|
148 | except AttributeError: | |
149 | self.__paths = [path(p) for p in self if os.path.exists(p)] |
|
149 | self.__paths = [path(p) for p in self if os.path.exists(p)] | |
150 | return self.__paths |
|
150 | return self.__paths | |
151 |
|
151 | |||
152 | p = paths = property(get_paths) |
|
152 | p = paths = property(get_paths) | |
153 |
|
153 | |||
154 | def grep(self, pattern, prune = False, field = None): |
|
154 | def grep(self, pattern, prune = False, field = None): | |
155 | """ Return all strings matching 'pattern' (a regex or callable) |
|
155 | """ Return all strings matching 'pattern' (a regex or callable) | |
156 |
|
156 | |||
157 | This is case-insensitive. If prune is true, return all items |
|
157 | This is case-insensitive. If prune is true, return all items | |
158 | NOT matching the pattern. |
|
158 | NOT matching the pattern. | |
159 |
|
159 | |||
160 | If field is specified, the match must occur in the specified |
|
160 | If field is specified, the match must occur in the specified | |
161 | whitespace-separated field. |
|
161 | whitespace-separated field. | |
162 |
|
162 | |||
163 | Examples:: |
|
163 | Examples:: | |
164 |
|
164 | |||
165 | a.grep( lambda x: x.startswith('C') ) |
|
165 | a.grep( lambda x: x.startswith('C') ) | |
166 | a.grep('Cha.*log', prune=1) |
|
166 | a.grep('Cha.*log', prune=1) | |
167 | a.grep('chm', field=-1) |
|
167 | a.grep('chm', field=-1) | |
168 | """ |
|
168 | """ | |
169 |
|
169 | |||
170 | def match_target(s): |
|
170 | def match_target(s): | |
171 | if field is None: |
|
171 | if field is None: | |
172 | return s |
|
172 | return s | |
173 | parts = s.split() |
|
173 | parts = s.split() | |
174 | try: |
|
174 | try: | |
175 | tgt = parts[field] |
|
175 | tgt = parts[field] | |
176 | return tgt |
|
176 | return tgt | |
177 | except IndexError: |
|
177 | except IndexError: | |
178 | return "" |
|
178 | return "" | |
179 |
|
179 | |||
180 | if isinstance(pattern, basestring): |
|
180 | if isinstance(pattern, basestring): | |
181 | pred = lambda x : re.search(pattern, x, re.IGNORECASE) |
|
181 | pred = lambda x : re.search(pattern, x, re.IGNORECASE) | |
182 | else: |
|
182 | else: | |
183 | pred = pattern |
|
183 | pred = pattern | |
184 | if not prune: |
|
184 | if not prune: | |
185 | return SList([el for el in self if pred(match_target(el))]) |
|
185 | return SList([el for el in self if pred(match_target(el))]) | |
186 | else: |
|
186 | else: | |
187 | return SList([el for el in self if not pred(match_target(el))]) |
|
187 | return SList([el for el in self if not pred(match_target(el))]) | |
188 |
|
188 | |||
189 | def fields(self, *fields): |
|
189 | def fields(self, *fields): | |
190 | """ Collect whitespace-separated fields from string list |
|
190 | """ Collect whitespace-separated fields from string list | |
191 |
|
191 | |||
192 | Allows quick awk-like usage of string lists. |
|
192 | Allows quick awk-like usage of string lists. | |
193 |
|
193 | |||
194 | Example data (in var a, created by 'a = !ls -l'):: |
|
194 | Example data (in var a, created by 'a = !ls -l'):: | |
195 | -rwxrwxrwx 1 ville None 18 Dec 14 2006 ChangeLog |
|
195 | -rwxrwxrwx 1 ville None 18 Dec 14 2006 ChangeLog | |
196 | drwxrwxrwx+ 6 ville None 0 Oct 24 18:05 IPython |
|
196 | drwxrwxrwx+ 6 ville None 0 Oct 24 18:05 IPython | |
197 |
|
197 | |||
198 | a.fields(0) is ['-rwxrwxrwx', 'drwxrwxrwx+'] |
|
198 | a.fields(0) is ['-rwxrwxrwx', 'drwxrwxrwx+'] | |
199 | a.fields(1,0) is ['1 -rwxrwxrwx', '6 drwxrwxrwx+'] |
|
199 | a.fields(1,0) is ['1 -rwxrwxrwx', '6 drwxrwxrwx+'] | |
200 | (note the joining by space). |
|
200 | (note the joining by space). | |
201 | a.fields(-1) is ['ChangeLog', 'IPython'] |
|
201 | a.fields(-1) is ['ChangeLog', 'IPython'] | |
202 |
|
202 | |||
203 | IndexErrors are ignored. |
|
203 | IndexErrors are ignored. | |
204 |
|
204 | |||
205 | Without args, fields() just split()'s the strings. |
|
205 | Without args, fields() just split()'s the strings. | |
206 | """ |
|
206 | """ | |
207 | if len(fields) == 0: |
|
207 | if len(fields) == 0: | |
208 | return [el.split() for el in self] |
|
208 | return [el.split() for el in self] | |
209 |
|
209 | |||
210 | res = SList() |
|
210 | res = SList() | |
211 | for el in [f.split() for f in self]: |
|
211 | for el in [f.split() for f in self]: | |
212 | lineparts = [] |
|
212 | lineparts = [] | |
213 |
|
213 | |||
214 | for fd in fields: |
|
214 | for fd in fields: | |
215 | try: |
|
215 | try: | |
216 | lineparts.append(el[fd]) |
|
216 | lineparts.append(el[fd]) | |
217 | except IndexError: |
|
217 | except IndexError: | |
218 | pass |
|
218 | pass | |
219 | if lineparts: |
|
219 | if lineparts: | |
220 | res.append(" ".join(lineparts)) |
|
220 | res.append(" ".join(lineparts)) | |
221 |
|
221 | |||
222 | return res |
|
222 | return res | |
223 |
|
223 | |||
224 | def sort(self,field= None, nums = False): |
|
224 | def sort(self,field= None, nums = False): | |
225 | """ sort by specified fields (see fields()) |
|
225 | """ sort by specified fields (see fields()) | |
226 |
|
226 | |||
227 | Example:: |
|
227 | Example:: | |
228 | a.sort(1, nums = True) |
|
228 | a.sort(1, nums = True) | |
229 |
|
229 | |||
230 | Sorts a by second field, in numerical order (so that 21 > 3) |
|
230 | Sorts a by second field, in numerical order (so that 21 > 3) | |
231 |
|
231 | |||
232 | """ |
|
232 | """ | |
233 |
|
233 | |||
234 | #decorate, sort, undecorate |
|
234 | #decorate, sort, undecorate | |
235 | if field is not None: |
|
235 | if field is not None: | |
236 | dsu = [[SList([line]).fields(field), line] for line in self] |
|
236 | dsu = [[SList([line]).fields(field), line] for line in self] | |
237 | else: |
|
237 | else: | |
238 | dsu = [[line, line] for line in self] |
|
238 | dsu = [[line, line] for line in self] | |
239 | if nums: |
|
239 | if nums: | |
240 | for i in range(len(dsu)): |
|
240 | for i in range(len(dsu)): | |
241 | numstr = "".join([ch for ch in dsu[i][0] if ch.isdigit()]) |
|
241 | numstr = "".join([ch for ch in dsu[i][0] if ch.isdigit()]) | |
242 | try: |
|
242 | try: | |
243 | n = int(numstr) |
|
243 | n = int(numstr) | |
244 | except ValueError: |
|
244 | except ValueError: | |
245 | n = 0; |
|
245 | n = 0; | |
246 | dsu[i][0] = n |
|
246 | dsu[i][0] = n | |
247 |
|
247 | |||
248 |
|
248 | |||
249 | dsu.sort() |
|
249 | dsu.sort() | |
250 | return SList([t[1] for t in dsu]) |
|
250 | return SList([t[1] for t in dsu]) | |
251 |
|
251 | |||
252 |
|
252 | |||
253 | # FIXME: We need to reimplement type specific displayhook and then add this |
|
253 | # FIXME: We need to reimplement type specific displayhook and then add this | |
254 | # back as a custom printer. This should also be moved outside utils into the |
|
254 | # back as a custom printer. This should also be moved outside utils into the | |
255 | # core. |
|
255 | # core. | |
256 |
|
256 | |||
257 | # def print_slist(arg): |
|
257 | # def print_slist(arg): | |
258 | # """ Prettier (non-repr-like) and more informative printer for SList """ |
|
258 | # """ Prettier (non-repr-like) and more informative printer for SList """ | |
259 | # print "SList (.p, .n, .l, .s, .grep(), .fields(), sort() available):" |
|
259 | # print "SList (.p, .n, .l, .s, .grep(), .fields(), sort() available):" | |
260 | # if hasattr(arg, 'hideonce') and arg.hideonce: |
|
260 | # if hasattr(arg, 'hideonce') and arg.hideonce: | |
261 | # arg.hideonce = False |
|
261 | # arg.hideonce = False | |
262 | # return |
|
262 | # return | |
263 | # |
|
263 | # | |
264 | # nlprint(arg) |
|
264 | # nlprint(arg) | |
265 | # |
|
265 | # | |
266 | # print_slist = result_display.when_type(SList)(print_slist) |
|
266 | # print_slist = result_display.when_type(SList)(print_slist) | |
267 |
|
267 | |||
268 |
|
268 | |||
269 | def esc_quotes(strng): |
|
269 | def esc_quotes(strng): | |
270 | """Return the input string with single and double quotes escaped out""" |
|
270 | """Return the input string with single and double quotes escaped out""" | |
271 |
|
271 | |||
272 | return strng.replace('"','\\"').replace("'","\\'") |
|
272 | return strng.replace('"','\\"').replace("'","\\'") | |
273 |
|
273 | |||
274 |
|
274 | |||
275 | def make_quoted_expr(s): |
|
275 | def make_quoted_expr(s): | |
276 | """Return string s in appropriate quotes, using raw string if possible. |
|
276 | """Return string s in appropriate quotes, using raw string if possible. | |
277 |
|
277 | |||
278 | XXX - example removed because it caused encoding errors in documentation |
|
278 | XXX - example removed because it caused encoding errors in documentation | |
279 | generation. We need a new example that doesn't contain invalid chars. |
|
279 | generation. We need a new example that doesn't contain invalid chars. | |
280 |
|
280 | |||
281 | Note the use of raw string and padding at the end to allow trailing |
|
281 | Note the use of raw string and padding at the end to allow trailing | |
282 | backslash. |
|
282 | backslash. | |
283 | """ |
|
283 | """ | |
284 |
|
284 | |||
285 | tail = '' |
|
285 | tail = '' | |
286 | tailpadding = '' |
|
286 | tailpadding = '' | |
287 | raw = '' |
|
287 | raw = '' | |
288 | if "\\" in s: |
|
288 | if "\\" in s: | |
289 | raw = 'r' |
|
289 | raw = 'r' | |
290 | if s.endswith('\\'): |
|
290 | if s.endswith('\\'): | |
291 | tail = '[:-1]' |
|
291 | tail = '[:-1]' | |
292 | tailpadding = '_' |
|
292 | tailpadding = '_' | |
293 | if '"' not in s: |
|
293 | if '"' not in s: | |
294 | quote = '"' |
|
294 | quote = '"' | |
295 | elif "'" not in s: |
|
295 | elif "'" not in s: | |
296 | quote = "'" |
|
296 | quote = "'" | |
297 | elif '"""' not in s and not s.endswith('"'): |
|
297 | elif '"""' not in s and not s.endswith('"'): | |
298 | quote = '"""' |
|
298 | quote = '"""' | |
299 | elif "'''" not in s and not s.endswith("'"): |
|
299 | elif "'''" not in s and not s.endswith("'"): | |
300 | quote = "'''" |
|
300 | quote = "'''" | |
301 | else: |
|
301 | else: | |
302 | # give up, backslash-escaped string will do |
|
302 | # give up, backslash-escaped string will do | |
303 |
return '"%s"' % esc_quotes(s) |
|
303 | return '"%s"' % esc_quotes(s) | |
304 | txt = (s + tailpadding).strip() |
|
304 | res = raw + quote + s + tailpadding + quote + tail | |
305 | res = raw + quote + txt + quote + tail |
|
|||
306 | return res |
|
305 | return res | |
307 |
|
306 | |||
308 |
|
307 | |||
309 | def qw(words,flat=0,sep=None,maxsplit=-1): |
|
308 | def qw(words,flat=0,sep=None,maxsplit=-1): | |
310 | """Similar to Perl's qw() operator, but with some more options. |
|
309 | """Similar to Perl's qw() operator, but with some more options. | |
311 |
|
310 | |||
312 | qw(words,flat=0,sep=' ',maxsplit=-1) -> words.split(sep,maxsplit) |
|
311 | qw(words,flat=0,sep=' ',maxsplit=-1) -> words.split(sep,maxsplit) | |
313 |
|
312 | |||
314 | words can also be a list itself, and with flat=1, the output will be |
|
313 | words can also be a list itself, and with flat=1, the output will be | |
315 | recursively flattened. |
|
314 | recursively flattened. | |
316 |
|
315 | |||
317 | Examples: |
|
316 | Examples: | |
318 |
|
317 | |||
319 | >>> qw('1 2') |
|
318 | >>> qw('1 2') | |
320 | ['1', '2'] |
|
319 | ['1', '2'] | |
321 |
|
320 | |||
322 | >>> qw(['a b','1 2',['m n','p q']]) |
|
321 | >>> qw(['a b','1 2',['m n','p q']]) | |
323 | [['a', 'b'], ['1', '2'], [['m', 'n'], ['p', 'q']]] |
|
322 | [['a', 'b'], ['1', '2'], [['m', 'n'], ['p', 'q']]] | |
324 |
|
323 | |||
325 | >>> qw(['a b','1 2',['m n','p q']],flat=1) |
|
324 | >>> qw(['a b','1 2',['m n','p q']],flat=1) | |
326 | ['a', 'b', '1', '2', 'm', 'n', 'p', 'q'] |
|
325 | ['a', 'b', '1', '2', 'm', 'n', 'p', 'q'] | |
327 | """ |
|
326 | """ | |
328 |
|
327 | |||
329 | if type(words) in StringTypes: |
|
328 | if type(words) in StringTypes: | |
330 | return [word.strip() for word in words.split(sep,maxsplit) |
|
329 | return [word.strip() for word in words.split(sep,maxsplit) | |
331 | if word and not word.isspace() ] |
|
330 | if word and not word.isspace() ] | |
332 | if flat: |
|
331 | if flat: | |
333 | return flatten(map(qw,words,[1]*len(words))) |
|
332 | return flatten(map(qw,words,[1]*len(words))) | |
334 | return map(qw,words) |
|
333 | return map(qw,words) | |
335 |
|
334 | |||
336 |
|
335 | |||
337 | def qwflat(words,sep=None,maxsplit=-1): |
|
336 | def qwflat(words,sep=None,maxsplit=-1): | |
338 | """Calls qw(words) in flat mode. It's just a convenient shorthand.""" |
|
337 | """Calls qw(words) in flat mode. It's just a convenient shorthand.""" | |
339 | return qw(words,1,sep,maxsplit) |
|
338 | return qw(words,1,sep,maxsplit) | |
340 |
|
339 | |||
341 |
|
340 | |||
342 | def qw_lol(indata): |
|
341 | def qw_lol(indata): | |
343 | """qw_lol('a b') -> [['a','b']], |
|
342 | """qw_lol('a b') -> [['a','b']], | |
344 | otherwise it's just a call to qw(). |
|
343 | otherwise it's just a call to qw(). | |
345 |
|
344 | |||
346 | We need this to make sure the modules_some keys *always* end up as a |
|
345 | We need this to make sure the modules_some keys *always* end up as a | |
347 | list of lists.""" |
|
346 | list of lists.""" | |
348 |
|
347 | |||
349 | if type(indata) in StringTypes: |
|
348 | if type(indata) in StringTypes: | |
350 | return [qw(indata)] |
|
349 | return [qw(indata)] | |
351 | else: |
|
350 | else: | |
352 | return qw(indata) |
|
351 | return qw(indata) | |
353 |
|
352 | |||
354 |
|
353 | |||
355 | def grep(pat,list,case=1): |
|
354 | def grep(pat,list,case=1): | |
356 | """Simple minded grep-like function. |
|
355 | """Simple minded grep-like function. | |
357 | grep(pat,list) returns occurrences of pat in list, None on failure. |
|
356 | grep(pat,list) returns occurrences of pat in list, None on failure. | |
358 |
|
357 | |||
359 | It only does simple string matching, with no support for regexps. Use the |
|
358 | It only does simple string matching, with no support for regexps. Use the | |
360 | option case=0 for case-insensitive matching.""" |
|
359 | option case=0 for case-insensitive matching.""" | |
361 |
|
360 | |||
362 | # This is pretty crude. At least it should implement copying only references |
|
361 | # This is pretty crude. At least it should implement copying only references | |
363 | # to the original data in case it's big. Now it copies the data for output. |
|
362 | # to the original data in case it's big. Now it copies the data for output. | |
364 | out=[] |
|
363 | out=[] | |
365 | if case: |
|
364 | if case: | |
366 | for term in list: |
|
365 | for term in list: | |
367 | if term.find(pat)>-1: out.append(term) |
|
366 | if term.find(pat)>-1: out.append(term) | |
368 | else: |
|
367 | else: | |
369 | lpat=pat.lower() |
|
368 | lpat=pat.lower() | |
370 | for term in list: |
|
369 | for term in list: | |
371 | if term.lower().find(lpat)>-1: out.append(term) |
|
370 | if term.lower().find(lpat)>-1: out.append(term) | |
372 |
|
371 | |||
373 | if len(out): return out |
|
372 | if len(out): return out | |
374 | else: return None |
|
373 | else: return None | |
375 |
|
374 | |||
376 |
|
375 | |||
377 | def dgrep(pat,*opts): |
|
376 | def dgrep(pat,*opts): | |
378 | """Return grep() on dir()+dir(__builtins__). |
|
377 | """Return grep() on dir()+dir(__builtins__). | |
379 |
|
378 | |||
380 | A very common use of grep() when working interactively.""" |
|
379 | A very common use of grep() when working interactively.""" | |
381 |
|
380 | |||
382 | return grep(pat,dir(__main__)+dir(__main__.__builtins__),*opts) |
|
381 | return grep(pat,dir(__main__)+dir(__main__.__builtins__),*opts) | |
383 |
|
382 | |||
384 |
|
383 | |||
385 | def idgrep(pat): |
|
384 | def idgrep(pat): | |
386 | """Case-insensitive dgrep()""" |
|
385 | """Case-insensitive dgrep()""" | |
387 |
|
386 | |||
388 | return dgrep(pat,0) |
|
387 | return dgrep(pat,0) | |
389 |
|
388 | |||
390 |
|
389 | |||
391 | def igrep(pat,list): |
|
390 | def igrep(pat,list): | |
392 | """Synonym for case-insensitive grep.""" |
|
391 | """Synonym for case-insensitive grep.""" | |
393 |
|
392 | |||
394 | return grep(pat,list,case=0) |
|
393 | return grep(pat,list,case=0) | |
395 |
|
394 | |||
396 |
|
395 | |||
397 | def indent(str,nspaces=4,ntabs=0): |
|
396 | def indent(str,nspaces=4,ntabs=0): | |
398 | """Indent a string a given number of spaces or tabstops. |
|
397 | """Indent a string a given number of spaces or tabstops. | |
399 |
|
398 | |||
400 | indent(str,nspaces=4,ntabs=0) -> indent str by ntabs+nspaces. |
|
399 | indent(str,nspaces=4,ntabs=0) -> indent str by ntabs+nspaces. | |
401 | """ |
|
400 | """ | |
402 | if str is None: |
|
401 | if str is None: | |
403 | return |
|
402 | return | |
404 | ind = '\t'*ntabs+' '*nspaces |
|
403 | ind = '\t'*ntabs+' '*nspaces | |
405 | outstr = '%s%s' % (ind,str.replace(os.linesep,os.linesep+ind)) |
|
404 | outstr = '%s%s' % (ind,str.replace(os.linesep,os.linesep+ind)) | |
406 | if outstr.endswith(os.linesep+ind): |
|
405 | if outstr.endswith(os.linesep+ind): | |
407 | return outstr[:-len(ind)] |
|
406 | return outstr[:-len(ind)] | |
408 | else: |
|
407 | else: | |
409 | return outstr |
|
408 | return outstr | |
410 |
|
409 | |||
411 | def native_line_ends(filename,backup=1): |
|
410 | def native_line_ends(filename,backup=1): | |
412 | """Convert (in-place) a file to line-ends native to the current OS. |
|
411 | """Convert (in-place) a file to line-ends native to the current OS. | |
413 |
|
412 | |||
414 | If the optional backup argument is given as false, no backup of the |
|
413 | If the optional backup argument is given as false, no backup of the | |
415 | original file is left. """ |
|
414 | original file is left. """ | |
416 |
|
415 | |||
417 | backup_suffixes = {'posix':'~','dos':'.bak','nt':'.bak','mac':'.bak'} |
|
416 | backup_suffixes = {'posix':'~','dos':'.bak','nt':'.bak','mac':'.bak'} | |
418 |
|
417 | |||
419 | bak_filename = filename + backup_suffixes[os.name] |
|
418 | bak_filename = filename + backup_suffixes[os.name] | |
420 |
|
419 | |||
421 | original = open(filename).read() |
|
420 | original = open(filename).read() | |
422 | shutil.copy2(filename,bak_filename) |
|
421 | shutil.copy2(filename,bak_filename) | |
423 | try: |
|
422 | try: | |
424 | new = open(filename,'wb') |
|
423 | new = open(filename,'wb') | |
425 | new.write(os.linesep.join(original.splitlines())) |
|
424 | new.write(os.linesep.join(original.splitlines())) | |
426 | new.write(os.linesep) # ALWAYS put an eol at the end of the file |
|
425 | new.write(os.linesep) # ALWAYS put an eol at the end of the file | |
427 | new.close() |
|
426 | new.close() | |
428 | except: |
|
427 | except: | |
429 | os.rename(bak_filename,filename) |
|
428 | os.rename(bak_filename,filename) | |
430 | if not backup: |
|
429 | if not backup: | |
431 | try: |
|
430 | try: | |
432 | os.remove(bak_filename) |
|
431 | os.remove(bak_filename) | |
433 | except: |
|
432 | except: | |
434 | pass |
|
433 | pass | |
435 |
|
434 | |||
436 |
|
435 | |||
437 | def list_strings(arg): |
|
436 | def list_strings(arg): | |
438 | """Always return a list of strings, given a string or list of strings |
|
437 | """Always return a list of strings, given a string or list of strings | |
439 | as input. |
|
438 | as input. | |
440 |
|
439 | |||
441 | :Examples: |
|
440 | :Examples: | |
442 |
|
441 | |||
443 | In [7]: list_strings('A single string') |
|
442 | In [7]: list_strings('A single string') | |
444 | Out[7]: ['A single string'] |
|
443 | Out[7]: ['A single string'] | |
445 |
|
444 | |||
446 | In [8]: list_strings(['A single string in a list']) |
|
445 | In [8]: list_strings(['A single string in a list']) | |
447 | Out[8]: ['A single string in a list'] |
|
446 | Out[8]: ['A single string in a list'] | |
448 |
|
447 | |||
449 | In [9]: list_strings(['A','list','of','strings']) |
|
448 | In [9]: list_strings(['A','list','of','strings']) | |
450 | Out[9]: ['A', 'list', 'of', 'strings'] |
|
449 | Out[9]: ['A', 'list', 'of', 'strings'] | |
451 | """ |
|
450 | """ | |
452 |
|
451 | |||
453 | if isinstance(arg,basestring): return [arg] |
|
452 | if isinstance(arg,basestring): return [arg] | |
454 | else: return arg |
|
453 | else: return arg | |
455 |
|
454 | |||
456 |
|
455 | |||
457 | def marquee(txt='',width=78,mark='*'): |
|
456 | def marquee(txt='',width=78,mark='*'): | |
458 | """Return the input string centered in a 'marquee'. |
|
457 | """Return the input string centered in a 'marquee'. | |
459 |
|
458 | |||
460 | :Examples: |
|
459 | :Examples: | |
461 |
|
460 | |||
462 | In [16]: marquee('A test',40) |
|
461 | In [16]: marquee('A test',40) | |
463 | Out[16]: '**************** A test ****************' |
|
462 | Out[16]: '**************** A test ****************' | |
464 |
|
463 | |||
465 | In [17]: marquee('A test',40,'-') |
|
464 | In [17]: marquee('A test',40,'-') | |
466 | Out[17]: '---------------- A test ----------------' |
|
465 | Out[17]: '---------------- A test ----------------' | |
467 |
|
466 | |||
468 | In [18]: marquee('A test',40,' ') |
|
467 | In [18]: marquee('A test',40,' ') | |
469 | Out[18]: ' A test ' |
|
468 | Out[18]: ' A test ' | |
470 |
|
469 | |||
471 | """ |
|
470 | """ | |
472 | if not txt: |
|
471 | if not txt: | |
473 | return (mark*width)[:width] |
|
472 | return (mark*width)[:width] | |
474 | nmark = (width-len(txt)-2)/len(mark)/2 |
|
473 | nmark = (width-len(txt)-2)/len(mark)/2 | |
475 | if nmark < 0: nmark =0 |
|
474 | if nmark < 0: nmark =0 | |
476 | marks = mark*nmark |
|
475 | marks = mark*nmark | |
477 | return '%s %s %s' % (marks,txt,marks) |
|
476 | return '%s %s %s' % (marks,txt,marks) | |
478 |
|
477 | |||
479 |
|
478 | |||
480 | ini_spaces_re = re.compile(r'^(\s+)') |
|
479 | ini_spaces_re = re.compile(r'^(\s+)') | |
481 |
|
480 | |||
482 | def num_ini_spaces(strng): |
|
481 | def num_ini_spaces(strng): | |
483 | """Return the number of initial spaces in a string""" |
|
482 | """Return the number of initial spaces in a string""" | |
484 |
|
483 | |||
485 | ini_spaces = ini_spaces_re.match(strng) |
|
484 | ini_spaces = ini_spaces_re.match(strng) | |
486 | if ini_spaces: |
|
485 | if ini_spaces: | |
487 | return ini_spaces.end() |
|
486 | return ini_spaces.end() | |
488 | else: |
|
487 | else: | |
489 | return 0 |
|
488 | return 0 | |
490 |
|
489 |
@@ -1,507 +1,510 b'' | |||||
1 | /** |
|
1 | /** | |
2 | * Alternate Sphinx design |
|
2 | * Alternate Sphinx design | |
3 | * Originally created by Armin Ronacher for Werkzeug, adapted by Georg Brandl. |
|
3 | * Originally created by Armin Ronacher for Werkzeug, adapted by Georg Brandl. | |
4 | */ |
|
4 | */ | |
5 |
|
5 | |||
6 | body { |
|
6 | body { | |
7 | font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 'Verdana', sans-serif; |
|
7 | font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 'Verdana', sans-serif; | |
8 | font-size: 14px; |
|
8 | font-size: 14px; | |
9 | letter-spacing: -0.01em; |
|
9 | letter-spacing: -0.01em; | |
10 | line-height: 150%; |
|
10 | line-height: 150%; | |
11 | text-align: center; |
|
11 | text-align: center; | |
12 | /*background-color: #AFC1C4; */ |
|
12 | /*background-color: #AFC1C4; */ | |
13 | background-color: #BFD1D4; |
|
13 | background-color: #BFD1D4; | |
14 | color: black; |
|
14 | color: black; | |
15 | padding: 0; |
|
15 | padding: 0; | |
16 | border: 1px solid #aaa; |
|
16 | border: 1px solid #aaa; | |
17 |
|
17 | |||
18 | margin: 0px 80px 0px 80px; |
|
18 | margin: 0px 80px 0px 80px; | |
19 | min-width: 740px; |
|
19 | min-width: 740px; | |
20 | } |
|
20 | } | |
21 |
|
21 | |||
22 | a { |
|
22 | a { | |
23 | color: #CA7900; |
|
23 | color: #CA7900; | |
24 | text-decoration: none; |
|
24 | text-decoration: none; | |
25 | } |
|
25 | } | |
26 |
|
26 | |||
27 | a:hover { |
|
27 | a:hover { | |
28 | color: #2491CF; |
|
28 | color: #2491CF; | |
29 | } |
|
29 | } | |
30 |
|
30 | |||
31 | pre { |
|
31 | pre { | |
32 | font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; |
|
32 | font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; | |
33 | font-size: 0.95em; |
|
33 | font-size: 0.95em; | |
34 | letter-spacing: 0.015em; |
|
34 | letter-spacing: 0.015em; | |
35 | padding: 0.5em; |
|
35 | padding: 0.5em; | |
36 | border: 1px solid #ccc; |
|
36 | border: 1px solid #ccc; | |
37 | background-color: #f8f8f8; |
|
37 | background-color: #f8f8f8; | |
38 | } |
|
38 | } | |
39 |
|
39 | |||
40 | td.linenos pre { |
|
40 | td.linenos pre { | |
41 | padding: 0.5em 0; |
|
41 | padding: 0.5em 0; | |
42 | border: 0; |
|
42 | border: 0; | |
43 | background-color: transparent; |
|
43 | background-color: transparent; | |
44 | color: #aaa; |
|
44 | color: #aaa; | |
45 | } |
|
45 | } | |
46 |
|
46 | |||
47 | table.highlighttable { |
|
47 | table.highlighttable { | |
48 | margin-left: 0.5em; |
|
48 | margin-left: 0.5em; | |
49 | } |
|
49 | } | |
50 |
|
50 | |||
51 | table.highlighttable td { |
|
51 | table.highlighttable td { | |
52 | padding: 0 0.5em 0 0.5em; |
|
52 | padding: 0 0.5em 0 0.5em; | |
53 | } |
|
53 | } | |
54 |
|
54 | |||
55 | cite, code, tt { |
|
55 | cite, code, tt { | |
56 | font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; |
|
56 | font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; | |
57 | font-size: 0.95em; |
|
57 | font-size: 0.95em; | |
58 | letter-spacing: 0.01em; |
|
58 | letter-spacing: 0.01em; | |
59 | } |
|
59 | } | |
60 |
|
60 | |||
61 | hr { |
|
61 | hr { | |
62 | border: 1px solid #abc; |
|
62 | border: 1px solid #abc; | |
63 | margin: 2em; |
|
63 | margin: 2em; | |
64 | } |
|
64 | } | |
65 |
|
65 | |||
66 | tt { |
|
66 | tt { | |
67 | background-color: #f2f2f2; |
|
67 | background-color: #f2f2f2; | |
68 | border-bottom: 1px solid #ddd; |
|
68 | border-bottom: 1px solid #ddd; | |
69 | color: #333; |
|
69 | color: #333; | |
70 | } |
|
70 | } | |
71 |
|
71 | |||
72 | tt.descname { |
|
72 | tt.descname { | |
73 | background-color: transparent; |
|
73 | background-color: transparent; | |
74 | font-weight: bold; |
|
74 | font-weight: bold; | |
75 | font-size: 1.2em; |
|
75 | font-size: 1.2em; | |
76 | border: 0; |
|
76 | border: 0; | |
77 | } |
|
77 | } | |
78 |
|
78 | |||
79 | tt.descclassname { |
|
79 | tt.descclassname { | |
80 | background-color: transparent; |
|
80 | background-color: transparent; | |
81 | border: 0; |
|
81 | border: 0; | |
82 | } |
|
82 | } | |
83 |
|
83 | |||
84 | tt.xref { |
|
84 | tt.xref { | |
85 | background-color: transparent; |
|
85 | background-color: transparent; | |
86 | font-weight: bold; |
|
86 | font-weight: bold; | |
87 | border: 0; |
|
87 | border: 0; | |
88 | } |
|
88 | } | |
89 |
|
89 | |||
90 | a tt { |
|
90 | a tt { | |
91 | background-color: transparent; |
|
91 | background-color: transparent; | |
92 | font-weight: bold; |
|
92 | font-weight: bold; | |
93 | border: 0; |
|
93 | border: 0; | |
94 | color: #CA7900; |
|
94 | color: #CA7900; | |
95 | } |
|
95 | } | |
96 |
|
96 | |||
97 | a tt:hover { |
|
97 | a tt:hover { | |
98 | color: #2491CF; |
|
98 | color: #2491CF; | |
99 | } |
|
99 | } | |
100 |
|
100 | |||
101 | dl { |
|
101 | dl { | |
102 | margin-bottom: 15px; |
|
102 | margin-bottom: 15px; | |
103 | } |
|
103 | } | |
104 |
|
104 | |||
105 | dd p { |
|
105 | dd p { | |
106 | margin-top: 0px; |
|
106 | margin-top: 0px; | |
107 | } |
|
107 | } | |
108 |
|
108 | |||
109 | dd ul, dd table { |
|
109 | dd ul, dd table { | |
110 | margin-bottom: 10px; |
|
110 | margin-bottom: 10px; | |
111 | } |
|
111 | } | |
112 |
|
112 | |||
113 | dd { |
|
113 | dd { | |
114 | margin-top: 3px; |
|
114 | margin-top: 3px; | |
115 | margin-bottom: 10px; |
|
115 | margin-bottom: 10px; | |
116 | margin-left: 30px; |
|
116 | margin-left: 30px; | |
117 | } |
|
117 | } | |
118 |
|
118 | |||
119 | .refcount { |
|
119 | .refcount { | |
120 | color: #060; |
|
120 | color: #060; | |
121 | } |
|
121 | } | |
122 |
|
122 | |||
123 | dt:target, |
|
123 | dt:target, | |
124 | .highlight { |
|
124 | .highlight { | |
125 | background-color: #fbe54e; |
|
125 | background-color: #fbe54e; | |
126 | } |
|
126 | } | |
127 |
|
127 | |||
128 | dl.class, dl.function { |
|
128 | dl.class, dl.function { | |
129 | border-top: 2px solid #888; |
|
129 | border-top: 2px solid #888; | |
130 | } |
|
130 | } | |
131 |
|
131 | |||
132 | dl.method, dl.attribute { |
|
132 | dl.method, dl.attribute { | |
133 | border-top: 1px solid #aaa; |
|
133 | border-top: 1px solid #aaa; | |
134 | } |
|
134 | } | |
135 |
|
135 | |||
136 | dl.glossary dt { |
|
136 | dl.glossary dt { | |
137 | font-weight: bold; |
|
137 | font-weight: bold; | |
138 | font-size: 1.1em; |
|
138 | font-size: 1.1em; | |
139 | } |
|
139 | } | |
140 |
|
140 | |||
141 | pre { |
|
141 | pre { | |
142 | line-height: 120%; |
|
142 | line-height: 120%; | |
143 | } |
|
143 | } | |
144 |
|
144 | |||
145 | pre a { |
|
145 | pre a { | |
146 | color: inherit; |
|
146 | color: inherit; | |
147 | text-decoration: underline; |
|
147 | text-decoration: underline; | |
148 | } |
|
148 | } | |
149 |
|
149 | |||
150 | .first { |
|
150 | .first { | |
151 | margin-top: 0 !important; |
|
151 | margin-top: 0 !important; | |
152 | } |
|
152 | } | |
153 |
|
153 | |||
154 | div.document { |
|
154 | div.document { | |
155 | background-color: white; |
|
155 | background-color: white; | |
156 | text-align: left; |
|
156 | text-align: left; | |
157 | background-image: url(contents.png); |
|
157 | background-image: url(contents.png); | |
158 | background-repeat: repeat-x; |
|
158 | background-repeat: repeat-x; | |
159 | } |
|
159 | } | |
160 |
|
160 | |||
161 | /* |
|
161 | /* | |
162 | div.documentwrapper { |
|
162 | div.documentwrapper { | |
163 | width: 100%; |
|
163 | width: 100%; | |
164 | } |
|
164 | } | |
165 | */ |
|
165 | */ | |
166 |
|
166 | |||
167 | div.clearer { |
|
167 | div.clearer { | |
168 | clear: both; |
|
168 | clear: both; | |
169 | } |
|
169 | } | |
170 |
|
170 | |||
171 | div.related h3 { |
|
171 | div.related h3 { | |
172 | display: none; |
|
172 | display: none; | |
173 | } |
|
173 | } | |
174 |
|
174 | |||
175 | div.related ul { |
|
175 | div.related ul { | |
176 | background-image: url(navigation.png); |
|
176 | background-image: url(navigation.png); | |
177 | height: 2em; |
|
177 | height: 2em; | |
178 | list-style: none; |
|
178 | list-style: none; | |
179 | border-top: 1px solid #ddd; |
|
179 | border-top: 1px solid #ddd; | |
180 | border-bottom: 1px solid #ddd; |
|
180 | border-bottom: 1px solid #ddd; | |
181 | margin: 0; |
|
181 | margin: 0; | |
182 | padding-left: 10px; |
|
182 | padding-left: 10px; | |
183 | } |
|
183 | } | |
184 |
|
184 | |||
185 | div.related ul li { |
|
185 | div.related ul li { | |
186 | margin: 0; |
|
186 | margin: 0; | |
187 | padding: 0; |
|
187 | padding: 0; | |
188 | height: 2em; |
|
188 | height: 2em; | |
189 | float: left; |
|
189 | float: left; | |
190 | } |
|
190 | } | |
191 |
|
191 | |||
192 | div.related ul li.right { |
|
192 | div.related ul li.right { | |
193 | float: right; |
|
193 | float: right; | |
194 | margin-right: 5px; |
|
194 | margin-right: 5px; | |
195 | } |
|
195 | } | |
196 |
|
196 | |||
197 | div.related ul li a { |
|
197 | div.related ul li a { | |
198 | margin: 0; |
|
198 | margin: 0; | |
199 | padding: 0 5px 0 5px; |
|
199 | padding: 0 5px 0 5px; | |
200 | line-height: 1.75em; |
|
200 | line-height: 1.75em; | |
201 | color: #EE9816; |
|
201 | color: #EE9816; | |
202 | } |
|
202 | } | |
203 |
|
203 | |||
204 | div.related ul li a:hover { |
|
204 | div.related ul li a:hover { | |
205 | color: #3CA8E7; |
|
205 | color: #3CA8E7; | |
206 | } |
|
206 | } | |
207 |
|
207 | |||
208 | div.body { |
|
208 | div.body { | |
209 | margin: 0; |
|
209 | margin: 0; | |
210 | padding: 0.5em 20px 20px 20px; |
|
210 | padding: 0.5em 20px 20px 20px; | |
211 | } |
|
211 | } | |
212 |
|
212 | |||
213 | div.bodywrapper { |
|
213 | div.bodywrapper { | |
214 | margin: 0 240px 0 0; |
|
214 | margin: 0 240px 0 0; | |
215 | border-right: 1px solid #ccc; |
|
215 | border-right: 1px solid #ccc; | |
216 | } |
|
216 | } | |
217 |
|
217 | |||
218 | div.body a { |
|
218 | div.body a { | |
219 | text-decoration: underline; |
|
219 | text-decoration: underline; | |
220 | } |
|
220 | } | |
221 |
|
221 | |||
222 | div.sphinxsidebar { |
|
222 | div.sphinxsidebar { | |
223 | margin: 0; |
|
223 | margin: 0; | |
224 | padding: 0.5em 15px 15px 0; |
|
224 | padding: 0.5em 15px 15px 0; | |
225 | width: 210px; |
|
225 | width: 210px; | |
226 | float: right; |
|
226 | float: right; | |
227 | text-align: left; |
|
227 | text-align: left; | |
228 | /* margin-left: -100%; */ |
|
228 | /* margin-left: -100%; */ | |
229 | } |
|
229 | } | |
230 |
|
230 | |||
231 | div.sphinxsidebar h4, div.sphinxsidebar h3 { |
|
231 | div.sphinxsidebar h4, div.sphinxsidebar h3 { | |
232 | margin: 1em 0 0.5em 0; |
|
232 | margin: 1em 0 0.5em 0; | |
233 | font-size: 0.9em; |
|
233 | font-size: 0.9em; | |
234 | padding: 0.1em 0 0.1em 0.5em; |
|
234 | padding: 0.1em 0 0.1em 0.5em; | |
235 | color: white; |
|
235 | color: white; | |
236 | border: 1px solid #86989B; |
|
236 | border: 1px solid #86989B; | |
237 | background-color: #AFC1C4; |
|
237 | background-color: #AFC1C4; | |
238 | } |
|
238 | } | |
239 |
|
239 | |||
240 | div.sphinxsidebar ul { |
|
240 | div.sphinxsidebar ul { | |
241 | padding-left: 1.5em; |
|
241 | padding-left: 1.5em; | |
242 | margin-top: 7px; |
|
242 | margin-top: 7px; | |
243 | list-style: none; |
|
243 | list-style: none; | |
244 | padding: 0; |
|
244 | padding: 0; | |
245 | line-height: 130%; |
|
245 | line-height: 130%; | |
246 | } |
|
246 | } | |
247 |
|
247 | |||
248 | div.sphinxsidebar ul ul { |
|
248 | div.sphinxsidebar ul ul { | |
249 | list-style: square; |
|
249 | list-style: square; | |
250 | margin-left: 20px; |
|
250 | margin-left: 20px; | |
251 | } |
|
251 | } | |
252 |
|
252 | |||
253 | p { |
|
253 | p { | |
254 | margin: 0.8em 0 0.5em 0; |
|
254 | margin: 0.8em 0 0.5em 0; | |
255 | } |
|
255 | } | |
256 |
|
256 | |||
257 | p.rubric { |
|
257 | p.rubric { | |
258 | font-weight: bold; |
|
258 | font-weight: bold; | |
259 | } |
|
259 | } | |
260 |
|
260 | |||
261 | h1 { |
|
261 | h1 { | |
262 | margin: 0; |
|
262 | margin: 0; | |
263 | padding: 0.7em 0 0.3em 0; |
|
263 | padding: 0.7em 0 0.3em 0; | |
264 | font-size: 1.5em; |
|
264 | font-size: 1.5em; | |
265 | color: #11557C; |
|
265 | color: #11557C; | |
266 | } |
|
266 | } | |
267 |
|
267 | |||
268 | h2 { |
|
268 | h2 { | |
269 | margin: 1.3em 0 0.2em 0; |
|
269 | margin: 1.3em 0 0.2em 0; | |
270 | font-size: 1.35em; |
|
270 | font-size: 1.35em; | |
271 | padding: 0; |
|
271 | padding: 0; | |
272 | } |
|
272 | } | |
273 |
|
273 | |||
274 | h3 { |
|
274 | h3 { | |
275 | margin: 1em 0 -0.3em 0; |
|
275 | margin: 1em 0 -0.3em 0; | |
276 | font-size: 1.2em; |
|
276 | font-size: 1.2em; | |
277 | } |
|
277 | } | |
278 |
|
278 | |||
279 | h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { |
|
279 | h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { | |
280 | color: black!important; |
|
280 | color: black!important; | |
281 | } |
|
281 | } | |
282 |
|
282 | |||
283 | h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor { |
|
283 | h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor { | |
284 | display: none; |
|
284 | display: none; | |
285 | margin: 0 0 0 0.3em; |
|
285 | margin: 0 0 0 0.3em; | |
286 | padding: 0 0.2em 0 0.2em; |
|
286 | padding: 0 0.2em 0 0.2em; | |
287 | color: #aaa!important; |
|
287 | color: #aaa!important; | |
288 | } |
|
288 | } | |
289 |
|
289 | |||
290 | h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, |
|
290 | h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, | |
291 | h5:hover a.anchor, h6:hover a.anchor { |
|
291 | h5:hover a.anchor, h6:hover a.anchor { | |
292 | display: inline; |
|
292 | display: inline; | |
293 | } |
|
293 | } | |
294 |
|
294 | |||
295 | h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover, |
|
295 | h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover, | |
296 | h5 a.anchor:hover, h6 a.anchor:hover { |
|
296 | h5 a.anchor:hover, h6 a.anchor:hover { | |
297 | color: #777; |
|
297 | color: #777; | |
298 | background-color: #eee; |
|
298 | background-color: #eee; | |
299 | } |
|
299 | } | |
300 |
|
300 | |||
301 | table { |
|
301 | table { | |
302 | border-collapse: collapse; |
|
302 | border-collapse: collapse; | |
303 | margin: 0 -0.5em 0 -0.5em; |
|
303 | margin: 0 -0.5em 0 -0.5em; | |
304 | } |
|
304 | } | |
305 |
|
305 | |||
306 | table td, table th { |
|
306 | table td, table th { | |
307 | padding: 0.2em 0.5em 0.2em 0.5em; |
|
307 | padding: 0.2em 0.5em 0.2em 0.5em; | |
308 | } |
|
308 | } | |
309 |
|
309 | |||
310 | div.footer { |
|
310 | div.footer { | |
311 | background-color: #E3EFF1; |
|
311 | background-color: #E3EFF1; | |
312 | color: #86989B; |
|
312 | color: #86989B; | |
313 | padding: 3px 8px 3px 0; |
|
313 | padding: 3px 8px 3px 0; | |
314 | clear: both; |
|
314 | clear: both; | |
315 | font-size: 0.8em; |
|
315 | font-size: 0.8em; | |
316 | text-align: right; |
|
316 | text-align: right; | |
317 | } |
|
317 | } | |
318 |
|
318 | |||
319 | div.footer a { |
|
319 | div.footer a { | |
320 | color: #86989B; |
|
320 | color: #86989B; | |
321 | text-decoration: underline; |
|
321 | text-decoration: underline; | |
322 | } |
|
322 | } | |
323 |
|
323 | |||
324 | div.pagination { |
|
324 | div.pagination { | |
325 | margin-top: 2em; |
|
325 | margin-top: 2em; | |
326 | padding-top: 0.5em; |
|
326 | padding-top: 0.5em; | |
327 | border-top: 1px solid black; |
|
327 | border-top: 1px solid black; | |
328 | text-align: center; |
|
328 | text-align: center; | |
329 | } |
|
329 | } | |
330 |
|
330 | |||
331 | div.sphinxsidebar ul.toc { |
|
331 | div.sphinxsidebar ul.toc { | |
332 | margin: 1em 0 1em 0; |
|
332 | margin: 1em 0 1em 0; | |
333 | padding: 0 0 0 0.5em; |
|
333 | padding: 0 0 0 0.5em; | |
334 | list-style: none; |
|
334 | list-style: none; | |
335 | } |
|
335 | } | |
336 |
|
336 | |||
337 | div.sphinxsidebar ul.toc li { |
|
337 | div.sphinxsidebar ul.toc li { | |
338 | margin: 0.5em 0 0.5em 0; |
|
338 | margin: 0.5em 0 0.5em 0; | |
339 | font-size: 0.9em; |
|
339 | font-size: 0.9em; | |
340 | line-height: 130%; |
|
340 | line-height: 130%; | |
341 | } |
|
341 | } | |
342 |
|
342 | |||
343 | div.sphinxsidebar ul.toc li p { |
|
343 | div.sphinxsidebar ul.toc li p { | |
344 | margin: 0; |
|
344 | margin: 0; | |
345 | padding: 0; |
|
345 | padding: 0; | |
346 | } |
|
346 | } | |
347 |
|
347 | |||
348 | div.sphinxsidebar ul.toc ul { |
|
348 | div.sphinxsidebar ul.toc ul { | |
349 | margin: 0.2em 0 0.2em 0; |
|
349 | margin: 0.2em 0 0.2em 0; | |
350 | padding: 0 0 0 1.8em; |
|
350 | padding: 0 0 0 1.8em; | |
351 | } |
|
351 | } | |
352 |
|
352 | |||
353 | div.sphinxsidebar ul.toc ul li { |
|
353 | div.sphinxsidebar ul.toc ul li { | |
354 | padding: 0; |
|
354 | padding: 0; | |
355 | } |
|
355 | } | |
356 |
|
356 | |||
357 | div.admonition, div.warning { |
|
357 | div.admonition, div.warning { | |
358 | font-size: 0.9em; |
|
358 | font-size: 0.9em; | |
359 | margin: 1em 0 0 0; |
|
359 | margin: 1em 0 0 0; | |
360 | border: 1px solid #86989B; |
|
360 | border: 1px solid #86989B; | |
361 | background-color: #f7f7f7; |
|
361 | background-color: #f7f7f7; | |
362 | } |
|
362 | } | |
363 |
|
363 | |||
364 | div.admonition p, div.warning p { |
|
364 | div.admonition p, div.warning p { | |
365 | margin: 0.5em 1em 0.5em 1em; |
|
365 | margin: 0.5em 1em 0.5em 1em; | |
366 | padding: 0; |
|
366 | padding: 0; | |
367 | } |
|
367 | } | |
368 |
|
368 | |||
369 | div.admonition pre, div.warning pre { |
|
369 | div.admonition pre, div.warning pre { | |
370 | margin: 0.4em 1em 0.4em 1em; |
|
370 | margin: 0.4em 1em 0.4em 1em; | |
371 | } |
|
371 | } | |
372 |
|
372 | |||
373 | div.admonition p.admonition-title, |
|
373 | div.admonition p.admonition-title, | |
374 | div.warning p.admonition-title { |
|
374 | div.warning p.admonition-title { | |
375 | margin: 0; |
|
375 | margin: 0; | |
376 | padding: 0.1em 0 0.1em 0.5em; |
|
376 | padding: 0.1em 0 0.1em 0.5em; | |
377 | color: white; |
|
377 | color: white; | |
378 | border-bottom: 1px solid #86989B; |
|
378 | border-bottom: 1px solid #86989B; | |
379 | font-weight: bold; |
|
379 | font-weight: bold; | |
380 | background-color: #AFC1C4; |
|
380 | background-color: #AFC1C4; | |
381 | } |
|
381 | } | |
382 |
|
382 | |||
383 | div.warning { |
|
383 | div.warning { | |
384 | border: 1px solid #940000; |
|
384 | border: 1px solid #940000; | |
385 | } |
|
385 | } | |
386 |
|
386 | |||
387 | div.warning p.admonition-title { |
|
387 | div.warning p.admonition-title { | |
388 | background-color: #CF0000; |
|
388 | background-color: #CF0000; | |
389 | border-bottom-color: #940000; |
|
389 | border-bottom-color: #940000; | |
390 | } |
|
390 | } | |
391 |
|
391 | |||
392 | div.admonition ul, div.admonition ol, |
|
392 | div.admonition ul, div.admonition ol, | |
393 | div.warning ul, div.warning ol { |
|
393 | div.warning ul, div.warning ol { | |
394 | margin: 0.1em 0.5em 0.5em 3em; |
|
394 | margin: 0.1em 0.5em 0.5em 3em; | |
395 | padding: 0; |
|
395 | padding: 0; | |
396 | } |
|
396 | } | |
397 |
|
397 | |||
398 | div.versioninfo { |
|
398 | div.versioninfo { | |
399 | margin: 1em 0 0 0; |
|
399 | margin: 1em 0 0 0; | |
400 | border: 1px solid #ccc; |
|
400 | border: 1px solid #ccc; | |
401 | background-color: #DDEAF0; |
|
401 | background-color: #DDEAF0; | |
402 | padding: 8px; |
|
402 | padding: 8px; | |
403 | line-height: 1.3em; |
|
403 | line-height: 1.3em; | |
404 | font-size: 0.9em; |
|
404 | font-size: 0.9em; | |
405 | } |
|
405 | } | |
406 |
|
406 | |||
407 |
|
407 | |||
408 | a.headerlink { |
|
408 | a.headerlink { | |
409 | color: #c60f0f!important; |
|
409 | color: #c60f0f!important; | |
410 | font-size: 1em; |
|
410 | font-size: 1em; | |
411 | margin-left: 6px; |
|
411 | margin-left: 6px; | |
412 | padding: 0 4px 0 4px; |
|
412 | padding: 0 4px 0 4px; | |
413 | text-decoration: none!important; |
|
413 | text-decoration: none!important; | |
414 | visibility: hidden; |
|
414 | visibility: hidden; | |
415 | } |
|
415 | } | |
416 |
|
416 | |||
417 | h1:hover > a.headerlink, |
|
417 | h1:hover > a.headerlink, | |
418 | h2:hover > a.headerlink, |
|
418 | h2:hover > a.headerlink, | |
419 | h3:hover > a.headerlink, |
|
419 | h3:hover > a.headerlink, | |
420 | h4:hover > a.headerlink, |
|
420 | h4:hover > a.headerlink, | |
421 | h5:hover > a.headerlink, |
|
421 | h5:hover > a.headerlink, | |
422 | h6:hover > a.headerlink, |
|
422 | h6:hover > a.headerlink, | |
423 | dt:hover > a.headerlink { |
|
423 | dt:hover > a.headerlink { | |
424 | visibility: visible; |
|
424 | visibility: visible; | |
425 | } |
|
425 | } | |
426 |
|
426 | |||
427 | a.headerlink:hover { |
|
427 | a.headerlink:hover { | |
428 | background-color: #ccc; |
|
428 | background-color: #ccc; | |
429 | color: white!important; |
|
429 | color: white!important; | |
430 | } |
|
430 | } | |
431 |
|
431 | |||
432 | table.indextable td { |
|
432 | table.indextable td { | |
433 | text-align: left; |
|
433 | text-align: left; | |
434 | vertical-align: top; |
|
434 | vertical-align: top; | |
435 | } |
|
435 | } | |
436 |
|
436 | |||
437 | table.indextable dl, table.indextable dd { |
|
437 | table.indextable dl, table.indextable dd { | |
438 | margin-top: 0; |
|
438 | margin-top: 0; | |
439 | margin-bottom: 0; |
|
439 | margin-bottom: 0; | |
440 | } |
|
440 | } | |
441 |
|
441 | |||
442 | table.indextable tr.pcap { |
|
442 | table.indextable tr.pcap { | |
443 | height: 10px; |
|
443 | height: 10px; | |
444 | } |
|
444 | } | |
445 |
|
445 | |||
446 | table.indextable tr.cap { |
|
446 | table.indextable tr.cap { | |
447 | margin-top: 10px; |
|
447 | margin-top: 10px; | |
448 | background-color: #f2f2f2; |
|
448 | background-color: #f2f2f2; | |
449 | } |
|
449 | } | |
450 |
|
450 | |||
451 | img.toggler { |
|
451 | img.toggler { | |
452 | margin-right: 3px; |
|
452 | margin-right: 3px; | |
453 | margin-top: 3px; |
|
453 | margin-top: 3px; | |
454 | cursor: pointer; |
|
454 | cursor: pointer; | |
455 | } |
|
455 | } | |
456 |
|
456 | |||
457 | img.inheritance { |
|
457 | img.inheritance { | |
458 | border: 0px |
|
458 | border: 0px | |
459 | } |
|
459 | } | |
460 |
|
460 | |||
461 | form.pfform { |
|
461 | form.pfform { | |
462 | margin: 10px 0 20px 0; |
|
462 | margin: 10px 0 20px 0; | |
463 | } |
|
463 | } | |
464 |
|
464 | |||
465 | table.contentstable { |
|
465 | table.contentstable { | |
466 | width: 90%; |
|
466 | width: 90%; | |
467 | } |
|
467 | } | |
468 |
|
468 | |||
469 | table.contentstable p.biglink { |
|
469 | table.contentstable p.biglink { | |
470 | line-height: 150%; |
|
470 | line-height: 150%; | |
471 | } |
|
471 | } | |
472 |
|
472 | |||
473 | a.biglink { |
|
473 | a.biglink { | |
474 | font-size: 1.3em; |
|
474 | font-size: 1.3em; | |
475 | } |
|
475 | } | |
476 |
|
476 | |||
477 | span.linkdescr { |
|
477 | span.linkdescr { | |
478 | font-style: italic; |
|
478 | font-style: italic; | |
479 | padding-top: 5px; |
|
479 | padding-top: 5px; | |
480 | font-size: 90%; |
|
480 | font-size: 90%; | |
481 | } |
|
481 | } | |
482 |
|
482 | |||
483 | ul.search { |
|
483 | ul.search { | |
484 | margin: 10px 0 0 20px; |
|
484 | margin: 10px 0 0 20px; | |
485 | padding: 0; |
|
485 | padding: 0; | |
486 | } |
|
486 | } | |
487 |
|
487 | |||
488 | ul.search li { |
|
488 | ul.search li { | |
489 | padding: 5px 0 5px 20px; |
|
489 | padding: 5px 0 5px 20px; | |
490 | background-image: url(file.png); |
|
490 | background-image: url(file.png); | |
491 | background-repeat: no-repeat; |
|
491 | background-repeat: no-repeat; | |
492 | background-position: 0 7px; |
|
492 | background-position: 0 7px; | |
493 | } |
|
493 | } | |
494 |
|
494 | |||
495 | ul.search li a { |
|
495 | ul.search li a { | |
496 | font-weight: bold; |
|
496 | font-weight: bold; | |
497 | } |
|
497 | } | |
498 |
|
498 | |||
499 | ul.search li div.context { |
|
499 | ul.search li div.context { | |
500 | color: #888; |
|
500 | color: #888; | |
501 | margin: 2px 0 0 30px; |
|
501 | margin: 2px 0 0 30px; | |
502 | text-align: left; |
|
502 | text-align: left; | |
503 | } |
|
503 | } | |
504 |
|
504 | |||
505 | ul.keywordmatches li.goodmatch a { |
|
505 | ul.keywordmatches li.goodmatch a { | |
506 | font-weight: bold; |
|
506 | font-weight: bold; | |
507 | } |
|
507 | } | |
|
508 | div.figure { | |||
|
509 | text-align: center; | |||
|
510 | } |
@@ -1,23 +1,25 b'' | |||||
1 | .. _developer_guide: |
|
1 | .. _developer_guide: | |
2 |
|
2 | |||
3 | ========================= |
|
3 | ========================= | |
4 | IPython developer's guide |
|
4 | IPython developer's guide | |
5 | ========================= |
|
5 | ========================= | |
6 |
|
6 | |||
7 | .. toctree:: |
|
7 | .. toctree:: | |
8 | :maxdepth: 1 |
|
8 | :maxdepth: 1 | |
9 |
|
9 | |||
10 | contributing.txt |
|
10 | contributing.txt | |
11 | gitwash/index.txt |
|
11 | gitwash/index.txt | |
12 | coding_guide.txt |
|
12 | coding_guide.txt | |
13 | doc_guide.txt |
|
13 | doc_guide.txt | |
14 | testing.txt |
|
14 | testing.txt | |
15 | release.txt |
|
15 | release.txt | |
16 | roadmap.txt |
|
16 | roadmap.txt | |
17 | reorg.txt |
|
17 | reorg.txt | |
18 | messaging.txt |
|
18 | messaging.txt | |
|
19 | parallel_messages.txt | |||
|
20 | parallel_connections.txt | |||
19 | magic_blueprint.txt |
|
21 | magic_blueprint.txt | |
20 | notification_blueprint.txt |
|
22 | notification_blueprint.txt | |
21 | ipgraph.txt |
|
23 | ipgraph.txt | |
22 | ipython_qt.txt |
|
24 | ipython_qt.txt | |
23 | ipythonzmq.txt |
|
25 | ipythonzmq.txt |
@@ -1,578 +1,580 b'' | |||||
|
1 | .. _messaging: | |||
|
2 | ||||
1 | ====================== |
|
3 | ====================== | |
2 | Messaging in IPython |
|
4 | Messaging in IPython | |
3 | ====================== |
|
5 | ====================== | |
4 |
|
6 | |||
5 |
|
7 | |||
6 | Introduction |
|
8 | Introduction | |
7 | ============ |
|
9 | ============ | |
8 |
|
10 | |||
9 | This document explains the basic communications design and messaging |
|
11 | This document explains the basic communications design and messaging | |
10 | specification for how the various IPython objects interact over a network |
|
12 | specification for how the various IPython objects interact over a network | |
11 | transport. The current implementation uses the ZeroMQ_ library for messaging |
|
13 | transport. The current implementation uses the ZeroMQ_ library for messaging | |
12 | within and between hosts. |
|
14 | within and between hosts. | |
13 |
|
15 | |||
14 | .. Note:: |
|
16 | .. Note:: | |
15 |
|
17 | |||
16 | This document should be considered the authoritative description of the |
|
18 | This document should be considered the authoritative description of the | |
17 | IPython messaging protocol, and all developers are strongly encouraged to |
|
19 | IPython messaging protocol, and all developers are strongly encouraged to | |
18 | keep it updated as the implementation evolves, so that we have a single |
|
20 | keep it updated as the implementation evolves, so that we have a single | |
19 | common reference for all protocol details. |
|
21 | common reference for all protocol details. | |
20 |
|
22 | |||
21 | The basic design is explained in the following diagram: |
|
23 | The basic design is explained in the following diagram: | |
22 |
|
24 | |||
23 | .. image:: frontend-kernel.png |
|
25 | .. image:: frontend-kernel.png | |
24 | :width: 450px |
|
26 | :width: 450px | |
25 | :alt: IPython kernel/frontend messaging architecture. |
|
27 | :alt: IPython kernel/frontend messaging architecture. | |
26 | :align: center |
|
28 | :align: center | |
27 | :target: ../_images/frontend-kernel.png |
|
29 | :target: ../_images/frontend-kernel.png | |
28 |
|
30 | |||
29 | A single kernel can be simultaneously connected to one or more frontends. The |
|
31 | A single kernel can be simultaneously connected to one or more frontends. The | |
30 | kernel has three sockets that serve the following functions: |
|
32 | kernel has three sockets that serve the following functions: | |
31 |
|
33 | |||
32 | 1. REQ: this socket is connected to a *single* frontend at a time, and it allows |
|
34 | 1. REQ: this socket is connected to a *single* frontend at a time, and it allows | |
33 | the kernel to request input from a frontend when :func:`raw_input` is called. |
|
35 | the kernel to request input from a frontend when :func:`raw_input` is called. | |
34 | The frontend holding the matching REP socket acts as a 'virtual keyboard' |
|
36 | The frontend holding the matching REP socket acts as a 'virtual keyboard' | |
35 | for the kernel while this communication is happening (illustrated in the |
|
37 | for the kernel while this communication is happening (illustrated in the | |
36 | figure by the black outline around the central keyboard). In practice, |
|
38 | figure by the black outline around the central keyboard). In practice, | |
37 | frontends may display such kernel requests using a special input widget or |
|
39 | frontends may display such kernel requests using a special input widget or | |
38 | otherwise indicating that the user is to type input for the kernel instead |
|
40 | otherwise indicating that the user is to type input for the kernel instead | |
39 | of normal commands in the frontend. |
|
41 | of normal commands in the frontend. | |
40 |
|
42 | |||
41 | 2. XREP: this single sockets allows multiple incoming connections from |
|
43 | 2. XREP: this single sockets allows multiple incoming connections from | |
42 | frontends, and this is the socket where requests for code execution, object |
|
44 | frontends, and this is the socket where requests for code execution, object | |
43 | information, prompts, etc. are made to the kernel by any frontend. The |
|
45 | information, prompts, etc. are made to the kernel by any frontend. The | |
44 | communication on this socket is a sequence of request/reply actions from |
|
46 | communication on this socket is a sequence of request/reply actions from | |
45 | each frontend and the kernel. |
|
47 | each frontend and the kernel. | |
46 |
|
48 | |||
47 | 3. PUB: this socket is the 'broadcast channel' where the kernel publishes all |
|
49 | 3. PUB: this socket is the 'broadcast channel' where the kernel publishes all | |
48 | side effects (stdout, stderr, etc.) as well as the requests coming from any |
|
50 | side effects (stdout, stderr, etc.) as well as the requests coming from any | |
49 | client over the XREP socket and its own requests on the REP socket. There |
|
51 | client over the XREP socket and its own requests on the REP socket. There | |
50 | are a number of actions in Python which generate side effects: :func:`print` |
|
52 | are a number of actions in Python which generate side effects: :func:`print` | |
51 | writes to ``sys.stdout``, errors generate tracebacks, etc. Additionally, in |
|
53 | writes to ``sys.stdout``, errors generate tracebacks, etc. Additionally, in | |
52 | a multi-client scenario, we want all frontends to be able to know what each |
|
54 | a multi-client scenario, we want all frontends to be able to know what each | |
53 | other has sent to the kernel (this can be useful in collaborative scenarios, |
|
55 | other has sent to the kernel (this can be useful in collaborative scenarios, | |
54 | for example). This socket allows both side effects and the information |
|
56 | for example). This socket allows both side effects and the information | |
55 | about communications taking place with one client over the XREQ/XREP channel |
|
57 | about communications taking place with one client over the XREQ/XREP channel | |
56 | to be made available to all clients in a uniform manner. |
|
58 | to be made available to all clients in a uniform manner. | |
57 |
|
59 | |||
58 | All messages are tagged with enough information (details below) for clients |
|
60 | All messages are tagged with enough information (details below) for clients | |
59 | to know which messages come from their own interaction with the kernel and |
|
61 | to know which messages come from their own interaction with the kernel and | |
60 | which ones are from other clients, so they can display each type |
|
62 | which ones are from other clients, so they can display each type | |
61 | appropriately. |
|
63 | appropriately. | |
62 |
|
64 | |||
63 | The actual format of the messages allowed on each of these channels is |
|
65 | The actual format of the messages allowed on each of these channels is | |
64 | specified below. Messages are dicts of dicts with string keys and values that |
|
66 | specified below. Messages are dicts of dicts with string keys and values that | |
65 | are reasonably representable in JSON. Our current implementation uses JSON |
|
67 | are reasonably representable in JSON. Our current implementation uses JSON | |
66 | explicitly as its message format, but this shouldn't be considered a permanent |
|
68 | explicitly as its message format, but this shouldn't be considered a permanent | |
67 | feature. As we've discovered that JSON has non-trivial performance issues due |
|
69 | feature. As we've discovered that JSON has non-trivial performance issues due | |
68 | to excessive copying, we may in the future move to a pure pickle-based raw |
|
70 | to excessive copying, we may in the future move to a pure pickle-based raw | |
69 | message format. However, it should be possible to easily convert from the raw |
|
71 | message format. However, it should be possible to easily convert from the raw | |
70 | objects to JSON, since we may have non-python clients (e.g. a web frontend). |
|
72 | objects to JSON, since we may have non-python clients (e.g. a web frontend). | |
71 | As long as it's easy to make a JSON version of the objects that is a faithful |
|
73 | As long as it's easy to make a JSON version of the objects that is a faithful | |
72 | representation of all the data, we can communicate with such clients. |
|
74 | representation of all the data, we can communicate with such clients. | |
73 |
|
75 | |||
74 | .. Note:: |
|
76 | .. Note:: | |
75 |
|
77 | |||
76 | Not all of these have yet been fully fleshed out, but the key ones are, see |
|
78 | Not all of these have yet been fully fleshed out, but the key ones are, see | |
77 | kernel and frontend files for actual implementation details. |
|
79 | kernel and frontend files for actual implementation details. | |
78 |
|
80 | |||
79 |
|
81 | |||
80 | Python functional API |
|
82 | Python functional API | |
81 | ===================== |
|
83 | ===================== | |
82 |
|
84 | |||
83 | As messages are dicts, they map naturally to a ``func(**kw)`` call form. We |
|
85 | As messages are dicts, they map naturally to a ``func(**kw)`` call form. We | |
84 | should develop, at a few key points, functional forms of all the requests that |
|
86 | should develop, at a few key points, functional forms of all the requests that | |
85 | take arguments in this manner and automatically construct the necessary dict |
|
87 | take arguments in this manner and automatically construct the necessary dict | |
86 | for sending. |
|
88 | for sending. | |
87 |
|
89 | |||
88 |
|
90 | |||
89 | General Message Format |
|
91 | General Message Format | |
90 | ====================== |
|
92 | ====================== | |
91 |
|
93 | |||
92 | All messages send or received by any IPython process should have the following |
|
94 | All messages send or received by any IPython process should have the following | |
93 | generic structure:: |
|
95 | generic structure:: | |
94 |
|
96 | |||
95 | { |
|
97 | { | |
96 | # The message header contains a pair of unique identifiers for the |
|
98 | # The message header contains a pair of unique identifiers for the | |
97 | # originating session and the actual message id, in addition to the |
|
99 | # originating session and the actual message id, in addition to the | |
98 | # username for the process that generated the message. This is useful in |
|
100 | # username for the process that generated the message. This is useful in | |
99 | # collaborative settings where multiple users may be interacting with the |
|
101 | # collaborative settings where multiple users may be interacting with the | |
100 | # same kernel simultaneously, so that frontends can label the various |
|
102 | # same kernel simultaneously, so that frontends can label the various | |
101 | # messages in a meaningful way. |
|
103 | # messages in a meaningful way. | |
102 | 'header' : { 'msg_id' : uuid, |
|
104 | 'header' : { 'msg_id' : uuid, | |
103 | 'username' : str, |
|
105 | 'username' : str, | |
104 | 'session' : uuid |
|
106 | 'session' : uuid | |
105 | }, |
|
107 | }, | |
106 |
|
108 | |||
107 | # In a chain of messages, the header from the parent is copied so that |
|
109 | # In a chain of messages, the header from the parent is copied so that | |
108 | # clients can track where messages come from. |
|
110 | # clients can track where messages come from. | |
109 | 'parent_header' : dict, |
|
111 | 'parent_header' : dict, | |
110 |
|
112 | |||
111 | # All recognized message type strings are listed below. |
|
113 | # All recognized message type strings are listed below. | |
112 | 'msg_type' : str, |
|
114 | 'msg_type' : str, | |
113 |
|
115 | |||
114 | # The actual content of the message must be a dict, whose structure |
|
116 | # The actual content of the message must be a dict, whose structure | |
115 | # depends on the message type.x |
|
117 | # depends on the message type.x | |
116 | 'content' : dict, |
|
118 | 'content' : dict, | |
117 | } |
|
119 | } | |
118 |
|
120 | |||
119 | For each message type, the actual content will differ and all existing message |
|
121 | For each message type, the actual content will differ and all existing message | |
120 | types are specified in what follows of this document. |
|
122 | types are specified in what follows of this document. | |
121 |
|
123 | |||
122 |
|
124 | |||
123 | Messages on the XREP/XREQ socket |
|
125 | Messages on the XREP/XREQ socket | |
124 | ================================ |
|
126 | ================================ | |
125 |
|
127 | |||
126 | .. _execute: |
|
128 | .. _execute: | |
127 |
|
129 | |||
128 | Execute |
|
130 | Execute | |
129 | ------- |
|
131 | ------- | |
130 |
|
132 | |||
131 | The execution request contains a single string, but this may be a multiline |
|
133 | The execution request contains a single string, but this may be a multiline | |
132 | string. The kernel is responsible for splitting this into possibly more than |
|
134 | string. The kernel is responsible for splitting this into possibly more than | |
133 | one block and deciding whether to compile these in 'single' or 'exec' mode. |
|
135 | one block and deciding whether to compile these in 'single' or 'exec' mode. | |
134 | We're still sorting out this policy. The current inputsplitter is capable of |
|
136 | We're still sorting out this policy. The current inputsplitter is capable of | |
135 | splitting the input for blocks that can all be run as 'single', but in the long |
|
137 | splitting the input for blocks that can all be run as 'single', but in the long | |
136 | run it may prove cleaner to only use 'single' mode for truly single-line |
|
138 | run it may prove cleaner to only use 'single' mode for truly single-line | |
137 | inputs, and run all multiline input in 'exec' mode. This would preserve the |
|
139 | inputs, and run all multiline input in 'exec' mode. This would preserve the | |
138 | natural behavior of single-line inputs while allowing long cells to behave more |
|
140 | natural behavior of single-line inputs while allowing long cells to behave more | |
139 | likea a script. This design will be refined as we complete the implementation. |
|
141 | likea a script. This design will be refined as we complete the implementation. | |
140 |
|
142 | |||
141 | Message type: ``execute_request``:: |
|
143 | Message type: ``execute_request``:: | |
142 |
|
144 | |||
143 | content = { |
|
145 | content = { | |
144 | # Source code to be executed by the kernel, one or more lines. |
|
146 | # Source code to be executed by the kernel, one or more lines. | |
145 | 'code' : str, |
|
147 | 'code' : str, | |
146 |
|
148 | |||
147 | # A boolean flag which, if True, signals the kernel to execute this |
|
149 | # A boolean flag which, if True, signals the kernel to execute this | |
148 | # code as quietly as possible. This means that the kernel will compile |
|
150 | # code as quietly as possible. This means that the kernel will compile | |
149 | # the code with 'exec' instead of 'single' (so sys.displayhook will not |
|
151 | # the code with 'exec' instead of 'single' (so sys.displayhook will not | |
150 | # fire), and will *not*: |
|
152 | # fire), and will *not*: | |
151 | # - broadcast exceptions on the PUB socket |
|
153 | # - broadcast exceptions on the PUB socket | |
152 | # - do any logging |
|
154 | # - do any logging | |
153 | # - populate any history |
|
155 | # - populate any history | |
154 | # The default is False. |
|
156 | # The default is False. | |
155 | 'silent' : bool, |
|
157 | 'silent' : bool, | |
156 | } |
|
158 | } | |
157 |
|
159 | |||
158 | Upon execution, the kernel *always* sends a reply, with a status code |
|
160 | Upon execution, the kernel *always* sends a reply, with a status code | |
159 | indicating what happened and additional data depending on the outcome. |
|
161 | indicating what happened and additional data depending on the outcome. | |
160 |
|
162 | |||
161 | Message type: ``execute_reply``:: |
|
163 | Message type: ``execute_reply``:: | |
162 |
|
164 | |||
163 | content = { |
|
165 | content = { | |
164 | # One of: 'ok' OR 'error' OR 'abort' |
|
166 | # One of: 'ok' OR 'error' OR 'abort' | |
165 | 'status' : str, |
|
167 | 'status' : str, | |
166 |
|
168 | |||
167 | # This has the same structure as the output of a prompt request, but is |
|
169 | # This has the same structure as the output of a prompt request, but is | |
168 | # for the client to set up the *next* prompt (with identical limitations |
|
170 | # for the client to set up the *next* prompt (with identical limitations | |
169 | # to a prompt request) |
|
171 | # to a prompt request) | |
170 | 'next_prompt' : { |
|
172 | 'next_prompt' : { | |
171 | 'prompt_string' : str, |
|
173 | 'prompt_string' : str, | |
172 | 'prompt_number' : int, |
|
174 | 'prompt_number' : int, | |
173 | 'input_sep' : str |
|
175 | 'input_sep' : str | |
174 | }, |
|
176 | }, | |
175 |
|
177 | |||
176 | # The prompt number of the actual execution for this code, which may be |
|
178 | # The prompt number of the actual execution for this code, which may be | |
177 | # different from the one used when the code was typed, which was the |
|
179 | # different from the one used when the code was typed, which was the | |
178 | # 'next_prompt' field of the *previous* request. They will differ in the |
|
180 | # 'next_prompt' field of the *previous* request. They will differ in the | |
179 | # case where there is more than one client talking simultaneously to a |
|
181 | # case where there is more than one client talking simultaneously to a | |
180 | # kernel, since the numbers can go out of sync. GUI clients can use this |
|
182 | # kernel, since the numbers can go out of sync. GUI clients can use this | |
181 | # to correct the previously written number in-place, terminal ones may |
|
183 | # to correct the previously written number in-place, terminal ones may | |
182 | # re-print a corrected one if desired. |
|
184 | # re-print a corrected one if desired. | |
183 | 'prompt_number' : int, |
|
185 | 'prompt_number' : int, | |
184 | } |
|
186 | } | |
185 |
|
187 | |||
186 | When status is 'ok', the following extra fields are present:: |
|
188 | When status is 'ok', the following extra fields are present:: | |
187 |
|
189 | |||
188 | { |
|
190 | { | |
189 | # The kernel will often transform the input provided to it. This |
|
191 | # The kernel will often transform the input provided to it. This | |
190 | # contains the transformed code, which is what was actually executed. |
|
192 | # contains the transformed code, which is what was actually executed. | |
191 | 'transformed_code' : str, |
|
193 | 'transformed_code' : str, | |
192 |
|
194 | |||
193 | # The execution payload is a dict with string keys that may have been |
|
195 | # The execution payload is a dict with string keys that may have been | |
194 | # produced by the code being executed. It is retrieved by the kernel at |
|
196 | # produced by the code being executed. It is retrieved by the kernel at | |
195 | # the end of the execution and sent back to the front end, which can take |
|
197 | # the end of the execution and sent back to the front end, which can take | |
196 | # action on it as needed. See main text for further details. |
|
198 | # action on it as needed. See main text for further details. | |
197 | 'payload' : dict, |
|
199 | 'payload' : dict, | |
198 | } |
|
200 | } | |
199 |
|
201 | |||
200 | .. admonition:: Execution payloads |
|
202 | .. admonition:: Execution payloads | |
201 |
|
203 | |||
202 | The notion of an 'execution payload' is different from a return value of a |
|
204 | The notion of an 'execution payload' is different from a return value of a | |
203 | given set of code, which normally is just displayed on the pyout stream |
|
205 | given set of code, which normally is just displayed on the pyout stream | |
204 | through the PUB socket. The idea of a payload is to allow special types of |
|
206 | through the PUB socket. The idea of a payload is to allow special types of | |
205 | code, typically magics, to populate a data container in the IPython kernel |
|
207 | code, typically magics, to populate a data container in the IPython kernel | |
206 | that will be shipped back to the caller via this channel. The kernel will |
|
208 | that will be shipped back to the caller via this channel. The kernel will | |
207 | have an API for this, probably something along the lines of:: |
|
209 | have an API for this, probably something along the lines of:: | |
208 |
|
210 | |||
209 | ip.exec_payload_add(key, value) |
|
211 | ip.exec_payload_add(key, value) | |
210 |
|
212 | |||
211 | though this API is still in the design stages. The data returned in this |
|
213 | though this API is still in the design stages. The data returned in this | |
212 | payload will allow frontends to present special views of what just happened. |
|
214 | payload will allow frontends to present special views of what just happened. | |
213 |
|
215 | |||
214 |
|
216 | |||
215 | When status is 'error', the following extra fields are present:: |
|
217 | When status is 'error', the following extra fields are present:: | |
216 |
|
218 | |||
217 | { |
|
219 | { | |
218 | 'exc_name' : str, # Exception name, as a string |
|
220 | 'exc_name' : str, # Exception name, as a string | |
219 | 'exc_value' : str, # Exception value, as a string |
|
221 | 'exc_value' : str, # Exception value, as a string | |
220 |
|
222 | |||
221 | # The traceback will contain a list of frames, represented each as a |
|
223 | # The traceback will contain a list of frames, represented each as a | |
222 | # string. For now we'll stick to the existing design of ultraTB, which |
|
224 | # string. For now we'll stick to the existing design of ultraTB, which | |
223 | # controls exception level of detail statefully. But eventually we'll |
|
225 | # controls exception level of detail statefully. But eventually we'll | |
224 | # want to grow into a model where more information is collected and |
|
226 | # want to grow into a model where more information is collected and | |
225 | # packed into the traceback object, with clients deciding how little or |
|
227 | # packed into the traceback object, with clients deciding how little or | |
226 | # how much of it to unpack. But for now, let's start with a simple list |
|
228 | # how much of it to unpack. But for now, let's start with a simple list | |
227 | # of strings, since that requires only minimal changes to ultratb as |
|
229 | # of strings, since that requires only minimal changes to ultratb as | |
228 | # written. |
|
230 | # written. | |
229 | 'traceback' : list, |
|
231 | 'traceback' : list, | |
230 | } |
|
232 | } | |
231 |
|
233 | |||
232 |
|
234 | |||
233 | When status is 'abort', there are for now no additional data fields. This |
|
235 | When status is 'abort', there are for now no additional data fields. This | |
234 | happens when the kernel was interrupted by a signal. |
|
236 | happens when the kernel was interrupted by a signal. | |
235 |
|
237 | |||
236 |
|
238 | |||
237 | Prompt |
|
239 | Prompt | |
238 | ------ |
|
240 | ------ | |
239 |
|
241 | |||
240 | A simple request for a current prompt string. |
|
242 | A simple request for a current prompt string. | |
241 |
|
243 | |||
242 | Message type: ``prompt_request``:: |
|
244 | Message type: ``prompt_request``:: | |
243 |
|
245 | |||
244 | content = {} |
|
246 | content = {} | |
245 |
|
247 | |||
246 | In the reply, the prompt string comes back with the prompt number placeholder |
|
248 | In the reply, the prompt string comes back with the prompt number placeholder | |
247 | *unevaluated*. The message format is: |
|
249 | *unevaluated*. The message format is: | |
248 |
|
250 | |||
249 | Message type: ``prompt_reply``:: |
|
251 | Message type: ``prompt_reply``:: | |
250 |
|
252 | |||
251 | content = { |
|
253 | content = { | |
252 | 'prompt_string' : str, |
|
254 | 'prompt_string' : str, | |
253 | 'prompt_number' : int, |
|
255 | 'prompt_number' : int, | |
254 | } |
|
256 | } | |
255 |
|
257 | |||
256 | Clients can produce a prompt with ``prompt_string.format(prompt_number)``, but |
|
258 | Clients can produce a prompt with ``prompt_string.format(prompt_number)``, but | |
257 | they should be aware that the actual prompt number for that input could change |
|
259 | they should be aware that the actual prompt number for that input could change | |
258 | later, in the case where multiple clients are interacting with a single |
|
260 | later, in the case where multiple clients are interacting with a single | |
259 | kernel. |
|
261 | kernel. | |
260 |
|
262 | |||
261 |
|
263 | |||
262 | Object information |
|
264 | Object information | |
263 | ------------------ |
|
265 | ------------------ | |
264 |
|
266 | |||
265 | One of IPython's most used capabilities is the introspection of Python objects |
|
267 | One of IPython's most used capabilities is the introspection of Python objects | |
266 | in the user's namespace, typically invoked via the ``?`` and ``??`` characters |
|
268 | in the user's namespace, typically invoked via the ``?`` and ``??`` characters | |
267 | (which in reality are shorthands for the ``%pinfo`` magic). This is used often |
|
269 | (which in reality are shorthands for the ``%pinfo`` magic). This is used often | |
268 | enough that it warrants an explicit message type, especially because frontends |
|
270 | enough that it warrants an explicit message type, especially because frontends | |
269 | may want to get object information in response to user keystrokes (like Tab or |
|
271 | may want to get object information in response to user keystrokes (like Tab or | |
270 | F1) besides from the user explicitly typing code like ``x??``. |
|
272 | F1) besides from the user explicitly typing code like ``x??``. | |
271 |
|
273 | |||
272 | Message type: ``object_info_request``:: |
|
274 | Message type: ``object_info_request``:: | |
273 |
|
275 | |||
274 | content = { |
|
276 | content = { | |
275 | # The (possibly dotted) name of the object to be searched in all |
|
277 | # The (possibly dotted) name of the object to be searched in all | |
276 | # relevant namespaces |
|
278 | # relevant namespaces | |
277 | 'name' : str, |
|
279 | 'name' : str, | |
278 |
|
280 | |||
279 | # The level of detail desired. The default (0) is equivalent to typing |
|
281 | # The level of detail desired. The default (0) is equivalent to typing | |
280 | # 'x?' at the prompt, 1 is equivalent to 'x??'. |
|
282 | # 'x?' at the prompt, 1 is equivalent to 'x??'. | |
281 | 'detail_level' : int, |
|
283 | 'detail_level' : int, | |
282 | } |
|
284 | } | |
283 |
|
285 | |||
284 | The returned information will be a dictionary with keys very similar to the |
|
286 | The returned information will be a dictionary with keys very similar to the | |
285 | field names that IPython prints at the terminal. |
|
287 | field names that IPython prints at the terminal. | |
286 |
|
288 | |||
287 | Message type: ``object_info_reply``:: |
|
289 | Message type: ``object_info_reply``:: | |
288 |
|
290 | |||
289 | content = { |
|
291 | content = { | |
290 | # Flags for magics and system aliases |
|
292 | # Flags for magics and system aliases | |
291 | 'ismagic' : bool, |
|
293 | 'ismagic' : bool, | |
292 | 'isalias' : bool, |
|
294 | 'isalias' : bool, | |
293 |
|
295 | |||
294 | # The name of the namespace where the object was found ('builtin', |
|
296 | # The name of the namespace where the object was found ('builtin', | |
295 | # 'magics', 'alias', 'interactive', etc.) |
|
297 | # 'magics', 'alias', 'interactive', etc.) | |
296 | 'namespace' : str, |
|
298 | 'namespace' : str, | |
297 |
|
299 | |||
298 | # The type name will be type.__name__ for normal Python objects, but it |
|
300 | # The type name will be type.__name__ for normal Python objects, but it | |
299 | # can also be a string like 'Magic function' or 'System alias' |
|
301 | # can also be a string like 'Magic function' or 'System alias' | |
300 | 'type_name' : str, |
|
302 | 'type_name' : str, | |
301 |
|
303 | |||
302 | 'string_form' : str, |
|
304 | 'string_form' : str, | |
303 |
|
305 | |||
304 | # For objects with a __class__ attribute this will be set |
|
306 | # For objects with a __class__ attribute this will be set | |
305 | 'base_class' : str, |
|
307 | 'base_class' : str, | |
306 |
|
308 | |||
307 | # For objects with a __len__ attribute this will be set |
|
309 | # For objects with a __len__ attribute this will be set | |
308 | 'length' : int, |
|
310 | 'length' : int, | |
309 |
|
311 | |||
310 | # If the object is a function, class or method whose file we can find, |
|
312 | # If the object is a function, class or method whose file we can find, | |
311 | # we give its full path |
|
313 | # we give its full path | |
312 | 'file' : str, |
|
314 | 'file' : str, | |
313 |
|
315 | |||
314 | # For pure Python callable objects, we can reconstruct the object |
|
316 | # For pure Python callable objects, we can reconstruct the object | |
315 | # definition line which provides its call signature |
|
317 | # definition line which provides its call signature | |
316 | 'definition' : str, |
|
318 | 'definition' : str, | |
317 |
|
319 | |||
318 | # For instances, provide the constructor signature (the definition of |
|
320 | # For instances, provide the constructor signature (the definition of | |
319 | # the __init__ method): |
|
321 | # the __init__ method): | |
320 | 'init_definition' : str, |
|
322 | 'init_definition' : str, | |
321 |
|
323 | |||
322 | # Docstrings: for any object (function, method, module, package) with a |
|
324 | # Docstrings: for any object (function, method, module, package) with a | |
323 | # docstring, we show it. But in addition, we may provide additional |
|
325 | # docstring, we show it. But in addition, we may provide additional | |
324 | # docstrings. For example, for instances we will show the constructor |
|
326 | # docstrings. For example, for instances we will show the constructor | |
325 | # and class docstrings as well, if available. |
|
327 | # and class docstrings as well, if available. | |
326 | 'docstring' : str, |
|
328 | 'docstring' : str, | |
327 |
|
329 | |||
328 | # For instances, provide the constructor and class docstrings |
|
330 | # For instances, provide the constructor and class docstrings | |
329 | 'init_docstring' : str, |
|
331 | 'init_docstring' : str, | |
330 | 'class_docstring' : str, |
|
332 | 'class_docstring' : str, | |
331 |
|
333 | |||
332 | # If detail_level was 1, we also try to find the source code that |
|
334 | # If detail_level was 1, we also try to find the source code that | |
333 | # defines the object, if possible. The string 'None' will indicate |
|
335 | # defines the object, if possible. The string 'None' will indicate | |
334 | # that no source was found. |
|
336 | # that no source was found. | |
335 | 'source' : str, |
|
337 | 'source' : str, | |
336 | } |
|
338 | } | |
337 |
|
339 | |||
338 |
|
340 | |||
339 | Complete |
|
341 | Complete | |
340 | -------- |
|
342 | -------- | |
341 |
|
343 | |||
342 | Message type: ``complete_request``:: |
|
344 | Message type: ``complete_request``:: | |
343 |
|
345 | |||
344 | content = { |
|
346 | content = { | |
345 | # The text to be completed, such as 'a.is' |
|
347 | # The text to be completed, such as 'a.is' | |
346 | 'text' : str, |
|
348 | 'text' : str, | |
347 |
|
349 | |||
348 | # The full line, such as 'print a.is'. This allows completers to |
|
350 | # The full line, such as 'print a.is'. This allows completers to | |
349 | # make decisions that may require information about more than just the |
|
351 | # make decisions that may require information about more than just the | |
350 | # current word. |
|
352 | # current word. | |
351 | 'line' : str, |
|
353 | 'line' : str, | |
352 | } |
|
354 | } | |
353 |
|
355 | |||
354 | Message type: ``complete_reply``:: |
|
356 | Message type: ``complete_reply``:: | |
355 |
|
357 | |||
356 | content = { |
|
358 | content = { | |
357 | # The list of all matches to the completion request, such as |
|
359 | # The list of all matches to the completion request, such as | |
358 | # ['a.isalnum', 'a.isalpha'] for the above example. |
|
360 | # ['a.isalnum', 'a.isalpha'] for the above example. | |
359 | 'matches' : list |
|
361 | 'matches' : list | |
360 | } |
|
362 | } | |
361 |
|
363 | |||
362 |
|
364 | |||
363 | History |
|
365 | History | |
364 | ------- |
|
366 | ------- | |
365 |
|
367 | |||
366 | For clients to explicitly request history from a kernel. The kernel has all |
|
368 | For clients to explicitly request history from a kernel. The kernel has all | |
367 | the actual execution history stored in a single location, so clients can |
|
369 | the actual execution history stored in a single location, so clients can | |
368 | request it from the kernel when needed. |
|
370 | request it from the kernel when needed. | |
369 |
|
371 | |||
370 | Message type: ``history_request``:: |
|
372 | Message type: ``history_request``:: | |
371 |
|
373 | |||
372 | content = { |
|
374 | content = { | |
373 |
|
375 | |||
374 | # If True, also return output history in the resulting dict. |
|
376 | # If True, also return output history in the resulting dict. | |
375 | 'output' : bool, |
|
377 | 'output' : bool, | |
376 |
|
378 | |||
377 | # If True, return the raw input history, else the transformed input. |
|
379 | # If True, return the raw input history, else the transformed input. | |
378 | 'raw' : bool, |
|
380 | 'raw' : bool, | |
379 |
|
381 | |||
380 | # This parameter can be one of: A number, a pair of numbers, None |
|
382 | # This parameter can be one of: A number, a pair of numbers, None | |
381 | # If not given, last 40 are returned. |
|
383 | # If not given, last 40 are returned. | |
382 | # - number n: return the last n entries. |
|
384 | # - number n: return the last n entries. | |
383 | # - pair n1, n2: return entries in the range(n1, n2). |
|
385 | # - pair n1, n2: return entries in the range(n1, n2). | |
384 | # - None: return all history |
|
386 | # - None: return all history | |
385 | 'range' : n or (n1, n2) or None, |
|
387 | 'range' : n or (n1, n2) or None, | |
386 |
|
388 | |||
387 | # If a filter is given, it is treated as a regular expression and only |
|
389 | # If a filter is given, it is treated as a regular expression and only | |
388 | # matching entries are returned. re.search() is used to find matches. |
|
390 | # matching entries are returned. re.search() is used to find matches. | |
389 | 'filter' : str, |
|
391 | 'filter' : str, | |
390 | } |
|
392 | } | |
391 |
|
393 | |||
392 | Message type: ``history_reply``:: |
|
394 | Message type: ``history_reply``:: | |
393 |
|
395 | |||
394 | content = { |
|
396 | content = { | |
395 | # A dict with prompt numbers as keys and either (input, output) or input |
|
397 | # A dict with prompt numbers as keys and either (input, output) or input | |
396 | # as the value depending on whether output was True or False, |
|
398 | # as the value depending on whether output was True or False, | |
397 | # respectively. |
|
399 | # respectively. | |
398 | 'history' : dict, |
|
400 | 'history' : dict, | |
399 | } |
|
401 | } | |
400 | Messages on the PUB/SUB socket |
|
402 | Messages on the PUB/SUB socket | |
401 | ============================== |
|
403 | ============================== | |
402 |
|
404 | |||
403 | Streams (stdout, stderr, etc) |
|
405 | Streams (stdout, stderr, etc) | |
404 | ------------------------------ |
|
406 | ------------------------------ | |
405 |
|
407 | |||
406 | Message type: ``stream``:: |
|
408 | Message type: ``stream``:: | |
407 |
|
409 | |||
408 | content = { |
|
410 | content = { | |
409 | # The name of the stream is one of 'stdin', 'stdout', 'stderr' |
|
411 | # The name of the stream is one of 'stdin', 'stdout', 'stderr' | |
410 | 'name' : str, |
|
412 | 'name' : str, | |
411 |
|
413 | |||
412 | # The data is an arbitrary string to be written to that stream |
|
414 | # The data is an arbitrary string to be written to that stream | |
413 | 'data' : str, |
|
415 | 'data' : str, | |
414 | } |
|
416 | } | |
415 |
|
417 | |||
416 | When a kernel receives a raw_input call, it should also broadcast it on the pub |
|
418 | When a kernel receives a raw_input call, it should also broadcast it on the pub | |
417 | socket with the names 'stdin' and 'stdin_reply'. This will allow other clients |
|
419 | socket with the names 'stdin' and 'stdin_reply'. This will allow other clients | |
418 | to monitor/display kernel interactions and possibly replay them to their user |
|
420 | to monitor/display kernel interactions and possibly replay them to their user | |
419 | or otherwise expose them. |
|
421 | or otherwise expose them. | |
420 |
|
422 | |||
421 | Python inputs |
|
423 | Python inputs | |
422 | ------------- |
|
424 | ------------- | |
423 |
|
425 | |||
424 | These messages are the re-broadcast of the ``execute_request``. |
|
426 | These messages are the re-broadcast of the ``execute_request``. | |
425 |
|
427 | |||
426 | Message type: ``pyin``:: |
|
428 | Message type: ``pyin``:: | |
427 |
|
429 | |||
428 | content = { |
|
430 | content = { | |
429 | # Source code to be executed, one or more lines |
|
431 | # Source code to be executed, one or more lines | |
430 | 'code' : str |
|
432 | 'code' : str | |
431 | } |
|
433 | } | |
432 |
|
434 | |||
433 | Python outputs |
|
435 | Python outputs | |
434 | -------------- |
|
436 | -------------- | |
435 |
|
437 | |||
436 | When Python produces output from code that has been compiled in with the |
|
438 | When Python produces output from code that has been compiled in with the | |
437 | 'single' flag to :func:`compile`, any expression that produces a value (such as |
|
439 | 'single' flag to :func:`compile`, any expression that produces a value (such as | |
438 | ``1+1``) is passed to ``sys.displayhook``, which is a callable that can do with |
|
440 | ``1+1``) is passed to ``sys.displayhook``, which is a callable that can do with | |
439 | this value whatever it wants. The default behavior of ``sys.displayhook`` in |
|
441 | this value whatever it wants. The default behavior of ``sys.displayhook`` in | |
440 | the Python interactive prompt is to print to ``sys.stdout`` the :func:`repr` of |
|
442 | the Python interactive prompt is to print to ``sys.stdout`` the :func:`repr` of | |
441 | the value as long as it is not ``None`` (which isn't printed at all). In our |
|
443 | the value as long as it is not ``None`` (which isn't printed at all). In our | |
442 | case, the kernel instantiates as ``sys.displayhook`` an object which has |
|
444 | case, the kernel instantiates as ``sys.displayhook`` an object which has | |
443 | similar behavior, but which instead of printing to stdout, broadcasts these |
|
445 | similar behavior, but which instead of printing to stdout, broadcasts these | |
444 | values as ``pyout`` messages for clients to display appropriately. |
|
446 | values as ``pyout`` messages for clients to display appropriately. | |
445 |
|
447 | |||
446 | Message type: ``pyout``:: |
|
448 | Message type: ``pyout``:: | |
447 |
|
449 | |||
448 | content = { |
|
450 | content = { | |
449 | # The data is typically the repr() of the object. |
|
451 | # The data is typically the repr() of the object. | |
450 | 'data' : str, |
|
452 | 'data' : str, | |
451 |
|
453 | |||
452 | # The prompt number for this execution is also provided so that clients |
|
454 | # The prompt number for this execution is also provided so that clients | |
453 | # can display it, since IPython automatically creates variables called |
|
455 | # can display it, since IPython automatically creates variables called | |
454 | # _N (for prompt N). |
|
456 | # _N (for prompt N). | |
455 | 'prompt_number' : int, |
|
457 | 'prompt_number' : int, | |
456 | } |
|
458 | } | |
457 |
|
459 | |||
458 | Python errors |
|
460 | Python errors | |
459 | ------------- |
|
461 | ------------- | |
460 |
|
462 | |||
461 | When an error occurs during code execution |
|
463 | When an error occurs during code execution | |
462 |
|
464 | |||
463 | Message type: ``pyerr``:: |
|
465 | Message type: ``pyerr``:: | |
464 |
|
466 | |||
465 | content = { |
|
467 | content = { | |
466 | # Similar content to the execute_reply messages for the 'error' case, |
|
468 | # Similar content to the execute_reply messages for the 'error' case, | |
467 | # except the 'status' field is omitted. |
|
469 | # except the 'status' field is omitted. | |
468 | } |
|
470 | } | |
469 |
|
471 | |||
470 | Kernel crashes |
|
472 | Kernel crashes | |
471 | -------------- |
|
473 | -------------- | |
472 |
|
474 | |||
473 | When the kernel has an unexpected exception, caught by the last-resort |
|
475 | When the kernel has an unexpected exception, caught by the last-resort | |
474 | sys.excepthook, we should broadcast the crash handler's output before exiting. |
|
476 | sys.excepthook, we should broadcast the crash handler's output before exiting. | |
475 | This will allow clients to notice that a kernel died, inform the user and |
|
477 | This will allow clients to notice that a kernel died, inform the user and | |
476 | propose further actions. |
|
478 | propose further actions. | |
477 |
|
479 | |||
478 | Message type: ``crash``:: |
|
480 | Message type: ``crash``:: | |
479 |
|
481 | |||
480 | content = { |
|
482 | content = { | |
481 | # Similarly to the 'error' case for execute_reply messages, this will |
|
483 | # Similarly to the 'error' case for execute_reply messages, this will | |
482 | # contain exc_name, exc_type and traceback fields. |
|
484 | # contain exc_name, exc_type and traceback fields. | |
483 |
|
485 | |||
484 | # An additional field with supplementary information such as where to |
|
486 | # An additional field with supplementary information such as where to | |
485 | # send the crash message |
|
487 | # send the crash message | |
486 | 'info' : str, |
|
488 | 'info' : str, | |
487 | } |
|
489 | } | |
488 |
|
490 | |||
489 |
|
491 | |||
490 | Future ideas |
|
492 | Future ideas | |
491 | ------------ |
|
493 | ------------ | |
492 |
|
494 | |||
493 | Other potential message types, currently unimplemented, listed below as ideas. |
|
495 | Other potential message types, currently unimplemented, listed below as ideas. | |
494 |
|
496 | |||
495 | Message type: ``file``:: |
|
497 | Message type: ``file``:: | |
496 |
|
498 | |||
497 | content = { |
|
499 | content = { | |
498 | 'path' : 'cool.jpg', |
|
500 | 'path' : 'cool.jpg', | |
499 | 'mimetype' : str, |
|
501 | 'mimetype' : str, | |
500 | 'data' : str, |
|
502 | 'data' : str, | |
501 | } |
|
503 | } | |
502 |
|
504 | |||
503 |
|
505 | |||
504 | Messages on the REQ/REP socket |
|
506 | Messages on the REQ/REP socket | |
505 | ============================== |
|
507 | ============================== | |
506 |
|
508 | |||
507 | This is a socket that goes in the opposite direction: from the kernel to a |
|
509 | This is a socket that goes in the opposite direction: from the kernel to a | |
508 | *single* frontend, and its purpose is to allow ``raw_input`` and similar |
|
510 | *single* frontend, and its purpose is to allow ``raw_input`` and similar | |
509 | operations that read from ``sys.stdin`` on the kernel to be fulfilled by the |
|
511 | operations that read from ``sys.stdin`` on the kernel to be fulfilled by the | |
510 | client. For now we will keep these messages as simple as possible, since they |
|
512 | client. For now we will keep these messages as simple as possible, since they | |
511 | basically only mean to convey the ``raw_input(prompt)`` call. |
|
513 | basically only mean to convey the ``raw_input(prompt)`` call. | |
512 |
|
514 | |||
513 | Message type: ``input_request``:: |
|
515 | Message type: ``input_request``:: | |
514 |
|
516 | |||
515 | content = { 'prompt' : str } |
|
517 | content = { 'prompt' : str } | |
516 |
|
518 | |||
517 | Message type: ``input_reply``:: |
|
519 | Message type: ``input_reply``:: | |
518 |
|
520 | |||
519 | content = { 'value' : str } |
|
521 | content = { 'value' : str } | |
520 |
|
522 | |||
521 | .. Note:: |
|
523 | .. Note:: | |
522 |
|
524 | |||
523 | We do not explicitly try to forward the raw ``sys.stdin`` object, because in |
|
525 | We do not explicitly try to forward the raw ``sys.stdin`` object, because in | |
524 | practice the kernel should behave like an interactive program. When a |
|
526 | practice the kernel should behave like an interactive program. When a | |
525 | program is opened on the console, the keyboard effectively takes over the |
|
527 | program is opened on the console, the keyboard effectively takes over the | |
526 | ``stdin`` file descriptor, and it can't be used for raw reading anymore. |
|
528 | ``stdin`` file descriptor, and it can't be used for raw reading anymore. | |
527 | Since the IPython kernel effectively behaves like a console program (albeit |
|
529 | Since the IPython kernel effectively behaves like a console program (albeit | |
528 | one whose "keyboard" is actually living in a separate process and |
|
530 | one whose "keyboard" is actually living in a separate process and | |
529 | transported over the zmq connection), raw ``stdin`` isn't expected to be |
|
531 | transported over the zmq connection), raw ``stdin`` isn't expected to be | |
530 | available. |
|
532 | available. | |
531 |
|
533 | |||
532 |
|
534 | |||
533 | Heartbeat for kernels |
|
535 | Heartbeat for kernels | |
534 | ===================== |
|
536 | ===================== | |
535 |
|
537 | |||
536 | Initially we had considered using messages like those above over ZMQ for a |
|
538 | Initially we had considered using messages like those above over ZMQ for a | |
537 | kernel 'heartbeat' (a way to detect quickly and reliably whether a kernel is |
|
539 | kernel 'heartbeat' (a way to detect quickly and reliably whether a kernel is | |
538 | alive at all, even if it may be busy executing user code). But this has the |
|
540 | alive at all, even if it may be busy executing user code). But this has the | |
539 | problem that if the kernel is locked inside extension code, it wouldn't execute |
|
541 | problem that if the kernel is locked inside extension code, it wouldn't execute | |
540 | the python heartbeat code. But it turns out that we can implement a basic |
|
542 | the python heartbeat code. But it turns out that we can implement a basic | |
541 | heartbeat with pure ZMQ, without using any Python messaging at all. |
|
543 | heartbeat with pure ZMQ, without using any Python messaging at all. | |
542 |
|
544 | |||
543 | The monitor sends out a single zmq message (right now, it is a str of the |
|
545 | The monitor sends out a single zmq message (right now, it is a str of the | |
544 | monitor's lifetime in seconds), and gets the same message right back, prefixed |
|
546 | monitor's lifetime in seconds), and gets the same message right back, prefixed | |
545 | with the zmq identity of the XREQ socket in the heartbeat process. This can be |
|
547 | with the zmq identity of the XREQ socket in the heartbeat process. This can be | |
546 | a uuid, or even a full message, but there doesn't seem to be a need for packing |
|
548 | a uuid, or even a full message, but there doesn't seem to be a need for packing | |
547 | up a message when the sender and receiver are the exact same Python object. |
|
549 | up a message when the sender and receiver are the exact same Python object. | |
548 |
|
550 | |||
549 | The model is this:: |
|
551 | The model is this:: | |
550 |
|
552 | |||
551 | monitor.send(str(self.lifetime)) # '1.2345678910' |
|
553 | monitor.send(str(self.lifetime)) # '1.2345678910' | |
552 |
|
554 | |||
553 | and the monitor receives some number of messages of the form:: |
|
555 | and the monitor receives some number of messages of the form:: | |
554 |
|
556 | |||
555 | ['uuid-abcd-dead-beef', '1.2345678910'] |
|
557 | ['uuid-abcd-dead-beef', '1.2345678910'] | |
556 |
|
558 | |||
557 | where the first part is the zmq.IDENTITY of the heart's XREQ on the engine, and |
|
559 | where the first part is the zmq.IDENTITY of the heart's XREQ on the engine, and | |
558 | the rest is the message sent by the monitor. No Python code ever has any |
|
560 | the rest is the message sent by the monitor. No Python code ever has any | |
559 | access to the message between the monitor's send, and the monitor's recv. |
|
561 | access to the message between the monitor's send, and the monitor's recv. | |
560 |
|
562 | |||
561 |
|
563 | |||
562 | ToDo |
|
564 | ToDo | |
563 | ==== |
|
565 | ==== | |
564 |
|
566 | |||
565 | Missing things include: |
|
567 | Missing things include: | |
566 |
|
568 | |||
567 | * Important: finish thinking through the payload concept and API. |
|
569 | * Important: finish thinking through the payload concept and API. | |
568 |
|
570 | |||
569 | * Important: ensure that we have a good solution for magics like %edit. It's |
|
571 | * Important: ensure that we have a good solution for magics like %edit. It's | |
570 | likely that with the payload concept we can build a full solution, but not |
|
572 | likely that with the payload concept we can build a full solution, but not | |
571 | 100% clear yet. |
|
573 | 100% clear yet. | |
572 |
|
574 | |||
573 | * Finishing the details of the heartbeat protocol. |
|
575 | * Finishing the details of the heartbeat protocol. | |
574 |
|
576 | |||
575 | * Signal handling: specify what kind of information kernel should broadcast (or |
|
577 | * Signal handling: specify what kind of information kernel should broadcast (or | |
576 | not) when it receives signals. |
|
578 | not) when it receives signals. | |
577 |
|
579 | |||
578 | .. include:: ../links.rst |
|
580 | .. include:: ../links.rst |
General Comments 0
You need to be logged in to leave comments.
Login now