Skip to content

Commit 91e849b

Browse files
committed
Render source code using python functions instead of Jinja templates
- Type checker can help out when updating the functions - The output formatting is much more readable now
1 parent a7dc982 commit 91e849b

21 files changed

+1218
-945
lines changed

MANIFEST.in

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
recursive-include robotpy_build/pybind11/include *.h
2-
recursive-include robotpy_build/autowrap *.j2
32
recursive-include robotpy_build/include *.h

robotpy_build/autowrap/buffer.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import io
2+
import contextlib
3+
import inspect
4+
5+
6+
class RenderBuffer:
7+
def __init__(self) -> None:
8+
self._buffer = io.StringIO()
9+
10+
self._indent = ""
11+
self._indentlen = 0
12+
13+
def getvalue(self) -> str:
14+
return self._buffer.getvalue()
15+
16+
def rel_indent(self, spaces: int):
17+
self._indentlen += spaces
18+
self._indent = " " * self._indentlen
19+
20+
@contextlib.contextmanager
21+
def indent(self, spaces: int = 2):
22+
self._indentlen += spaces
23+
self._indent = " " * self._indentlen
24+
try:
25+
yield
26+
finally:
27+
self._indentlen -= spaces
28+
self._indent = " " * self._indentlen
29+
30+
def writeln(self, s: str = ""):
31+
if not s:
32+
self._buffer.write("\n")
33+
else:
34+
for line in s.splitlines(False):
35+
if line:
36+
self._buffer.write(f"{self._indent}{line}\n")
37+
else:
38+
self._buffer.write("\n")
39+
40+
def write_trim(self, s: str):
41+
for line in inspect.cleandoc(s).splitlines(False):
42+
if line:
43+
self._buffer.write(f"{self._indent}{line}\n")
44+
else:
45+
self._buffer.write("\n")

robotpy_build/autowrap/cls_prologue.cpp.j2

Lines changed: 0 additions & 28 deletions
This file was deleted.

robotpy_build/autowrap/cls_rpy_include.hpp.j2

Lines changed: 0 additions & 30 deletions
This file was deleted.

robotpy_build/autowrap/cls_tmpl_impl.hpp.j2

Lines changed: 0 additions & 56 deletions
This file was deleted.

robotpy_build/autowrap/cls_tmpl_inst.cpp.j2

Lines changed: 0 additions & 23 deletions
This file was deleted.

robotpy_build/autowrap/cls_tmpl_inst.hpp.j2

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)