genesis/genesis.py
def download(self, data_objects, field):
        """Download files of data objects.

        :param data_objects: Data object ids
        :type data_objects: list of UUID strings
        :param field: Download field name
        :type field: string
        :rtype: generator of requests.Response objects

        """
        if not field.startswith('output'):
            raise ValueError("Only processor results (output.* fields) can be downloaded")

        for o in data_objects:
            o = str(o)
            if re.match('^[0-9a-fA-F]{24}$', o) is None:
                raise ValueError("Invalid object id {}".format(o))

            if o not in self.cache['objects']:
                self.cache['objects'][o] = GenData(self.api.data(o).get(), self)

            if field not in self.cache['objects'][o].annotation:
                raise ValueError("Download field {} does not exist".format(field))

            ann = self.cache['objects'][o].annotation[field]
            if ann['type'] != 'basic:file:':
                raise ValueError("Only basic:file: field can be downloaded")

        for o in data_objects:
            ann = self.cache['objects'][o].annotation[field]
            url = urlparse.urljoin(self.url, 'data/{}/{}'.format(o, ann['value']['file']))
            yield requests.get(url, stream=True, auth=self.auth)
def download(self, data_objects, field):
        if not field.startswith('output'):
            raise ValueError("Only processor results (output.* fields) can be downloaded")

        for o in data_objects:
            o = str(o)
            if re.match('^[0-9a-fA-F]{24}$', o) is None:
                raise ValueError("Invalid object id {}".format(o))

            if o not in self.cache['objects']:
                self.cache['objects'][o] = GenData(self.api.data(o).get(), self)

            if field not in self.cache['objects'][o].annotation:
                raise ValueError("Download field {} does not exist".format(field))

            ann = self.cache['objects'][o].annotation[field]
            if ann['type'] != 'basic:file:':
                raise ValueError("Only basic:file: field can be downloaded")

        for o in data_objects:
            ann = self.cache['objects'][o].annotation[field]
            url = urlparse.urljoin(self.url, 'data/{}/{}'.format(o, ann['value']['file']))
            yield requests.get(url, stream=True, auth=self.auth)
def download ( self , data_objects , field ) : if not field . startswith ( 'output' ) : raise ValueError ( "Only processor results (output.* fields) can be downloaded" ) for o in data_objects : o = str ( o ) if re . match ( '^[0-9a-fA-F]{24}$' , o ) is None : raise ValueError ( "Invalid object id {}" . format ( o ) ) if o not in self . cache [ 'objects' ] : self . cache [ 'objects' ] [ o ] = GenData ( self . api . data ( o ) . get ( ) , self ) if field not in self . cache [ 'objects' ] [ o ] . annotation : raise ValueError ( "Download field {} does not exist" . format ( field ) ) ann = self . cache [ 'objects' ] [ o ] . annotation [ field ] if ann [ 'type' ] != 'basic:file:' : raise ValueError ( "Only basic:file: field can be downloaded" ) for o in data_objects : ann = self . cache [ 'objects' ] [ o ] . annotation [ field ] url = urlparse . urljoin ( self . url , 'data/{}/{}' . format ( o , ann [ 'value' ] [ 'file' ] ) ) yield requests . get ( url , stream = True , auth = self . auth )
Download files of data objects.

        :param data_objects: Data object ids
        :type data_objects: list of UUID strings
        :param field: Download field name
        :type field: string
        :rtype: generator of requests.Response objects
Download files of data objects .