30 lines
813 B
Python
30 lines
813 B
Python
from pydantic import BaseModel
|
|
from typing import List, Optional
|
|
|
|
from models.item import Item
|
|
from models.constraint import Constraint
|
|
from models.irt_model import IRTModel
|
|
from models.objective_function import ObjectiveFunction
|
|
from models.advanced_options import AdvancedOptions
|
|
|
|
class SolverRun(BaseModel):
|
|
items: List[Item]
|
|
constraints: List[Constraint]
|
|
irt_model: IRTModel
|
|
objective_function: ObjectiveFunction
|
|
total_form_items: int
|
|
total_forms: int = 1
|
|
theta_cut_score: float = 0.00
|
|
advanced_options: Optional[AdvancedOptions]
|
|
engine: str
|
|
|
|
def get_item(self, item_id):
|
|
for item in self.items:
|
|
if str(item.id) == item_id:
|
|
return item
|
|
return False
|
|
|
|
def remove_items(self, items):
|
|
self.items = [item for item in self.items if item not in items]
|
|
return True
|