##// END OF EJS Templates
Add -g option to %run to glob expand arguments
Takafumi Arakaki -
Show More
@@ -19,6 +19,7 b' import os'
19 19 import sys
20 20 import time
21 21 from StringIO import StringIO
22 from glob import glob
22 23
23 24 # cProfile was added in Python2.5
24 25 try:
@@ -48,6 +49,17 b' from IPython.utils.path import get_py_filename, unquote_filename'
48 49 from IPython.utils.timing import clock, clock2
49 50 from IPython.utils.warn import warn, error
50 51
52
53 def globlist(args):
54 """
55 Do glob expansion for each element in `args` and return concatenated list.
56 """
57 expanded = []
58 for a in args:
59 expanded.extend(glob(a))
60 return expanded
61
62
51 63 #-----------------------------------------------------------------------------
52 64 # Magic implementation classes
53 65 #-----------------------------------------------------------------------------
@@ -447,10 +459,14 b' python-profiler package from non-free.""")'
447 459
448 460 will run the example module.
449 461
462 -g: enables shell-like glob expansion of arguments to the script
463 to run. Patterns '*', '?', '[seq]' and '[!seq]' can be used.
464
450 465 """
451 466
452 467 # get arguments and set sys.argv for program to be run.
453 opts, arg_lst = self.parse_options(parameter_s, 'nidtN:b:pD:l:rs:T:em:',
468 opts, arg_lst = self.parse_options(parameter_s,
469 'nidtN:b:pD:l:rs:T:em:g',
454 470 mode='list', list_all=1)
455 471 if "m" in opts:
456 472 modulename = opts["m"][0]
@@ -487,6 +503,10 b' python-profiler package from non-free.""")'
487 503 # simulate shell expansion on arguments, at least tilde expansion
488 504 args = [ os.path.expanduser(a) for a in arg_lst[1:] ]
489 505
506 # glob expansion
507 if 'g' in opts:
508 args = globlist(args)
509
490 510 sys.argv = [filename] + args # put in the proper filename
491 511 # protect sys.argv from potential unicode strings on Python 2:
492 512 if not py3compat.PY3:
General Comments 0
You need to be logged in to leave comments. Login now