Esempio n. 1
0
 def test_assigned_tuple_expansion(self):
     code = dedent('''
         u, v = 0.0, 1.0
         [x, y] = 0.0, 1.0
         ''')
     assigned = list(sorted(get_assigned(code)))
     expect = ['u', 'v', 'x', 'y']
     self.assertEqual(assigned, expect)
Esempio n. 2
0
 def test_assigned_tuple_expansion(self):
     code = dedent('''
         u, v = 0.0, 1.0
         [x, y] = 0.0, 1.0
         ''')
     assigned = list(sorted(get_assigned(code)))
     expect = ['u', 'v', 'x', 'y']
     self.assertEqual(assigned, expect)
Esempio n. 3
0
 def test_assigned_values(self):
     code = dedent('''
         u[0] = 0.0
         x = 1
         y = sin(x)*theta
         z += 1
         ''')
     assigned = list(sorted(get_assigned(code)))
     # sin or theta should not be detected.
     expect = ['u', 'x', 'y', 'z']
     self.assertEqual(assigned, expect)
Esempio n. 4
0
 def test_assigned_values(self):
     code = dedent('''
         u[0] = 0.0
         x = 1
         y = sin(x)*theta
         z += 1
         ''')
     assigned = list(sorted(get_assigned(code)))
     # sin or theta should not be detected.
     expect = ['u', 'x', 'y', 'z']
     self.assertEqual(assigned, expect)
 def _get_method_body(self, meth, lines, indent=' ' * 8):
     args = set(inspect.getargspec(meth).args)
     src = [self._process_body_line(line) for line in lines]
     declared = [x[0] for x in src if len(x[0]) > 0]
     cython_body = ''.join([x[1] for x in src])
     body = ''.join(lines)
     dedented_body = dedent(body)
     symbols = get_assigned(dedented_body)
     undefined = symbols - set(declared) - args
     declare = [indent + 'cdef double %s\n' % x for x in sorted(undefined)]
     code = ''.join(declare) + cython_body
     return code
Esempio n. 6
0
 def _get_method_body(self, meth, lines, indent=' ' * 8):
     args = set(inspect.getargspec(meth).args)
     src = [self._process_body_line(line) for line in lines]
     declared = []
     for names, defn in src:
         if names:
             declared.extend(x.strip() for x in names.split(','))
     cython_body = ''.join([x[1] for x in src])
     body = ''.join(lines)
     dedented_body = dedent(body)
     symbols = get_assigned(dedented_body)
     undefined = symbols - set(declared) - args
     declare = [indent + 'cdef double %s\n' % x for x in sorted(undefined)]
     code = ''.join(declare) + cython_body
     return code