Source code for ccobra.item

""" CCOBRA task item container.

"""

from . import convert_to_basic_types

[docs]class Item(): """ Container class for representing task items. """ def __init__(self, identifier, domain, task, resp_type, choices, sequence_number): """ Constructs the task item container with information about the domain, task premises, response type, and response choices. Parameters ---------- identifier : object Unique identifier for the participant. domain : str Task domain (e.g., 'syllogistic'). task : str Task text in tuple string encoding (e.g., 'All;pilots;gardeners/Some;gardeners;cooks'). resp_type : str Response type (e.g., 'single-choice'). choices : list(str) Response options in string representation. sequence_number : int Position of the item in the experimental sequence. """ #: Unique identifier of the participant self.identifier = identifier #: Response type of the task self.response_type = resp_type #: Task string representation self.task_str = task #: Task in list representation self.task = [x.split(";") for x in task.split("/") if x] #: Choices string representation self.choices_str = choices #: Choices in list representation self.choices = [x.split('/') for x in choices.split('|')] for idx in range(len(self.choices)): self.choices[idx] = [x.split(';') for x in self.choices[idx]] self.choices = convert_to_basic_types(self.choices) #: Domain of the task self.domain = domain #: Position of the task in the experimental sequence self.sequence_number = sequence_number def __eq__(self, other): """ Equality comparator. Parameters ---------- other : object Object to compare with. Returns ------- bool True, if object is equal, false otherwise. """ if not isinstance(other, Item): return False if self.identifier != other.identifier: return False if self.response_type != other.response_type: return False if self.task_str != other.task_str: return False if self.choices_str != other.choices_str: return False if self.domain != other.domain: return False if self.sequence_number != other.sequence_number: return False return True def __ne__(self, other): """ Not-Equal comparator. Defines unequality as the converse of equality. Parameters ---------- other : object Object to compare to. Returns ------- bool True, if object is unequal. """ return not self.__eq__(other) def __str__(self): """ String representation of the item. Returns ------- str String representation of the item. """ rep = 'CCOBRA Item:\n' rep += '\tIdentifier: {}\n'.format(self.identifier) rep += '\tTask: {}\n'.format(self.task) rep += '\tSequence Number: {}\n'.format(self.sequence_number) rep += '\tDomain: {}\n'.format(self.domain) rep += '\tResponse Type: {}\n'.format(self.response_type) rep += '\tChoices: {}'.format(self.choices) return rep