def evaluate_documentation(self):
        if not hasattr(self, "_evaluate_documentation"):
            evaluator = {
                "title": _("Documentation hosted on Read The Docs"),
                "message": jinja2.Markup(
                    _("Documentation can be one of the most important parts of any library. "
                      "Even more important than just having documentation, is making sure that people are "
                      "able to find it easily."
                      "<br /><br />"
                      "Read The Docs is an open source platform for hosting documentation generated by Sphinx."
                      "<br /><br />"
                      "Hosting your documentation on Read The Docs is easy (even if it's just an additional copy), and "
                      "it allows people who want to use your package the ability to locate your documentation in "
                      "what is quickly becoming a one stop shop for online open source documentation."
                      "<br /><br />"
                      "<small>If this says you aren't hosted on Read The Docs and you are please contact "
                      "<a href='mailto:support@crate.io'>support@crate.io</a></small>")
                ),
            }

            from packages.models import ReadTheDocsPackageSlug

            qs = ReadTheDocsPackageSlug.objects.filter(package=self.package)
            slug = qs[0].slug if qs else self.package.name

            key = slug % "evaluate:rtd:%s"

            if cache.get(key, version=4) is not None:
                hosted_on_rtd, url = cache.get(key, version=4)
            else:
                try:
                    api = slumber.API(base_url="http://readthedocs.org/api/v1/")
                    results = api.project.get(slug__iexact=slug)
                except exceptions.SlumberHttpBaseException:
                    return {
                        "level": "unknown",
                        "message": jinja2.Markup(_('There was an error with the <a href="http://readthedocs.org/">Read The Docs</a> API.')),
                        "evaluator": evaluator,
                    }

                if results["objects"]:
                    hosted_on_rtd = True
                    url = results["objects"][0]["subdomain"]
                else:
                    hosted_on_rtd = False
                    url = None

                cache.set(key, (hosted_on_rtd, url), 60 * 30, version=4)  # Cache This for 30 Minutes

            if hosted_on_rtd:
                self._evaluate_documentation = {
                    "level": "success",
                    "message": jinja2.Markup(_('Available on <a href="%s">Read The Docs</a>') % url),
                    "evaluator": evaluator,
                }
            else:
                self._evaluate_documentation = {
                    "level": "unknown",
                    "message": jinja2.Markup(_('Unavailable on <a href="http://readthedocs.org/">Read The Docs</a>')),
                    "evaluator": evaluator,
                }
        return self._evaluate_documentation
dataset/ETHPy150Open crate-archive/crate-site/crateweb/apps/packages/evaluators.py/ReleaseEvaluator.evaluate_documentation/swapped operands of `%`