class archiveInstance(object):
    
    def __init__(self):
        self.Name = Observable(None)
        self.FullPath = Observable(None)
        self.Magic = Observable(None)
        self.Format = Observable(None)
        self.Directory = Observable(None)
        self.Magic.addCallback(self,self.OnMagic)
        
    def update(self,source):
        self.Name.update(source.Name.get())
        self.FullPath.update(source.FullPath.get())
        self.Magic.update(source.Magic.get())
        self.Format.update(source.Format.get())
        self.Directory.update(source.Directory.get())
    
    def OnMagic(self):
        format = None
        
        magicString = self.Magic.get()
        cleanstring = str.strip(magicString)
        splitLine = cleanstring.split(', ')
        
        if splitLine[0] in formatMap.keys():
            format = formatMap[splitLine[0]]
        self.Format.update(format)