Example #1
0
def write_pxd(fname, h_name, ctps):

    def write_err_codes(pxd_out):
        pxd_out.write(INDENT+"enum:\n")
        for err_name in sorted(constants.ERR_CODES):
            pxd_out.write((INDENT*2)+"%s = %d\n" %\
                    (err_name, constants.ERR_CODES[err_name]))

    from cStringIO import StringIO
    pxd_out = open(fname, 'w')
    extern_block = StringIO()
    try:
        for cimp in get_pxd_cimports(get_ctp_classes(ctps)):
            if cimp: pxd_out.write(cimp+'\n')
        for ctp in ctps:
            for line in ctp.gen_pxd_intern_typedef():
                pxd_out.write(line+'\n')
        for ctp in ctps:
            for line in ctp.gen_pxd_extern_typedef():
                extern_block.write(INDENT+line+'\n')
        for ctp in ctps:
            for line in ctp.gen_pxd_extern_extra():
                extern_block.write(INDENT+line+'\n')
        extern_block = extern_block.getvalue()
        if extern_block.rstrip():
            pxd_out.write('cdef extern from "%s":\n' % h_name)
            write_err_codes(pxd_out)
            pxd_out.write(extern_block)
    finally:
        pxd_out.close()
Example #2
0
def write_pxd(ctps, fbuf, h_name):

    def write_err_codes(pxd_out):
        pxd_out.write(INDENT+"enum:\n")
        for err_name in sorted(constants.ERR_CODES):
            pxd_out.write((INDENT*2)+"%s = %d\n" %\
                    (err_name, constants.ERR_CODES[err_name]))

    buf = StringIO()
    extern_block = StringIO()
    for cimp in get_pxd_cimports(get_ctp_classes(ctps)):
        if cimp: buf.write(cimp+'\n')
    for ctp in ctps:
        for line in ctp.gen_pxd_intern_typedef():
            buf.write(line+'\n')
    for ctp in ctps:
        for line in ctp.gen_pxd_extern_typedef():
            extern_block.write(INDENT+line+'\n')
    for ctp in ctps:
        for line in ctp.gen_pxd_extern_extra():
            extern_block.write(INDENT+line+'\n')
    extern_block = extern_block.getvalue()
    if extern_block.rstrip():
        buf.write('cdef extern from "%s":\n' % h_name)
        write_err_codes(buf)
        buf.write(extern_block)

    fbuf.write(buf.getvalue())
Example #3
0
def write_pxd(ctps, fbuf, h_name):
    def write_err_codes(pxd_out):
        pxd_out.write(INDENT + "enum:\n")
        for err_name in sorted(constants.ERR_CODES):
            pxd_out.write((INDENT*2)+"%s = %d\n" %\
                    (err_name, constants.ERR_CODES[err_name]))

    buf = StringIO()
    extern_block = StringIO()
    for cimp in get_pxd_cimports(get_ctp_classes(ctps)):
        if cimp: buf.write(cimp + '\n')
    for ctp in ctps:
        for line in ctp.gen_pxd_intern_typedef():
            buf.write(line + '\n')
    for ctp in ctps:
        for line in ctp.gen_pxd_extern_typedef():
            extern_block.write(INDENT + line + '\n')
    for ctp in ctps:
        for line in ctp.gen_pxd_extern_extra():
            extern_block.write(INDENT + line + '\n')
    extern_block = extern_block.getvalue()
    if extern_block.rstrip():
        buf.write('cdef extern from "%s":\n' % h_name)
        write_err_codes(buf)
        buf.write(extern_block)

    fbuf.write(buf.getvalue())