work in progress: loader with simple logging
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@3526 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
		
							parent
							
								
									a1ef7dd6d9
								
							
						
					
					
						commit
						b48f8ef9e3
					
				
					 2 changed files with 28 additions and 4 deletions
				
			
		
							
								
								
									
										30
									
								
								external/base.py
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								external/base.py
									
										
									
									
										vendored
									
									
								
							|  | @ -22,6 +22,7 @@ $Id$ | ||||||
| """ | """ | ||||||
| 
 | 
 | ||||||
| from cStringIO import StringIO | from cStringIO import StringIO | ||||||
|  | from logging import getLogger | ||||||
| 
 | 
 | ||||||
| from zope import component | from zope import component | ||||||
| from zope.interface import implements | from zope.interface import implements | ||||||
|  | @ -45,13 +46,36 @@ class BaseLoader(object): | ||||||
| 
 | 
 | ||||||
|     implements(ILoader) |     implements(ILoader) | ||||||
| 
 | 
 | ||||||
|     transcript = u'' |  | ||||||
| 
 |  | ||||||
|     def __init__(self, context): |     def __init__(self, context): | ||||||
|         self.context = context |         self.context = context | ||||||
|         self.changes = [] |         self.changes = [] | ||||||
|         self.errors = [] |         self.errors = [] | ||||||
|         self.summary = dict(count=0, new=0, changed=0, errors=0, warnings=0) |         self.summary = dict(count=0, new=0, changed=0, errors=0, warnings=0) | ||||||
|  |         self.transcript = StringIO() | ||||||
|  |         self.logger = getLogger('Loader') | ||||||
|  |         self.groups = {} | ||||||
| 
 | 
 | ||||||
|     def load(self, elements): |     def load(self, elements): | ||||||
|         pass |         self.loadRecursive(elements) | ||||||
|  |         self.transcript.write('Rows loaded: %(count)i; changed: %(changed)i; ' | ||||||
|  |                               'errors: %(errors)i\n' % self.summary) | ||||||
|  | 
 | ||||||
|  |     def loadRecursive(self, elements): | ||||||
|  |         for element in elements: | ||||||
|  |             element.execute(self) | ||||||
|  |             if element.subElements is not None: | ||||||
|  |                 self.loadRecursive(element.subElements) | ||||||
|  |             self.summary['count'] += 1 | ||||||
|  | 
 | ||||||
|  |     def error(self, message): | ||||||
|  |         self.transcript.write(message + '\n') | ||||||
|  |         self.errors.append(message) | ||||||
|  |         self.summary['errors'] += 1 | ||||||
|  |         self.logger.error(message) | ||||||
|  | 
 | ||||||
|  |     def change(self, message=None): | ||||||
|  |         if message is not None: | ||||||
|  |             self.transcript.write(message + '\n') | ||||||
|  |             self.changes.append(message) | ||||||
|  |             self.logger.info(message) | ||||||
|  |         self.summary['changed'] += 1 | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								external/dsv.py
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								external/dsv.py
									
										
									
									
										vendored
									
									
								
							|  | @ -33,7 +33,7 @@ from cybertools.external.base import BaseReader | ||||||
| from cybertools.external.element import Element | from cybertools.external.element import Element | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| xls2csv = '%(cpath)s -f %%Y-%%m-%%d %(fpath)s.xls >%s(fpath)s.csv' | xls2csv = '%(cpath)s -f %%Y-%%m-%%d %(fpath)s.xls >%(fpath)s.csv' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class CsvReader(BaseReader): | class CsvReader(BaseReader): | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 helmutm
						helmutm