1203 ipython pycon

34
IPython: Python at your fingertips Fernando Pérez [email protected] http://fperez.org Brian E. Granger (Cal Poly San Luis Obispo), Min Ragan-Kelley (UC Berkeley) Thomas Kluyver (U Sheffield), Evan Patterson (Enthought). PyCon 2012 March 9, 2012

Transcript of 1203 ipython pycon

Page 1: 1203 ipython pycon

IPython: Python at your fingertips

Fernando Pé[email protected]

http://fperez.org

Brian E. Granger (Cal Poly San Luis Obispo), Min Ragan-Kelley (UC Berkeley)Thomas Kluyver (U Sheffield), Evan Patterson (Enthought).

PyCon 2012March 9, 2012

Page 2: 1203 ipython pycon

Why IPython?

I is for interactive...

In scientific computing,we typically don’t know what we’re doing.

Exploratory computing is not just for scientists

Page 3: 1203 ipython pycon

Why IPython?

I is for interactive...

In scientific computing,we typically don’t know what we’re doing.

Exploratory computing is not just for scientists

Page 4: 1203 ipython pycon

Why IPython?

I is for interactive...

In scientific computing,we typically don’t know what we’re doing.

Exploratory computing is not just for scientists

Page 5: 1203 ipython pycon

Why IPython?

I is for interactive...

In scientific computing,we typically don’t know what we’re doing.

Exploratory computing is not just for scientists

Page 6: 1203 ipython pycon

Python: an excellent base for aninteractive environment

Page 7: 1203 ipython pycon

I said a base...

Page 8: 1203 ipython pycon

Mmh, introspection?

Page 9: 1203 ipython pycon

Basic comforts?

Page 10: 1203 ipython pycon

Useful error info

Page 11: 1203 ipython pycon

We can do better...

Page 12: 1203 ipython pycon

My files, thankyouverymuch

Page 13: 1203 ipython pycon

Some object details?

Page 14: 1203 ipython pycon

More info??

Page 15: 1203 ipython pycon

When things go wrong

Page 16: 1203 ipython pycon

Interactive architecture

FP (UC Berkeley) IPython: Python at your fingertips 3/9/2012 13 / 26

Page 17: 1203 ipython pycon

Terminal console with visualization

Page 18: 1203 ipython pycon

Qt console: inline plots, html, multiline editing, ...Evan Patterson (Enthought)

Page 19: 1203 ipython pycon

Microsoft Visual Studio 2010 integrated consoleDino Viehland and Shahrokh Mortazavi; http://pytools.codeplex.com

Page 20: 1203 ipython pycon

Browser-based notebook: rich text, code, plots, ...Brian Granger, James Gao (Berkeley), rest of the team

Page 21: 1203 ipython pycon

Interactive and high-level parallel APIsMin Ragan-Kelley, Brian Granger

Page 22: 1203 ipython pycon

How did we get here?A brief history of IPython

October/November 2001: “just a little afternoon hack“$PYTHONSTARTUP: ipython-0.0.1.py (259 lines)IPP (Interactive Python Prompt) by Janko Hauser (Oceanography)LazyPython by Nathan Gray (CalTech)

2002: Drop John Hunter’s Gnuplot patches: matplotlib2004: Brian Granger, Min Ragan-Kelley: Parallel on Twisted...2005-2009: Mayavi, Wx support, refactoring; slow period.2010: discover ØMQ, Enthought support.

Move to Git/Github.Build Qt console (Evan Patterson).Rewrite parallel support with ZeroMQ.Python 3 port (Thomas Kluyver).

2011: Web Notebook.

FP (UC Berkeley) IPython: Python at your fingertips 3/9/2012 19 / 26

Page 23: 1203 ipython pycon

How did we get here?A brief history of IPython

October/November 2001: “just a little afternoon hack“$PYTHONSTARTUP: ipython-0.0.1.py (259 lines)IPP (Interactive Python Prompt) by Janko Hauser (Oceanography)LazyPython by Nathan Gray (CalTech)

2002: Drop John Hunter’s Gnuplot patches: matplotlib2004: Brian Granger, Min Ragan-Kelley: Parallel on Twisted...2005-2009: Mayavi, Wx support, refactoring; slow period.2010: discover ØMQ, Enthought support.

Move to Git/Github.Build Qt console (Evan Patterson).Rewrite parallel support with ZeroMQ.Python 3 port (Thomas Kluyver).

2011: Web Notebook.

FP (UC Berkeley) IPython: Python at your fingertips 3/9/2012 19 / 26

Page 24: 1203 ipython pycon

How did we get here?A brief history of IPython

October/November 2001: “just a little afternoon hack“$PYTHONSTARTUP: ipython-0.0.1.py (259 lines)IPP (Interactive Python Prompt) by Janko Hauser (Oceanography)LazyPython by Nathan Gray (CalTech)

2002: Drop John Hunter’s Gnuplot patches: matplotlib2004: Brian Granger, Min Ragan-Kelley: Parallel on Twisted...2005-2009: Mayavi, Wx support, refactoring; slow period.2010: discover ØMQ, Enthought support.

Move to Git/Github.Build Qt console (Evan Patterson).Rewrite parallel support with ZeroMQ.Python 3 port (Thomas Kluyver).

2011: Web Notebook.

FP (UC Berkeley) IPython: Python at your fingertips 3/9/2012 19 / 26

Page 25: 1203 ipython pycon

How did we get here?A brief history of IPython

October/November 2001: “just a little afternoon hack“$PYTHONSTARTUP: ipython-0.0.1.py (259 lines)IPP (Interactive Python Prompt) by Janko Hauser (Oceanography)LazyPython by Nathan Gray (CalTech)

2002: Drop John Hunter’s Gnuplot patches: matplotlib2004: Brian Granger, Min Ragan-Kelley: Parallel on Twisted...2005-2009: Mayavi, Wx support, refactoring; slow period.2010: discover ØMQ, Enthought support.

Move to Git/Github.Build Qt console (Evan Patterson).Rewrite parallel support with ZeroMQ.Python 3 port (Thomas Kluyver).

2011: Web Notebook.

FP (UC Berkeley) IPython: Python at your fingertips 3/9/2012 19 / 26

Page 26: 1203 ipython pycon

How did we get here?A brief history of IPython

October/November 2001: “just a little afternoon hack“$PYTHONSTARTUP: ipython-0.0.1.py (259 lines)IPP (Interactive Python Prompt) by Janko Hauser (Oceanography)LazyPython by Nathan Gray (CalTech)

2002: Drop John Hunter’s Gnuplot patches: matplotlib2004: Brian Granger, Min Ragan-Kelley: Parallel on Twisted...2005-2009: Mayavi, Wx support, refactoring; slow period.2010: discover ØMQ, Enthought support.

Move to Git/Github.Build Qt console (Evan Patterson).Rewrite parallel support with ZeroMQ.Python 3 port (Thomas Kluyver).

2011: Web Notebook.

FP (UC Berkeley) IPython: Python at your fingertips 3/9/2012 19 / 26

Page 27: 1203 ipython pycon

How did we get here?A brief history of IPython

October/November 2001: “just a little afternoon hack“$PYTHONSTARTUP: ipython-0.0.1.py (259 lines)IPP (Interactive Python Prompt) by Janko Hauser (Oceanography)LazyPython by Nathan Gray (CalTech)

2002: Drop John Hunter’s Gnuplot patches: matplotlib2004: Brian Granger, Min Ragan-Kelley: Parallel on Twisted...2005-2009: Mayavi, Wx support, refactoring; slow period.2010: discover ØMQ, Enthought support.

Move to Git/Github.Build Qt console (Evan Patterson).Rewrite parallel support with ZeroMQ.Python 3 port (Thomas Kluyver).

2011: Web Notebook.

FP (UC Berkeley) IPython: Python at your fingertips 3/9/2012 19 / 26

Page 28: 1203 ipython pycon

(Incomplete) Cast of CharactersBrian Granger - Physics, Cal State San Luis ObispoMin Ragan-Kelley - UC BerkeleyThomas Kluyver - U. SheffieldJörgen Stenarson - SP Technical Research Institute of SwedenPaul Ivanov - UC BerkeleyRobert Kern - EnthoughtEvan Patterson - Caltech/EnthoughtStefan van der Walt - UC BerkeleyJohn Hunter - TradeLink Securities, Chicago.Prabhu Ramachandran - Aerospace Engineering, IIT BombaySatra Ghosh- MIT NeuroscienceGaël Varoquaux - Neurospin (Orsay, France)Ville Vainio - CS, Tampere University of Technology, FinlandBarry Wark - Neuroscience, U. Washington.Ondrej Certik - Physics, U Nevada RenoDarren Dale - CornellJustin Riley - MITMark Voorhies - UC San FranciscoNicholas Rougier - INRIA Nancy Grand EstThomas Spura - Fedora projectJulian Taylor - Debian/UbuntuMany more! (~140 commit authors)

Page 29: 1203 ipython pycon

Some quick stats. http://www/ohloh.net/p/ipython

Page 30: 1203 ipython pycon

Other projects using IPython

ScientificEPD: Enthought Python Distribution.Sage: open source mathematics.PyRAF: Space Telescope Science InstituteCASA: Nat. Radio Astronomy ObservatoryGanga: CERNPyMAD: neutron spectrom., Laue LangevinSardana: European Synchrotron RadiationASCEND: eng. modeling (Carnegie Mellon).JModelica: dynamical systems.DASH: Denver Aerosol Sources and Health.Trilinos: Sandia National Lab.DoD: baseline configuration.Mayavi: 3d visualization, Enthought.NiPype: computational pipelines, MIT.PyIMSL Studio, by Visual Numerics.

...

Web/OtherVisual Studio 2010: MS.Django.Turbo Gears.Pylons web frameworkZope and Plone CMS.Axon Shell, BBCKamaelia.Schevo database.Pitz: distributedtask/bug tracking.iVR (interactive VirtualReality).Movable Python(portable Pythonenvironment)....

Page 31: 1203 ipython pycon

SupportThank you!

Enthought, Austin, TX: Lots!Tech-X Corporation, Boulder, CO: Parallel/notebook (previousversions)Microsoft: WinHPC support, Visual Studio integrationNIH: via NiPy grantNSF: via Sage compmath grantGoogle: summer of code 2005, 2010.DoD/HPTi: funding through Sept. 2012 (thanks to Jose Unpingco!).

Page 32: 1203 ipython pycon

IPython in brief1 A better Python shell2 Embeddable Kernel and powerful interactive clients

1 Terminal2 Qt console3 Web notebook

3 Flexible parallel computing

http://ipython.org

http://github.com/ipython

Page 33: 1203 ipython pycon

Demo time!

Page 34: 1203 ipython pycon