def build_from_dict(self, tax_benefit_system, input_dict):
        """
            Build a simulation from ``input_dict``

            This method uses :any:`build_from_entities` if entities are fully specified, or :any:`build_from_variables` if not.

            :param dict input_dict: A dict represeting the input of the simulation
            :return: A :any:`Simulation`
        """

        input_dict = self.explicit_singular_entities(tax_benefit_system, input_dict)
        if any(key in tax_benefit_system.entities_plural() for key in input_dict.keys()):
            return self.build_from_entities(tax_benefit_system, input_dict)
        else:
            return self.build_from_variables(tax_benefit_system, input_dict)
Build a simulation from ``input_dict``

            This method uses :any:`build_from_entities` if entities are fully specified, or :any:`build_from_variables` if not.

            :param dict input_dict: A dict represeting the input of the simulation
            :return: A :any:`Simulation`