##// END OF EJS Templates
Merge pull request #3704 from minrk/whatsnew...
Min RK -
r11619:0df3fbd3 merge
parent child Browse files
Show More
This diff has been collapsed as it changes many lines, (1463 lines changed) Show them Hide them
@@ -0,0 +1,1463 b''
1 .. _issues_list_100:
2
3 Issues closed in the 1.0 development cycle
4 ==========================================
5
6 Issues closed in 1.0
7 --------------------
8
9 GitHub stats for 2012/06/30 - 2013/07/19 (since 0.13)
10
11 These lists are automatically generated, and may be incomplete or contain duplicates.
12
13 The following 148 authors contributed 3683 commits.
14
15 * Aaron Meurer
16 * Adam Davis
17 * Ahmet Bakan
18 * Alberto Valverde
19 * Allen Riddell
20 * Anders HovmΓΆller
21 * Andrew Spiers
22 * Andrew Vandever
23 * Anthony Scopatz
24 * Anton Akhmerov
25 * Anton I. Sipos
26 * Antony Lee
27 * Aron Ahmadia
28 * Benedikt Sauer
29 * Benjamin Jones
30 * Benjamin Ragan-Kelley
31 * Benjie Chen
32 * Boris de Laage
33 * Brad Reisfeld
34 * Bradley M. Froehle
35 * Brian E. Granger
36 * Cameron Bates
37 * Cavendish McKay
38 * chapmanb
39 * Chris Beaumont
40 * Chris Laumann
41 * Christoph Gohlke
42 * codebraker
43 * codespaced
44 * Corran Webster
45 * DamianHeard
46 * DamiΓ‘n Avila
47 * Dan Kilman
48 * Dan McDougall
49 * Danny Staple
50 * David Hirschfeld
51 * David Warde-Farley
52 * David Wyde
53 * debjan
54 * Diane Trout
55 * dkua
56 * Dominik Dabrowski
57 * Donald Curtis
58 * Dražen Lučanin
59 * drevicko
60 * Eric O. LEBIGOT
61 * Erik M. Bray
62 * Erik Tollerud
63 * Eugene Van den Bulke
64 * Evan Patterson
65 * Fernando Perez
66 * Francesco Montesano
67 * Frank Murphy
68 * Greg Caporaso
69 * Guy Haskin Fernald
70 * guziy
71 * Hans Meine
72 * Harry Moreno
73 * henryiii
74 * Ivan Djokic
75 * Jack Feser
76 * Jake Vanderplas
77 * jakobgager
78 * James Booth
79 * Jan Schulz
80 * Jason Grout
81 * Jeff Knisley
82 * Jens Hedegaard Nielsen
83 * jeremiahbuddha
84 * Jerry Fowler
85 * Jessica B. Hamrick
86 * Jez Ng
87 * John Zwinck
88 * Jonathan Frederic
89 * Jonathan Taylor
90 * Joon Ro
91 * Joseph Lansdowne
92 * Juergen Hasch
93 * Julian Taylor
94 * Jussi Sainio
95 * JΓΆrgen Stenarson
96 * kevin
97 * klonuo
98 * Konrad Hinsen
99 * Kyle Kelley
100 * Lars Solberg
101 * Lessandro Mariano
102 * Mark Sienkiewicz at STScI
103 * Martin Spacek
104 * Matthias Bussonnier
105 * Maxim Grechkin
106 * Maximilian Albert
107 * MercuryRising
108 * Michael Droettboom
109 * Michael Shuffett
110 * MichaΕ‚ GΓ³rny
111 * Mikhail Korobov
112 * mr.Shu
113 * Nathan Goldbaum
114 * ocefpaf
115 * Ohad Ravid
116 * Olivier Grisel
117 * Olivier Verdier
118 * Owen Healy
119 * Paul Ivanov
120 * Pawel Jasinski
121 * Pietro Berkes
122 * Piti Ongmongkolkul
123 * Puneeth Chaganti
124 * Rich Wareham
125 * Rick Lupton
126 * Rob Young
127 * Robert Kern
128 * Robert Marchman
129 * Robert McGibbon
130 * Rui Pereira
131 * Rustam Safin
132 * Ryan May
133 * s8weber
134 * Samuel Ainsworth
135 * Sean Vig
136 * Siyu Zhang
137 * Skylar Saveland
138 * slojo404
139 * smithj1
140 * Stefan van der Walt
141 * Steven Silvester
142 * Takafumi Arakaki
143 * Takeshi Kanmae
144 * tcmulcahy
145 * teegaar
146 * Thomas Kluyver
147 * Thomas Robitaille
148 * Thomas Spura
149 * Thomas Weißschuh
150 * Timothy O'Donnell
151 * Tom Dimiduk
152 * ugurthemaster
153 * urielshaolin
154 * v923z
155 * Valentin Haenel
156 * Victor Zverovich
157 * W. Trevor King
158 * y-p
159 * Yoav Ram
160 * Zbigniew JΔ™drzejewski-Szmek
161 * ZoltΓ‘n VΓΆrΓΆs
162
163
164 We closed a total of 1291 issues, 679 pull requests and 612 regular issues;
165 this is the full list (generated with the script
166 :file:`tools/github_stats.py`):
167
168 Pull Requests (679):
169
170 * :ghpull:`3695`: fix SVG2PDF
171 * :ghpull:`3685`: fix Pager.detach
172 * :ghpull:`3675`: document new dependencies
173 * :ghpull:`3690`: Fixing some css minors in full_html and reveal.
174 * :ghpull:`3671`: nbconvert tests
175 * :ghpull:`3692`: Fix rename notebook - show error with invalid name
176 * :ghpull:`3409`: Prevent qtconsole frontend freeze on lots of output.
177 * :ghpull:`3660`: refocus active cell on dialog close
178 * :ghpull:`3598`: Statelessify mathjaxutils
179 * :ghpull:`3673`: enable comment/uncomment selection
180 * :ghpull:`3677`: remove special-case in get_home_dir for frozen dists
181 * :ghpull:`3674`: add CONTRIBUTING.md
182 * :ghpull:`3670`: use Popen command list for ipexec
183 * :ghpull:`3568`: pylab import adjustments
184 * :ghpull:`3559`: add create.Cell and delete.Cell js events
185 * :ghpull:`3606`: push cell magic to the head of the transformer line
186 * :ghpull:`3607`: NbConvert: Writers, No YAML, and stuff...
187 * :ghpull:`3665`: Pywin32 skips
188 * :ghpull:`3669`: set default client_class for QtKernelManager
189 * :ghpull:`3662`: add strip_encoding_cookie transformer
190 * :ghpull:`3641`: increase patience for slow kernel startup in tests
191 * :ghpull:`3651`: remove a bunch of unused `default_config_file` assignments
192 * :ghpull:`3630`: CSS adjustments
193 * :ghpull:`3645`: Don't require HistoryManager to have a shell
194 * :ghpull:`3643`: don't assume tested ipython is on the PATH
195 * :ghpull:`3654`: fix single-result AsyncResults
196 * :ghpull:`3601`: Markdown in heading cells (take 2)
197 * :ghpull:`3652`: Remove old `docs/examples`
198 * :ghpull:`3621`: catch any exception appending output
199 * :ghpull:`3585`: don't blacklist builtin names
200 * :ghpull:`3647`: Fix `frontend` deprecation warnings in several examples
201 * :ghpull:`3649`: fix AsyncResult.get_dict for single result
202 * :ghpull:`3648`: Fix store magic test
203 * :ghpull:`3650`: Fix, config_file_name was ignored
204 * :ghpull:`3640`: Gcf.get_active() can return None
205 * :ghpull:`3571`: Added shorcuts to split cell, merge cell above and merge cell below.
206 * :ghpull:`3635`: Added missing slash to print-pdf call.
207 * :ghpull:`3487`: Drop patch for compatibility with pyreadline 1.5
208 * :ghpull:`3338`: Allow filename with extension in find_cmd in Windows.
209 * :ghpull:`3628`: Fix test for Python 3 on Windows.
210 * :ghpull:`3642`: Fix typo in docs
211 * :ghpull:`3627`: use DEFAULT_STATIC_FILES_PATH in a test instead of package dir
212 * :ghpull:`3624`: fix some unicode in zmqhandlers
213 * :ghpull:`3460`: Set calling program to UNKNOWN, when argv not in sys
214 * :ghpull:`3632`: Set calling program to UNKNOWN, when argv not in sys (take #2)
215 * :ghpull:`3629`: Use new entry point for python -m IPython
216 * :ghpull:`3626`: passing cell to showInPager, closes #3625
217 * :ghpull:`3618`: expand terminal color support
218 * :ghpull:`3623`: raise UsageError for unsupported GUI backends
219 * :ghpull:`3071`: Add magic function %drun to run code in debugger
220 * :ghpull:`3608`: a nicer error message when using %pylab magic
221 * :ghpull:`3592`: add extra_config_file
222 * :ghpull:`3612`: updated .mailmap
223 * :ghpull:`3616`: Add examples for interactive use of MPI.
224 * :ghpull:`3615`: fix regular expression for ANSI escapes
225 * :ghpull:`3586`: Corrected a typo in the format string for strftime the sphinx.py transformer of nbconvert
226 * :ghpull:`3611`: check for markdown no longer needed, closes #3610
227 * :ghpull:`3555`: Simplify caching of modules with %run
228 * :ghpull:`3583`: notebook small things
229 * :ghpull:`3594`: Fix duplicate completion in notebook
230 * :ghpull:`3600`: parallel: Improved logging for errors during BatchSystemLauncher.stop
231 * :ghpull:`3595`: Revert "allow markdown in heading cells"
232 * :ghpull:`3538`: add IPython.start_ipython
233 * :ghpull:`3562`: Allow custom nbconvert template loaders
234 * :ghpull:`3582`: pandoc adjustments
235 * :ghpull:`3560`: Remove max_msg_size
236 * :ghpull:`3591`: Refer to Setuptools instead of Distribute
237 * :ghpull:`3590`: IPython.sphinxext needs an __init__.py
238 * :ghpull:`3581`: Added the possibility to read a custom.css file for tweaking the final html in full_html and reveal templates.
239 * :ghpull:`3576`: Added support for markdown in heading cells when they are nbconverted.
240 * :ghpull:`3575`: tweak `run -d` message to 'continue execution'
241 * :ghpull:`3569`: add PYTHONSTARTUP to startup files
242 * :ghpull:`3567`: Trigger a single event on js app initilized
243 * :ghpull:`3565`: style.min.css shoudl always exist...
244 * :ghpull:`3531`: allow markdown in heading cells
245 * :ghpull:`3577`: Simplify codemirror ipython-mode
246 * :ghpull:`3495`: Simplified regexp, and suggestions for clearer regexps.
247 * :ghpull:`3578`: Use adjustbox to specify figure size in nbconvert -> latex
248 * :ghpull:`3572`: Skip import irunner test on Windows.
249 * :ghpull:`3574`: correct static path for CM modes autoload
250 * :ghpull:`3558`: Add IPython.sphinxext
251 * :ghpull:`3561`: mention double-control-C to stop notebook server
252 * :ghpull:`3566`: fix event names
253 * :ghpull:`3564`: Remove trivial nbconvert example
254 * :ghpull:`3540`: allow cython cache dir to be deleted
255 * :ghpull:`3527`: cleanup stale, unused exceptions in parallel.error
256 * :ghpull:`3529`: ensure raw_input returns str in zmq shell
257 * :ghpull:`3541`: respect image size metadata in qtconsole
258 * :ghpull:`3550`: Fixing issue preventing the correct read of images by full_html and reveal exporters.
259 * :ghpull:`3557`: open markdown links in new tabs
260 * :ghpull:`3556`: remove mention of nonexistent `_margv` in macro
261 * :ghpull:`3552`: set overflow-x: hidden on Firefox only
262 * :ghpull:`3554`: Fix missing import os in latex exporter.
263 * :ghpull:`3546`: Don't hardcode **latex** posix paths in nbconvert
264 * :ghpull:`3551`: fix path prefix in nbconvert
265 * :ghpull:`3533`: Use a CDN to get reveal.js library.
266 * :ghpull:`3498`: When a notebook is written to file, name the metadata name u''.
267 * :ghpull:`3548`: Change to standard save icon in Notebook toolbar
268 * :ghpull:`3539`: Don't hardcode posix paths in nbconvert
269 * :ghpull:`3508`: notebook supports raw_input and %debug now
270 * :ghpull:`3526`: ensure 'default' is first in cluster profile list
271 * :ghpull:`3525`: basic timezone info
272 * :ghpull:`3532`: include nbconvert templates in installation
273 * :ghpull:`3515`: update CodeMirror component to 3.14
274 * :ghpull:`3513`: add 'No Checkpoints' to Revert menu
275 * :ghpull:`3536`: format positions are required in Python 2.6.x
276 * :ghpull:`3521`: Nbconvert fix, silent fail if template doesn't exist
277 * :ghpull:`3530`: update %store magic docstring
278 * :ghpull:`3528`: fix local mathjax with custom base_project_url
279 * :ghpull:`3518`: Clear up unused imports
280 * :ghpull:`3506`: %store -r restores saved aliases and directory history, as well as variables
281 * :ghpull:`3516`: make css highlight style configurable
282 * :ghpull:`3523`: Exclude frontend shim from docs build
283 * :ghpull:`3514`: use bootstrap `disabled` instead of `ui-state-disabled`
284 * :ghpull:`3520`: Added relative import of RevealExporter to __init__.py inside exporters module
285 * :ghpull:`3507`: fix HTML capitalization in nbconvert exporter classes
286 * :ghpull:`3512`: fix nbconvert filter validation
287 * :ghpull:`3511`: Get Tracer working after ipapi.get replaced with get_ipython
288 * :ghpull:`3510`: use `window.onbeforeunload=` for nav-away warning
289 * :ghpull:`3504`: don't use parent=self in handlers
290 * :ghpull:`3500`: Merge nbconvert into IPython
291 * :ghpull:`3478`: restore "unsaved changes" warning on unload
292 * :ghpull:`3493`: add a dialog when the kernel is auto-restarted
293 * :ghpull:`3488`: Add test suite for autoreload extension
294 * :ghpull:`3484`: Catch some pathological cases inside oinspect
295 * :ghpull:`3481`: Display R errors without Python traceback
296 * :ghpull:`3468`: fix `%magic` output
297 * :ghpull:`3430`: add parent to Configurable
298 * :ghpull:`3491`: Remove unexpected keyword parameter to remove_kernel
299 * :ghpull:`3485`: SymPy has changed its recommended way to initialize printing
300 * :ghpull:`3486`: Add test for non-ascii characters in docstrings
301 * :ghpull:`3483`: Inputtransformer: Allow classic prompts without space
302 * :ghpull:`3482`: Use an absolute path to iptest, because the tests are not always run from $IPYTHONDIR.
303 * :ghpull:`3381`: enable 2x (retina) display
304 * :ghpull:`3450`: Flatten IPython.frontend
305 * :ghpull:`3477`: pass config to subapps
306 * :ghpull:`3466`: Kernel fails to start when username has non-ascii characters
307 * :ghpull:`3465`: Add HTCondor bindings to IPython.parallel
308 * :ghpull:`3463`: fix typo, closes #3462
309 * :ghpull:`3456`: Notice for users who disable javascript
310 * :ghpull:`3453`: fix cell execution in firefox, closes #3447
311 * :ghpull:`3393`: [WIP] bootstrapify
312 * :ghpull:`3440`: Fix installing mathjax from downloaded file via command line
313 * :ghpull:`3431`: Provide means for starting the Qt console maximized and with the menu bar hidden
314 * :ghpull:`3425`: base IPClusterApp inherits from BaseIPythonApp
315 * :ghpull:`3433`: Update IPython\external\path\__init__.py
316 * :ghpull:`3298`: Some fixes in IPython Sphinx directive
317 * :ghpull:`3428`: process escapes in mathjax
318 * :ghpull:`3420`: thansk -> thanks
319 * :ghpull:`3416`: Fix doc: "principle" not "principal"
320 * :ghpull:`3413`: more unique filename for test
321 * :ghpull:`3364`: Inject requirejs in notebook and start using it.
322 * :ghpull:`3390`: Fix %paste with blank lines
323 * :ghpull:`3403`: fix creating config objects from dicts
324 * :ghpull:`3401`: rollback #3358
325 * :ghpull:`3373`: make cookie_secret configurable
326 * :ghpull:`3307`: switch default ws_url logic to js side
327 * :ghpull:`3392`: Restore anchor link on h2-h6
328 * :ghpull:`3369`: Use different treshold for (auto)scroll in output
329 * :ghpull:`3370`: normalize unicode notebook filenames
330 * :ghpull:`3372`: base default cookie name on request host+port
331 * :ghpull:`3378`: disable CodeMirror drag/drop on Safari
332 * :ghpull:`3358`: workaround spurious CodeMirror scrollbars
333 * :ghpull:`3371`: make setting the notebook dirty flag an event
334 * :ghpull:`3366`: remove long-dead zmq frontend.py and completer.py
335 * :ghpull:`3382`: cull Session digest history
336 * :ghpull:`3330`: Fix get_ipython_dir when $HOME is /
337 * :ghpull:`3319`: IPEP 13: user-expressions and user-variables
338 * :ghpull:`3384`: comments in tools/gitwash_dumper.py changed (''' to """)
339 * :ghpull:`3387`: Make submodule checks work under Python 3.
340 * :ghpull:`3357`: move anchor-link off of heading text
341 * :ghpull:`3351`: start basic tests of ipcluster Launchers
342 * :ghpull:`3377`: allow class.__module__ to be None
343 * :ghpull:`3340`: skip submodule check in package managers
344 * :ghpull:`3328`: decode subprocess output in launchers
345 * :ghpull:`3368`: Reenable bracket matching
346 * :ghpull:`3356`: Mpr fixes
347 * :ghpull:`3336`: Use new input transformation API in %time magic
348 * :ghpull:`3325`: Organize the JS and less files by component.
349 * :ghpull:`3342`: fix test_find_cmd_python
350 * :ghpull:`3354`: catch socket.error in utils.localinterfaces
351 * :ghpull:`3341`: fix default cluster count
352 * :ghpull:`3286`: don't use `get_ipython` from builtins in library code
353 * :ghpull:`3333`: notebookapp: add missing whitespace to warnings
354 * :ghpull:`3323`: Strip prompts even if the prompt isn't present on the first line.
355 * :ghpull:`3321`: Reorganize the python/server side of the notebook
356 * :ghpull:`3320`: define `__file__` in config files
357 * :ghpull:`3317`: rename `%%file` to `%%writefile`
358 * :ghpull:`3304`: set unlimited HWM for all relay devices
359 * :ghpull:`3315`: Update Sympy_printing extension load
360 * :ghpull:`3310`: further clarify Image docstring
361 * :ghpull:`3285`: load extensions in builtin trap
362 * :ghpull:`3308`: Speed up AsyncResult._wait_for_outputs(0)
363 * :ghpull:`3294`: fix callbacks as optional in js kernel.execute
364 * :ghpull:`3276`: Fix: "python ABS/PATH/TO/ipython.py" fails
365 * :ghpull:`3301`: allow python3 tests without python installed
366 * :ghpull:`3282`: allow view.map to work with a few more things
367 * :ghpull:`3284`: remove `ipython.py` entry point
368 * :ghpull:`3281`: fix ignored IOPub messages with no parent
369 * :ghpull:`3275`: improve submodule messages / git hooks
370 * :ghpull:`3239`: Allow "x" icon and esc key to close pager in notebook
371 * :ghpull:`3290`: Improved heartbeat controller to engine monitoring for long running tasks
372 * :ghpull:`3142`: Better error message when CWD doesn't exist on startup
373 * :ghpull:`3066`: Add support for relative import to %run -m (fixes #2727)
374 * :ghpull:`3269`: protect highlight.js against unknown languages
375 * :ghpull:`3267`: add missing return
376 * :ghpull:`3101`: use marked / highlight.js instead of pagedown and prettify
377 * :ghpull:`3264`: use https url for submodule
378 * :ghpull:`3263`: fix set_last_checkpoint when no checkpoint
379 * :ghpull:`3258`: Fix submodule location in setup.py
380 * :ghpull:`3254`: fix a few URLs from previous PR
381 * :ghpull:`3240`: remove js components from the repo
382 * :ghpull:`3158`: IPEP 15: autosave the notebook
383 * :ghpull:`3252`: move images out of _static folder into _images
384 * :ghpull:`3251`: Fix for cell magics in Qt console
385 * :ghpull:`3250`: Added a simple __html__() method to the HTML class
386 * :ghpull:`3249`: remove copy of sphinx inheritance_diagram.py
387 * :ghpull:`3235`: Remove the unused print notebook view
388 * :ghpull:`3238`: Improve the design of the tab completion UI
389 * :ghpull:`3242`: Make changes of Application.log_format effective
390 * :ghpull:`3219`: Workaround so only one CTRL-C is required for a new prompt in --gui=qt
391 * :ghpull:`3190`: allow formatters to specify metadata
392 * :ghpull:`3231`: improve discovery of public IPs
393 * :ghpull:`3233`: check prefixes for swallowing kernel args
394 * :ghpull:`3234`: Removing old autogrow JS code.
395 * :ghpull:`3232`: Update to CodeMirror 3 and start to ship our components
396 * :ghpull:`3229`: The HTML output type accidentally got removed from the OutputArea.
397 * :ghpull:`3228`: Typo in IPython.Parallel documentation
398 * :ghpull:`3226`: Text in rename dialog was way too big - making it <p>.
399 * :ghpull:`3225`: Removing old restuctured text handler and web service.
400 * :ghpull:`3222`: make BlockingKernelClient the default Client
401 * :ghpull:`3223`: add missing mathjax_url to new settings dict
402 * :ghpull:`3089`: add stdin to the notebook
403 * :ghpull:`3221`: Remove references to HTMLCell (dead code)
404 * :ghpull:`3205`: add ignored *args to HasTraits constructor
405 * :ghpull:`3088`: cleanup IPython handler settings
406 * :ghpull:`3201`: use much faster regexp for ansi coloring
407 * :ghpull:`3220`: avoid race condition in profile creation
408 * :ghpull:`3011`: IPEP 12: add KernelClient
409 * :ghpull:`3217`: informative error when trying to load directories
410 * :ghpull:`3174`: Simple class
411 * :ghpull:`2979`: CM configurable Take 2
412 * :ghpull:`3215`: Updates storemagic extension to allow for specifying variable name to load
413 * :ghpull:`3181`: backport If-Modified-Since fix from tornado
414 * :ghpull:`3200`: IFrame (VimeoVideo, ScribdDocument, ...)
415 * :ghpull:`3186`: Fix small inconsistency in nbconvert: etype -> ename
416 * :ghpull:`3212`: Fix issue #2563, "core.profiledir.check_startup_dir() doesn't work inside py2exe'd installation"
417 * :ghpull:`3211`: Fix inheritance_diagram Sphinx extension for Sphinx 1.2
418 * :ghpull:`3208`: Update link to extensions index
419 * :ghpull:`3203`: Separate InputSplitter for transforming whole cells
420 * :ghpull:`3189`: Improve completer
421 * :ghpull:`3194`: finish up PR #3116
422 * :ghpull:`3188`: Add new keycodes
423 * :ghpull:`2695`: Key the root modules cache by sys.path entries.
424 * :ghpull:`3182`: clarify %%file docstring
425 * :ghpull:`3163`: BUG: Fix the set and frozenset pretty printer to handle the empty case correctly
426 * :ghpull:`3180`: better UsageError for cell magic with no body
427 * :ghpull:`3184`: Cython cache
428 * :ghpull:`3175`: Added missing s
429 * :ghpull:`3173`: Little bits of documentation cleanup
430 * :ghpull:`2635`: Improve Windows start menu shortcuts (#2)
431 * :ghpull:`3172`: Add missing import in IPython parallel magics example
432 * :ghpull:`3170`: default application logger shouldn't propagate
433 * :ghpull:`3159`: Autocompletion for zsh
434 * :ghpull:`3105`: move DEFAULT_STATIC_FILES_PATH to IPython.html
435 * :ghpull:`3144`: minor bower tweaks
436 * :ghpull:`3141`: Default color output for ls on OSX
437 * :ghpull:`3137`: fix dot syntax error in inheritance diagram
438 * :ghpull:`3072`: raise UnsupportedOperation on iostream.fileno()
439 * :ghpull:`3147`: Notebook support for a reverse proxy which handles SSL
440 * :ghpull:`3152`: make qtconsole size at startup configurable
441 * :ghpull:`3162`: adding stream kwarg to current.new_output
442 * :ghpull:`2981`: IPEP 10: kernel side filtering of display formats
443 * :ghpull:`3058`: add redirect handler for notebooks by name
444 * :ghpull:`3041`: support non-modules in @require
445 * :ghpull:`2447`: Stateful line transformers
446 * :ghpull:`3108`: fix some O(N) and O(N^2) operations in parallel.map
447 * :ghpull:`2791`: forward stdout from forked processes
448 * :ghpull:`3157`: use Python 3-style for pretty-printed sets
449 * :ghpull:`3148`: closes #3045, #3123 for tornado < version 3.0
450 * :ghpull:`3143`: minor heading-link tweaks
451 * :ghpull:`3136`: Strip useless ANSI escape codes in notebook
452 * :ghpull:`3126`: Prevent errors when pressing arrow keys in an empty notebook
453 * :ghpull:`3135`: quick dev installation instructions
454 * :ghpull:`2889`: Push pandas dataframes to R magic
455 * :ghpull:`3068`: Don't monkeypatch doctest during IPython startup.
456 * :ghpull:`3133`: fix argparse version check
457 * :ghpull:`3102`: set `spellcheck=false` in CodeCell inputarea
458 * :ghpull:`3064`: add anchors to heading cells
459 * :ghpull:`3097`: PyQt 4.10: use self._document = self.document()
460 * :ghpull:`3117`: propagate automagic change to shell
461 * :ghpull:`3118`: don't give up on weird os names
462 * :ghpull:`3115`: Fix example
463 * :ghpull:`2640`: fix quarantine/ipy_editors.py
464 * :ghpull:`3070`: Add info make target that was missing in old Sphinx
465 * :ghpull:`3082`: A few small patches to image handling
466 * :ghpull:`3078`: fix regular expression for detecting links in stdout
467 * :ghpull:`3054`: restore default behavior for automatic cluster size
468 * :ghpull:`3073`: fix ipython usage text
469 * :ghpull:`3083`: fix DisplayMagics.html docstring
470 * :ghpull:`3080`: noted sub_channel being renamed to iopub_channel
471 * :ghpull:`3079`: actually use IPKernelApp.kernel_class
472 * :ghpull:`3076`: Improve notebook.js documentation
473 * :ghpull:`3063`: add missing `%%html` magic
474 * :ghpull:`3075`: check for SIGUSR1 before using it, closes #3074
475 * :ghpull:`3051`: add width:100% to vbox for webkit / FF consistency
476 * :ghpull:`2999`: increase registration timeout
477 * :ghpull:`2997`: fix DictDB default size limit
478 * :ghpull:`3033`: on resume, print server info again
479 * :ghpull:`3062`: test double pyximport
480 * :ghpull:`3046`: cast kernel cwd to bytes on Python 2 on Windows
481 * :ghpull:`3038`: remove xml from notebook magic docstrings
482 * :ghpull:`3032`: fix time format to international time format
483 * :ghpull:`3022`: Fix test for Windows
484 * :ghpull:`3024`: changed instances of 'outout' to 'output' in alt texts
485 * :ghpull:`3013`: py3 workaround for reload in cythonmagic
486 * :ghpull:`2961`: time magic: shorten unnecessary output on windows
487 * :ghpull:`2987`: fix local files examples in markdown
488 * :ghpull:`2998`: fix css in .output_area pre
489 * :ghpull:`3003`: add $include /etc/inputrc to suggested ~/.inputrc
490 * :ghpull:`2957`: Refactor qt import logic. Fixes #2955
491 * :ghpull:`2994`: expanduser on %%file targets
492 * :ghpull:`2983`: fix run-all (that-> this)
493 * :ghpull:`2964`: fix count when testing composite error output
494 * :ghpull:`2967`: shows entire session history when only startsess is given
495 * :ghpull:`2942`: Move CM IPython theme out of codemirror folder
496 * :ghpull:`2929`: Cleanup cell insertion
497 * :ghpull:`2933`: Minordocupdate
498 * :ghpull:`2968`: fix notebook deletion.
499 * :ghpull:`2966`: Added assert msg to extract_hist_ranges()
500 * :ghpull:`2959`: Add command to trim the history database.
501 * :ghpull:`2681`: Don't enable pylab mode, when matplotlib is not importable
502 * :ghpull:`2901`: Fix inputhook_wx on osx
503 * :ghpull:`2871`: truncate potentially long CompositeErrors
504 * :ghpull:`2951`: use istype on lists/tuples
505 * :ghpull:`2946`: fix qtconsole history logic for end-of-line
506 * :ghpull:`2954`: fix logic for append_javascript
507 * :ghpull:`2941`: fix baseUrl
508 * :ghpull:`2903`: Specify toggle value on cell line number
509 * :ghpull:`2911`: display order in output area configurable
510 * :ghpull:`2897`: Dont rely on BaseProjectUrl data in body tag
511 * :ghpull:`2894`: Cm configurable
512 * :ghpull:`2927`: next release will be 1.0
513 * :ghpull:`2932`: Simplify using notebook static files from external code
514 * :ghpull:`2915`: added small config section to notebook docs page
515 * :ghpull:`2924`: safe_run_module: Silence SystemExit codes 0 and None.
516 * :ghpull:`2906`: Unpatch/Monkey patch CM
517 * :ghpull:`2921`: add menu item for undo delete cell
518 * :ghpull:`2917`: Don't add logging handler if one already exists.
519 * :ghpull:`2910`: Respect DB_IP and DB_PORT in mongodb tests
520 * :ghpull:`2926`: Don't die if stderr/stdout do not support set_parent() #2925
521 * :ghpull:`2885`: get monospace pager back
522 * :ghpull:`2876`: fix celltoolbar layout on FF
523 * :ghpull:`2904`: Skip remaining IPC test on Windows
524 * :ghpull:`2908`: fix last remaining KernelApp reference
525 * :ghpull:`2905`: fix a few remaining KernelApp/IPKernelApp changes
526 * :ghpull:`2900`: Don't assume test case for %time will finish in 0 time
527 * :ghpull:`2893`: exclude fabfile from tests
528 * :ghpull:`2884`: Correct import for kernelmanager on Windows
529 * :ghpull:`2882`: Utils cleanup
530 * :ghpull:`2883`: Don't call ast.fix_missing_locations unless the AST could have been modified
531 * :ghpull:`2855`: time(it) magic: Implement minutes/hour formatting and "%%time" cell magic
532 * :ghpull:`2874`: Empty cell warnings
533 * :ghpull:`2819`: tweak history prefix search (up/^p) in qtconsole
534 * :ghpull:`2868`: Import performance
535 * :ghpull:`2877`: minor css fixes
536 * :ghpull:`2880`: update examples docs with kernel move
537 * :ghpull:`2878`: Pass host environment on to kernel
538 * :ghpull:`2599`: func_kw_complete for builtin and cython with embededsignature=True using docstring
539 * :ghpull:`2792`: Add key "unique" to history_request protocol
540 * :ghpull:`2872`: fix payload keys
541 * :ghpull:`2869`: Fixing styling of toolbar selects on FF.
542 * :ghpull:`2708`: Less css
543 * :ghpull:`2854`: Move kernel code into IPython.kernel
544 * :ghpull:`2864`: Fix %run -t -N<N> TypeError
545 * :ghpull:`2852`: future pyzmq compatibility
546 * :ghpull:`2863`: whatsnew/version0.9.txt: Fix '~./ipython' -> '~/.ipython' typo
547 * :ghpull:`2861`: add missing KernelManager to ConsoleApp class list
548 * :ghpull:`2850`: Consolidate host IP detection in utils.localinterfaces
549 * :ghpull:`2859`: Correct docstring of ipython.py
550 * :ghpull:`2831`: avoid string version comparisons in external.qt
551 * :ghpull:`2844`: this should address the failure in #2732
552 * :ghpull:`2849`: utils/data: Use list comprehension for uniq_stable()
553 * :ghpull:`2839`: add jinja to install docs / setup.py
554 * :ghpull:`2841`: Miscellaneous docs fixes
555 * :ghpull:`2811`: Still more KernelManager cleanup
556 * :ghpull:`2820`: add '=' to greedy completer delims
557 * :ghpull:`2818`: log user tracebacks in the kernel (INFO-level)
558 * :ghpull:`2828`: Clean up notebook Javascript
559 * :ghpull:`2829`: avoid comparison error in dictdb hub history
560 * :ghpull:`2830`: BUG: Opening parenthesis after non-callable raises ValueError
561 * :ghpull:`2718`: try to fallback to pysqlite2.dbapi2 as sqlite3 in core.history
562 * :ghpull:`2816`: in %edit, don't save "last_call" unless last call succeeded
563 * :ghpull:`2817`: change ol format order
564 * :ghpull:`2537`: Organize example notebooks
565 * :ghpull:`2815`: update release/authors
566 * :ghpull:`2808`: improve patience for slow Hub in client tests
567 * :ghpull:`2812`: remove nonfunctional `-la` short arg in cython magic
568 * :ghpull:`2810`: remove dead utils.upgradedir
569 * :ghpull:`1671`: __future__ environments
570 * :ghpull:`2804`: skip ipc tests on Windows
571 * :ghpull:`2789`: Fixing styling issues with CellToolbar.
572 * :ghpull:`2805`: fix KeyError creating ZMQStreams in notebook
573 * :ghpull:`2775`: General cleanup of kernel manager code.
574 * :ghpull:`2340`: Initial Code to reduce parallel.Client caching
575 * :ghpull:`2799`: Exit code
576 * :ghpull:`2800`: use `type(obj) is cls` as switch when canning
577 * :ghpull:`2801`: Fix a breakpoint bug
578 * :ghpull:`2795`: Remove outdated code from extensions.autoreload
579 * :ghpull:`2796`: P3K: fix cookie parsing under Python 3.x (+ duplicate import is removed)
580 * :ghpull:`2724`: In-process kernel support (take 3)
581 * :ghpull:`2687`: [WIP] Metaui slideshow
582 * :ghpull:`2788`: Chrome frame awareness
583 * :ghpull:`2649`: Add version_request/reply messaging protocol
584 * :ghpull:`2753`: add `%%px --local` for local execution
585 * :ghpull:`2783`: Prefilter shouldn't touch execution_count
586 * :ghpull:`2333`: UI For Metadata
587 * :ghpull:`2396`: create a ipynbv3 json schema and a validator
588 * :ghpull:`2757`: check for complete pyside presence before trying to import
589 * :ghpull:`2782`: Allow the %run magic with '-b' to specify a file.
590 * :ghpull:`2778`: P3K: fix DeprecationWarning under Python 3.x
591 * :ghpull:`2776`: remove non-functional View.kill method
592 * :ghpull:`2755`: can interactively defined classes
593 * :ghpull:`2774`: Removing unused code in the notebook MappingKernelManager.
594 * :ghpull:`2773`: Fixed minor typo causing AttributeError to be thrown.
595 * :ghpull:`2609`: Add 'unique' option to history_request messaging protocol
596 * :ghpull:`2769`: Allow shutdown when no engines are registered
597 * :ghpull:`2766`: Define __file__ when we %edit a real file.
598 * :ghpull:`2476`: allow %edit <variable> to work when interactively defined
599 * :ghpull:`2763`: Reset readline delimiters after loading rmagic.
600 * :ghpull:`2460`: Better handling of `__file__` when running scripts.
601 * :ghpull:`2617`: Fix for `units` argument. Adds a `res` argument.
602 * :ghpull:`2738`: Unicode content crashes the pager (console)
603 * :ghpull:`2749`: Tell Travis CI to test on Python 3.3 as well
604 * :ghpull:`2744`: Don't show 'try %paste' message while using magics
605 * :ghpull:`2728`: shift tab for tooltip
606 * :ghpull:`2741`: Add note to `%cython` Black-Scholes example warning of missing erf.
607 * :ghpull:`2743`: BUG: Octavemagic inline plots not working on Windows: Fixed
608 * :ghpull:`2740`: Following #2737 this error is now a name error
609 * :ghpull:`2737`: Rmagic: error message when moving an non-existant variable from python to R
610 * :ghpull:`2723`: diverse fixes for project url
611 * :ghpull:`2731`: %Rpush: Look for variables in the local scope first.
612 * :ghpull:`2544`: Infinite loop when multiple debuggers have been attached.
613 * :ghpull:`2726`: Add qthelp docs creation
614 * :ghpull:`2730`: added blockquote CSS
615 * :ghpull:`2729`: Fix Read the doc build, Again
616 * :ghpull:`2446`: [alternate 2267] Offline mathjax
617 * :ghpull:`2716`: remove unexisting headings level
618 * :ghpull:`2717`: One liner to fix debugger printing stack traces when lines of context are larger than source.
619 * :ghpull:`2713`: Doc bugfix: user_ns is not an attribute of Magic objects.
620 * :ghpull:`2690`: Fix 'import '... completion for py3 & egg files.
621 * :ghpull:`2691`: Document OpenMP in %%cython magic
622 * :ghpull:`2699`: fix jinja2 rendering for password protected notebooks
623 * :ghpull:`2700`: Skip notebook testing if jinja2 is not available.
624 * :ghpull:`2692`: Add %%cython magics to generated documentation.
625 * :ghpull:`2685`: Fix pretty print of types when `__module__` is not available.
626 * :ghpull:`2686`: Fix tox.ini
627 * :ghpull:`2604`: Backslashes are misinterpreted as escape-sequences by the R-interpreter.
628 * :ghpull:`2689`: fix error in doc (arg->kwarg) and pep-8
629 * :ghpull:`2683`: for downloads, replaced window.open with window.location.assign
630 * :ghpull:`2659`: small bugs in js are fixed
631 * :ghpull:`2363`: Refactor notebook templates to use Jinja2
632 * :ghpull:`2662`: qtconsole: wrap argument list in tooltip to match width of text body
633 * :ghpull:`2328`: addition of classes to generate a link or list of links from files local to the IPython HTML notebook
634 * :ghpull:`2668`: pylab_not_importable: Catch all exceptions, not just RuntimeErrors.
635 * :ghpull:`2663`: Fix issue #2660: parsing of help and version arguments
636 * :ghpull:`2656`: Fix irunner tests when $PYTHONSTARTUP is set
637 * :ghpull:`2312`: Add bracket matching to code cells in notebook
638 * :ghpull:`2571`: Start to document Javascript
639 * :ghpull:`2641`: undefinied that -> this
640 * :ghpull:`2638`: Fix %paste in Python 3 on Mac
641 * :ghpull:`2301`: Ast transfomers
642 * :ghpull:`2616`: Revamp API docs
643 * :ghpull:`2572`: Make 'Paste Above' the default paste behavior.
644 * :ghpull:`2574`: Fix #2244
645 * :ghpull:`2582`: Fix displaying history when output cache is disabled.
646 * :ghpull:`2591`: Fix for Issue #2584
647 * :ghpull:`2526`: Don't kill paramiko tunnels when receiving ^C
648 * :ghpull:`2559`: Add psource, pfile, pinfo2 commands to ipdb.
649 * :ghpull:`2546`: use 4 Pythons to build 4 Windows installers
650 * :ghpull:`2561`: Fix display of plain text containing multiple carriage returns before line feed
651 * :ghpull:`2549`: Add a simple 'undo' for cell deletion.
652 * :ghpull:`2525`: Add event to kernel execution/shell reply.
653 * :ghpull:`2554`: Avoid stopping in ipdb until we reach the main script.
654 * :ghpull:`2404`: Option to limit search result in history magic command
655 * :ghpull:`2294`: inputhook_qt4: Use QEventLoop instead of starting up the QCoreApplication
656 * :ghpull:`2233`: Refactored Drag and Drop Support in Qt Console
657 * :ghpull:`1747`: switch between hsplit and vsplit paging (request for feedback)
658 * :ghpull:`2530`: Adding time offsets to the video
659 * :ghpull:`2542`: Allow starting IPython as `python -m IPython`.
660 * :ghpull:`2534`: Do not unescape backslashes in Windows (shellglob)
661 * :ghpull:`2517`: Improved MathJax, bug fixes
662 * :ghpull:`2511`: trigger default remote_profile_dir when profile_dir is set
663 * :ghpull:`2491`: color is supported in ironpython
664 * :ghpull:`2462`: Track which extensions are loaded
665 * :ghpull:`2464`: Locate URLs in text output and convert them to hyperlinks.
666 * :ghpull:`2490`: add ZMQInteractiveShell to IPEngineApp class list
667 * :ghpull:`2498`: Don't catch tab press when something selected
668 * :ghpull:`2527`: Run All Above and Run All Below
669 * :ghpull:`2513`: add GitHub uploads to release script
670 * :ghpull:`2529`: Windows aware tests for shellglob
671 * :ghpull:`2478`: Fix doctest_run_option_parser for Windows
672 * :ghpull:`2519`: clear In[ ] prompt numbers again
673 * :ghpull:`2467`: Clickable links
674 * :ghpull:`2500`: Add `encoding` attribute to `OutStream` class.
675 * :ghpull:`2349`: ENH: added StackExchange-style MathJax filtering
676 * :ghpull:`2503`: Fix traceback handling of SyntaxErrors without line numbers.
677 * :ghpull:`2492`: add missing 'qtconsole' extras_require
678 * :ghpull:`2480`: Add deprecation warnings for sympyprinting
679 * :ghpull:`2334`: Make the ipengine monitor the ipcontroller heartbeat and die if the ipcontroller goes down
680 * :ghpull:`2479`: use new _winapi instead of removed _subprocess
681 * :ghpull:`2474`: fix bootstrap name conflicts
682 * :ghpull:`2469`: Treat __init__.pyc same as __init__.py in module_list
683 * :ghpull:`2165`: Add -g option to %run to glob expand arguments
684 * :ghpull:`2468`: Tell git to ignore __pycache__ directories.
685 * :ghpull:`2421`: Some notebook tweaks.
686 * :ghpull:`2291`: Remove old plugin system
687 * :ghpull:`2127`: Ability to build toolbar in JS
688 * :ghpull:`2445`: changes for ironpython
689 * :ghpull:`2420`: Pass ipython_dir to __init__() method of TerminalInteractiveShell's superclass.
690 * :ghpull:`2432`: Revert #1831, the `__file__` injection in safe_execfile / safe_execfile_ipy.
691 * :ghpull:`2216`: Autochange highlight with cell magics
692 * :ghpull:`1946`: Add image message handler in ZMQTerminalInteractiveShell
693 * :ghpull:`2424`: skip find_cmd when setting up script magics
694 * :ghpull:`2389`: Catch sqlite DatabaseErrors in more places when reading the history database
695 * :ghpull:`2395`: Don't catch ImportError when trying to unpack module functions
696 * :ghpull:`1868`: enable IPC transport for kernels
697 * :ghpull:`2437`: don't let log cleanup prevent engine start
698 * :ghpull:`2441`: `sys.maxsize` is the maximum length of a container.
699 * :ghpull:`2442`: allow iptest to be interrupted
700 * :ghpull:`2240`: fix message built for engine dying during task
701 * :ghpull:`2369`: Block until kernel termination after sending a kill signal
702 * :ghpull:`2439`: Py3k: Octal (0777 -> 0o777)
703 * :ghpull:`2326`: Detachable pager in notebook.
704 * :ghpull:`2377`: Fix installation of man pages in Python 3
705 * :ghpull:`2407`: add IPython version to message headers
706 * :ghpull:`2408`: Fix Issue #2366
707 * :ghpull:`2405`: clarify TaskScheduler.hwm doc
708 * :ghpull:`2399`: IndentationError display
709 * :ghpull:`2400`: Add scroll_to_cell(cell_number) to the notebook
710 * :ghpull:`2401`: unmock read-the-docs modules
711 * :ghpull:`2311`: always perform requested trait assignments
712 * :ghpull:`2393`: New option `n` to limit history search hits
713 * :ghpull:`2386`: Adapt inline backend to changes in matplotlib
714 * :ghpull:`2392`: Remove suspicious double quote
715 * :ghpull:`2387`: Added -L library search path to cythonmagic cell magic
716 * :ghpull:`2370`: qtconsole: Create a prompt newline by inserting a new block (w/o formatting)
717 * :ghpull:`1715`: Fix for #1688, traceback-unicode issue
718 * :ghpull:`2378`: use Singleton.instance() for embed() instead of manual global
719 * :ghpull:`2373`: fix missing imports in core.interactiveshell
720 * :ghpull:`2368`: remove notification widget leftover
721 * :ghpull:`2327`: Parallel: Support get/set of nested objects in view (e.g. dv['a.b'])
722 * :ghpull:`2362`: Clean up ProgressBar class in example notebook
723 * :ghpull:`2346`: Extra xterm identification in set_term_title
724 * :ghpull:`2352`: Notebook: Store the username in a cookie whose name is unique.
725 * :ghpull:`2358`: add backport_pr to tools
726 * :ghpull:`2365`: fix names of notebooks for download/save
727 * :ghpull:`2364`: make clients use 'location' properly (fixes #2361)
728 * :ghpull:`2354`: Refactor notebook templates to use Jinja2
729 * :ghpull:`2339`: add bash completion example
730 * :ghpull:`2345`: Remove references to 'version' no longer in argparse. Github issue #2343.
731 * :ghpull:`2347`: adjust division error message checking to account for Python 3
732 * :ghpull:`2305`: RemoteError._render_traceback_ calls self.render_traceback
733 * :ghpull:`2338`: Normalize line endings for ipexec_validate, fix for #2315.
734 * :ghpull:`2192`: Introduce Notification Area
735 * :ghpull:`2329`: Better error messages for common magic commands.
736 * :ghpull:`2337`: ENH: added StackExchange-style MathJax filtering
737 * :ghpull:`2331`: update css for qtconsole in doc
738 * :ghpull:`2317`: adding cluster_id to parallel.Client.__init__
739 * :ghpull:`2130`: Add -l option to %R magic to allow passing in of local namespace
740 * :ghpull:`2196`: Fix for bad command line argument to latex
741 * :ghpull:`2300`: bug fix: was crashing when sqlite3 is not installed
742 * :ghpull:`2184`: Expose store_history to execute_request messages.
743 * :ghpull:`2308`: Add welcome_message option to enable_pylab
744 * :ghpull:`2302`: Fix variable expansion on 'self'
745 * :ghpull:`2299`: Remove code from prefilter that duplicates functionality in inputsplitter
746 * :ghpull:`2295`: allow pip install from github repository directly
747 * :ghpull:`2280`: fix SSH passwordless check for OpenSSH
748 * :ghpull:`2290`: nbmanager
749 * :ghpull:`2288`: s/assertEquals/assertEqual (again)
750 * :ghpull:`2287`: Removed outdated dev docs.
751 * :ghpull:`2218`: Use redirect for new notebooks
752 * :ghpull:`2277`: nb: up/down arrow keys move to begin/end of line at top/bottom of cell
753 * :ghpull:`2045`: Refactoring notebook managers and adding Azure backed storage.
754 * :ghpull:`2271`: use display instead of send_figure in inline backend hooks
755 * :ghpull:`2278`: allow disabling SQLite history
756 * :ghpull:`2225`: Add "--annotate" option to `%%cython` magic.
757 * :ghpull:`2246`: serialize individual args/kwargs rather than the containers
758 * :ghpull:`2274`: CLN: Use name to id mapping of notebooks instead of searching.
759 * :ghpull:`2270`: SSHLauncher tweaks
760 * :ghpull:`2269`: add missing location when disambiguating controller IP
761 * :ghpull:`2263`: Allow docs to build on http://readthedocs.org/
762 * :ghpull:`2256`: Adding data publication example notebook.
763 * :ghpull:`2255`: better flush iopub with AsyncResults
764 * :ghpull:`2261`: Fix: longest_substr([]) -> ''
765 * :ghpull:`2260`: fix mpr again
766 * :ghpull:`2242`: Document globbing in `%history -g <pattern>`.
767 * :ghpull:`2250`: fix html in notebook example
768 * :ghpull:`2245`: Fix regression in embed() from pull-request #2096.
769 * :ghpull:`2248`: track sha of master in test_pr messages
770 * :ghpull:`2238`: Fast tests
771 * :ghpull:`2211`: add data publication message
772 * :ghpull:`2236`: minor test_pr tweaks
773 * :ghpull:`2231`: Improve Image format validation and add html width,height
774 * :ghpull:`2232`: Reapply monkeypatch to inspect.findsource()
775 * :ghpull:`2235`: remove spurious print statement from setupbase.py
776 * :ghpull:`2222`: adjust how canning deals with import strings
777 * :ghpull:`2224`: fix css typo
778 * :ghpull:`2223`: Custom tracebacks
779 * :ghpull:`2214`: use KernelApp.exec_lines/files in IPEngineApp
780 * :ghpull:`2199`: Wrap JS published by %%javascript in try/catch
781 * :ghpull:`2212`: catch errors in markdown javascript
782 * :ghpull:`2190`: Update code mirror 2.22 to 2.32
783 * :ghpull:`2200`: documentation build broken in bb429da5b
784 * :ghpull:`2194`: clean nan/inf in json_clean
785 * :ghpull:`2198`: fix mpr for earlier git version
786 * :ghpull:`2175`: add FileFindHandler for Notebook static files
787 * :ghpull:`1990`: can func_defaults
788 * :ghpull:`2069`: start improving serialization in parallel code
789 * :ghpull:`2202`: Create a unique & temporary IPYTHONDIR for each testing group.
790 * :ghpull:`2204`: Work around lack of os.kill in win32.
791 * :ghpull:`2148`: win32 iptest: Use subprocess.Popen() instead of os.system().
792 * :ghpull:`2179`: Pylab switch
793 * :ghpull:`2124`: Add an API for registering magic aliases.
794 * :ghpull:`2169`: ipdb: pdef, pdoc, pinfo magics all broken
795 * :ghpull:`2174`: Ensure consistent indentation in `%magic`.
796 * :ghpull:`1930`: add size-limiting to the DictDB backend
797 * :ghpull:`2189`: Fix IPython.lib.latextools for Python 3
798 * :ghpull:`2186`: removed references to h5py dependence in octave magic documentation
799 * :ghpull:`2183`: Include the kernel object in the event object passed to kernel events
800 * :ghpull:`2185`: added test for %store, fixed storemagic
801 * :ghpull:`2138`: Use breqn.sty in dvipng backend if possible
802 * :ghpull:`2182`: handle undefined param in notebooklist
803 * :ghpull:`1831`: fix #1814 set __file__ when running .ipy files
804 * :ghpull:`2051`: Add a metadata attribute to messages
805 * :ghpull:`1471`: simplify IPython.parallel connections and enable Controller Resume
806 * :ghpull:`2181`: add %%javascript, %%svg, and %%latex display magics
807 * :ghpull:`2116`: different images in 00_notebook-tour
808 * :ghpull:`2092`: %prun: Restore `stats.stream` after running `print_stream`.
809 * :ghpull:`2159`: show message on notebook list if server is unreachable
810 * :ghpull:`2176`: fix git mpr
811 * :ghpull:`2152`: [qtconsole] Namespace not empty at startup
812 * :ghpull:`2177`: remove numpy install from travis/tox scripts
813 * :ghpull:`2090`: New keybinding for code cell execution + cell insertion
814 * :ghpull:`2160`: Updating the parallel options pricing example
815 * :ghpull:`2168`: expand line in cell magics
816 * :ghpull:`2170`: Fix tab completion with IPython.embed_kernel().
817 * :ghpull:`2096`: embed(): Default to the future compiler flags of the calling frame.
818 * :ghpull:`2163`: fix 'remote_profie_dir' typo in SSH launchers
819 * :ghpull:`2158`: [2to3 compat ] Tuple params in func defs
820 * :ghpull:`2089`: Fix unittest DeprecationWarnings
821 * :ghpull:`2142`: Refactor test_pr.py
822 * :ghpull:`2140`: 2to3: Apply `has_key` fixer.
823 * :ghpull:`2131`: Add option append (-a) to %save
824 * :ghpull:`2117`: use explicit url in notebook example
825 * :ghpull:`2133`: Tell git that *.py files contain Python code, for use in word-diffs.
826 * :ghpull:`2134`: Apply 2to3 `next` fix.
827 * :ghpull:`2126`: ipcluster broken with any batch launcher (PBS/LSF/SGE)
828 * :ghpull:`2104`: Windows make file for Sphinx documentation
829 * :ghpull:`2074`: Make BG color of inline plot configurable
830 * :ghpull:`2123`: BUG: Look up the `_repr_pretty_` method on the class within the MRO rath...
831 * :ghpull:`2100`: [in progress] python 2 and 3 compatibility without 2to3, second try
832 * :ghpull:`2128`: open notebook copy in different tabs
833 * :ghpull:`2073`: allows password and prefix for notebook
834 * :ghpull:`1993`: Print View
835 * :ghpull:`2086`: re-aliad %ed to %edit in qtconsole
836 * :ghpull:`2110`: Fixes and improvements to the input splitter
837 * :ghpull:`2101`: fix completer deletting newline
838 * :ghpull:`2102`: Fix logging on interactive shell.
839 * :ghpull:`2088`: Fix (some) Python 3.2 ResourceWarnings
840 * :ghpull:`2064`: conform to pep 3110
841 * :ghpull:`2076`: Skip notebook 'static' dir in test suite.
842 * :ghpull:`2063`: Remove umlauts so py3 installations on LANG=C systems succeed.
843 * :ghpull:`2068`: record sysinfo in sdist
844 * :ghpull:`2067`: update tools/release_windows.py
845 * :ghpull:`2065`: Fix parentheses typo
846 * :ghpull:`2062`: Remove duplicates and auto-generated files from repo.
847 * :ghpull:`2061`: use explicit tuple in exception
848 * :ghpull:`2060`: change minus to \- or \(hy in manpages
849
850 Issues (612):
851
852 * :ghissue:`3693`: nbconvert does not process SVGs into PDFs
853 * :ghissue:`3688`: nbconvert, figures not extracting with Python 3.x
854 * :ghissue:`3542`: note new dependencies in docs / setup.py
855 * :ghissue:`2556`: [pagedown] do not target_blank anchor link
856 * :ghissue:`3684`: bad message when %pylab fails due import *other* than matplotlib
857 * :ghissue:`3682`: ipython notebook pylab inline import_all=False
858 * :ghissue:`3596`: MathjaxUtils race condition?
859 * :ghissue:`1540`: Comment/uncomment selection in notebook
860 * :ghissue:`2702`: frozen setup: permission denied for default ipython_dir
861 * :ghissue:`3672`: allow_none on Number-like traits.
862 * :ghissue:`2411`: add CONTRIBUTING.md
863 * :ghissue:`481`: IPython terminal issue with Qt4Agg on XP SP3
864 * :ghissue:`2664`: How to preserve user variables from import clashing?
865 * :ghissue:`3436`: enable_pylab(import_all=False) still imports np
866 * :ghissue:`2630`: lib.pylabtools.figsize : NameError when using Qt4Agg backend and %pylab magic.
867 * :ghissue:`3154`: Notebook: no event triggered when a Cell is created
868 * :ghissue:`3579`: Nbconvert: SVG are not transformed to PDF anymore
869 * :ghissue:`3604`: MathJax rendering problem in `%%latex` cell
870 * :ghissue:`3668`: AttributeError: 'BlockingKernelClient' object has no attribute 'started_channels'
871 * :ghissue:`3245`: SyntaxError: encoding declaration in Unicode string
872 * :ghissue:`3639`: %pylab inline in IPYTHON notebook throws "RuntimeError: Cannot activate multiple GUI eventloops"
873 * :ghissue:`3663`: frontend deprecation warnings
874 * :ghissue:`3661`: run -m not behaving like python -m
875 * :ghissue:`3597`: re-do PR #3531 - allow markdown in Header cell
876 * :ghissue:`3053`: Markdown in header cells is not rendered
877 * :ghissue:`3655`: IPython finding its way into pasted strings.
878 * :ghissue:`3620`: uncaught errors in HTML output
879 * :ghissue:`3646`: get_dict() error
880 * :ghissue:`3004`: `%load_ext rmagic` fails when legacy ipy_user_conf.py is installed (in ipython 0.13.1 / OSX 10.8)
881 * :ghissue:`3638`: setp() issue in ipython notebook with figure references
882 * :ghissue:`3634`: nbconvert reveal to pdf conversion ignores styling, prints only a single page.
883 * :ghissue:`1307`: Remove pyreadline workarounds, we now require pyreadline >= 1.7.1
884 * :ghissue:`3316`: find_cmd test failure on Windows
885 * :ghissue:`3494`: input() in notebook doesn't work in Python 3
886 * :ghissue:`3427`: Deprecate `$` as mathjax delimiter
887 * :ghissue:`3625`: Pager does not open from button
888 * :ghissue:`3149`: Miscellaneous small nbconvert feedback
889 * :ghissue:`3617`: 256 color escapes support
890 * :ghissue:`3609`: %pylab inline blows up for single process ipython
891 * :ghissue:`2934`: Publish the Interactive MPI Demo Notebook
892 * :ghissue:`3614`: ansi escapes broken in master (ls --color)
893 * :ghissue:`3610`: If you don't have markdown, python setup.py install says no pygments
894 * :ghissue:`3547`: %run modules clobber each other
895 * :ghissue:`3602`: import_item fails when one tries to use DottedObjectName instead of a string
896 * :ghissue:`3563`: Duplicate tab completions in the notebook
897 * :ghissue:`3599`: Problems trying to run IPython on python3 without installing...
898 * :ghissue:`2937`: too long completion in notebook
899 * :ghissue:`3479`: Write empty name for the notebooks
900 * :ghissue:`3505`: nbconvert: Failure in specifying user filter
901 * :ghissue:`1537`: think a bit about namespaces
902 * :ghissue:`3124`: Long multiline strings in Notebook
903 * :ghissue:`3464`: run -d message unclear
904 * :ghissue:`2706`: IPython 0.13.1 ignoring $PYTHONSTARTUP
905 * :ghissue:`3587`: LaTeX escaping bug in nbconvert when exporting to HTML
906 * :ghissue:`3213`: Long running notebook died with a coredump
907 * :ghissue:`3580`: Running ipython with pypy on windows
908 * :ghissue:`3573`: custom.js not working
909 * :ghissue:`3544`: IPython.lib test failure on Windows
910 * :ghissue:`3352`: Install Sphinx extensions
911 * :ghissue:`2971`: [notebook]user needs to press ctrl-c twice to stop notebook server should be put into terminal window
912 * :ghissue:`2413`: ipython3 qtconsole fails to install: ipython 0.13 has no such extra feature 'qtconsole'
913 * :ghissue:`2618`: documentation is incorrect for install process
914 * :ghissue:`2595`: mac 10.8 qtconsole export history
915 * :ghissue:`2586`: cannot store aliases
916 * :ghissue:`2714`: ipython qtconsole print unittest messages in console instead his own window.
917 * :ghissue:`2669`: cython magic failing to work with openmp.
918 * :ghissue:`3256`: Vagrant pandas instance of iPython Notebook does not respect additional plotting arguments
919 * :ghissue:`3010`: cython magic fail if cache dir is deleted while in session
920 * :ghissue:`2044`: prune unused names from parallel.error
921 * :ghissue:`1145`: Online help utility broken in QtConsole
922 * :ghissue:`3439`: Markdown links no longer open in new window (with change from pagedown to marked)
923 * :ghissue:`3476`: _margv for macros seems to be missing
924 * :ghissue:`3499`: Add reveal.js library (version 2.4.0) inside IPython
925 * :ghissue:`2771`: Wiki Migration to GitHub
926 * :ghissue:`2887`: ipcontroller purging some engines during connect
927 * :ghissue:`626`: Enable Resuming Controller
928 * :ghissue:`2824`: Kernel restarting after message "Kernel XXXX failed to respond to heartbeat"
929 * :ghissue:`2823`: %%cython magic gives ImportError: dlopen(long_file_name.so, 2): image not found
930 * :ghissue:`2891`: In IPython for Python 3, system site-packages comes before user site-packages
931 * :ghissue:`2928`: Add magic "watch" function (example)
932 * :ghissue:`2931`: Problem rendering pandas dataframe in Firefox for Windows
933 * :ghissue:`2939`: [notebook] Figure legend not shown in inline backend if ouside the box of the axes
934 * :ghissue:`2972`: [notebook] in Markdown mode, press Enter key at the end of <some http link>, the next line is indented unexpectly
935 * :ghissue:`3069`: Instructions for installing IPython notebook on Windows
936 * :ghissue:`3444`: Encoding problem: cannot use if user's name is not ascii?
937 * :ghissue:`3335`: Reenable bracket matching
938 * :ghissue:`3386`: Magic %paste not working in Python 3.3.2. TypeError: Type str doesn't support the buffer API
939 * :ghissue:`3543`: Exception shutting down kernel from notebook dashboard (0.13.1)
940 * :ghissue:`3549`: Codecell size changes with selection
941 * :ghissue:`3445`: Adding newlines in %%latex cell
942 * :ghissue:`3237`: [notebook] Can't close a notebook without errors
943 * :ghissue:`2916`: colon invokes auto(un)indent in markdown cells
944 * :ghissue:`2167`: Indent and dedent in htmlnotebook
945 * :ghissue:`3545`: Notebook save button icon not clear
946 * :ghissue:`3534`: nbconvert incompatible with Windows?
947 * :ghissue:`3489`: Update example notebook that raw_input is allowed
948 * :ghissue:`3396`: Notebook checkpoint time is displayed an hour out
949 * :ghissue:`3261`: Empty revert to checkpoint menu if no checkpoint...
950 * :ghissue:`2984`: "print" magic does not work in Python 3
951 * :ghissue:`3524`: Issues with pyzmq and ipython on EPD update
952 * :ghissue:`2434`: %store magic not auto-restoring
953 * :ghissue:`2720`: base_url and static path
954 * :ghissue:`2234`: Update various low resolution graphics for retina displays
955 * :ghissue:`2842`: Remember passwords for pw-protected notebooks
956 * :ghissue:`3244`: qtconsole: ValueError('close_fds is not supported on Windows platforms if you redirect stdin/stdout/stderr',)
957 * :ghissue:`2215`: AsyncResult.wait(0) can hang waiting for the client to get results?
958 * :ghissue:`2268`: provide mean to retrieve static data path
959 * :ghissue:`1905`: Expose UI for worksheets within each notebook
960 * :ghissue:`2380`: Qt inputhook prevents modal dialog boxes from displaying
961 * :ghissue:`3185`: prettify on double //
962 * :ghissue:`2821`: Test failure: IPython.parallel.tests.test_client.test_resubmit_header
963 * :ghissue:`2475`: [Notebook] Line is deindented when typing eg a colon in markdown mode
964 * :ghissue:`2470`: Do not destroy valid notebooks
965 * :ghissue:`860`: Allow the standalone export of a notebook to HTML
966 * :ghissue:`2652`: notebook with qt backend crashes at save image location popup
967 * :ghissue:`1587`: Improve kernel restarting in the notebook
968 * :ghissue:`2710`: Saving a plot in Mac OS X backend crashes IPython
969 * :ghissue:`2596`: notebook "Last saved:" is misleading on file opening.
970 * :ghissue:`2671`: TypeError :NoneType when executed "ipython qtconsole" in windows console
971 * :ghissue:`2703`: Notebook scrolling breaks after pager is shown
972 * :ghissue:`2803`: KernelManager and KernelClient should be two separate objects
973 * :ghissue:`2693`: TerminalIPythonApp configuration fails without ipython_config.py
974 * :ghissue:`2531`: IPython 0.13.1 python 2 32-bit installer includes 64-bit ipython*.exe launchers in the scripts folder
975 * :ghissue:`2520`: Control-C kills port forwarding
976 * :ghissue:`2279`: Setting `__file__` to None breaks Mayavi import
977 * :ghissue:`2161`: When logged into notebook, long titles are incorrectly positioned
978 * :ghissue:`1292`: Notebook, Print view should not be editable...
979 * :ghissue:`1731`: test parallel launchers
980 * :ghissue:`3227`: Improve documentation of ipcontroller and possible BUG
981 * :ghissue:`2896`: IPController very unstable
982 * :ghissue:`3517`: documentation build broken in head
983 * :ghissue:`3522`: UnicodeDecodeError: 'ascii' codec can't decode byte on Pycharm on Windows
984 * :ghissue:`3448`: Please include MathJax fonts with IPython Notebook
985 * :ghissue:`3519`: IPython Parallel map mysteriously turns pandas Series into numpy ndarray
986 * :ghissue:`3345`: IPython embedded shells ask if I want to exit, but I set confirm_exit = False
987 * :ghissue:`3509`: IPython won't close without asking "Are you sure?" in Firefox
988 * :ghissue:`3471`: Notebook jinja2/markupsafe depedencies in manual
989 * :ghissue:`3502`: Notebook broken in master
990 * :ghissue:`3302`: autoreload does not work in ipython 0.13.x, python 3.3
991 * :ghissue:`3475`: no warning when leaving/closing notebook on master without saved changes
992 * :ghissue:`3490`: No obvious feedback when kernel crashes
993 * :ghissue:`1912`: Move all autoreload tests to their own group
994 * :ghissue:`2577`: sh.py and ipython for python 3.3
995 * :ghissue:`3467`: %magic doesn't work
996 * :ghissue:`3501`: Editing markdown cells that wrap has off-by-one errors in cursor positioning
997 * :ghissue:`3492`: IPython for Python3
998 * :ghissue:`3474`: unexpected keyword argument to remove_kernel
999 * :ghissue:`2283`: TypeError when using '?' after a string in a %logstart session
1000 * :ghissue:`2787`: rmagic and pandas DataFrame
1001 * :ghissue:`2605`: Ellipsis literal triggers AttributeError
1002 * :ghissue:`1179`: Test unicode source in pinfo
1003 * :ghissue:`2055`: drop Python 3.1 support
1004 * :ghissue:`2293`: IPEP 2: Input transformations
1005 * :ghissue:`2790`: %paste and %cpaste not removing "..." lines
1006 * :ghissue:`3480`: Testing fails because iptest.py cannot be found
1007 * :ghissue:`2580`: will not run within PIL build directory
1008 * :ghissue:`2797`: RMagic, Dataframe Conversion Problem
1009 * :ghissue:`2838`: Empty lines disappear from triple-quoted literals.
1010 * :ghissue:`3050`: Broken link on IPython.core.display page
1011 * :ghissue:`3473`: Config not passed down to subcommands
1012 * :ghissue:`3462`: Setting log_format in config file results in error (and no format changes)
1013 * :ghissue:`3311`: Notebook (occasionally) not working on windows (Sophos AV)
1014 * :ghissue:`3461`: Cursor positioning off by a character in auto-wrapped lines
1015 * :ghissue:`3454`: _repr_html_ error
1016 * :ghissue:`3457`: Space in long Paragraph Markdown cell with Chinese or Japanese
1017 * :ghissue:`3447`: Run Cell Does not Work
1018 * :ghissue:`1373`: Last lines in long cells are hidden
1019 * :ghissue:`1504`: Revisit serialization in IPython.parallel
1020 * :ghissue:`1459`: Can't connect to 2 HTTPS notebook servers on the same host
1021 * :ghissue:`678`: Input prompt stripping broken with multiline data structures
1022 * :ghissue:`3001`: IPython.notebook.dirty flag is not set when a cell has unsaved changes
1023 * :ghissue:`3077`: Multiprocessing semantics in parallel.view.map
1024 * :ghissue:`3056`: links across notebooks
1025 * :ghissue:`3120`: Tornado 3.0
1026 * :ghissue:`3156`: update pretty to use Python 3 style for sets
1027 * :ghissue:`3197`: Can't escape multiple dollar signs in a markdown cell
1028 * :ghissue:`3309`: `Image()` signature/doc improvements
1029 * :ghissue:`3415`: Bug in IPython/external/path/__init__.py
1030 * :ghissue:`3446`: Feature suggestion: Download matplotlib figure to client browser
1031 * :ghissue:`3295`: autoexported notebooks: only export explicitly marked cells
1032 * :ghissue:`3442`: Notebook: Summary table extracted from markdown headers
1033 * :ghissue:`3438`: Zooming notebook in chrome is broken in master
1034 * :ghissue:`1378`: Implement autosave in notebook
1035 * :ghissue:`3437`: Highlighting matching parentheses
1036 * :ghissue:`3435`: module search segfault
1037 * :ghissue:`3424`: ipcluster --version
1038 * :ghissue:`3434`: 0.13.2 Ipython/genutils.py doesn't exist
1039 * :ghissue:`3426`: Feature request: Save by cell and not by line #: IPython %save magic
1040 * :ghissue:`3412`: Non Responsive Kernel: Running a Django development server from an IPython Notebook
1041 * :ghissue:`3408`: Save cell toolbar and slide type metadata in notebooks
1042 * :ghissue:`3246`: %paste regression with blank lines
1043 * :ghissue:`3404`: Weird error with $variable and grep in command line magic (!command)
1044 * :ghissue:`3405`: Key auto-completion in dictionaries?
1045 * :ghissue:`3259`: Codemirror linenumber css broken
1046 * :ghissue:`3397`: Vertical text misalignment in Markdown cells
1047 * :ghissue:`3391`: Revert #3358 once fix integrated into CM
1048 * :ghissue:`3360`: Error 500 while saving IPython notebook
1049 * :ghissue:`3375`: Frequent Safari/Webkit crashes
1050 * :ghissue:`3365`: zmq frontend
1051 * :ghissue:`2654`: User_expression issues
1052 * :ghissue:`3389`: Store history as plain text
1053 * :ghissue:`3388`: Ipython parallel: open TCP connection created for each result returned from engine
1054 * :ghissue:`3385`: setup.py failure on Python 3
1055 * :ghissue:`3376`: Setting `__module__` to None breaks pretty printing
1056 * :ghissue:`3374`: ipython qtconsole does not display the prompt on OSX
1057 * :ghissue:`3380`: simple call to kernel
1058 * :ghissue:`3379`: TaskRecord key 'started' not set
1059 * :ghissue:`3241`: notebook conection time out
1060 * :ghissue:`3334`: magic interpreter interpretes non magic commands?
1061 * :ghissue:`3326`: python3.3: Type error when launching SGE cluster in IPython notebook
1062 * :ghissue:`3349`: pip3 doesn't run 2to3?
1063 * :ghissue:`3347`: Longlist support in ipdb
1064 * :ghissue:`3343`: Make pip install / easy_install faster
1065 * :ghissue:`3337`: git submodules broke nightly PPA builds
1066 * :ghissue:`3206`: Copy/Paste Regression in QtConsole
1067 * :ghissue:`3329`: Buggy linewrap in Mac OSX Terminal (Mountain Lion)
1068 * :ghissue:`3327`: Qt version check broken
1069 * :ghissue:`3303`: parallel tasks never finish under heavy load
1070 * :ghissue:`1381`: '\\' for equation continuations require an extra '\' in markdown cells
1071 * :ghissue:`3314`: Error launching iPython
1072 * :ghissue:`3306`: Test failure when running on a Vagrant VM
1073 * :ghissue:`3280`: IPython.utils.process.getoutput returns stderr
1074 * :ghissue:`3299`: variables named _ or __ exhibit incorrect behavior
1075 * :ghissue:`3196`: add an "x" or similar to htmlnotebook pager
1076 * :ghissue:`3293`: Several 404 errors for js files Firefox
1077 * :ghissue:`3292`: syntax highlighting in chrome on OSX 10.8.3
1078 * :ghissue:`3288`: Latest dev version hangs on page load
1079 * :ghissue:`3283`: ipython dev retains directory information after directory change
1080 * :ghissue:`3279`: custom.css is not overridden in the dev IPython (1.0)
1081 * :ghissue:`2727`: %run -m doesn't support relative imports
1082 * :ghissue:`3268`: GFM triple backquote and unknown language
1083 * :ghissue:`3273`: Suppressing all plot related outputs
1084 * :ghissue:`3272`: Backspace while completing load previous page
1085 * :ghissue:`3260`: Js error in savewidget
1086 * :ghissue:`3247`: scrollbar in notebook when not needed?
1087 * :ghissue:`3243`: notebook: option to view json source from browser
1088 * :ghissue:`3265`: 404 errors when running IPython 1.0dev
1089 * :ghissue:`3257`: setup.py not finding submodules
1090 * :ghissue:`3253`: Incorrect Qt and PySide version comparison
1091 * :ghissue:`3248`: Cell magics broken in Qt console
1092 * :ghissue:`3012`: Problems with the less based style.min.css
1093 * :ghissue:`2390`: Image width/height don't work in embedded images
1094 * :ghissue:`3236`: cannot set TerminalIPythonApp.log_format
1095 * :ghissue:`3214`: notebook kernel dies if started with invalid parameter
1096 * :ghissue:`2980`: Remove HTMLCell ?
1097 * :ghissue:`3128`: qtconsole hangs on importing pylab (using X forwarding)
1098 * :ghissue:`3198`: Hitting recursive depth causing all notebook pages to hang
1099 * :ghissue:`3218`: race conditions in profile directory creation
1100 * :ghissue:`3177`: OverflowError execption in handlers.py
1101 * :ghissue:`2563`: core.profiledir.check_startup_dir() doesn't work inside py2exe'd installation
1102 * :ghissue:`3207`: [Feature] folders for ipython notebook dashboard
1103 * :ghissue:`3178`: cell magics do not work with empty lines after #2447
1104 * :ghissue:`3204`: Default plot() colors unsuitable for red-green colorblind users
1105 * :ghissue:`1789`: :\n/*foo turns into :\n*(foo) in triple-quoted strings.
1106 * :ghissue:`3202`: File cell magic fails with blank lines
1107 * :ghissue:`3199`: %%cython -a stopped working?
1108 * :ghissue:`2688`: obsolete imports in import autocompletion
1109 * :ghissue:`3192`: Python2, Unhandled exception, __builtin__.True = False
1110 * :ghissue:`3179`: script magic error message loop
1111 * :ghissue:`3009`: use XDG_CACHE_HOME for cython objects
1112 * :ghissue:`3059`: Bugs in 00_notebook_tour example.
1113 * :ghissue:`3104`: Integrate a javascript file manager into the notebook front end
1114 * :ghissue:`3176`: Particular equation not rendering (notebook)
1115 * :ghissue:`1133`: [notebook] readonly and upload files/UI
1116 * :ghissue:`2975`: [notebook] python file and cell toolbar
1117 * :ghissue:`3017`: SciPy.weave broken in IPython notebook/ qtconsole
1118 * :ghissue:`3161`: paste macro not reading spaces correctly
1119 * :ghissue:`2835`: %paste not working on WinXpSP3/ipython-0.13.1.py2-win32-PROPER.exe/python27
1120 * :ghissue:`2628`: Make transformers work for lines following decorators
1121 * :ghissue:`2612`: Multiline String containing ":\n?foo\n" confuses interpreter to replace ?foo with get_ipython().magic(u'pinfo foo')
1122 * :ghissue:`2539`: Request: Enable cell magics inside of .ipy scripts
1123 * :ghissue:`2507`: Multiline string does not work (includes `...`) with doctest type input in IPython notebook
1124 * :ghissue:`2164`: Request: Line breaks in line magic command
1125 * :ghissue:`3106`: poor parallel performance with many jobs
1126 * :ghissue:`2438`: print inside multiprocessing crashes Ipython kernel
1127 * :ghissue:`3155`: Bad md5 hash for package 0.13.2
1128 * :ghissue:`3045`: [Notebook] Ipython Kernel does not start if disconnected from internet(/network?)
1129 * :ghissue:`3146`: Using celery in python 3.3
1130 * :ghissue:`3145`: The notebook viewer is down
1131 * :ghissue:`2385`: grep --color not working well with notebook
1132 * :ghissue:`3131`: Quickly install from source in a clean virtualenv?
1133 * :ghissue:`3139`: Rolling log for ipython
1134 * :ghissue:`3127`: notebook with pylab=inline appears to call figure.draw twice
1135 * :ghissue:`3129`: Walking up and down the call stack
1136 * :ghissue:`3123`: Notebook crashed if unplugged ethernet cable
1137 * :ghissue:`3121`: NB should use normalize.css? was #3049
1138 * :ghissue:`3087`: Disable spellchecking in notebook
1139 * :ghissue:`3084`: ipython pyqt 4.10 incompatibilty, QTextBlockUserData
1140 * :ghissue:`3113`: Fails to install under Jython 2.7 beta
1141 * :ghissue:`3110`: Render of h4 headers is not correct in notebook (error in renderedhtml.css)
1142 * :ghissue:`3109`: BUG: read_csv: dtype={'id' : np.str}: Datatype not understood
1143 * :ghissue:`3107`: Autocompletion of object attributes in arrays
1144 * :ghissue:`3103`: Reset locale setting in qtconsole
1145 * :ghissue:`3090`: python3.3 Entry Point not found
1146 * :ghissue:`3081`: UnicodeDecodeError when using Image(data="some.jpeg")
1147 * :ghissue:`2834`: url regexp only finds one link
1148 * :ghissue:`3091`: qtconsole breaks doctest.testmod() in Python 3.3
1149 * :ghissue:`3074`: SIGUSR1 not available on Windows
1150 * :ghissue:`2996`: registration::purging stalled registration high occurrence in small clusters
1151 * :ghissue:`3065`: diff-ability of notebooks
1152 * :ghissue:`3067`: Crash with pygit2
1153 * :ghissue:`3061`: Bug handling Ellipsis
1154 * :ghissue:`3049`: NB css inconsistent behavior between ff and webkit
1155 * :ghissue:`3039`: unicode errors when opening a new notebook
1156 * :ghissue:`3048`: Installning ipython qtConsole should be easyer att Windows
1157 * :ghissue:`3042`: Profile creation fails on 0.13.2 branch
1158 * :ghissue:`3035`: docstring typo/inconsistency: mention of an xml notebook format?
1159 * :ghissue:`3031`: HDF5 library segfault (possibly due to mismatching headers?)
1160 * :ghissue:`2991`: In notebook importing sympy closes ipython kernel
1161 * :ghissue:`3027`: f.__globals__ causes an error in Python 3.3
1162 * :ghissue:`3020`: Failing test test_interactiveshell.TestAstTransform on Windows
1163 * :ghissue:`3023`: alt text for "click to expand output" has typo in alt text
1164 * :ghissue:`2963`: %history to print all input history of a previous session when line range is omitted
1165 * :ghissue:`3018`: IPython installed within virtualenv. WARNING "Please install IPython inside the virtualtenv"
1166 * :ghissue:`2484`: Completion in Emacs *Python* buffer causes prompt to be increased.
1167 * :ghissue:`3014`: Ctrl-C finishes notebook immediately
1168 * :ghissue:`3007`: cython_pyximport reload broken in python3
1169 * :ghissue:`2955`: Incompatible Qt imports when running inprocess_qtconsole
1170 * :ghissue:`3006`: [IPython 0.13.1] The check of PyQt version is wrong
1171 * :ghissue:`3005`: Renaming a notebook to an existing notebook name overwrites the other file
1172 * :ghissue:`2940`: Abort trap in IPython Notebook after installing matplotlib
1173 * :ghissue:`3000`: issue #3000
1174 * :ghissue:`2995`: ipython_directive.py fails on multiline when prompt number < 100
1175 * :ghissue:`2993`: File magic (%%file) does not work with paths beginning with tilde (e.g., ~/anaconda/stuff.txt)
1176 * :ghissue:`2992`: Cell-based input for console and qt frontends?
1177 * :ghissue:`2425`: Liaise with Spyder devs to integrate newer IPython
1178 * :ghissue:`2986`: requesting help in a loop can damage a notebook
1179 * :ghissue:`2978`: v1.0-dev build errors on Arch with Python 3.
1180 * :ghissue:`2557`: [refactor] Insert_cell_at_index()
1181 * :ghissue:`2969`: ipython command does not work in terminal
1182 * :ghissue:`2762`: OSX wxPython (osx_cocoa, 64bit) command "%gui wx" blocks the interpreter
1183 * :ghissue:`2956`: Silent importing of submodules differs from standard Python3.2 interpreter's behavior
1184 * :ghissue:`2943`: Up arrow key history search gets stuck in QTConsole
1185 * :ghissue:`2953`: using 'nonlocal' declaration in global scope causes ipython3 crash
1186 * :ghissue:`2952`: qtconsole ignores exec_lines
1187 * :ghissue:`2949`: ipython crashes due to atexit()
1188 * :ghissue:`2947`: From rmagic to an R console
1189 * :ghissue:`2938`: docstring pane not showing in notebook
1190 * :ghissue:`2936`: Tornado assumes invalid signature for parse_qs on Python 3.1
1191 * :ghissue:`2935`: unable to find python after easy_install / pip install
1192 * :ghissue:`2920`: Add undo-cell deletion menu
1193 * :ghissue:`2914`: BUG:saving a modified .py file after loading a module kills the kernel
1194 * :ghissue:`2925`: BUG: kernel dies if user sets sys.stderr or sys.stdout to a file object
1195 * :ghissue:`2909`: LaTeX sometimes fails to render in markdown cells with some curly bracket + underscore combinations
1196 * :ghissue:`2898`: Skip ipc tests on Windows
1197 * :ghissue:`2902`: ActiveState attempt to build ipython 0.12.1 for python 3.2.2 for Mac OS failed
1198 * :ghissue:`2899`: Test failure in IPython.core.tests.test_magic.test_time
1199 * :ghissue:`2890`: Test failure when fabric not installed
1200 * :ghissue:`2892`: IPython tab completion bug for paths
1201 * :ghissue:`1340`: Allow input cells to be collapsed
1202 * :ghissue:`2881`: ? command in notebook does not show help in Safari
1203 * :ghissue:`2751`: %%timeit should use minutes to format running time in long running cells
1204 * :ghissue:`2879`: When importing a module with a wrong name, ipython crashes
1205 * :ghissue:`2862`: %%timeit should warn of empty contents
1206 * :ghissue:`2485`: History navigation breaks in qtconsole
1207 * :ghissue:`2785`: gevent input hook
1208 * :ghissue:`2843`: Sliently running code in clipboard (with paste, cpaste and variants)
1209 * :ghissue:`2784`: %run -t -N<N> error
1210 * :ghissue:`2732`: Test failure with FileLinks class on Windows
1211 * :ghissue:`2860`: ipython help notebook -> KeyError: 'KernelManager'
1212 * :ghissue:`2858`: Where is the installed `ipython` script?
1213 * :ghissue:`2856`: Edit code entered from ipython in external editor
1214 * :ghissue:`2722`: IPC transport option not taking effect ?
1215 * :ghissue:`2473`: Better error messages in ipengine/ipcontroller
1216 * :ghissue:`2836`: Cannot send builtin module definitions to IP engines
1217 * :ghissue:`2833`: Any reason not to use super() ?
1218 * :ghissue:`2781`: Cannot interrupt infinite loops in the notebook
1219 * :ghissue:`2150`: clippath_demo.py in matplotlib example does not work with inline backend
1220 * :ghissue:`2634`: Numbered list in notebook markdown cell renders with Roman numerals instead of numbers
1221 * :ghissue:`2230`: IPython crashing during startup with "AttributeError: 'NoneType' object has no attribute 'rstrip'"
1222 * :ghissue:`2483`: nbviewer bug? with multi-file gists
1223 * :ghissue:`2466`: mistyping `ed -p` breaks `ed -p`
1224 * :ghissue:`2477`: Glob expansion tests fail on Windows
1225 * :ghissue:`2622`: doc issue: notebooks that ship with Ipython .13 are written for python 2.x
1226 * :ghissue:`2626`: Add "Cell -> Run All Keep Going" for notebooks
1227 * :ghissue:`1223`: Show last modification date of each notebook
1228 * :ghissue:`2621`: user request: put link to example notebooks in Dashboard
1229 * :ghissue:`2564`: grid blanks plots in ipython pylab inline mode (interactive)
1230 * :ghissue:`2532`: Django shell (IPython) gives NameError on dict comprehensions
1231 * :ghissue:`2188`: ipython crashes on ctrl-c
1232 * :ghissue:`2391`: Request: nbformat API to load/save without changing version
1233 * :ghissue:`2355`: Restart kernel message even though kernel is perfectly alive
1234 * :ghissue:`2306`: Garbled input text after reverse search on Mac OS X
1235 * :ghissue:`2297`: ipdb with separate kernel/client pushing stdout to kernel process only
1236 * :ghissue:`2180`: Have [kernel busy] overridden only by [kernel idle]
1237 * :ghissue:`1188`: Pylab with OSX backend keyboard focus issue and hang
1238 * :ghissue:`2107`: test_octavemagic.py[everything] fails
1239 * :ghissue:`1212`: Better understand/document browser compatibility
1240 * :ghissue:`1585`: Refactor notebook templates to use Jinja2 and make each page a separate directory
1241 * :ghissue:`1443`: xticks scaling factor partially obscured with qtconsole and inline plotting
1242 * :ghissue:`1209`: can't make %result work as in doc.
1243 * :ghissue:`1200`: IPython 0.12 Windows install fails on Vista
1244 * :ghissue:`1127`: Interactive test scripts for Qt/nb issues
1245 * :ghissue:`959`: Matplotlib figures hide
1246 * :ghissue:`2071`: win32 installer issue on Windows XP
1247 * :ghissue:`2610`: ZMQInteractiveShell.colors being ignored
1248 * :ghissue:`2505`: Markdown Cell incorrectly highlighting after "<"
1249 * :ghissue:`165`: Installer fails to create Start Menu entries on Windows
1250 * :ghissue:`2356`: failing traceback in terminal ipython for first exception
1251 * :ghissue:`2145`: Have dashboad show when server disconect
1252 * :ghissue:`2098`: Do not crash on kernel shutdow if json file is missing
1253 * :ghissue:`2813`: Offline MathJax is broken on 0.14dev
1254 * :ghissue:`2807`: Test failure: IPython.parallel.tests.test_client.TestClient.test_purge_everything
1255 * :ghissue:`2486`: Readline's history search in ipython console does not clear properly after cancellation with Ctrl+C
1256 * :ghissue:`2709`: Cython -la doesn't work
1257 * :ghissue:`2767`: What is IPython.utils.upgradedir ?
1258 * :ghissue:`2210`: Placing matplotlib legend outside axis bounds causes inline display to clip it
1259 * :ghissue:`2553`: IPython Notebooks not robust against client failures
1260 * :ghissue:`2536`: ImageDraw in Ipython notebook not drawing lines
1261 * :ghissue:`2264`: Feature request: Versioning messaging protocol
1262 * :ghissue:`2589`: Creation of ~300+ MPI-spawned engines causes instability in ipcluster
1263 * :ghissue:`2672`: notebook: inline option without pylab
1264 * :ghissue:`2673`: Indefinite Articles & Traitlets
1265 * :ghissue:`2705`: Notebook crashes Safari with select and drag
1266 * :ghissue:`2721`: dreload kills ipython when it hits zmq
1267 * :ghissue:`2806`: ipython.parallel doesn't discover globals under Python 3.3
1268 * :ghissue:`2794`: _exit_code behaves differently in terminal vs ZMQ frontends
1269 * :ghissue:`2793`: IPython.parallel issue with pushing pandas TimeSeries
1270 * :ghissue:`1085`: In process kernel for Qt frontend
1271 * :ghissue:`2760`: IndexError: list index out of range with Python 3.2
1272 * :ghissue:`2780`: Save and load notebooks from github
1273 * :ghissue:`2772`: AttributeError: 'Client' object has no attribute 'kill'
1274 * :ghissue:`2754`: Fail to send class definitions from interactive session to engines namespaces
1275 * :ghissue:`2764`: TypeError while using 'cd'
1276 * :ghissue:`2765`: name '__file__' is not defined
1277 * :ghissue:`2540`: Wrap tooltip if line exceeds threshold?
1278 * :ghissue:`2394`: Startup error on ipython qtconsole (version 0.13 and 0.14-dev
1279 * :ghissue:`2440`: IPEP 4: Python 3 Compatibility
1280 * :ghissue:`1814`: __file__ is not defined when file end with .ipy
1281 * :ghissue:`2759`: R magic extension interferes with tab completion
1282 * :ghissue:`2615`: Small change needed to rmagic extension.
1283 * :ghissue:`2748`: collapse parts of a html notebook
1284 * :ghissue:`1661`: %paste still bugs about IndentationError and says to use %paste
1285 * :ghissue:`2742`: Octavemagic fails to deliver inline images in IPython (on Windows)
1286 * :ghissue:`2739`: wiki.ipython.org contaminated with prescription drug spam
1287 * :ghissue:`2588`: Link error while executing code from cython example notebook
1288 * :ghissue:`2550`: Rpush magic doesn't find local variables and doesn't support comma separated lists of variables
1289 * :ghissue:`2675`: Markdown/html blockquote need css.
1290 * :ghissue:`2419`: TerminalInteractiveShell.__init__() ignores value of ipython_dir argument
1291 * :ghissue:`1523`: Better LaTeX printing in the qtconsole with the sympy profile
1292 * :ghissue:`2719`: ipython fails with `pkg_resources.DistributionNotFound: ipython==0.13`
1293 * :ghissue:`2715`: url crashes nbviewer.ipython.org
1294 * :ghissue:`2555`: "import" module completion on MacOSX
1295 * :ghissue:`2707`: Problem installing the new version of IPython in Windows
1296 * :ghissue:`2696`: SymPy magic bug in IPython Notebook
1297 * :ghissue:`2684`: pretty print broken for types created with PyType_FromSpec
1298 * :ghissue:`2533`: rmagic breaks on Windows
1299 * :ghissue:`2661`: Qtconsole tooltip is too wide when the function has many arguments
1300 * :ghissue:`2679`: ipython3 qtconsole via Homebrew on Mac OS X 10.8 - pyqt/pyside import error
1301 * :ghissue:`2646`: pylab_not_importable
1302 * :ghissue:`2587`: cython magic pops 2 CLI windows upon execution on Windows
1303 * :ghissue:`2660`: Certain arguments (-h, --help, --version) never passed to scripts run with ipython
1304 * :ghissue:`2665`: Missing docs for rmagic and some other extensions
1305 * :ghissue:`2611`: Travis wants to drop 3.1 support
1306 * :ghissue:`2658`: Incorrect parsing of raw multiline strings
1307 * :ghissue:`2655`: Test fails if `from __future__ import print_function` in .pythonrc.py
1308 * :ghissue:`2651`: nonlocal with no existing variable produces too many errors
1309 * :ghissue:`2645`: python3 is a pain (minor unicode bug)
1310 * :ghissue:`2637`: %paste in Python 3 on Mac doesn't work
1311 * :ghissue:`2624`: Error on launching IPython on Win 7 and Python 2.7.3
1312 * :ghissue:`2608`: disk IO activity on cursor press
1313 * :ghissue:`1275`: Markdown parses LaTeX math symbols as its formatting syntax in notebook
1314 * :ghissue:`2613`: display(Math(...)) doesn't render \tau correctly
1315 * :ghissue:`925`: Tab-completion in Qt console needn't use pager
1316 * :ghissue:`2607`: %load_ext sympy.interactive.ipythonprinting dammaging output
1317 * :ghissue:`2593`: Toolbar button to open qtconsole from notebook
1318 * :ghissue:`2602`: IPython html documentation for downloading
1319 * :ghissue:`2598`: ipython notebook --pylab=inline replaces built-in any()
1320 * :ghissue:`2244`: small issue: wrong printout
1321 * :ghissue:`2590`: add easier way to execute scripts in the current directory
1322 * :ghissue:`2581`: %hist does not work when InteractiveShell.cache_size = 0
1323 * :ghissue:`2584`: No file COPYING
1324 * :ghissue:`2578`: AttributeError: 'module' object has no attribute 'TestCase'
1325 * :ghissue:`2576`: One of my notebooks won't load any more -- is there a maximum notebook size?
1326 * :ghissue:`2560`: Notebook output is invisible when printing strings with \r\r\n line endings
1327 * :ghissue:`2566`: if pyside partially present ipython qtconsole fails to load even if pyqt4 present
1328 * :ghissue:`1308`: ipython qtconsole --ssh=server --existing ... hangs
1329 * :ghissue:`1679`: List command doesn't work in ipdb debugger the first time
1330 * :ghissue:`2545`: pypi win32 installer creates 64bit executibles
1331 * :ghissue:`2080`: Event loop issues with IPython 0.12 and PyQt4 (QDialog.exec_ and more)
1332 * :ghissue:`2541`: Allow `python -m IPython`
1333 * :ghissue:`2508`: subplots_adjust() does not work correctly in ipython notebook
1334 * :ghissue:`2289`: Incorrect mathjax rendering of certain arrays of equations
1335 * :ghissue:`2487`: Selecting and indenting
1336 * :ghissue:`2521`: more fine-grained 'run' controls, such as 'run from here' and 'run until here'
1337 * :ghissue:`2535`: Funny bounding box when plot with text
1338 * :ghissue:`2523`: History not working
1339 * :ghissue:`2514`: Issue with zooming in qtconsole
1340 * :ghissue:`2220`: No sys.stdout.encoding in kernel based IPython
1341 * :ghissue:`2512`: ERROR: Internal Python error in the inspect module.
1342 * :ghissue:`2496`: Function passwd does not work in QtConsole
1343 * :ghissue:`1453`: make engines reconnect/die when controller was restarted
1344 * :ghissue:`2481`: ipython notebook -- clicking in a code cell's output moves the screen to the top of the code cell
1345 * :ghissue:`2488`: Undesired plot outputs in Notebook inline mode
1346 * :ghissue:`2482`: ipython notebook -- download may not get the latest notebook
1347 * :ghissue:`2471`: _subprocess module removed in Python 3.3
1348 * :ghissue:`2374`: Issues with man pages
1349 * :ghissue:`2316`: parallel.Client.__init__ should take cluster_id kwarg
1350 * :ghissue:`2457`: Can a R library wrapper be created with Rmagic?
1351 * :ghissue:`1575`: Fallback frontend for console when connecting pylab=inlnie -enabled kernel?
1352 * :ghissue:`2097`: Do not crash if history db is corrupted
1353 * :ghissue:`2435`: ipengines fail if clean_logs enabled
1354 * :ghissue:`2429`: Using warnings.warn() results in TypeError
1355 * :ghissue:`2422`: Multiprocessing in ipython notebook kernel crash
1356 * :ghissue:`2426`: ipython crashes with the following message. I do not what went wrong. Can you help me identify the problem?
1357 * :ghissue:`2423`: Docs typo?
1358 * :ghissue:`2257`: pip install -e fails
1359 * :ghissue:`2418`: rmagic can't run R's read.csv on data files with NA data
1360 * :ghissue:`2417`: HTML notebook: Backspace sometimes deletes multiple characters
1361 * :ghissue:`2275`: notebook: "Down_Arrow" on last line of cell should move to end of line
1362 * :ghissue:`2414`: 0.13.1 does not work with current EPD 7.3-2
1363 * :ghissue:`2409`: there is a redundant None
1364 * :ghissue:`2410`: Use /usr/bin/python3 instead of /usr/bin/python
1365 * :ghissue:`2366`: Notebook Dashboard --notebook-dir and fullpath
1366 * :ghissue:`2406`: Inability to get docstring in debugger
1367 * :ghissue:`2398`: Show line number for IndentationErrors
1368 * :ghissue:`2314`: HTML lists seem to interfere with the QtConsole display
1369 * :ghissue:`1688`: unicode exception when using %run with failing script
1370 * :ghissue:`1884`: IPython.embed changes color on error
1371 * :ghissue:`2381`: %time doesn't work for multiline statements
1372 * :ghissue:`1435`: Add size keywords in Image class
1373 * :ghissue:`2372`: interactiveshell.py misses urllib and io_open imports
1374 * :ghissue:`2371`: iPython not working
1375 * :ghissue:`2367`: Tab expansion moves to next cell in notebook
1376 * :ghissue:`2359`: nbviever alters the order of print and display() output
1377 * :ghissue:`2227`: print name for IPython Notebooks has become uninformative
1378 * :ghissue:`2361`: client doesn't use connection file's 'location' in disambiguating 'interface'
1379 * :ghissue:`2357`: failing traceback in terminal ipython for first exception
1380 * :ghissue:`2343`: Installing in a python 3.3b2 or python 3.3rc1 virtual environment.
1381 * :ghissue:`2315`: Failure in test: "Test we're not loading modules on startup that we shouldn't."
1382 * :ghissue:`2351`: Multiple Notebook Apps: cookies not port specific, clash with each other
1383 * :ghissue:`2350`: running unittest from qtconsole prints output to terminal
1384 * :ghissue:`2303`: remote tracebacks broken since 952d0d6 (PR #2223)
1385 * :ghissue:`2330`: qtconsole does not hightlight tab-completion suggestion with custom stylesheet
1386 * :ghissue:`2325`: Parsing Tex formula fails in Notebook
1387 * :ghissue:`2324`: Parsing Tex formula fails
1388 * :ghissue:`1474`: Add argument to `run -n` for custom namespace
1389 * :ghissue:`2318`: C-m n/p don't work in Markdown cells in the notebook
1390 * :ghissue:`2309`: time.time() in ipython notebook producing impossible results
1391 * :ghissue:`2307`: schedule tasks on newly arrived engines
1392 * :ghissue:`2313`: Allow Notebook HTML/JS to send messages to Python code
1393 * :ghissue:`2304`: ipengine throws KeyError: url
1394 * :ghissue:`1878`: shell access using ! will not fill class or function scope vars
1395 * :ghissue:`2253`: %paste does not retrieve clipboard contents under screen/tmux on OS X
1396 * :ghissue:`1510`: Add-on (or Monkey-patch) infrastructure for HTML notebook
1397 * :ghissue:`2273`: triple quote and %s at beginning of line with %paste
1398 * :ghissue:`2243`: Regression in .embed()
1399 * :ghissue:`2266`: SSH passwordless check with OpenSSH checks for the wrong thing
1400 * :ghissue:`2217`: Change NewNotebook handler to use 30x redirect
1401 * :ghissue:`2276`: config option for disabling history store
1402 * :ghissue:`2239`: can't use parallel.Reference in view.map
1403 * :ghissue:`2272`: Sympy piecewise messed up rendering
1404 * :ghissue:`2252`: %paste throws an exception with empty clipboard
1405 * :ghissue:`2259`: git-mpr is currently broken
1406 * :ghissue:`2247`: Variable expansion in shell commands should work in substrings
1407 * :ghissue:`2026`: Run 'fast' tests only
1408 * :ghissue:`2241`: read a list of notebooks on server and bring into browser only notebook
1409 * :ghissue:`2237`: please put python and text editor in the web only ipython
1410 * :ghissue:`2053`: Improvements to the IPython.display.Image object
1411 * :ghissue:`1456`: ERROR: Internal Python error in the inspect module.
1412 * :ghissue:`2221`: Avoid importing from IPython.parallel in core
1413 * :ghissue:`2213`: Can't trigger startup code in Engines
1414 * :ghissue:`1464`: Strange behavior for backspace with lines ending with more than 4 spaces in notebook
1415 * :ghissue:`2187`: NaN in object_info_reply JSON causes parse error
1416 * :ghissue:`214`: system command requiring administrative privileges
1417 * :ghissue:`2195`: Unknown option `no-edit` in git-mpr
1418 * :ghissue:`2201`: Add documentation build to tools/test_pr.py
1419 * :ghissue:`2205`: Command-line option for default Notebook output collapsing behavior
1420 * :ghissue:`1927`: toggle between inline and floating figures
1421 * :ghissue:`2171`: Can't start StarCluster after upgrading to IPython 0.13
1422 * :ghissue:`2173`: oct2py v >= 0.3.1 doesn't need h5py anymore
1423 * :ghissue:`2099`: storemagic needs to use self.shell
1424 * :ghissue:`2166`: DirectView map_sync() with Lambdas Using Generators
1425 * :ghissue:`2091`: Unable to use print_stats after %prun -r in notebook
1426 * :ghissue:`2132`: Add fail-over for pastebin
1427 * :ghissue:`2156`: Make it possible to install ipython without nasty gui dependencies
1428 * :ghissue:`2154`: Scrolled long output should be off in print view by default
1429 * :ghissue:`2162`: Tab completion does not work with IPython.embed_kernel()
1430 * :ghissue:`2157`: iPython 0.13 / github-master cannot create logfile from scratch
1431 * :ghissue:`2151`: missing newline when a magic is called from the qtconsole menu
1432 * :ghissue:`2139`: 00_notebook_tour Image example broken on master
1433 * :ghissue:`2143`: Add a %%cython_annotate magic
1434 * :ghissue:`2135`: Running IPython from terminal
1435 * :ghissue:`2093`: Makefile for building Sphinx documentation on Windows
1436 * :ghissue:`2122`: Bug in pretty printing
1437 * :ghissue:`2120`: Notebook "Make a Copy..." keeps opening duplicates in the same tab
1438 * :ghissue:`1997`: password cannot be used with url prefix
1439 * :ghissue:`2129`: help/doc displayed multiple times if requested in loop
1440 * :ghissue:`2121`: ipdb does not support input history in qtconsole
1441 * :ghissue:`2114`: %logstart doesn't log
1442 * :ghissue:`2085`: %ed magic fails in qtconsole
1443 * :ghissue:`2119`: iPython fails to run on MacOS Lion
1444 * :ghissue:`2052`: %pylab inline magic does not work on windows
1445 * :ghissue:`2111`: Ipython won't start on W7
1446 * :ghissue:`2112`: Strange internal traceback
1447 * :ghissue:`2108`: Backslash (\) at the end of the line behavior different from default Python
1448 * :ghissue:`1425`: Ampersands can't be typed sometimes in notebook cells
1449 * :ghissue:`1513`: Add expand/collapse support for long output elements like stdout and tracebacks
1450 * :ghissue:`2087`: error when starting ipython
1451 * :ghissue:`2103`: Ability to run notebook file from commandline
1452 * :ghissue:`2082`: Qt Console output spacing
1453 * :ghissue:`2083`: Test failures with Python 3.2 and PYTHONWARNINGS="d"
1454 * :ghissue:`2094`: about inline
1455 * :ghissue:`2077`: Starting IPython3 on the terminal
1456 * :ghissue:`1760`: easy_install ipython fails on py3.2-win32
1457 * :ghissue:`2075`: Local Mathjax install causes iptest3 error under python3
1458 * :ghissue:`2057`: setup fails for python3 with LANG=C
1459 * :ghissue:`2070`: shebang on Windows
1460 * :ghissue:`2054`: sys_info missing git hash in sdists
1461 * :ghissue:`2059`: duplicate and modified files in documentation
1462 * :ghissue:`2056`: except-shadows-builtin osm.py:687
1463 * :ghissue:`2058`: hyphen-used-as-minus-sign in manpages
@@ -0,0 +1,287 b''
1 ============
2 1.0 Series
3 ============
4
5 Release 1.0
6 ===========
7
8 IPython 1.0 requires Python β‰₯ 2.6.5 or β‰₯ 3.2.1.
9 It does not support Python 3.0, 3.1, or 2.5.
10
11 This is a big release. The principal milestone is the addition of :mod:`IPython.nbconvert`,
12 but there has been a great deal of work improving all parts of IPython as well.
13
14 The previous version (0.13) was released on June 30, 2012,
15 and in this development cycle we had:
16
17 - ~12 months of work.
18 - ~700 pull requests merged.
19 - ~600 issues closed (non-pull requests).
20 - contributions from ~150 authors.
21 - ~4000 commits.
22
23 The amount of work included in this release is so large that we can only cover
24 here the main highlights; please see our :ref:`detailed release statistics
25 <issues_list_100>` for links to every issue and pull request closed on GitHub
26 as well as a full list of individual contributors.
27 It includes
28
29 Reorganization
30 --------------
31
32 There have been two major reorganizations in IPython 1.0:
33
34 - Added :mod:`IPython.kernel` for all kernel-related code.
35 This means that :mod:`IPython.zmq` has been removed,
36 and much of it is now in :mod:`IPython.kernel.zmq`,
37 some of it being in the top-level :mod:`IPython.kernel`.
38 - We have removed the `frontend` subpackage,
39 as it caused unnecessary depth. So what was :mod:`IPython.frontend.qt`
40 is now :mod:`IPython.qt`, and so on. The one difference is that
41 the notebook has been further flattened, so that
42 :mod:`IPython.frontend.html.notebook` is now just `IPython.html`.
43 There is a shim module, so :mod:`IPython.frontend` is still
44 importable in 1.0, but there will be a warning.
45 - The IPython sphinx directives are now installed in :mod:`IPython.sphinx`,
46 so they can be imported by other projects.
47
48
49 Public APIs
50 -----------
51
52 For the first time since 0.10 (sorry, everyone),
53 there is an official public API for starting IPython:
54
55 .. sourcecode:: python
56
57 from IPython import start_ipython
58 start_ipython()
59
60 This is what packages should use that start their own IPython session,
61 but don't actually want embedded IPython (most cases).
62
63 We also have added:
64
65 .. sourcecode:: python
66
67 from IPython import get_ipython
68
69
70 Which is a *library* function for getting the current IPython instance,
71 and will return ``None`` if no IPython instance is running.
72 This is the official way to check whether your code is called from inside an IPython session.
73 If you want to check for IPython without unnecessarily importing IPython,
74 use this function:
75
76 .. sourcecode:: python
77
78 def get_ipython():
79 """return IPython instance if there is one, None otherwise"""
80 import sys
81 if "IPython" in sys.modules:
82 import IPython
83 return IPython.get_ipython()
84
85 Core
86 ----
87
88 - The input transformation framework has been reworked. This fixes some corner
89 cases, and adds more flexibility for projects which use IPython, like SymPy &
90 SAGE. For more details, see :doc:`/config/inputtransforms`.
91 - Exception types can now be displayed with a custom traceback, by defining a
92 ``_render_traceback_()`` method which returns a list of strings, each
93 containing one line of the traceback.
94 - A new command, ``ipython history trim`` can be used to delete everything but
95 the last 1000 entries in the history database.
96 - ``__file__`` is defined in both config files at load time,
97 and ``.ipy`` files executed with ``%run``.
98 - ``%logstart`` and ``%logappend`` are no longer broken.
99 - Add glob expansion for ``%run``, e.g. ``%run -g script.py *.txt``.
100 - Expand variables (``$foo``) in Cell Magic argument line.
101 - By default, :command:`iptest` will exclude various slow tests.
102 All tests can be run with :command:`iptest --all`.
103 - SQLite history can be disabled in the various cases that it does not behave well.
104 - ``%edit`` works on interactively defined variables.
105 - editor hooks have been restored from quarantine, enabling TextMate as editor,
106 etc.
107 - The env variable PYTHONSTARTUP is respected by IPython.
108 - A ``%matplotlib`` magic is added, which is like the old ``%pylab`` magic,
109 but it does not import anything to the interactive namespace.
110 It is recommended that users switch to ``%matplotlib`` and explicit imports.
111
112
113 Backwards incompatible changes
114 ******************************
115
116 - Calling :meth:`InteractiveShell.prefilter` will no longer perform static
117 transformations - the processing of escaped commands such as ``%magic`` and
118 ``!system``, and stripping input prompts from code blocks. This functionality
119 was duplicated in :mod:`IPython.core.inputsplitter`, and the latter version
120 was already what IPython relied on. A new API to transform input will be ready
121 before release.
122 - Functions from :mod:`IPython.lib.inputhook` to control integration with GUI
123 event loops are no longer exposed in the top level of :mod:`IPython.lib`.
124 Code calling these should make sure to import them from
125 :mod:`IPython.lib.inputhook`.
126 - For all kernel managers, the ``sub_channel`` attribute has been renamed to
127 ``iopub_channel``.
128 - Users on Python versions before 2.6.6, 2.7.1 or 3.2 will now need to call
129 :func:`IPython.utils.doctestreload.doctest_reload` to make doctests run
130 correctly inside IPython. Python releases since those versions are unaffected.
131 For details, see :ghpull:`3068` and `Python issue 8048 <http://bugs.python.org/issue8048>`_.
132 - The ``InteractiveShell.cache_main_mod()`` method has been removed, and
133 :meth:`~IPython.core.interactiveshell.InteractiveShell.new_main_mod` has a
134 different signature, expecting a filename where earlier versions expected
135 a namespace. See :ghpull:`3555` for details.
136 - The short-lived plugin system has been removed. Extensions are the way to go.
137
138
139 NbConvert
140 ---------
141
142 The major milestone for IPython 1.0 is the addition of :mod:`IPython.nbconvert` - tools for converting
143 IPython notebooks to various other formats.
144
145 .. warning::
146
147 nbconvert is Ξ±-level preview code in 1.0
148
149 To use nbconvert to convert various file formats::
150
151 ipython nbconvert --format full_html *.ipynb
152
153 See ``ipython nbconvert --help`` for more information.
154 nbconvert depends on `pandoc`_ for many of the translations to and from various formats.
155
156 .. _pandoc: http://johnmacfarlane.net/pandoc/
157
158 Notebook
159 --------
160
161 Major changes to the IPython Notebook in 1.0:
162
163 - The notebook is now autosaved, by default at an interval of two minutes.
164 When you press 'save' or Ctrl-S, a *checkpoint* is made, in a hidden folder.
165 This checkpoint can be restored, so that the autosave model is strictly safer
166 than traditional save. If you change nothing about your save habits,
167 you will always have a checkpoint that you have written,
168 and an autosaved file that is kept up to date.
169 - You can load custom javascript and CSS in the notebook by editing the files
170 :file:`$(ipython locate profile)/static/custom/custom.{js,css}`.
171 - Add ``%%html``, ``%%svg``, ``%%javascript``, and ``%%latex`` cell magics
172 for writing raw output in notebook cells.
173 - add a redirect handler and anchors on heading cells, so you can link
174 across notebooks, directly to heading cells in other notebooks.
175 - Images support width and height metadata,
176 and thereby 2x scaling (retina support).
177 - ``_repr_foo_`` methods can return a tuple of (data, metadata),
178 where metadata is a dict containing metadata about the displayed object.
179 This is used to set size, etc. for retina graphics. To enable retina matplotlib figures,
180 simply set ``InlineBackend.figure_format = 'retina'`` for 2x PNG figures.
181 - Add display.FileLink and FileLinks for quickly displaying HTML links to local files.
182 - Cells have metadata, which can be edited via cell toolbars.
183 This metadata can be used by external code (e.g. reveal.js or exporters),
184 when examining the notebook.
185 - Fix an issue parsing LaTeX in markdown cells, which required users to type ``\\\``,
186 instead of ``\\``.
187 - Notebook templates are rendered with Jinja instead of Tornado.
188 - ``%%file`` has been renamed ``%%writefile`` (``%%file``) is deprecated.
189 - ANSI (and VT100) color parsing has been improved in both performance and
190 supported values.
191 - The static files path can be found as ``IPython.html.DEFAULT_STATIC_FILES_PATH``,
192 which may be changed by package managers.
193 - The notebook supports :func:`raw_input`, and thus also ``%debug``.
194 - IPython's CSS is installed in :file:`static/css/style.min.css`
195 (all style, including bootstrap), and :file:`static/css/ipython.min.css`,
196 which only has IPython's own CSS. The latter file should be useful for embedding
197 IPython notebooks in other pages, blogs, etc.
198
199 Javascript Components
200 *********************
201
202 The javascript components used in the notebook have been updated significantly.
203
204 - updates to jQuery (2.0) and jQueryUI (1.10)
205 - Update CodeMirror to 3.14
206 - Twitter Bootstrap (2.3) for layout
207 - Font-Awesome (3.1) for icons
208 - highlight.js (7.3) for syntax highlighting
209 - marked (0.2.8) for markdown rendering
210 - require.js (2.1) for loading javascript
211
212 Some relevant changes that are results of this:
213
214 - Markdown cells now support GitHub-flavored Markdown (GFM),
215 which includes ``\`\`\`python`` code blocks and tables.
216 - Notebook UI behaves better on more screen sizes.
217 - Various code cell input issues have been fixed.
218
219
220 Kernel
221 ------
222
223 The kernel code has been substantially reorganized.
224
225 New features in the kernel:
226
227 - Kernels support ZeroMQ IPC transport, not just TCP
228 - The message protocol has added a top-level metadata field,
229 used for information about messages.
230 - Add a `data_pub` message that functions much like `display_pub`,
231 but publishes raw (usually pickled) data, rather than representations.
232 - Ensure that ``sys.stdout.encoding`` is defined in Kernels.
233 - Stdout from forked subprocesses should be forwarded to frontends (instead of crashing).
234
235 IPEP 13
236 *******
237
238 The KernelManager has been split into a :class:`~.KernelManager` and a :class:`~.KernelClient`.
239 The Manager owns a kernel and starts / signals / restarts it. There is always zero or one
240 KernelManager per Kernel. Clients communicate with Kernels via zmq channels,
241 and there can be zero-to-many Clients connected to a Kernel at any given time.
242
243 The KernelManager now automatically restarts the kernel when it dies,
244 rather than requiring user input at the notebook or QtConsole UI
245 (which may or may not exist at restart time).
246
247 In-process kernels
248 ******************
249
250 The Python-language frontends, particularly the Qt console, may now communicate
251 with in-process kernels, in addition to the traditional out-of-process
252 kernels. An in-process kernel permits direct access to the kernel namespace,
253 which is necessary in some applications. It should be understood, however, that
254 the in-process kernel is not robust to bad user input and will block the main
255 (GUI) thread while executing. Developers must decide on a case-by-case basis
256 whether this tradeoff is appropriate for their application.
257
258
259
260 Parallel
261 --------
262
263 IPython.parallel has had some refactoring as well.
264 There are many improvements and fixes, but these are the major changes:
265
266 - Connections have been simplified. All ports and the serialization in use
267 are written to the connection file, rather than the initial two-stage system.
268 - Serialization has been rewritten, fixing many bugs and dramatically improving
269 performance serializing large containers.
270 - Load-balancing scheduler performance with large numbers of tasks has been dramatically improved.
271 - There should be fewer (hopefully zero) false-positives for engine failures.
272 - Increased compatibility with various use cases that produced serialization / argument errors
273 with map, etc.
274 - The controller can attempt to resume operation if it has crashed,
275 by passing ``ipcontroller --restore``.
276 - Engines can monitor the Hub heartbeat, and shutdown if the Hub disappears for too long.
277 - add HTCondor support in launchers
278
279
280 QtConsole
281 ---------
282
283 Various fixes, including improved performance with lots of text output,
284 and better drag and drop support.
285 The initial window size of the qtconsole is now configurable via ``IPythonWidget.width``
286 and ``IPythonWidget.height``.
287
@@ -65,7 +65,7 b' class ShimModule(types.ModuleType):'
65 try:
65 try:
66 pak = module.__dict__[obj]
66 pak = module.__dict__[obj]
67 except KeyError:
67 except KeyError:
68 raise ImportError('No module named %s' % obj)
68 raise AttributeError(obj)
69 return pak
69 return pak
70 else:
70 else:
71 # called with un-dotted string
71 # called with un-dotted string
@@ -4,51 +4,7 b''
4
4
5 This document describes in-flight development work.
5 This document describes in-flight development work.
6
6
7 The CodeMirror js library has been updated fron 2.23 to 2.32
8 this might induce a few changes in behavior of keymaps in the notebook,
9 especially intenting/deindenting blocks that is now bound to Ctrl+] and ctr+[
10
11 * Exception types can now be displayed with a custom traceback, by defining a
12 ``_render_traceback_()`` method which returns a list of strings, each
13 containing one line of the traceback.
14 * A new command, ``ipython history trim`` can be used to delete everything but
15 the last 1000 entries in the history database.
16 * The input transformation framework has been reworked. This fixes some corner
17 cases, and adds more flexibility for projects which use IPython, like SymPy &
18 SAGE. For more details, see :doc:`/config/inputtransforms`.
19
20
21 In-process kernels
22 ------------------
23
24 The Python-language frontends, particularly the Qt console, may now communicate
25 with in-process kernels, in addition to the traditional out-of-process
26 kernels. An in-process kernel permits direct access to the kernel namespace,
27 which is necessary in some applications. It should be understood, however, that
28 the in-process kernel is not robust to bad user input and will block the main
29 (GUI) thread while executing. Developers must decide on a case-by-case basis
30 whether this tradeoff is appropriate for their application.
31
7
32 Backwards incompatible changes
8 Backwards incompatible changes
33 ------------------------------
9 ------------------------------
34
10
35 * Calling :meth:`InteractiveShell.prefilter` will no longer perform static
36 transformations - the processing of escaped commands such as ``%magic`` and
37 ``!system``, and stripping input prompts from code blocks. This functionality
38 was duplicated in :mod:`IPython.core.inputsplitter`, and the latter version
39 was already what IPython relied on. A new API to transform input will be ready
40 before release.
41 * Functions from :mod:`IPython.lib.inputhook` to control integration with GUI
42 event loops are no longer exposed in the top level of :mod:`IPython.lib`.
43 Code calling these should make sure to import them from
44 :mod:`IPython.lib.inputhook`.
45 * For all kernel managers, the ``sub_channel`` attribute has been renamed to
46 ``iopub_channel``.
47 * Users on Python versions before 2.6.6, 2.7.1 or 3.2 will now need to call
48 :func:`IPython.utils.doctestreload.doctest_reload` to make doctests run
49 correctly inside IPython. Python releases since those versions are unaffected.
50 For details, see :ghpull:`3068` and `Python issue 8048 <http://bugs.python.org/issue8048>`_.
51 * The ``InteractiveShell.cache_main_mod()`` method has been removed, and
52 :meth:`~IPython.core.interactiveshell.InteractiveShell.new_main_mod` has a
53 different signature, expecting a filename where earlier versions expected
54 a namespace. See :ghpull:`3555` for details.
@@ -21,6 +21,8 b' development work they do here in a user friendly format.'
21 :maxdepth: 1
21 :maxdepth: 1
22
22
23 development
23 development
24 version1.0
25 github-stats-1.0
24 version0.13
26 version0.13
25 github-stats-0.13
27 github-stats-0.13
26 version0.12
28 version0.12
@@ -1,4 +1,4 b''
1 """Functions for Github authorisation."""
1 """Functions for Github API requests."""
2 from __future__ import print_function
2 from __future__ import print_function
3
3
4 try:
4 try:
@@ -7,11 +7,20 b' except NameError:'
7 pass
7 pass
8
8
9 import os
9 import os
10 import re
11 import sys
10
12
11 import requests
13 import requests
12 import getpass
14 import getpass
13 import json
15 import json
14
16
17 try:
18 import requests_cache
19 except ImportError:
20 print("no cache")
21 else:
22 requests_cache.install_cache("gh_api")
23
15 # Keyring stores passwords by a 'username', but we're not storing a username and
24 # Keyring stores passwords by a 'username', but we're not storing a username and
16 # password
25 # password
17 fake_username = 'ipython_tools'
26 fake_username = 'ipython_tools'
@@ -86,21 +95,56 b" def post_gist(content, description='', filename='file', auth=False):"
86 response_data = json.loads(response.text)
95 response_data = json.loads(response.text)
87 return response_data['html_url']
96 return response_data['html_url']
88
97
89 def get_pull_request(project, num):
98 def get_pull_request(project, num, auth=False):
90 """get pull request info by number
99 """get pull request info by number
91 """
100 """
92 url = "https://api.github.com/repos/{project}/pulls/{num}".format(project=project, num=num)
101 url = "https://api.github.com/repos/{project}/pulls/{num}".format(project=project, num=num)
93 response = requests.get(url)
102 if auth:
103 header = make_auth_header()
104 else:
105 header = None
106 response = requests.get(url, headers=header)
94 response.raise_for_status()
107 response.raise_for_status()
95 return json.loads(response.text, object_hook=Obj)
108 return json.loads(response.text, object_hook=Obj)
96
109
97 def get_pulls_list(project):
110 element_pat = re.compile(r'<(.+?)>')
111 rel_pat = re.compile(r'rel=[\'"](\w+)[\'"]')
112
113 def get_paged_request(url, headers=None):
114 """get a full list, handling APIv3's paging"""
115 results = []
116 while True:
117 print("fetching %s" % url, file=sys.stderr)
118 response = requests.get(url, headers=headers)
119 response.raise_for_status()
120 results.extend(response.json())
121 if 'next' in response.links:
122 url = response.links['next']['url']
123 else:
124 break
125 return results
126
127 def get_pulls_list(project, state="closed", auth=False):
98 """get pull request list
128 """get pull request list
99 """
129 """
100 url = "https://api.github.com/repos/{project}/pulls".format(project=project)
130 url = "https://api.github.com/repos/{project}/pulls?state={state}&per_page=100".format(project=project, state=state)
101 response = requests.get(url)
131 if auth:
102 response.raise_for_status()
132 headers = make_auth_header()
103 return json.loads(response.text)
133 else:
134 headers = None
135 pages = get_paged_request(url, headers=headers)
136 return pages
137
138 def get_issues_list(project, state="closed", auth=False):
139 """get pull request list
140 """
141 url = "https://api.github.com/repos/{project}/pulls?state={state}&per_page=100".format(project=project, state=state)
142 if auth:
143 headers = make_auth_header()
144 else:
145 headers = None
146 pages = get_paged_request(url, headers=headers)
147 return pages
104
148
105 # encode_multipart_formdata is from urllib3.filepost
149 # encode_multipart_formdata is from urllib3.filepost
106 # The only change is to iter_fields, to enforce S3's required key ordering
150 # The only change is to iter_fields, to enforce S3's required key ordering
@@ -13,7 +13,7 b' import sys'
13
13
14 from datetime import datetime, timedelta
14 from datetime import datetime, timedelta
15 from subprocess import check_output
15 from subprocess import check_output
16 from urllib import urlopen
16 from gh_api import get_paged_request, make_auth_header, get_pull_request
17
17
18 #-----------------------------------------------------------------------------
18 #-----------------------------------------------------------------------------
19 # Globals
19 # Globals
@@ -22,39 +22,18 b' from urllib import urlopen'
22 ISO8601 = "%Y-%m-%dT%H:%M:%SZ"
22 ISO8601 = "%Y-%m-%dT%H:%M:%SZ"
23 PER_PAGE = 100
23 PER_PAGE = 100
24
24
25 element_pat = re.compile(r'<(.+?)>')
26 rel_pat = re.compile(r'rel=[\'"](\w+)[\'"]')
27
28 #-----------------------------------------------------------------------------
25 #-----------------------------------------------------------------------------
29 # Functions
26 # Functions
30 #-----------------------------------------------------------------------------
27 #-----------------------------------------------------------------------------
31
28
32 def parse_link_header(headers):
33 link_s = headers.get('link', '')
34 urls = element_pat.findall(link_s)
35 rels = rel_pat.findall(link_s)
36 d = {}
37 for rel,url in zip(rels, urls):
38 d[rel] = url
39 return d
40
41 def get_paged_request(url):
42 """get a full list, handling APIv3's paging"""
43 results = []
44 while url:
45 print("fetching %s" % url, file=sys.stderr)
46 f = urlopen(url)
47 results.extend(json.load(f))
48 links = parse_link_header(f.headers)
49 url = links.get('next')
50 return results
51
52 def get_issues(project="ipython/ipython", state="closed", pulls=False):
29 def get_issues(project="ipython/ipython", state="closed", pulls=False):
53 """Get a list of the issues from the Github API."""
30 """Get a list of the issues from the Github API."""
54 which = 'pulls' if pulls else 'issues'
31 which = 'pulls' if pulls else 'issues'
55 url = "https://api.github.com/repos/%s/%s?state=%s&per_page=%i" % (project, which, state, PER_PAGE)
32 url = "https://api.github.com/repos/%s/%s?state=%s&per_page=%i" % (project, which, state, PER_PAGE)
56 return get_paged_request(url)
33 return get_paged_request(url, headers=make_auth_header())
57
34
35 def round_hour(dt):
36 return dt.replace(minute=0,second=0,microsecond=0)
58
37
59 def _parse_datetime(s):
38 def _parse_datetime(s):
60 """Parse dates in the format returned by the Github API."""
39 """Parse dates in the format returned by the Github API."""
@@ -74,26 +53,45 b' def issues2dict(issues):'
74
53
75 def is_pull_request(issue):
54 def is_pull_request(issue):
76 """Return True if the given issue is a pull request."""
55 """Return True if the given issue is a pull request."""
77 return 'pull_request_url' in issue
56 return bool(issue.get('pull_request', {}).get('html_url', None))
57
58
59 def split_pulls(all_issues, project="ipython/ipython"):
60 """split a list of closed issues into non-PR Issues and Pull Requests"""
61 pulls = []
62 issues = []
63 for i in all_issues:
64 if is_pull_request(i):
65 pull = get_pull_request(project, i['number'], auth=True)
66 pulls.append(pull)
67 else:
68 issues.append(i)
69 return issues, pulls
70
78
71
79
72
80 def issues_closed_since(period=timedelta(days=365), project="ipython/ipython", pulls=False):
73 def issues_closed_since(period=timedelta(days=365), project="ipython/ipython", pulls=False):
81 """Get all issues closed since a particular point in time. period
74 """Get all issues closed since a particular point in time. period
82 can either be a datetime object, or a timedelta object. In the
75 can either be a datetime object, or a timedelta object. In the
83 latter case, it is used as a time before the present."""
76 latter case, it is used as a time before the present.
77 """
84
78
85 which = 'pulls' if pulls else 'issues'
79 which = 'pulls' if pulls else 'issues'
86
80
87 if isinstance(period, timedelta):
81 if isinstance(period, timedelta):
88 period = datetime.now() - period
82 since = round_hour(datetime.utcnow() - period)
89 url = "https://api.github.com/repos/%s/%s?state=closed&sort=updated&since=%s&per_page=%i" % (project, which, period.strftime(ISO8601), PER_PAGE)
83 else:
90 allclosed = get_paged_request(url)
84 since = period
91 # allclosed = get_issues(project=project, state='closed', pulls=pulls, since=period)
85 url = "https://api.github.com/repos/%s/%s?state=closed&sort=updated&since=%s&per_page=%i" % (project, which, since.strftime(ISO8601), PER_PAGE)
92 filtered = [i for i in allclosed if _parse_datetime(i['closed_at']) > period]
86 allclosed = get_paged_request(url, headers=make_auth_header())
93
87
94 # exclude rejected PRs
88 filtered = [ i for i in allclosed if _parse_datetime(i['closed_at']) > since ]
95 if pulls:
89 if pulls:
96 filtered = [ pr for pr in filtered if pr['merged_at'] ]
90 filtered = [ i for i in filtered if _parse_datetime(i['merged_at']) > since ]
91 # filter out PRs not against master (backports)
92 filtered = [ i for i in filtered if i['base']['ref'] == 'master' ]
93 else:
94 filtered = [ i for i in filtered if not is_pull_request(i) ]
97
95
98 return filtered
96 return filtered
99
97
@@ -121,6 +119,10 b' def report(issues, show_urls=False):'
121 #-----------------------------------------------------------------------------
119 #-----------------------------------------------------------------------------
122
120
123 if __name__ == "__main__":
121 if __name__ == "__main__":
122 # deal with unicode
123 import codecs
124 sys.stdout = codecs.getwriter('utf8')(sys.stdout)
125
124 # Whether to add reST urls for all issues in printout.
126 # Whether to add reST urls for all issues in printout.
125 show_urls = True
127 show_urls = True
126
128
@@ -138,15 +140,24 b' if __name__ == "__main__":'
138 cmd = ['git', 'log', '-1', '--format=%ai', tag]
140 cmd = ['git', 'log', '-1', '--format=%ai', tag]
139 tagday, tz = check_output(cmd).strip().rsplit(' ', 1)
141 tagday, tz = check_output(cmd).strip().rsplit(' ', 1)
140 since = datetime.strptime(tagday, "%Y-%m-%d %H:%M:%S")
142 since = datetime.strptime(tagday, "%Y-%m-%d %H:%M:%S")
143 h = int(tz[1:3])
144 m = int(tz[3:])
145 td = timedelta(hours=h, minutes=m)
146 if tz[0] == '-':
147 since += td
148 else:
149 since -= td
141 else:
150 else:
142 since = datetime.now() - timedelta(days=days)
151 since = datetime.utcnow() - timedelta(days=days)
152
153 since = round_hour(since)
143
154
144 print("fetching GitHub stats since %s (tag: %s)" % (since, tag), file=sys.stderr)
155 print("fetching GitHub stats since %s (tag: %s)" % (since, tag), file=sys.stderr)
145 # turn off to play interactively without redownloading, use %run -i
156 # turn off to play interactively without redownloading, use %run -i
146 if 1:
157 if 1:
147 issues = issues_closed_since(since, pulls=False)
158 issues = issues_closed_since(since, pulls=False)
148 pulls = issues_closed_since(since, pulls=True)
159 pulls = issues_closed_since(since, pulls=True)
149
160
150 # For regular reports, it's nice to show them in reverse chronological order
161 # For regular reports, it's nice to show them in reverse chronological order
151 issues = sorted_by_field(issues, reverse=True)
162 issues = sorted_by_field(issues, reverse=True)
152 pulls = sorted_by_field(pulls, reverse=True)
163 pulls = sorted_by_field(pulls, reverse=True)
@@ -155,6 +166,7 b' if __name__ == "__main__":'
155 n_total = n_issues + n_pulls
166 n_total = n_issues + n_pulls
156
167
157 # Print summary report we can directly include into release notes.
168 # Print summary report we can directly include into release notes.
169
158 print()
170 print()
159 since_day = since.strftime("%Y/%m/%d")
171 since_day = since.strftime("%Y/%m/%d")
160 today = datetime.today().strftime("%Y/%m/%d")
172 today = datetime.today().strftime("%Y/%m/%d")
@@ -168,10 +180,9 b' if __name__ == "__main__":'
168 cmd = ['git', 'log', '--oneline', since_tag]
180 cmd = ['git', 'log', '--oneline', since_tag]
169 ncommits = len(check_output(cmd).splitlines())
181 ncommits = len(check_output(cmd).splitlines())
170
182
171 author_cmd = ['git', 'log', '--format=* %aN', since_tag]
183 author_cmd = ['git', 'log', '--use-mailmap', "--format='* %aN'", since_tag]
172 all_authors = check_output(author_cmd).splitlines()
184 all_authors = check_output(author_cmd).decode('utf-8', 'replace').splitlines()
173 unique_authors = sorted(set(all_authors))
185 unique_authors = sorted(set(all_authors), key=lambda s: s.lower())
174
175 print("The following %i authors contributed %i commits." % (len(unique_authors), ncommits))
186 print("The following %i authors contributed %i commits." % (len(unique_authors), ncommits))
176 print()
187 print()
177 print('\n'.join(unique_authors))
188 print('\n'.join(unique_authors))
General Comments 0
You need to be logged in to leave comments. Login now