Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r71100:984c2d21a9f5 Date: 2014-04-30 20:54 +0200 http://bitbucket.org/pypy/pypy/changeset/984c2d21a9f5/
Log: merge heads diff --git a/lib-python/2.7/cProfile.py b/lib-python/2.7/cProfile.py --- a/lib-python/2.7/cProfile.py +++ b/lib-python/2.7/cProfile.py @@ -161,7 +161,7 @@ # ____________________________________________________________ def main(): - import os, sys + import os, sys, new from optparse import OptionParser usage = "cProfile.py [-o output_file_path] [-s sort] scriptfile [arg] ..." parser = OptionParser(usage=usage) @@ -184,12 +184,10 @@ sys.path.insert(0, os.path.dirname(progname)) with open(progname, 'rb') as fp: code = compile(fp.read(), progname, 'exec') - globs = { - '__file__': progname, - '__name__': '__main__', - '__package__': None, - } - runctx(code, globs, None, options.outfile, options.sort) + mainmod = new.module('__main__') + mainmod.__file__ = progname + mainmod.__package__ = None + runctx(code, mainmod.__dict__, None, options.outfile, options.sort) else: parser.print_usage() return parser diff --git a/pypy/module/micronumpy/test/test_ufuncs.py b/pypy/module/micronumpy/test/test_ufuncs.py --- a/pypy/module/micronumpy/test/test_ufuncs.py +++ b/pypy/module/micronumpy/test/test_ufuncs.py @@ -310,7 +310,7 @@ assert math.isnan(fmod(v, 2)) def test_minimum(self): - from numpypy import array, minimum + from numpypy import array, minimum, nan, isnan a = array([-5.0, -0.0, 1.0]) b = array([ 3.0, -2.0,-3.0]) @@ -318,8 +318,12 @@ for i in range(3): assert c[i] == min(a[i], b[i]) + arg1 = array([0, nan, nan]) + arg2 = array([nan, 0, nan]) + assert isnan(minimum(arg1, arg2)).all() + def test_maximum(self): - from numpypy import array, maximum + from numpypy import array, maximum, nan, isnan a = array([-5.0, -0.0, 1.0]) b = array([ 3.0, -2.0,-3.0]) @@ -327,6 +331,10 @@ for i in range(3): assert c[i] == max(a[i], b[i]) + arg1 = array([0, nan, nan]) + arg2 = array([nan, 0, nan]) + assert isnan(maximum(arg1, arg2)).all() + x = maximum(2, 3) assert x == 3 assert isinstance(x, (int, long)) diff --git a/pypy/module/micronumpy/types.py b/pypy/module/micronumpy/types.py --- a/pypy/module/micronumpy/types.py +++ b/pypy/module/micronumpy/types.py @@ -705,20 +705,20 @@ return math.fabs(v) @simple_binary_op + def max(self, v1, v2): + return v1 if v1 >= v2 or rfloat.isnan(v1) else v2 + + @simple_binary_op + def min(self, v1, v2): + return v1 if v1 <= v2 or rfloat.isnan(v1) else v2 + + @simple_binary_op def fmax(self, v1, v2): - if rfloat.isnan(v2): - return v1 - elif rfloat.isnan(v1): - return v2 - return max(v1, v2) + return v1 if v1 >= v2 or rfloat.isnan(v2) else v2 @simple_binary_op def fmin(self, v1, v2): - if rfloat.isnan(v2): - return v1 - elif rfloat.isnan(v1): - return v2 - return min(v1, v2) + return v1 if v1 <= v2 or rfloat.isnan(v2) else v2 @simple_binary_op def fmod(self, v1, v2): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit