tcgen.py