def __init__(self, *args, **kwargs): ImapSyncMonitor.__init__(self, *args, **kwargs) self.sync_engine_class = GmailFolderSyncEngine # We start a label refresh whenever we find a new labels # However, this is a pretty expensive operation, so we # use a semaphore to make sure we're not running multiple # LabelRenameHandlers for a single account. # This is a conservative choice which should be okay most # of the time. # We could have used something like a table to not start # a LabelRenameHandler for a label when another one is # already running, but in some cases it gives us better consistency # (e.g: I have a label A -> I rename to B, then to C but add some # labels back into A). # This is unlikely but worth getting right. # - karim self.label_rename_semaphore = Semaphore(value=1)
def __init__(self, *args, **kwargs): ImapSyncMonitor.__init__(self, *args, **kwargs) self.sync_engine_class = GmailFolderSyncEngine
def __init__(self, *args, **kwargs): kwargs['retry_fail_classes'] = [GmailSettingError] ImapSyncMonitor.__init__(self, *args, **kwargs) self.sync_engine_class = GmailFolderSyncEngine
def __init__(self, *args, **kwargs): kwargs['retry_fail_classes'] = [GmailSettingError] ImapSyncMonitor.__init__(self, *args, **kwargs) self.thread_download_lock = BoundedSemaphore(1) self.sync_engine_class = partial(GmailFolderSyncEngine, self.thread_download_lock)