When deserializing a URL provided at instantiation time, or on any assignment of a hostname, punycode encoding should be detected and decoded. When serializing (str(), &c.) the punycode should encoded version of any non-ASCII-safe hostname should be used.
Reference in Marrow Mailer: