Ejemplo n.º 1
0
    def __init__(self,name="dwca.zip",skipeml=False):
        self.archive = zipfile.ZipFile(name, 'r')

        self.archive.extractall(name.split(".")[0])
            
        rdict = {}    
        with open(name.split(".")[0] + "/" + archiveFile(self.archive,"meta.xml"),'r') as meta:
            root = etree.parse(meta).getroot()
            rdict = xmlDictTools.xml2d(root)
                
        self.archdict = rdict["archive"]

        if not skipeml and "#metadata" in self.archdict:
            metadata = archiveFile(self.archive,self.archdict["#metadata"])
            with open(name.split(".")[0] + "/" + metadata,'r') as mf:
                mdtree = etree.parse(mf).getroot()           
                self.metadata = xmlDictTools.xml2d(mdtree)
        else:
            self.metadata = None

        corefile = archiveFile(self.archive,self.archdict["core"]["files"]["location"])
        self.core = DwcaRecordFile(self.archdict["core"], name.split(".")[0] + "/" + corefile)
        
        self.extensions = []
        if "extension" in self.archdict:
            if isinstance(self.archdict["extension"],list):
                for x in self.archdict["extension"]:
                    extfile = archiveFile(self.archive,x["files"]["location"])
                    try:
                        self.extensions.append(DwcaRecordFile(x, name.split(".")[0] + "/" + extfile))
                    except:
                        pass
            else:            
                extfile = archiveFile(self.archive,self.archdict["extension"]["files"]["location"])
                self.extensions.append(DwcaRecordFile(self.archdict["extension"], name.split(".")[0] + "/" + extfile))
Ejemplo n.º 2
0
    def __init__(self,name="dwca.zip"):
        self.archive = zipfile.ZipFile(name, 'r')

        meta = self.archive.open('meta.xml','r')
        root = etree.parse(meta).getroot()
        rdict = xmlDictTools.xml2d(root)
                
        self.archdict = rdict["archive"]

        metadata = self.archdict["#metadata"]
        mf = self.archive.open(metadata,'r')            
        mdtree = etree.parse(mf).getroot()           
        self.metadata = xmlDictTools.xml2d(mdtree)      

        corefile = self.archdict["core"]["files"]["location"]
        self.core = DwcaRecordFile(self.archdict["core"], self.archive.open(corefile,'r'))
        
        self.extensions = []
        if "extension" in self.archdict:
            if isinstance(self.archdict["extension"],list):
                for x in self.archdict["extension"]:
                    extfile = x["files"]["location"]
                    self.extensions.append(DwcaRecordFile(x, self.archive.open(extfile,'r')))
            else:            
                extfile = self.archdict["extension"]["files"]["location"]
                self.extensions.append(DwcaRecordFile(self.archdict["extension"], self.archive.open(extfile,'r')))