refactor par with _compat.py