from lib.irt.models.three_parameter_logistic import ThreeParameterLogistic from lib.irt.models.rasch import Rasch from lib.errors.item_generation_error import ItemGenerationError class ItemResponseFunction(): def __init__(self, irt_model): self.model_data = irt_model def calculate(self, **kwargs): if self.model_data.model == '3PL': return ThreeParameterLogistic(self.model_data, kwargs).result() elif self.model_data.model == 'RASCH': return Rasch(self.model_data, kwargs).result() else: raise ItemGenerationError("irt model not supported or provided")