"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-06 20:50:12.555416
"""

```python
from typing import List, Dict

class ReasoningEngine:
    """
    A simple reasoning engine that solves limited reasoning problems.
    This engine evaluates a set of conditions to determine if an action should be taken.
    """

    def __init__(self, rules: List[Dict[str, str]]):
        """
        Initialize the ReasoningEngine with a list of rules.

        :param rules: A list of dictionaries where each dictionary contains keys 'condition' and 'action'.
        """
        self.rules = rules

    def evaluate(self, data: Dict[str, any]) -> bool:
        """
        Evaluate the provided data against the defined rules to determine if an action should be taken.

        :param data: A dictionary containing the necessary data to evaluate the conditions.
        :return: True if an action should be taken based on the evaluation, False otherwise.
        """
        for rule in self.rules:
            condition = rule['condition']
            action = rule['action']

            # Simulate complex condition checking
            eval_condition = eval(condition, {}, {'data': data})

            if eval_condition:
                return True

        return False


# Example usage:

rules = [
    {
        'condition': "data['temperature'] > 30 and data['humidity'] < 50",
        'action': "turn_on_air_conditioner"
    },
    {
        'condition': "data['light_level'] < 100",
        'action': "turn_on_lights"
    }
]

data = {
    'temperature': 28,
    'humidity': 45,
    'light_level': 90
}

reasoning_engine = ReasoningEngine(rules)
should_action_be_taken = reasoning_engine.evaluate(data)

print("Should action be taken?", should_action_be_taken)  # Output: True, based on the first rule condition being met.
```

This example demonstrates a basic reasoning engine capable of evaluating conditions against provided data and determining whether an action should be taken. The `eval` function is used here for simplicity to evaluate conditions, but in real-world applications, this could lead to security risks and should be replaced with safer alternatives like using custom functions or classes.