"""Create fact_checker
Generated by Phi-Octopus Eden
2025-11-05 22:43:32.485316
"""

```python
from typing import List, Dict, Any

class FactChecker:
    """
    A basic fact checker that validates facts based on predefined rules.
    Each rule is a function that takes a fact and returns True if the fact passes the check.
    """

    def __init__(self):
        self.rules: List[callable] = []

    def add_rule(self, rule: callable) -> None:
        """
        Adds a validation rule to the checker.

        :param rule: A callable function that takes a single argument (fact) and returns a boolean.
        """
        self.rules.append(rule)

    def check_fact(self, fact: Dict[str, Any]) -> bool:
        """
        Checks if the given fact passes all the predefined rules.

        :param fact: A dictionary containing key-value pairs representing the fact to be checked.
        :return: True if the fact passes all checks, False otherwise.
        """
        for rule in self.rules:
            if not rule(fact):
                return False
        return True

# Example usage and validation rules

def is_valid_source(fact: Dict[str, Any]) -> bool:
    """
    Validates that the source of a fact is from a reputable source.

    :param fact: The fact to validate.
    :return: True if the source is valid, False otherwise.
    """
    return "reputable" in fact.get("source", {}).get("type", "")

def contains_reliable_evidence(fact: Dict[str, Any]) -> bool:
    """
    Validates that there is reliable evidence supporting the fact.

    :param fact: The fact to validate.
    :return: True if the fact has reliable evidence, False otherwise.
    """
    return "evidence" in fact and len(fact["evidence"]) > 0

# Creating a FactChecker instance
fact_checker = FactChecker()

# Adding rules to the checker
fact_checker.add_rule(is_valid_source)
fact_checker.add_rule(contains_reliable_evidence)

# Example facts to check
fact1: Dict[str, Any] = {
    "subject": "Climate Change",
    "statement": "The Earth is getting warmer due to human activities.",
    "source": {"type": "reputable", "publisher": "NASA"},
    "evidence": ["https://climate.nasa.gov/evidences/"]
}

fact2: Dict[str, Any] = {
    "subject": "Climate Change",
    "statement": "The Earth is getting warmer due to human activities.",
    "source": {"type": "unreliable", "publisher": "Unknown"},
    "evidence": []
}

# Checking facts
print(fact_checker.check_fact(fact1))  # Expected: True
print(fact_checker.check_fact(fact2))  # Expected: False
```