def begin_site(self):
        config = self.site.config

        if not hasattr(config, 'urlcleaner'):
            return

        if (hasattr(Site, '___url_cleaner_patched___')):
            return

        settings = config.urlcleaner

        def clean_url(urlgetter):
            @wraps(urlgetter)
            def wrapper(site, path, safe=None):
                url = urlgetter(site, path, safe)
                index_file_names = getattr(settings,
                                           'index_file_names',
                                           ['index.html'])
                rep = File(url)
                if rep.name in index_file_names:
                    url = rep.parent.path.rstrip('/')
                    if hasattr(settings, 'append_slash') and \
                            settings.append_slash:
                        url += '/'
                elif hasattr(settings, 'strip_extensions'):
                    if rep.kind in settings.strip_extensions:
                        url = rep.parent.child(rep.name_without_extension)
                return url or '/'
            return wrapper

        Site.___url_cleaner_patched___ = True
        Site.content_url = clean_url(Site.content_url)
This method will use the 'cower' command line utility
dataset/ETHPy150Open hyde/hyde/hyde/ext/plugins/urls.py/UrlCleanerPlugin.begin_site--crossover with--dataset/ETHPy150Open ultrabug/py3status/py3status/modules/arch_updates.py/Py3status._check_aur_updates