def test_multiline_spec0(self): code = ''' #pythran export foo( # ) def foo(): return ''' pythran.spec_parser(code)
def test_crappy_spec1(self): code = ''' # pythran export foo(int) #this is a pythran export test def foo(i,j,k): return ''' pythran.spec_parser(code)
def test_multiline_spec1(self): code = ''' #pythran export foo(int #, int # ) def foo(i,j): return ''' pythran.spec_parser(code)
def test_middle_spec1(self): code = ''' def foo(i): return #this is a pythran export test # pythran export foo(int) #this is an export test # pythran export foo(float) def bar(i): return ''' self.assertEquals(len(pythran.spec_parser(code)), 1) self.assertEquals(len(pythran.spec_parser(code)['foo']), 2)
def test_middle_spec1(self): code = ''' def zoo(i): return #this is a pythran export test # pythran export zoo(int) #this is an export test # pythran export zoo(str) def bar(i): return ''' self.assertEquals(len(pythran.spec_parser(code).functions), 1) self.assertEquals(len(pythran.spec_parser(code).functions['zoo']), 2)
def test_multiline_spec0(self): code = ''' #pythran export foo( # ) def foo(): return ''' self.assertTrue(pythran.spec_parser(code))
def test_crappy_spec1(self): code = ''' # pythran export foo(int) #this is a pythran export test def foo(i): return ''' self.assertTrue(pythran.spec_parser(code))
def test_crappy_spec1(self): code = ''' # pythran export poo(int) #this is a pythran export test def poo(i): return ''' self.assertTrue(pythran.spec_parser(code))
def test_middle_spec0(self): code = ''' def too(i): return # pythran export too(int) #this is a pythran export test def bar(i): return ''' self.assertTrue(pythran.spec_parser(code))
def test_middle_spec0(self): code = ''' def foo(i): return # pythran export foo(int) #this is a pythran export test def bar(i): return ''' self.assertTrue(pythran.spec_parser(code))
def interface(cls, name=None, file=None): ''' Return Pythran specs.''' default_value = {name: []} try: from pythran import spec_parser specs = spec_parser(open(file).read()) if file else default_value except SyntaxError: specs = default_value return specs
def interface(name=None, file_=None): """ Return Pythran specs.""" default_value = {name: []} # Look for an extra spec file spec_file = os.path.splitext(file_)[0] + '.pythran' if os.path.isfile(spec_file): return load_specfile(open(spec_file).read()) else: return spec_parser(open(file_).read()) if file_ else default_value
def test_multiline_spec2(self): code = ''' # pythran export foo(int, # float #, int # ) def foo(i,j,k): return ''' self.assertTrue(pythran.spec_parser(code))
def interface(name=None, file_=None): """ Return Pythran specs.""" # Look for an extra spec file spec_file = os.path.splitext(file_)[0] + '.pythran' if os.path.isfile(spec_file): return load_specfile(spec_file) elif file_ is None: return Spec({name: []}) else: with open(file_) as fd: return spec_parser(fd.read())
def run(self): import glob import timeit from pythran import cxx_generator, spec_parser from pythran import compile as pythran_compile where = "pythran/tests/cases/" candidates = glob.glob(where + '*.py') sys.path.append(where) median = lambda x: sorted(x)[len(x) / 2] for candidate in candidates: with file(candidate) as content: runas = [line for line in content.readlines() if line.startswith(BenchmarkCommand.runas_marker)] if runas: module_name, _ = os.path.splitext( os.path.basename(candidate)) runas_commands = runas[0].replace( BenchmarkCommand.runas_marker, '').split(";") runas_context = ";".join(["import {0}".format( module_name)] + runas_commands[:-1]) runas_command = module_name + '.' + runas_commands[-1] # cleaning sopath = module_name + ".so" if os.path.exists(sopath): os.remove(sopath) ti = timeit.Timer(runas_command, runas_context) # pythran part if self.mode.startswith('pythran'): specs = spec_parser(candidate) code = file(candidate).read() mod = cxx_generator(module_name, code, specs) cxxflags = ["-Ofast", "-DNDEBUG"] if self.mode == "pythran+omp": cxxflags.append("-fopenmp") pythran_compile(os.environ.get("CXX", "c++"), mod, cxxflags=cxxflags) timing = median(ti.repeat(self.nb_iter, number=1)) print module_name, timing
def run(self): import os for extension in self.extensions: source = extension.sources[0] out = extension.name + '.so' if not path.isfile( out) or path.getmtime(source) > path.getmtime(out): print 'building pythran extension', extension.name content = file(source).read() module = pythran.cxx_generator(extension.name, content, pythran.spec_parser(content), []) pythran.compile(os.environ.get('CXX', 'c++'), module, out, cxxflags=['-O2', '-g'] + extension.extra_compile_args + extension.extra_link_args)
def run(self): import os for extension in self.extensions: source = extension.sources[0] out = extension.name + '.so' if not path.isfile(out) or path.getmtime(source) > path.getmtime(out): print 'building pythran extension', extension.name content = file(source).read() module = pythran.cxx_generator( extension.name, content, pythran.spec_parser(content), [] ) pythran.compile( os.environ.get('CXX','c++'), module, out, cxxflags = ['-O2', '-g'] + extension.extra_compile_args + extension.extra_link_args )
def interface(name=None, file_=None): """ Return Pythran specs.""" default_value = {name: []} return spec_parser(open(file_).read()) if file_ else default_value
def test_parser(self): real_path = os.path.splitext(os.path.realpath(__file__))[0] + ".py" print pythran.spec_parser(real_path)
def test_trailing_comma_arg0(self): code = ''' # pythran export foo(int,) def foo(n): return n ''' self.assertTrue(pythran.spec_parser(code))
def test_crappy_spec0(self): code = ''' # pythran export soo(int) this is an int test def soo(i): return ''' self.assertTrue(pythran.spec_parser(code))
def test_var_export0(self): code = ''' # pythran export foo foo = 1 ''' self.assertTrue(pythran.spec_parser(code))
def __call__(self): module_path=os.path.join(os.path.dirname(__file__),"cases",self.module_name+".py") specs = pythran.spec_parser(module_path) print self.module_name module= pythran.cxx_generator(self.module_name, file(module_path).read(), specs) pythran.compile(os.environ.get("CXX","c++"), module, check=False)
def test_parser(self): real_path = os.path.splitext(os.path.realpath(__file__))[0] + ".py" with open(real_path) as fd: print(pythran.spec_parser(fd.read()))
def test_var_export0(self): code = ''' # pythran export coo coo = 1 ''' self.assertTrue(pythran.spec_parser(code))
def test_parser(self): real_path = os.path.splitext(os.path.realpath(__file__))[0] + ".py" print(pythran.spec_parser(real_path))