python3 portability