add granite.py