Forked from pyrant on BitBucket(https://bitbucket.org/neithere/pyrant)