<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def __get_condition(self, url):
 """ Gets the condition for a url and validates it. :param str url: The url to get the condition for """

        if self.__heuristics_condition is not None:
            return self.__heuristics_condition
        if "pass_heuristics_condition" in self.__sites_object[url]:
            condition = \
                self.__sites_object[url]["pass_heuristics_condition"]
        else:
            condition = \
                self.cfg_heuristics["pass_heuristics_condition"]

        # Because the condition will be eval-ed (Yeah, eval is evil, BUT only
        # when not filtered properly), we are filtering it here.
        # Anyway, if that filter-method is not perfect: This is not any
        # random user-input thats evaled. This is (hopefully still when you
        # read this) not a webtool, where you need to filter everything 100%
        # properly.
        disalloweds = condition
        heuristics = self.__get_enabled_heuristics(url)

        for allowed in self.__condition_allowed:
            disalloweds = disalloweds.replace(allowed, " ")

        for heuristic, _ in heuristics.items():
            disalloweds = re.sub(r"\b%s\b" % heuristic, " ", disalloweds)

        disalloweds = disalloweds.split(" ")
        for disallowed in disalloweds:
            if disallowed != "":
                self.log.error("Misconfiguration: In the condition,"
                               " an unknown heuristic was found and"
                               " will be ignored: %s", disallowed)
                condition = re.sub(r"\b%s\b" % disallowed, "True", condition)

        self.__heuristics_condition = condition
        # Now condition should just consits of not, and, or, (, ), and all
        # enabled heuristics.
        return condition