##// END OF EJS Templates
Sync with trunk
Gael Varoquaux -
r1351:aed2284e merge
parent child Browse files
Show More
@@ -53,7 +53,7 b' globsyntax = """\\'
53 - readme*, exclude files ending with .bak
53 - readme*, exclude files ending with .bak
54 !.svn/ !.hg/ !*_Data/ rec:.
54 !.svn/ !.hg/ !*_Data/ rec:.
55 - Skip .svn, .hg, foo_Data dirs (and their subdirs) in recurse.
55 - Skip .svn, .hg, foo_Data dirs (and their subdirs) in recurse.
56 Trailing / is the key, \ does not work!
56 Trailing / is the key, \ does not work! Use !.*/ for all hidden.
57 dir:foo
57 dir:foo
58 - the directory foo if it exists (not files in foo)
58 - the directory foo if it exists (not files in foo)
59 dir:*
59 dir:*
@@ -63,13 +63,16 b' globsyntax = """\\'
63 foo.py is *not* included twice.
63 foo.py is *not* included twice.
64 @filelist.txt
64 @filelist.txt
65 - All files listed in 'filelist.txt' file, on separate lines.
65 - All files listed in 'filelist.txt' file, on separate lines.
66 "cont:class \wak:" rec:*.py
67 - Match files containing regexp. Applies to subsequent files.
68 note quotes because of whitespace.
66 """
69 """
67
70
68
71
69 __version__ = "0.2"
72 __version__ = "0.2"
70
73
71
74
72 import os,glob,fnmatch,sys
75 import os,glob,fnmatch,sys,re
73 from sets import Set as set
76 from sets import Set as set
74
77
75
78
@@ -84,21 +87,34 b' def expand(flist,exp_dirs = False):'
84
87
85 """
88 """
86 if isinstance(flist, basestring):
89 if isinstance(flist, basestring):
87 flist = flist.split()
90 import shlex
91 flist = shlex.split(flist)
88 done_set = set()
92 done_set = set()
89 denied_set = set()
93 denied_set = set()
90
94 cont_set = set()
95 cur_rejected_dirs = set()
96
91 def recfind(p, pats = ["*"]):
97 def recfind(p, pats = ["*"]):
92 denied_dirs = ["*" + d+"*" for d in denied_set if d.endswith("/")]
98 denied_dirs = [os.path.dirname(d) for d in denied_set if d.endswith("/")]
93 #print "de", denied_dirs
94 for (dp,dnames,fnames) in os.walk(p):
99 for (dp,dnames,fnames) in os.walk(p):
95 # see if we should ignore the whole directory
100 # see if we should ignore the whole directory
96 dp_norm = dp.replace("\\","/") + "/"
101 dp_norm = dp.replace("\\","/") + "/"
97 deny = False
102 deny = False
103 # do not traverse under already rejected dirs
104 for d in cur_rejected_dirs:
105 if dp.startswith(d):
106 deny = True
107 break
108 if deny:
109 continue
110
111
98 #print "dp",dp
112 #print "dp",dp
113 bname = os.path.basename(dp)
99 for deny_pat in denied_dirs:
114 for deny_pat in denied_dirs:
100 if fnmatch.fnmatch( dp_norm, deny_pat):
115 if fnmatch.fnmatch( bname, deny_pat):
101 deny = True
116 deny = True
117 cur_rejected_dirs.add(dp)
102 break
118 break
103 if deny:
119 if deny:
104 continue
120 continue
@@ -124,6 +140,17 b' def expand(flist,exp_dirs = False):'
124 if fnmatch.fnmatch(os.path.basename(p), deny_pat):
140 if fnmatch.fnmatch(os.path.basename(p), deny_pat):
125 deny = True
141 deny = True
126 break
142 break
143 if cont_set:
144 try:
145 cont = open(p).read()
146 except IOError:
147 # deny
148 continue
149 for pat in cont_set:
150 if not re.search(pat,cont, re.IGNORECASE):
151 deny = True
152 break
153
127 if not deny:
154 if not deny:
128 yield it
155 yield it
129 return
156 return
@@ -158,7 +185,8 b' def expand(flist,exp_dirs = False):'
158 # glob only dirs
185 # glob only dirs
159 elif ent.lower().startswith('dir:'):
186 elif ent.lower().startswith('dir:'):
160 res.extend(once_filter(filter(os.path.isdir,glob.glob(ent[4:]))))
187 res.extend(once_filter(filter(os.path.isdir,glob.glob(ent[4:]))))
161
188 elif ent.lower().startswith('cont:'):
189 cont_set.add(ent[5:])
162 # get all files in the specified dir
190 # get all files in the specified dir
163 elif os.path.isdir(ent) and exp_dirs:
191 elif os.path.isdir(ent) and exp_dirs:
164 res.extend(once_filter(filter(os.path.isfile,glob.glob(ent + os.sep+"*"))))
192 res.extend(once_filter(filter(os.path.isfile,glob.glob(ent + os.sep+"*"))))
@@ -13,7 +13,8 b' rc = client.MultiEngineClient()'
13 # Initialize the common code on the engines
13 # Initialize the common code on the engines
14 rc.run('mcpricer.py')
14 rc.run('mcpricer.py')
15
15
16 # Push the variables that won't change (stock print, interest rate, days and MC paths)
16 # Push the variables that won't change
17 #(stock print, interest rate, days and MC paths)
17 rc.push(dict(S=100.0, r=0.05, days=260, paths=10000))
18 rc.push(dict(S=100.0, r=0.05, days=260, paths=10000))
18
19
19 task_string = """\
20 task_string = """\
@@ -23,8 +24,8 b' vp, ap, vc, ac = op.vanilla_put, op.asian_put, op.vanilla_call, op.asian_call'
23 """
24 """
24
25
25 # Create arrays of strike prices and volatilities
26 # Create arrays of strike prices and volatilities
26 K_vals = N.arange(90.0,110.0,2.0)
27 K_vals = N.linspace(90.0,100.0,5)
27 sigma_vals = N.arange(0.02, 0.3, 0.02)
28 sigma_vals = N.linspace(0.0, 0.2,5)
28
29
29 # Submit tasks
30 # Submit tasks
30 taskids = []
31 taskids = []
General Comments 0
You need to be logged in to leave comments. Login now