siesta.py complete