'Un-mount / eject the device from the OS. This does not check if there
are pending GUI jobs that need to communicate with the device.'

def eject(self):

    if self.verbose:
        logger().info(("%s:eject():    ejecting    '%s'" % (self.__class__.__name__, self.sources['iPod'])))
    if isosx:
        self.iTunes.eject(self.sources['iPod'])
    elif iswindows:
        if ('iPod' in self.sources):
            import pythoncom, win32com.client
            try:
                pythoncom.CoInitialize()
                self.iTunes = win32com.client.Dispatch('iTunes.Application')
                self.iTunes.sources.ItemByName(self.sources['iPod']).EjectIPod()
            finally:
                pythoncom.CoUninitialize()
    self.iTunes = None
    self.sources = None
