Exemple #1
0
class Dryad(object):
    def __init__(self):
        self.d = Dryad_DataOne()


    def list_packages(self, start_n=0, count=20):
        x = self.d.list(count=count, start_n=start_n)	
        count = int(x.getElementsByTagName("d1:objectList")[0].attributes["count"].value )
        start = int(x.getElementsByTagName("d1:objectList")[0].attributes["start"].value)
        total = int(x.getElementsByTagName("d1:objectList")[0].attributes["total"].value)

        output=[]
        for obj in x.getElementsByTagName("objectInfo"):
            ident = obj.getElementsByTagName("identifier")[0].firstChild.wholeText
            size = obj.getElementsByTagName("size")[0].firstChild.wholeText
            doi = "doi:"+ident.split("dx.doi.org/")[1].split("?")[0]
            output.append({'id':ident, 'size':size, 'doi': doi})
        return output, count, start, total

    def get_package(self, doi):
       m = self.d.metadata(doi)
       return DryadPackage(m,doi)
    def get_files_for_packages(self, package):
        child_list = [ i.split("dx.doi.org/")[1].split("?")[0] for i in package.get_children() ]
        metadata_list = [self.d.metadata("doi:"+i) for i in child_list ]
        file_metadata_list = [self.d.file_metadata("doi:"+i) for i in child_list ]
        files= [DryadFile(i,'doi:'+child_list[x], file_metadata_list[x] ) for x,i in enumerate(metadata_list) ]
        for f in files:
            f.set_file_name(self.d.get_file_name(f.doi) )
        return files
Exemple #2
0
 def __init__(self):
     self.d = Dryad_DataOne()