import functools and add ensure_ascii parameter