##// END OF EJS Templates
Allow type checking on elements of List,Tuple,Set...
Allow type checking on elements of List,Tuple,Set matches List,Tuple,Set signatures in Traits, but still supports single-argument default value usage in current IPython code

File last commit:

r2102:d3a059eb merge
r3870:2ac44db6
Show More
demo-exercizer.py
85 lines | 2.3 KiB | text/x-python | PythonLexer
Tom Fetherston
Added demo-exercizer.py file.
r1997 """This is meant to be run from the IPython prompt:
Fernando Perez
Merging (slightly modified) Tom Fetherston's demo branch....
r2102
%run demo-exercizer.py
It will create demo objects of the example that is embedded in demo.py in a
number of ways and allow you to see how they work, just follow the printed
directions."""
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
# From std lib
import StringIO
import os
import shutil
import tempfile
# From IPython
from IPython.demo import (Demo, IPythonDemo, LineDemo, IPythonLineDemo,
ClearDemo, ClearIPDemo)
#-----------------------------------------------------------------------------
# Demo code
#-----------------------------------------------------------------------------
Tom Fetherston
Added demo-exercizer.py file.
r1997
example1 = """
'''A simple interactive demo to illustrate the use of IPython's Demo class.'''
print 'Hello, welcome to an interactive IPython demo.'
# The mark below defines a block boundary, which is a point where IPython will
# stop execution and return to the interactive prompt. The dashes are actually
# optional and used only as a visual aid to clearly separate blocks while
# editing the demo code.
# <demo> stop
x = 1
y = 2
# <demo> stop
# the mark below makes this block as silent
# <demo> silent
print 'This is a silent block, which gets executed but not printed.'
# <demo> stop
# <demo> auto
print 'This is an automatic block.'
print 'It is executed without asking for confirmation, but printed.'
z = x+y
print 'z=',x
# <demo> stop
# This is just another normal block.
print 'z is now:', z
print 'bye!'
"""
fp = tempfile.mkdtemp(prefix = 'DemoTmp')
Fernando Perez
Merging (slightly modified) Tom Fetherston's demo branch....
r2102 fd, filename = tempfile.mkstemp(prefix = 'demoExample1File', suffix = '.py',
dir = fp)
Tom Fetherston
Added demo-exercizer.py file.
r1997 f = os.fdopen(fd, 'wt')
f.write(example1)
f.close()
my_d = Demo(filename)
my_cd = ClearDemo(filename)
fobj = StringIO.StringIO(example1)
str_d = Demo(fobj, title='via stringio')
print '''
The example that is embeded in demo.py file has been used to create
the following 3 demos, and should now be available to use:
my_d() -- created from a file
my_cd() -- created from a file, a ClearDemo
Fernando Perez
Merging (slightly modified) Tom Fetherston's demo branch....
r2102 str_d() -- same as above, but created via a StringIO object
Tom Fetherston
Added demo-exercizer.py file.
r1997 Call by typing their name, (with parentheses), at the
ipython prompt, interact with the block, then call again
to run the next block.
'''