|
Revision 24, 1.0 kB
(checked in by KirkMcDonald, 2 years ago)
|
CeleriD/Pyd? integration.
|
| Line | |
|---|
| 1 |
f = open('func_wrap.txt', 'w') |
|---|
| 2 |
|
|---|
| 3 |
template = "d_type!(ArgType!(fn_t, %s))(PyTuple_GetItem(args, %s))" |
|---|
| 4 |
|
|---|
| 5 |
for i in range(1, 11): |
|---|
| 6 |
f.write(" " * 8 + "} static if (MIN_ARGS <= %s && MAX_ARGS >= %s) {\n" % (i, i)) |
|---|
| 7 |
f.write(" " * 12 + "if (ARGS == %s) {\n" % i) |
|---|
| 8 |
f.write(" " * 16 + "static if (is(RetType : void)) {\n") |
|---|
| 9 |
f.write(" " * 20 + "fn(\n") |
|---|
| 10 |
for j in range(i): |
|---|
| 11 |
f.write(" " * 24 + template % (j+1, j)) |
|---|
| 12 |
if j < i-1: |
|---|
| 13 |
f.write(',') |
|---|
| 14 |
f.write('\n') |
|---|
| 15 |
f.write(" " * 20 + ");\n") |
|---|
| 16 |
f.write(" " * 20 + "Py_INCREF(Py_None);\n") |
|---|
| 17 |
f.write(" " * 20 + "ret = Py_None;\n") |
|---|
| 18 |
f.write(" " * 16 + "} else {\n") |
|---|
| 19 |
f.write(" " * 20 + "ret = _py( fn(\n") |
|---|
| 20 |
for j in range(i): |
|---|
| 21 |
f.write(" " * 24 + template % (j+1, j)) |
|---|
| 22 |
if j < i-1: |
|---|
| 23 |
f.write(',') |
|---|
| 24 |
f.write('\n') |
|---|
| 25 |
f.write(" " * 20 + ") );\n") |
|---|
| 26 |
f.write(" " * 16 + "}\n") |
|---|
| 27 |
f.write(" " * 12 + "}\n") |
|---|
| 28 |
f.write (" " * 8 + "}") |
|---|