Add OfflineImapError class
This Exception can be thrown whenever a sync error occurs. It is used for outputting sensible error messages to the user and it denotes a "severity", it can tell offlineimap if we need to abort a message, a folder, a repo sync, or whether we should indeed abort immediately. The exception is not yet used in the code. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de> Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
This commit is contained in:
		 Sebastian Spaeth
					Sebastian Spaeth
				
			
				
					committed by
					
						 Nicolas Sebrecht
						Nicolas Sebrecht
					
				
			
			
				
	
			
			
			 Nicolas Sebrecht
						Nicolas Sebrecht
					
				
			
						parent
						
							3446b592f3
						
					
				
				
					commit
					bc004a911a
				
			| @@ -18,6 +18,7 @@ to distribute it under the conditions laid out in COPYING.""" | |||||||
| __homepage__ = "http://github.com/nicolas33/offlineimap" | __homepage__ = "http://github.com/nicolas33/offlineimap" | ||||||
| __license__  = "Licensed under the GNU GPL v2+ (v2 or any later version)." | __license__  = "Licensed under the GNU GPL v2+ (v2 or any later version)." | ||||||
|  |  | ||||||
|  | from offlineimap.error import OfflineImapError | ||||||
| # put this last, so we don't run into circular dependencies using  | # put this last, so we don't run into circular dependencies using  | ||||||
| # e.g. offlineimap.__version__. | # e.g. offlineimap.__version__. | ||||||
| from offlineimap.init import OfflineImap | from offlineimap.init import OfflineImap | ||||||
|   | |||||||
							
								
								
									
										33
									
								
								offlineimap/error.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								offlineimap/error.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | |||||||
|  | class OfflineImapError(Exception): | ||||||
|  |     """An Error during offlineimap synchronization""" | ||||||
|  |  | ||||||
|  |     class ERROR: | ||||||
|  |         """Severity levels""" | ||||||
|  |         MESSAGE  = 0 | ||||||
|  |         FOLDER   = 10 | ||||||
|  |         REPO     = 20 | ||||||
|  |         CRITICAL = 30 | ||||||
|  |  | ||||||
|  |     def __init__(self, reason, severity, errcode=None): | ||||||
|  |         """ | ||||||
|  |         :param reason: Human readable string suitable for logging | ||||||
|  |  | ||||||
|  |         :param severity: denoting which operations should be | ||||||
|  |                aborted. E.g. a ERROR.MESSAGE can occur on a faulty | ||||||
|  |                message, but a ERROR.REPO occurs when the server is | ||||||
|  |                offline. | ||||||
|  |  | ||||||
|  |          :param errcode: optional number denoting a predefined error | ||||||
|  |                situation (which let's us exit with a predefined exit | ||||||
|  |                value). So far, no errcodes have been defined yet. | ||||||
|  |  | ||||||
|  |         :type severity: OfflineImapError.ERROR value""" | ||||||
|  |         self.errcode  = errcode | ||||||
|  |         self.severity = severity | ||||||
|  |  | ||||||
|  |         # 'reason' is stored in the Exception().args tuple. | ||||||
|  |         super(OfflineImapError, self).__init__(reason) | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def reason(self): | ||||||
|  |         return self.args[0] | ||||||
		Reference in New Issue
	
	Block a user