human
What is a the Python code you requested given the following:
I am working on the file "Investigation.ipynb".
The first task is:
Below is implemented a collection wrapper + Worker + Image + HIT objects
The objects are translating the data, and can be used as the automatable model
Can you write Python code for it?
assistant
#Here is the Python code you requested.

class Worker(object):
    def __init__(self, data_entry):
        self.workerId = data_entry['WorkerId'].lower()
        self.tasks = []
        self.correct_gold_items = 0
        self.false_gold_items = 0
        self.netrual_gold_items = 0
    
    def add_task(self, task):
        self.tasks.append(task)
        if(self.__is_gold):
            self.__update_score(task)
            
    def get_gold_metrics(self):
        return { 'Correct': self.correct_gold_items, 
                 'False'  : self.false_gold_items,
                 'Netrual': self.netrual_gold_items }
    
    def get_worker_score(self):
        total = self.get_total_gold_items()
        if total == 0:
            return 0
        return ((self.correct_gold_items * 1) +
                (self.netrual_gold_items * 0)) / self.get_total_gold_items()
    
    def get_total_gold_items(self):
        return self.correct_gold_items + self.false_gold_items 
    
    def equals(self, workerId):
        return self.workerId == workerId.lower()
    
    def __update_score(self, task):
        submitted_val = task['Course']
        gold_value = task['GoldValue']
        if submitted_val is gold_value:
            self.correct_gold_items += 1
        elif submitted_val is 0:
            self.netrual_gold_items +=1
        else:
            self.false_gold_items +=1
    
    def __is_gold(self, task):
        return task['IsGold'] is 1
    
class Collection(object):
    def __init__(self, identifier, itemType):
        self.collection = []
        self.identifier = identifier
        self.create_item = itemType
    
    def add(self, entry):
        item = self.contains(self.__item_id(entry))
        if not item:
            item = self.create_item(entry)
            self.collection.append(item)
        item.add_task(entry)
    
    def get_collection(self):
        return self.collection
    
    def contains(self, itemId):
        for w in self.collection:
            if w.equals(itemId):
                return w
        return None
    
    def...