updated bundles process
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
from lib.irt.models.three_parameter_logistic import ThreeParameterLogistic
|
||||
from lib.errors.item_generation_error import ItemGenerationError
|
||||
|
||||
class ItemResponseFunction():
|
||||
def __init__(self, irt_model):
|
||||
@ -8,5 +9,4 @@ class ItemResponseFunction():
|
||||
if self.model_data.model == '3PL':
|
||||
return ThreeParameterLogistic(self.model_data, kwargs).result()
|
||||
else:
|
||||
# potentially error out
|
||||
return None
|
||||
raise ItemGenerationError("irt model not supported or provided")
|
||||
|
@ -32,11 +32,19 @@ class SolverRun(BaseModel):
|
||||
bundles = []
|
||||
|
||||
for item in self.items:
|
||||
attribute_id = getattr(item, type_attribute)()
|
||||
# dynamically get the attribute that will be used as an identifier to bundle like items
|
||||
attribute_id = getattr(item, type_attribute, None)()
|
||||
|
||||
# make sure the item has said attribute
|
||||
if attribute_id != None:
|
||||
# get index of the bundle in the bundles list
|
||||
bundle_index = next((index for (index, bundle) in enumerate(bundles) if bundle['id'] == attribute_id), None)
|
||||
|
||||
# if the bundle index isn't found then the bundle hasn't been created
|
||||
# and added to the list and needs to be, else increment the count of items
|
||||
# in the bundle
|
||||
if bundle_index == None:
|
||||
bundles.append({ 'id': item.passage, 'count': 1, 'type': type_attribute })
|
||||
bundles.append({ 'id': attribute_id, 'count': 1, 'type': type_attribute })
|
||||
else:
|
||||
bundles[bundle_index]['count'] += 1
|
||||
|
||||
|
Reference in New Issue
Block a user