File: template.pyx

package info (click to toggle)
montage 6.0%2Bdfsg-7
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 23,120 kB
  • sloc: ansic: 205,662; python: 1,621; makefile: 1,547; javascript: 1,338; sh: 157; xml: 48
file content (31 lines) | stat: -rw-r--r-- 872 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# http://stackoverflow.com/questions/17014379/cython-cant-convert-python-object-to-double

cimport wrappers

cimport cpython.array as _array

{% for func in functions %}

cdef {{ func.name }}_cy({{ func.arguments_cdef|join(', ') }}):
    cdef wrappers.{{ func.name }}Return *ret
    ret = wrappers.{{ func.name }}({{ func.arguments|join(', ') }})
    retdict = {}
    
    if ret.status == 1:
        retdict['status'] = '1'
        retdict['msg'] = ret.msg
    
    else:
        {% for var in func.struct_vars %}retdict['{{ var }}'] = ret.{{ var }}
        {% endfor %}retdict['status'] = '0'
        del retdict['msg']
        
    return retdict

def {{ func.name }}({{ func.arguments_with_defaults|join(', ') }}):
    {% for line in func.array %}
    {{ line }}
    {% endfor %}
    return {{ func.name }}_cy({{ func.arguments_py_to_cdef|join(', ') }})

{% endfor %}