'Perform a check on a URL that needs to account for bugs in `unparse()`
If you need to account for quirks in browser URL parsers, you should
use this along with `is_web_safe_url()`. Trying to parse URLs like
a browser would just makes things really hairy.'

def perform_paranoid_check(self, check, *args, **kwargs):

    variants_to_check = (self, UrlParser(self.unparse()))
    return all((check(variant, *args, **kwargs) for variant in variants_to_check))
