Example #1
0
    def __init__(self, _device):
        gtk.ListStore.__init__(self, gobject.TYPE_STRING, gobject.TYPE_STRING,
                               gobject.TYPE_UINT, gobject.TYPE_STRING,
                               gobject.TYPE_STRING, gobject.TYPE_STRING,
                               gobject.TYPE_STRING, gobject.TYPE_STRING,
                               gobject.TYPE_STRING, gobject.TYPE_UINT,
                               gobject.TYPE_STRING, gobject.TYPE_STRING,
                               gobject.TYPE_STRING, gobject.TYPE_PYOBJECT)
        self.__filter_tracks = self.filter_new()
        self.__filter_tracks.set_visible_func(self.__filter_type,
                                              Metadata.TYPE_TRACK)
        self.__filter_folders = self.filter_new()
        self.__filter_folders.set_visible_func(self.__filter_folder)
        self.__current_folder_id = None

        tracks = []
        # add all tracks
        tracks_list = _device.get_track_listing()
        for track_metadata in tracks_list:
            assert type(track_metadata) is type(Metadata.Metadata())
            self.append(track_metadata)
            tracks.append(track_metadata.id)

        # add other files (the ones which are not already registered as tracks)
        file_list = _device.get_file_listing()
        for file_metadata in file_list:
            assert type(file_metadata) is type(Metadata.Metadata())
            if not file_metadata.id in tracks:
                self.append(file_metadata)
Example #2
0
 def fill(self):
     # add playlists
     for playlist in self._device.get_playlist_listing():
         assert type(playlist) is type(Metadata.Metadata())
         self.append(playlist)
         for track in self._device.get_tracks_for_playlist(playlist):
             assert type(track) is type(Metadata.Metadata())
             track.parent_id = playlist.id
             self.append(track)
Example #3
0
 def fill(self):
     # add folder list
     #FIXME: sort item so that parent is alway created before its childs
     folder_list = self._device.get_folder_listing()
     for dir in folder_list:
         assert type(dir) is type(Metadata.Metadata())
         self.append(dir)
Example #4
0
 def render_leftColumn(self, context):
     return [
         Metadata.Info(self.target),
         LinksSection(self.target),
         Graph.RelatedSection(self.target),
         Info.Clock(),
     ]
    def on_drag_data_received(self, treeview, drag_context, x, y, data, info, time):
        if info == DND_EXTERN:
            if DEBUG: debug_trace("extern drag and drop detected with data %s" % data.data, sender=self)
            if data and data.format == 8: # 8 = type string
                # find the row where data was dropped
                selrow_metadata = None
                drop_info = treeview.get_dest_row_at_pos(x, y)
                if drop_info:
                    selrow_metadata = treeview.get_model().get_model().get_model().get_metadata(drop_info[0])

                # process the list containing dropped objects
                for uri in data.data.split('\r\n')[:-1]:
                    self.__gui.transfer_manager.send_file(uri, self.__gui.get_current_folder())
                drag_context.drop_finish(success=True, time=time)
            else:
                drag_context.drop_finish(success=False, time=time)
        elif info == DND_INTERN:
            for m in data.data.split("&&"):
                metadata = Metadata.decode_from_string(m)
                if DEBUG: debug_trace("intern drag and drop detected with data %s" % metadata.to_string(), sender=self)
            drag_context.drop_finish(success=True, time=time)
        else:
            drag_context.drop_finish(success=False, time=time)
            if DEBUG: debug_trace("on_drag_data_received(): Unknow info value passed: %i" % info, sender=self)
            assert False
Example #6
0
def main(metadatafile):
    """ Write a test metadata.xml file"""

    # Create a Metadata Writer once with Tool Name and Version
    mWriter = Metadata.MetadataWriter("Test Tool Name", "0.0")

    ## You can loop the following for a batch mode, or just once for a single tool run
    # Create a "run", and start the processing clock
    mWriter.createRun()

    # Add Parameter Name and value for each Input
    mWriter.currentRun.addParameter("Parameter Name 1", "Parameter Value 1")
    mWriter.currentRun.addParameter("Parameter Name 2", "Parameter Value 2")

    # Add Output Name and Value for each output
    mWriter.currentRun.addOutput("Output Name 1", "Output Value 1")
    mWriter.currentRun.addOutput("Output Name 2", "Output Value 2")

    # Use addMessage to write messages to the file.
    mWriter.currentRun.addMessage("Info", "Info Message Text")
    mWriter.currentRun.addMessage("Warning", "Warning Message Text")
    mWriter.currentRun.addMessage("Error", "Error Message Text")

    # Use addCustomNode to write custom node tags to Information Node
    mWriter.currentRun.addResult("CustomNode1", "CustomValue1")
    mWriter.currentRun.addResult("CustomNode2", "CustomValue2")

    # When Processing is complete, stop the clock
    strToolStatus = "Success"  # Optional status for the run
    mWriter.finalizeRun(strToolStatus)
    ## Repeat this block for each run if in batch mode.

    # At the very end, write the file. (Only do this at the very end if batching!)
    mWriter.writeMetadataFile(metadatafile)
Example #7
0
    def append(self, metadata):
        assert type(metadata) is type(Metadata.Metadata())
        m = metadata
        if DEBUG_LOCK: debug_trace("Requesting lock", sender=self)
        self.__lock.acquire()
        if DEBUG_LOCK: debug_trace("Lock acquired", sender=self)
        parent = 0
        if m.parent_id <> 0:
            parent = self.__get_iter(m.parent_id)

        if m.type == Metadata.TYPE_FOLDER:
            row = [m.id, m.parent_id, m.title, "", 0, "folder", m]
        else:
            icon = "gtk-file"
            if Metadata.TYPE_TRACK:
                icon = "audio-x-generic"
            row = [
                m.id, m.parent_id, m.title,
                util.format_filesize(m.filesize), m.filesize, icon, m
            ]

        iter = gtk.TreeStore.append(self, parent, row)
        self.__cache[m.id] = gtk.TreeRowReference(self, self.get_path(iter))
        self.__lock.release()
        if DEBUG_LOCK: debug_trace("Lock released", sender=self)
        return iter
Example #8
0
 def create_playlist(self, playlist_name):
     metadata = Metadata.Metadata()
     metadata.id = playlist_name
     metadata.title = playlist_name
     metadata.filename = playlist_name
     metadata.parent_id = 0
     metadata.type = Metadata.TYPE_PLAYLIST
     self.__queue_job(self.ACTION_CREATE_PLAYLIST, metadata)
Example #9
0
    def __init__(self, statements, database):

        self.statementList = statements
        self.data = []
        global meta
        meta = Metadata()
        self.qlength = len(statements)
        self.database = database
 def __init__(self, object_id, action, status, metadata):
     assert type(metadata) is type(Metadata.Metadata())
     self.object_id = object_id
     self.action = action
     self.status = status
     self.exception = None
     self.progress = 0
     self.metadata = metadata
 def create_folder(self, folder_name, parent_id):
     metadata = Metadata.Metadata()
     metadata.id = folder_name
     metadata.title = folder_name
     metadata.filename = folder_name
     metadata.parent_id = parent_id
     metadata.type = Metadata.TYPE_FOLDER 
     self.__queue_job(self.ACTION_CREATE_FOLDER, metadata)       
    def on_drag_data_received(self, treeview, drag_context, x, y, data, info, time):
        # find the row where data was dropped
        selrow_metadata = None
        drop_info = treeview.get_dest_row_at_pos(x, y)
        if drop_info:
            selrow_metadata = treeview.get_model().get_metadata(drop_info[0])
        parent = selrow_metadata.id
        if selrow_metadata.type != Metadata.TYPE_FOLDER and selrow_metadata.type != Metadata.TYPE_PLAYLIST:
            parent = selrow_metadata.parent_id

        if info == DND_EXTERN:
            if DEBUG: debug_trace("extern drag and drop detected with data %s" % data.data, sender=self)
            if data and data.format == 8: # 8 = type string
                # process the list containing dropped objects
                for uri in data.data.split('\r\n')[:-1]:
                    if self.__mode == MODE_PLAYLIST_VIEW:
                        next = None
                        if selrow_metadata.type == Metadata.TYPE_PLAYLIST_ITEM:
                            next = selrow_metadata.id 
                        self.__gui.transfer_manager.send_extern_file_to_playlist(parent, uri, next)
                    else:
                        self.__gui.transfer_manager.send_file(uri, parent)
                drag_context.drop_finish(success=True, time=time)
            else:
                drag_context.drop_finish(success=False, time=time)
            return

        if info == DND_INTERN:
            for m in data.data.split("&&"):
                metadata = Metadata.decode_from_string(m)
                if DEBUG: debug_trace("intern drag and drop detected with data %s" % metadata.to_string(), sender=self)
                if self.__mode == MODE_PLAYLIST_VIEW:
                    next = None
                    if selrow_metadata.type == Metadata.TYPE_PLAYLIST_ITEM:
                        next = selrow_metadata.id
                    if metadata.type == Metadata.TYPE_TRACK: 
                        self.__gui.transfer_manager.add_track_to_playlist(parent, metadata, next)
                    elif metadata.type == Metadata.TYPE_PLAYLIST_ITEM:
                        if metadata.parent_id == selrow_metadata.id or metadata.parent_id == selrow_metadata.parent_id:
                            # move within playlist
                            self.__gui.transfer_manager.move_track_within_playlist(parent, metadata, next)
                        else:
                            # move between playlist
                            debug_trace("NOT IMPLEMENTED YET")
                            pass
                    else:
                        drag_context.drop_finish(success=False, time=time)
                        if DEBUG: debug_trace("An invalid object type was dropped: %i" % i, sender=self)
                        return
                else:
                    pass #TODO: move file to dir
            drag_context.drop_finish(success=True, time=time)
            return

        else:
            drag_context.drop_finish(success=False, time=time)
            if DEBUG: debug_trace("on_drag_data_received(): Unknow info value passed: %i" % info, sender=self)
            assert False
Example #13
0
File: MDL.py Project: Viome/mdd_etl
	def set_metadata(self, mid='tmd_id', src_tbl=	'', title='metadata', kind='workbook', msg="Mapping Target to Metadata for "):

		"""
		Function to set metadata that maps source data elements to target data elements.

		:param mid: name of metadata id to reference in the source MDE metadata dictionary.
		:type mid: str
		:param kind: Type of source in which the catalog (data to map) resides in.
		:type kind: str
		:param src_tbl: name of the table where the source-target data resides in.
		:type src_tbl: str
		:param title: name of the target file to map data elements from/to.
		:type title: str
		:return Boolean: True/False
		:rtype Boolean: Boolean
		"""
		
		try:
			if not src_tbl:	src_tbl     			= 	self.attrs['mde']['crawler']['tbl'].lower()
			if self.attrs['log']:						print(msg, 	src_tbl, " in ", self.attrs['mdd'])

			if re.search(str(title), self.objs[kind].attrs['title']):
				self.objs['workbook'].set_workbook()

				self.objs['df']        				=	self.objs[kind].get_sheet_body(src_tbl.lower())
				if 		self.objs['df'].empty:			print(" No Context found to Metadata in ", src_tbl)
				else: 	self.attrs['dict'] 			= 	self.objs['df'].set_index('sde',drop=False).T.to_dict('dict')

			else: 										print(' ', title, ' does not exists or it is not a ', kind)
											
			if not self.objs['df'].empty:
				des = self.objs['df']["tde"].tolist()
				des.sort()

				self.attrs['mde']['src'][mid] 		= 	int(hashlib.md5("".join(des).encode('utf-8')).hexdigest(), 16)
				self.attrs['id'] 					= 	self.attrs['mde']['src'][mid] 

				print(self.objs['df'].head(10), 		'\n Target Data Elements: ', 		len(des), '\n ID: ', self.attrs['id'])
				self.objs['src_map_metadata'] 		= 	Metadata(name=self.attrs['src_mdd'],mid=str(self.get('src', 'smd_id')))
				self.objs['metadata'] 				= 	Metadata(name=self.attrs['mdd'],	mid=str(self.attrs['id']))

			else: 										print("\t", "ERROR! MISSING DATA!")
		except 	Exception as e:							print(e, "\n\t", "ERROR! ", msg, src_tbl)

		return 	len(self.attrs['dict']) > 	0
Example #14
0
    def from_path(cls, path):
        '''
        Create new sample object from audio file path by retrieving metadata.
        :param path: 
        :return: 
        '''

        sr, channels, duration = Metadata.get_audio_metadata(path)
        return cls(path, sr, channels, duration)
Example #15
0
 def __init__(self, tbldata, tblname):
     global md
     md = Metadata()
     self.database = {}
     self.tbldata = tbldata
     self.tblname = tblname
     self.clean_data = {}
     self.getPrimary()
     self.addToHash()
    def __queue_job(self, job_type, metadata):
        assert type(metadata) is type(Metadata.Metadata())
        job = Job(metadata.id, job_type, self.STATUS_QUEUED, metadata)

        self.__queue.put_nowait(job)
        self.__model.append(job.get_list())

        trace("queued file %s for %s" % (job.object_id, job.action), sender=self)
        self.__notebook.set_current_page(1)
 def send_file(self, file_url):
     if DEBUG: debug_trace("request for sending %s" % file_url, sender=self)
     url = urlparse(file_url)
     if url.scheme == "file":
         path = url2pathname(url.path)
         metadata = Metadata.get_from_file(path)
         self.__queue_job(path, self.ACTION_SEND, metadata)
     else:
         notify_warning("%s is not a file" % file_url)
Example #18
0
 def __convert_file_url_to_metadata(self, file_url):
     url = urlparse(file_url)
     if url.scheme == "file":
         path = url2pathname(url.path)
         metadata = Metadata.get_from_file(path)
         return metadata
     else:
         notify_warning("%s is not a file" % file_url)
         return None
 def __convert_file_url_to_metadata(self, file_url):
     url = urlparse(file_url)
     if url.scheme == "file":
         path = url2pathname(url.path)
         metadata = Metadata.get_from_file(path)
         return metadata
     else:
         notify_warning("%s is not a file" % file_url)
         return None
Example #20
0
 def __get_file_metadata(self, file_id):
     file = self.FILE_LISTING[file_id]
     m = Metadata()
     m.id = str(file_id)
     m.type = TYPE_FILE
     m.parent_id = str(file[1])
     m.filename = file[2]
     m.title = file[2]
     return m
Example #21
0
    def init_elements(self, metadataFile, csvFile, ncOutput):
        self.ncOutput = ncOutput
        self.ncOutput = Checker().check_source(metadataFile, csvFile, ncOutput)
        self.metadata = Metadata(metadataFile)
        self.metadataData = self.metadata.get_metadata()
        self.data = Data(csvFile)
        self.ncOutput = self.ncOutput + self.metadata.get_global_attributes(
        ).get_id() + ".nc"
        self.version = self.metadata.get_global_attributes(
        ).get_netcdf_version()
        self.temporalAppendPosition = {}
        self.globalAttributes = Metadata(metadataFile).get_global_attributes()
        self.dimensions = self.metadata.get_dimensions()
        self.naming_authority = self.globalAttributes.attributesList[
            'naming_authority']

        if self.naming_authority == 'EGO':
            self.data_ego = Data_ego(csvFile)
            self.ego_standard_metadata = EgoReaderStandardMetadata()
            self.dimensionsEgo = self.ego_standard_metadata.get_dimensions()
            self.metadata.change_variable()
Example #22
0
 def get_file_listing(self):
     listing = []
     try:
         listing = self.__MTPDevice.get_filelisting()
         files = []
         for file in listing:
             m = Metadata.get_from_MTPFile(file)
             files.append(m)
         return files
     except pymtp.CommandFailed:
         raise DeviceEngine.UnknowError(ERRMSG_UNKNOW)
     return None
Example #23
0
    def __init__(self, _device):
        gtk.TreeStore.__init__(self, gobject.TYPE_STRING, gobject.TYPE_STRING,
                               gobject.TYPE_STRING, gobject.TYPE_STRING,
                               gobject.TYPE_UINT, gobject.TYPE_STRING,
                               gobject.TYPE_PYOBJECT)
        self.__cache = {}
        # lock to prevent more thread for updating the model at the same time
        self.__lock = Lock()

        # add folder list
        #FIXME: sort item so that parent is alway created before its childs
        folder_list = _device.get_folder_list()
        for dir in folder_list:
            assert type(dir) is type(Metadata.Metadata())
            self.append(dir)

        # add file list
        file_list = _device.get_filelisting()
        for file_metadata in file_list:
            assert type(file_metadata) is type(Metadata.Metadata())
            self.append(file_metadata)
Example #24
0
 def get_file_listing(self):
     listing = []
     try:
         listing = self.__MTPDevice.get_filelisting()
         files = []
         for file in listing:
             m = Metadata.get_from_MTPFile(file)
             files.append(m)
         return files
     except pymtp.CommandFailed:
         raise DeviceEngine.UnknowError(ERRMSG_UNKNOW)
     return None
Example #25
0
 def get_playlist_listing(self):
     listing = []
     #FIXME: Cache listing
     try:
         listing = self.__MTPDevice.get_playlists()
         playlists = []
         for playlist in listing:
             m = Metadata.get_from_MTPPlaylist(playlist)
             playlists.append(m)
         return playlists
     except pymtp.CommandFailed:
         raise DeviceEngine.UnknowError(ERRMSG_UNKNOW)
     return None
Example #26
0
 def append(self, metadata):
     assert type(metadata) is type(Metadata.Metadata())
     parent = self.__get_iter(metadata.parent_id)
     row = [
         metadata.id, metadata.parent_id, metadata.title,
         metadata.get_icon(), metadata
     ]
     next_object = self.__get_iter(metadata.next_object)
     if next_object:
         iter = gtk.TreeStore.insert_before(self, parent, next_object, row)
     else:
         iter = gtk.TreeStore.append(self, parent, row)
     return False  # needed by idle_add
Example #27
0
 def get_track_listing(self):
     listing = []
     #FIXME: Cache listing
     try:
         listing = self.__MTPDevice.get_tracklisting()
         tracks = []
         for track in listing:
             m = Metadata.get_from_MTPTrack(track)
             tracks.append(m)
         return tracks
     except pymtp.CommandFailed:
         raise DeviceEngine.UnknowError(ERRMSG_UNKNOW)
     return None
Example #28
0
 def get_filelisting(self):
     listing = []
     try:
         listing = self.__MTPDevice.get_filelisting()
         files = []
         for file in listing:
             m = Metadata.get_from_MTPFile(file)
             files.append(m)
         return files
     except pymtp.CommandFailed:
         raise DeviceEngine.UnknowError("The device returned an unknow error") #TRANSLATE
     except Exception, exc:
         raise exc
Example #29
0
 def get_folder_list(self):
     listing = []
     try:
         listing = self.__MTPDevice.get_folder_list().values()
         folders = []
         for folder in listing:
             m = Metadata.get_from_MTPFolder(folder)
             folders.append(m)
         return folders
     except pymtp.CommandFailed:
         raise DeviceEngine.UnknowError("The device returned an unknow error") #TRANSLATE
     except Exception, exc:
         raise exc
Example #30
0
 def get_tracklisting(self):
     listing = []
     try:
         listing = self.__MTPDevice.get_tracklisting()
         tracks = []
         for track in listing:
             m = Metadata.get_from_MTPTrack(track)
             tracks.append(m)
         return tracks
     except pymtp.CommandFailed:
         raise DeviceEngine.UnknowError("The device returned an unknow error") #TRANSLATE
     except Exception, exc:
         raise exc
Example #31
0
 def get_folder_listing(self):
     listing = []
     #FIXME: Cache listing
     try:
         listing = self.__MTPDevice.get_folder_list().values()
         folders = []
         for folder in listing:
             m = Metadata.get_from_MTPFolder(folder)
             folders.append(m)
         return folders
     except pymtp.CommandFailed:
         raise DeviceEngine.UnknowError(ERRMSG_UNKNOW)
     return None
Example #32
0
 def get_playlist_listing(self):
     listing = []
     #FIXME: Cache listing
     try:
         listing = self.__MTPDevice.get_playlists()
         playlists = []
         for playlist in listing:
             m = Metadata.get_from_MTPPlaylist(playlist)
             playlists.append(m)
         return playlists
     except pymtp.CommandFailed:
         raise DeviceEngine.UnknowError(ERRMSG_UNKNOW)
     return None
Example #33
0
 def get_track_listing(self):
     listing = []
     #FIXME: Cache listing
     try:
         listing = self.__MTPDevice.get_tracklisting()
         tracks = []
         for track in listing:
             m = Metadata.get_from_MTPTrack(track)
             tracks.append(m)
         return tracks
     except pymtp.CommandFailed:
         raise DeviceEngine.UnknowError(ERRMSG_UNKNOW)
     return None
Example #34
0
 def get_folder_listing(self):
     listing = []
     #FIXME: Cache listing
     try:
         listing = self.__MTPDevice.get_folder_list().values()
         folders = []
         for folder in listing:
             m = Metadata.get_from_MTPFolder(folder)
             folders.append(m)
         return folders
     except pymtp.CommandFailed:
         raise DeviceEngine.UnknowError(ERRMSG_UNKNOW)
     return None
Example #35
0
 def get_playlist_listing(self):
     playlists = []
     for id in self.PLAYLIST_LISTING.keys():
         playlist = self.PLAYLIST_LISTING[id]
         m = Metadata()
         m.id = str(id)
         m.parent_id = str(playlist[0])
         m.type = TYPE_PLAYLIST
         m.filename = str(playlist[1])
         m.title = str(playlist[1])
         playlists.append(m)
     return playlists
Example #36
0
 def get_folder_listing(self):
     folders = []
     for id in self.FOLDER_LISTING.keys():
         folder = self.FOLDER_LISTING[id]
         m = Metadata()
         m.id = str(id)
         m.parent_id = str(folder[0])
         m.type = TYPE_FOLDER
         m.filename = folder[1]
         m.title = folder[1]
         folders.append(m)
     return folders
Example #37
0
def loop(dataset, id_file, id_list, results, window_data):
    """ Main loop og the program. Takes an input from the user and produces the result. """
    n = raw_input('Enter command: ').split(' ', 1)
    if n[0] == 'statistic':
        try:
            Results.process_result_request(n[1], results)
        except IndexError:
            print 'Enter a statistic to request. (\'help\' for more details)'
    elif n[0] == 'generate':
        try:
            Graph.process_graph_request(n[1], results, window_data)
        except IndexError:
            print 'Enter a graph to request. (\'help\' for more details)'
    elif n[0] == 'load':
        id_list = LoadData.load_ids(dataset + '/' + id_file)
        results = LoadData.calculate_results(id_list, dataset, LoadData.calculate_times(id_list, dataset))
    elif n[0] == 'subset_startend':
        results = LoadData.calculate_results(id_list, dataset, LoadData.parse_subset(n[1]))
    elif n[0] == 'subset_ids':
        id_list = LoadData.parse_ids(n[1])
        results = LoadData.calculate_results(id_list, dataset, LoadData.calculate_times(id_list, dataset))
    elif n[0] == 'dataset':
        try:
            dataset = 'datasets/' + n[1]
            id_list = LoadData.load_ids(dataset + '/' + id_file)
        except IndexError:
            print 'Enter a new dataset. (\'help\' for more details)'
    elif n[0] == 'file':
        try:
            id_file = n[1]
            id_list = LoadData.load_ids(dataset + '/' + id_file)
        except IndexError:
            print 'Enter a new starting file. (\'help\' for more details)'
    elif n[0] == 'meta':
        try:
            Metadata.process_meta(n[1])
        except IndexError, IOError:
            print 'Enter a crawdad_xml_file. (\'help\' for more details)'
 def __get_file_metadata(self, file_id):
     file=self.FILE_LISTING[file_id]
     m = Metadata()
     m.id = str(file_id)
     m.type = TYPE_FILE
     m.parent_id = str(file[1])
     m.filename = file[2]
     m.title = file[2]
     return m
Example #39
0
 def send_track(self, metadata=None, callback=None):
     parent = metadata.parent_id
     try:
         new_id =self.__MTPDevice.send_track_from_file( metadata.path, metadata.filename, metadata.to_MTPTrack(), int(parent), callback=callback)
         # read metadata again, because they can be changed by the device (i.e. parent_id or paraneter not handled)
         metadata = Metadata.get_from_MTPTrack(self.__MTPDevice.get_track_metadata(new_id))
     except IOError:
         raise IOError("Failed to process the file from the filesystem") #TRANSLATE
     except pymtp.CommandFailed:
         if not self.__check_free_space(metadata.filesize):
             raise DeviceEngine.DeviceFullError(ERRMSG_DEVICE_FULL)
         if self.__file_exist(metadata.filename):
             raise DeviceEngine.AlreadyOnDeviceError(ERRMSG_ALREADY_EXIST)
         else:
             raise DeviceEngine.UnknowError(ERRMSG_UNKNOW)
     return metadata
Example #40
0
 def send_track(self, metadata=None, callback=None):
     parent = int(metadata.parent_id) 
     try:
         new_id =self.__MTPDevice.send_track_from_file( metadata.path, metadata.filename, metadata.to_MTPTrack(), parent, callback=callback)
         # read metadata again, because they can be changed by the device (i.e. parent_id or paraneter not handled)
         metadata = Metadata.get_from_MTPTrack(self.__MTPDevice.get_track_metadata(new_id))
     except IOError:
         raise IOError("Failed to process the file from the filesystem") #TRANSLATE
     except pymtp.CommandFailed:
         if not self.__check_free_space(metadata.filesize): 
             raise DeviceEngine.DeviceFullError("Not enought free space on device") #TRANSLATE
         if self.__file_exist(metadata.filename):
             raise DeviceEngine.AlreadyOnDeviceError("Already exists on the device") #TRANSLATE
         else:
             raise DeviceEngine.UnknowError("The device returned an unknow error") #TRANSLATE
     except Exception, exc:
         raise exc
Example #41
0
 def get_tracks_for_playlist(self, playlist):
     tracks = []
     #FIXME: Cache listing
     try:
         playlist = self.__MTPDevice.get_playlist(int(playlist.id))
         for track_id in playlist:
             track = self.__MTPDevice.get_track_metadata(track_id) #FIXME: Cache file listing and get from ther
             m = Metadata.get_from_MTPTrack(track)
             m.type = Metadata.TYPE_PLAYLIST_ITEM
             m.parent = playlist
             tracks.append(m)
         return tracks
     except pymtp.CommandFailed:
         raise DeviceEngine.UnknowError(ERRMSG_UNKNOW)
     except pymtp.ObjectNotFound:
         if DEBUG: debug_trace("WARNING: a track is referenced in playlist but does not exist!", sender=self)
         return tracks
 def get_folder_listing(self):
     folders=[]
     for id in self.FOLDER_LISTING.keys():
         folder = self.FOLDER_LISTING[id]
         m = Metadata()
         m.id = str(id)
         m.parent_id = str(folder[0])
         m.type = TYPE_FOLDER
         m.filename = folder[1]
         m.title = folder[1]
         folders.append(m)
     return folders
 def get_playlist_listing(self):
     playlists=[]
     for id in self.PLAYLIST_LISTING.keys():
         playlist=self.PLAYLIST_LISTING[id]
         m = Metadata()
         m.id = str(id)
         m.parent_id = str(playlist[0])
         m.type = TYPE_PLAYLIST
         m.filename = str(playlist[1])
         m.title = str(playlist[1])
         playlists.append(m)
     return playlists
Example #44
0
	def checkMatch(tblname,typeop,column,data,datahash,index):
		
		results=[]
		#meta.getAllColumns(tblname)
		meta=Metadata()
		columns=[]
		fcol=[]
		datatypes=[]
		fdatatypes=[]
		for i in range(0,len(tblname)):
			columns=meta.getAllColumns(tblname[i])		
			fcol=fcol+columns
			datatypes=meta.getAllDatatypes(tblname[i])
			fdatatypes=fdatatypes+datatypes

		
		if typeop == 1:
			for i in range(0,len(datahash)):
				index1=fcol.index(column)
				
				if fdatatypes[index1] == "int":
					if datahash[i][index1] < int(data):
						results.append(datahash[i])

				elif fdatatypes[index1] == "numeric":
					if datahash[i][index1] < float(data):
						results.append(datahash[i])

				elif fdatatypes[index1] == 'varchar':
					print("Can't compare strings!")

				elif fdatatypes[index1] == 'date':
					date1=str(datahash[i][index1])
					date2=str(data);
					newdate1 = time.strptime(date1,'%d-%m-%Y')
					newdate2 = time.strptime(date2,'%d-%m-%Y')
					if newdate1 < newdate2:
						results.append(datahash[i])
			
		elif typeop == 2:
			for i in range(0,len(datahash)):
				index1=fcol.index(column)
				
				if fdatatypes[index1] == "int":
					if datahash[i][index1] > int(data):
						results.append(datahash[i])

				elif fdatatypes[index1] == "numeric":
					if datahash[i][index1] > float(data):
						results.append(datahash[i])

				elif fdatatypes[index1] == 'varchar':
					print("Can't compare strings!")

				elif fdatatypes[index1] == 'date':
					date1=str(datahash[i][index1])
					date2=str(data);
					newdate1 = time.strptime(date1,'%d-%m-%Y')
					newdate2 = time.strptime(date2,'%d-%m-%Y')
					if newdate1 > newdate2:
						results.append(datahash[i])
		
				
	
		elif typeop == 3:
			
			
		
			for i in range(0,len(datahash)):
				index1=fcol.index(column)
				
				if fdatatypes[index1] == "int":
					if datahash[i][index1] == int(data):
						results.append(datahash[i])

				elif fdatatypes[index1] == "numeric":
					if datahash[i][index1] == float(data):
						results.append(datahash[i]) 

				elif fdatatypes[index1] == 'varchar':
					if datahash[i][index] == str(data):
						results.append(datahash[i])

				elif fdatatypes[index1] == 'date':
					date1=str(datahash[i][index1])
					date2=str(data);
					newdate1 = time.strptime(date1,'%d-%m-%Y')
					newdate2 = time.strptime(date2,'%d-%m-%Y')
					if newdate1 == newdate2:
						results.append(datahash[i])

		elif typeop == 4:
			for i in range(0,len(datahash)):
				index1=fcol.index(column)
				
				if fdatatypes[index1] == "int":
					if datahash[i][index1] != int(data):
						results.append(datahash[i])

				elif fdatatypes[index1] == "numeric":
					if datahash[i][index1] != float(data):
						results.append(datahash[i]) 

				elif fdatatypes[index1] == 'varchar':
					if datahash[i][index] != str(data):
						results.append(datahash[i])

				elif fdatatypes[index1] == 'date':
					date1=str(datahash[i][index1])
					date2=str(data);
					newdate1 = time.strptime(date1,'%d-%m-%Y')
					newdate2 = time.strptime(date2,'%d-%m-%Y')
					if newdate1 != newdate2:
						results.append(datahash[i])
		

		
		return results
Example #45
0
	def printData(self,tblname):
		md = Metadata()
		self.no_columns = md.no_getColumns(tblname)
Example #46
0
    def remove_track(self, track_id):
        t = int(track_id)
        return str(self.__MTPDevice.delete_object(t))

    def get_tracklisting(self):
        listing = []
        try:
            listing = self.__MTPDevice.get_tracklisting(callback=self.__callback)
        except Exception, exc:
            pass
            # log('unable to get file listing %s (%s)', exc, sender=self)

        tracks = []
        for track in listing:
            m = Metadata.get_from_MTPTrack(track)
            tracks.append(m)
        return tracks

    def get_diskusage(self):
        return [self.__MTPDevice.get_usedspace(), self.__MTPDevice.get_totalspace()]

    def get_batterylevel(self):
        return self.__MTPDevice.get_batterylevel()

    def get_information(self):
        info = []
        info.append(["Owner name", self.__MTPDevice.get_devicename()])
        info.append(["Manufacturer", self.__MTPDevice.get_manufacturer()])
        info.append(["Model name", self.__MTPDevice.get_modelname()])
        info.append(["Serial number", self.__MTPDevice.get_serialnumber()])
 def __get_track_metadata(self, track_id):
     track=self.FILE_LISTING[track_id]
     m = Metadata()
     m.id = str(track_id)
     m.type = TYPE_TRACK
     m.parent_id = str(track[1])
     m.filename = track[2]
     m.title = track[3]
     m.artist = track[4]
     m.album = track[5]
     m.genre = track[6]
     m.filesize = track[7]
     m.date = track[8]
     return m