py plug framework