[Pkg-gourmet-changes] gourmet/src/lib/importers __init__.py, 1.1.1.1, 1.2 gxml2_importer.py, 1.1.1.1, 1.2 gxml_importer.py, 1.1.1.1, 1.2 html_importer.py, 1.1.1.1, 1.2 importer.py, 1.1.1.1, 1.2 krecipe_importer.py, 1.1.1.1, 1.2 mastercook_importer.py, 1.1.1.1, 1.2 mastercook_plaintext_importer.py, 1.1.1.1, 1.2 mealmaster_importer.py, 1.1.1.1, 1.2 plaintext_importer.py, 1.1.1.1, 1.2 xml_importer.py, 1.1.1.1, 1.2

seanius at haydn.debian.org seanius at haydn.debian.org
Tue Sep 20 15:06:02 UTC 2005


Update of /cvsroot/pkg-gourmet/gourmet/src/lib/importers
In directory haydn:/org/alioth.debian.org/chroot/home/users/seanius/tmp/cvs-serv30504/src/lib/importers

Modified Files:
	__init__.py gxml2_importer.py gxml_importer.py 
	html_importer.py importer.py krecipe_importer.py 
	mastercook_importer.py mastercook_plaintext_importer.py 
	mealmaster_importer.py plaintext_importer.py xml_importer.py 
Log Message:
update for upstream source to 0.8.6.5.1

Index: __init__.py
===================================================================
RCS file: /cvsroot/pkg-gourmet/gourmet/src/lib/importers/__init__.py,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- __init__.py	5 Sep 2005 00:19:43 -0000	1.1.1.1
+++ __init__.py	20 Sep 2005 15:05:49 -0000	1.2
@@ -87,7 +87,7 @@
                                                '*.tar.bz2']],
            ['gzipped file',['application/gzip'],['*.gzip','*.gz']]]
 FILTERS = ARCHIVE_FILTERS
-ALL_PATTERNS = []
+ALL_PATTERNS = ['*.gzip','*.gz','*.tar','*.tgz','*.tar.gz','*.zip']
 ALL_MIMES = []
 for d in FILTER_INFO.values():
     FILTERS.append([d['name'],d['mimetypes'],d['patterns']])

Index: gxml2_importer.py
===================================================================
RCS file: /cvsroot/pkg-gourmet/gourmet/src/lib/importers/gxml2_importer.py,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- gxml2_importer.py	5 Sep 2005 00:19:43 -0000	1.1.1.1
+++ gxml2_importer.py	20 Sep 2005 15:05:49 -0000	1.2
@@ -12,8 +12,8 @@
         "amount":"amount",
         "key":"ingkey",
         }
-    def __init__ (self, recData, total=None, prog=None):
-        xml_importer.RecHandler.__init__(self,recData,total,prog)
+    def __init__ (self, recData, total=None, prog=None,conv=None):
+        xml_importer.RecHandler.__init__(self,recData,total,prog,conv=conv)
         self.REC_ATTRS = [r[0] for r in REC_ATTRS]
         self.REC_ATTRS += [r for r in TEXT_ATTR_DIC.keys()]
         
@@ -21,7 +21,11 @@
         gt.gtk_update()
         self.elbuf = ""        
         if name=='recipe':
-            self.start_rec()
+            id=attrs.get('id',None)
+            if id:
+                self.start_rec(dict={'id':id})
+            else: self.start_rec()
+            
         if name=='ingredient':
             self.start_ing(id=self.rec['id'])
             if attrs.get('optional',False):
@@ -53,10 +57,10 @@
 
 
 class converter (xml_importer.converter):
-    def __init__ (self, filename, rd, threaded=False, progress=None):
+    def __init__ (self, filename, rd, threaded=False, progress=None,conv=None):
         xml_importer.converter.__init__(self,filename,rd,RecHandler,
                                         recMarker="</recipe>",threaded=threaded,
-                                        progress=progress)
+                                        progress=progress,conv=conv)
 
 def unquoteattr (str):
     return xml.sax.saxutils.unescape(str).replace("_"," ")

Index: gxml_importer.py
===================================================================
RCS file: /cvsroot/pkg-gourmet/gourmet/src/lib/importers/gxml_importer.py,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- gxml_importer.py	5 Sep 2005 00:19:43 -0000	1.1.1.1
+++ gxml_importer.py	20 Sep 2005 15:05:49 -0000	1.2
@@ -5,8 +5,8 @@
 import base64
 
 class RecHandler (xml_importer.RecHandler):
-    def __init__ (self, recData, total=None, prog=None):
-        xml_importer.RecHandler.__init__(self,recData,total,prog)
+    def __init__ (self, recData, total=None, prog=None,conv=None):
+        xml_importer.RecHandler.__init__(self,recData,total,prog,conv=conv)
         self.meta={}
         self.in_mixed = 0
         self.meta['cuisine']={}
@@ -102,10 +102,10 @@
             self.mixed += "</%s>" % name
 
 class converter (xml_importer.converter):
-    def __init__ (self, filename, rd, threaded=False, progress=None):
+    def __init__ (self, filename, rd, threaded=False, progress=None,conv=None):
         xml_importer.converter.__init__(self,filename,rd,RecHandler,
                                         recMarker="</recipe>",threaded=threaded,
-                                        progress=progress)
+                                        progress=progress,conv=conv)
 
 def unquoteattr (str):
     return xml.sax.saxutils.unescape(str).replace("_"," ")

Index: html_importer.py
===================================================================
RCS file: /cvsroot/pkg-gourmet/gourmet/src/lib/importers/html_importer.py,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- html_importer.py	5 Sep 2005 00:19:43 -0000	1.1.1.1
+++ html_importer.py	20 Sep 2005 15:05:50 -0000	1.2
@@ -182,7 +182,7 @@
             # also work for previousSibling, nextSibling, etc.
             if step.has_key('moveto'):
                 ret = [getattr(o,step['moveto']) for o in ret]
-            if type(ind)==list:                
+            if type(ind) in [list,tuple]:                
                 return ret[ind[0]:ind[1]]
             else: #ind is an integer
                 if ind < len(ret):
@@ -294,7 +294,7 @@
     sock=urllib.urlopen(url)
     header=sock.headers.get('content-type','text/html')
     if progress: progress(0.02, 'Reading headers')
-    if header=='text/html':
+    if header.find('html')>=0:
         #return scrape_url(url,progress)
         return WebPageImporter(rd,
                                url,
@@ -328,11 +328,12 @@
     JOIN_AS_PARAGRAPHS = ['instructions','modifications','ingredient_block']
 
     def __init__ (self, rd, url, add_webpage_source=True,
-                  threaded=False, total=0, prog=None):
+                  threaded=False, total=0, prog=None,conv=None):
         self.add_webpage_source=add_webpage_source
         self.url = url
         self.prog = prog
-        importer.importer.__init__(self,rd,threaded=threaded,total=total,prog=prog,do_markup=False)
+        importer.importer.__init__(self,rd,threaded=threaded,total=total,prog=prog,do_markup=False,
+                                   conv=conv)
 
     def run (self):
         """Import our recipe to our database.

Index: importer.py
===================================================================
RCS file: /cvsroot/pkg-gourmet/gourmet/src/lib/importers/importer.py,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- importer.py	5 Sep 2005 00:19:43 -0000	1.1.1.1
+++ importer.py	20 Sep 2005 15:05:51 -0000	1.2
@@ -5,6 +5,8 @@
 from gourmet.gglobals import gt, use_threads
 import xml.sax.saxutils
 from gettext import gettext as _
+from gettext import ngettext
+import gourmet.dialog_extras as de
 
 class importer:
 
@@ -12,12 +14,19 @@
     for importers to use. Basically, the importer builds up a dictionary of properties inside of
     self.rec and then commits that dictionary with commit_rec(). Similarly, ingredients are built
     as self.ing and then committed with commit_ing()."""
+
+    star_matcher = re.compile(
+        '([\d.]+)(/([\d]+))?\s*(star|stars|%s|%s|%s|%s)'%tuple([ngettext('star','stars',n) \
+                                                                for n in range(4)]),
+        re.IGNORECASE)
     
-    def __init__ (self, rd, threaded=False, total=0, prog=None, do_markup=True):
+    def __init__ (self, rd, threaded=False, total=0, prog=None, do_markup=True,conv=None,rating_converter=None):
         """rd is our recipeData instance. Total is used to keep track of progress
         with function progress. do_markup should be True if instructions and modifications
         come to us unmarked up (i.e. if we need to escape < and &, etc."""
         timeaction = TimeAction('importer.__init__',10)
+        if not conv: self.conv = convert.converter()
+        self.id_converter = {} # a dictionary for tracking named IDs
         self.total = total
         self.prog = prog
         self.do_markup=do_markup
@@ -34,9 +43,19 @@
         self.threaded=threaded
         # allow threaded calls to pause
         self.suspended = False
-        # allow threaded calls to be termintaed (this
+        # allow threaded calls to be terminated (this
         # has to be implemented in subclasses).
-        self.terminated = False        
+        self.terminated = False
+        # Our rating converter -- if we've been handed a class, we
+        # assume our caller will handle doing the
+        # conversion. Otherwise we do it ourselves.
+        if rating_converter:
+            self.rating_converter = rating_converter
+            self.do_conversion = False
+        else:
+            self.rating_converter = RatingConverter()
+            self.do_conversion = True
+        
         if hasattr(self.rd,'km'):
             debug('Using existing keymanager',2)
             self.km=self.rd.km
@@ -47,6 +66,7 @@
             ## run ourselves, unless we're threaded, in which
             ## case we'll want to call run explicitly from outside.
             self.run()
+            self._run_cleanup_()
         timeaction.end()
     # end __init__
 
@@ -61,7 +81,13 @@
         #        h(r)
         self.rd.add_ing_hooks = self.rd_orig_ing_hooks
         #self.rd.add_hooks = self.rd_orig_hooks        
-        print_timer_info()
+        #print_timer_info()
+
+    def _run_cleanup_ (self):
+        if self.do_conversion:
+            # if we have something to convert
+            if self.rating_converter.to_convert:
+                self.rating_converter.do_conversions(self.rd)
 
     def check_for_sleep (self):
         timeaction = TimeAction('importer.check_for_sleep',10)
@@ -79,7 +105,7 @@
                 time.sleep(1)
         timeaction.end()
 
-    def start_rec (self, dict=None, base="import"):
+    def start_rec (self, dict=None):
         self.rec_timer = TimeAction('importer RECIPE IMPORT',10)
         timeaction = TimeAction('importer.start_rec',10)
         self.check_for_sleep()
@@ -90,43 +116,76 @@
         else:
             self.rec = {}
         #if not self.rec.has_key('id'):
-        # always create a new ID
-        self.rec['id']=self.rd.new_id(base)
+        # always create a new ID        
+        if self.rec.has_key('id'):
+            if self.id_converter.has_key(self.rec['id']):
+                self.rec['id']=self.id_converter[self.rec['id']]
+            else:
+                real_id = self.rd.new_id()
+                self.id_converter[self.rec['id']]=real_id
+                self.rec['id']=real_id
+        else:
+            self.rec['id']=self.rd.new_id()
         debug('New Import\'s ID=%s'%self.rec['id'],0)
         timeaction.end()
 
+    def _move_to_instructions (self, recdic, attr):
+        """A convenience method to shift information from an attribute
+        to instructions.
+
+        This is frequently a fallback for bad input -- we try to make
+        sure we don't lose data this way."""
+        if not recdic.has_key('instructions'):
+            recdic['instructions']=recdic[attr]
+        else:
+            recdic['instructions']=recdic['instructions']+'\n'+recdic[attr]
+        del recdic[attr]
+
     def commit_rec (self):
         timeaction = TimeAction('importer.commit_rec',10)
+        # if servings can't be recognized as a number, add them to the
+        # instructions.
         if self.rec.has_key('servings'):
             servs=self.convert_servings(self.rec['servings'])
-            if servs: self.rec['servings']=str(servs)
+            if servs:
+                self.rec['servings']=str(servs)
             else:
-                if not self.rec.has_key('instructions'):
-                    self.rec['instructions']=self.rec['servings']
+                self._move_to_instructions(self.rec,'servings')
+        # Check preptime and cooktime
+        for t in ['preptime','cooktime']:
+            if self.rec.has_key(t) and type(self.rec[t])!=int:
+                secs = self.conv.timestring_to_seconds(self.rec[t])
+                if secs:
+                    self.rec[t]=secs
                 else:
-                    self.rec['instructions']=self.rec['servings']+"\n"+self.rec['instructions']
-                self.rec['servings']=None
-        if self.rec.has_key('image') and not self.rec.has_key('thumb'):
-            # if we have an image but no thumbnail, we want to create the thumbnail.
-            img = ImageExtras.get_image_from_string(self.rec['image'])
-            thumb = ImageExtras.resize_image(img,40,40)
-            ofi = StringIO.StringIO()
-            thumb.save(ofi,'JPEG')
-            self.rec['thumb']=ofi.getvalue()
-            ofi.close()
+                    self._move_to_instructions(self.rec,t)
+        # Markup instructions and mods as necessary
         if self.do_markup:
             for k in ['instructions','modifications']:
                 if self.rec.has_key(k): self.rec[k] = xml.sax.saxutils.escape(self.rec[k])
-        for k,v in self.rec.items():
-            try:
-                self.rec[k]=v.strip()
-            except:
-                pass
+        # A little strange, this is, but for UI reasons, we want to
+        # keep track of any ratings that are not integers so that we
+        # can ask the user how to convert them when we're all done
+        # with importing.              
+        remembered_rating = None
+        if self.rec.has_key('rating'):
+            rat = self.rec['rating']
+            if type(rat) not in [int,float]:
+                if not rat: del self.rec['rating']
+                m = self.star_matcher.match(self.rec['rating'])
+                if m:
+                    #print 'changing rating ',self.rec['rating'],'->',float(m.groups()[0])*2
+                    self.rec['rating']=float(m.groups()[0])*2
+                else:
+                    #print 'deleting rating (remembering)'
+                    remembered_rating = self.rec['rating']
+                    del self.rec['rating']
         tt=TimeAction('importer.commit_rec - rd.add_rec',5)
         debug('commiting recipe %s'%self.rec,0)
         r = self.rd.add_rec(self.rec)
         tt.end()
         self.added_recs.append(r)
+        if remembered_rating: self.rating_converter.add(r.id,remembered_rating)        
         self.check_for_sleep()
         timeaction.end()
         self.rec_timer.end()
@@ -216,7 +275,9 @@
 
     def add_ref (self, id):
         timeaction = TimeAction('importer.add_ref',10)
-        self.ing['refid']=id
+        if not self.id_converter.has_key(id):
+            self.id_converter[id]=self.rd.new_id()
+        self.ing['refid']=self.id_converter[id]
         self.ing['unit']='recipe'
         timeaction.end()
 
@@ -287,10 +348,10 @@
             if self.total_size: self.current_percentage = float(self.sizes.get(fn,-1))/self.total_size
             else: self.current_percentage = -1
             gt.gtk_enter()
-            if self.grm.prog_dialog.detail_label:
-                self.grm.prog_dialog.detail_label.set_text(_('<i>Importing %s</i>')%fn)
-                self.grm.prog_dialog.detail_label.set_use_markup(True)
-            #self.grm.prog_dialog.label.set_text(_('<i>Importing %s</i>')%fn)
+            if self.grm.progress_dialog.detail_label:
+                self.grm.progress_dialog.detail_label.set_text(_('<i>Importing %s</i>')%fn)
+                self.grm.progress_dialog.detail_label.set_use_markup(True)
+            #self.grm.progress_dialog.label.set_text(_('<i>Importing %s</i>')%fn)
             gt.gtk_leave()
             kwargs['progress']=self.show_progress
             self.iclass = ic(*args,**kwargs)
@@ -298,7 +359,6 @@
             self.terminate = self.iclass.terminate
             self.resume = self.iclass.resume
             self.iclass.run()
-            #print self.current_prog, '+', self.current_percentage
             self.current_prog += self.current_percentage
         self.grm.set_progress_thr(1,'Import complete!')
     
@@ -373,3 +433,50 @@
             self.ofi.close()
         else:
             self.ofi.seek(0)
+            
+class RatingConverter:
+
+    """A class to handle converting ratings from strings to integers.
+
+    This is here since many of our imports will grab ratings for us in
+    the form of 'excellent' or some such, and we'll want to let our
+    user convert those to stars as they see fit.
+    """
+    
+    conversions = {'excellent':5*2,
+                   'great':4*2,
+                   'good':3*2,
+                   'fair':2*2,
+                   'poor':1*2,
+                   'okay':5,
+                   'alright':5,
+                   _('Excellent').lower():5*2,
+                   _('Great').lower():4*2,
+                   _('Good').lower():3*2,
+                   _('Fair').lower():2*2,
+                   _('Poor').lower():1*2}
+
+    def __init__ (self):
+        self.to_convert = {}
+        self.got_conversions = False
+
+    def add (self, id, rating):
+        self.to_convert[id]=rating
+
+    def get_conversions (self, star_generator=None):
+        self.got_conversions=True
+        if not star_generator:
+            from gourmet.ratingWidget import star_generator
+        ratings = []
+        need_conversions = False
+        for v in self.to_convert.values():
+            if not need_conversions:
+                need_conversions = self.conversions.has_key(v.lower())
+            if not v in ratings: ratings.append(v)
+        if need_conversions:
+            self.conversions = de.get_ratings_conversion(ratings,star_generator,defaults=self.conversions)
+
+    def do_conversions (self, db):
+        if not self.got_conversions: self.get_conversions()
+        for id,rating in self.to_convert.items():
+            db.modify_rec(db.get_rec(id),{'rating':self.conversions[rating]})

Index: krecipe_importer.py
===================================================================
RCS file: /cvsroot/pkg-gourmet/gourmet/src/lib/importers/krecipe_importer.py,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- krecipe_importer.py	5 Sep 2005 00:19:44 -0000	1.1.1.1
+++ krecipe_importer.py	20 Sep 2005 15:05:51 -0000	1.2
@@ -26,11 +26,11 @@
     RECIPE_TAG = 'krecipes-recipe'
     ING_TAG = 'ingredient'
     
-    def __init__ (self, recData, total=None, prog=None):
+    def __init__ (self, recData, total=None, prog=None,conv=None):
         self.in_mixed = 0
         self.rec={}
         self.ing={}
-        xml_importer.RecHandler.__init__(self,recData,total,prog)
+        xml_importer.RecHandler.__init__(self,recData,total,prog,conv=conv)
 
     def startElement (self, name, attrs):
         self.elbuf = ""
@@ -70,8 +70,8 @@
 
     
 class converter (xml_importer.converter):
-    def __init__ (self, filename, rd, threaded=False, progress=None):
+    def __init__ (self, filename, rd, threaded=False, progress=None,conv=None):
         xml_importer.converter.__init__(self,filename,rd,KrecHandler,
                               recMarker="</krecipe-recipe>",threaded=threaded,
-                              progress=progress)
+                              progress=progress,conv=conv)
         

Index: mastercook_importer.py
===================================================================
RCS file: /cvsroot/pkg-gourmet/gourmet/src/lib/importers/mastercook_importer.py,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- mastercook_importer.py	5 Sep 2005 00:19:43 -0000	1.1.1.1
+++ mastercook_importer.py	20 Sep 2005 15:05:51 -0000	1.2
@@ -63,7 +63,7 @@
         
 class MastercookXMLHandler (xml.sax.ContentHandler, importer.importer):
     """We handle MasterCook XML Files"""
-    def __init__ (self, recData, source=None, progress=None):
+    def __init__ (self, recData, source=None, progress=None, conv=None):
         debug('MastercookXMLHandler starting',0)
         self.source = source
         self.progress = progress
@@ -88,7 +88,7 @@
         self.current_elements = []
         self.bufs = []
         xml.sax.ContentHandler.__init__(self)
-        importer.importer.__init__(self,rd=recData,prog=self.progress)
+        importer.importer.__init__(self,rd=recData,prog=self.progress,conv=conv)
 
     def grabattr (self, attrs, name, default=''):
         return unquoteattr(attrs.get(name,default))
@@ -222,13 +222,13 @@
     
 
 class converter:
-    def __init__ (self, filename, rd=None, source=None, threaded=False, progress=None):
+    def __init__ (self, filename, rd=None, source=None, threaded=False, progress=None, conv=None):
         debug('mastercook_importer.converter starting: fn=%s, rd=%s, src=%s, threaded=%s'%(
             filename, rd, source, threaded),
               0)
         self.fn = filename
         self.progress = progress
-        self.rh = MastercookXMLHandler(rd, source=source, progress=progress)
+        self.rh = MastercookXMLHandler(rd, source=source, progress=progress, conv=None)
         self.threaded=threaded
         self.terminate=self.rh.terminate
         self.suspend = self.rh.suspend

Index: mastercook_plaintext_importer.py
===================================================================
RCS file: /cvsroot/pkg-gourmet/gourmet/src/lib/importers/mastercook_plaintext_importer.py,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- mastercook_plaintext_importer.py	5 Sep 2005 00:19:44 -0000	1.1.1.1
+++ mastercook_plaintext_importer.py	20 Sep 2005 15:05:51 -0000	1.2
@@ -11,7 +11,7 @@
                  'Preparation Time':'preptime',
                  'Categories':'category',
                  }
-    def __init__ (self, filename, rd, progress=None, threaded=False):
+    def __init__ (self, filename, rd, progress=None, threaded=False, conv=None):
         self.progress = progress
         self.compile_regexps()
         self.instr = ""
@@ -23,7 +23,8 @@
         self.in_attrs=False
         self.in_mods=False
         self.reccol_headers = False
-        plaintext_importer.TextImporter.__init__(self,filename,rd,progress=progress,threaded=threaded)
+        plaintext_importer.TextImporter.__init__(self,filename,rd,progress=progress,threaded=threaded,
+                                                 conv=conv)
         
     def compile_regexps (self):
         plaintext_importer.TextImporter.compile_regexps(self)

Index: mealmaster_importer.py
===================================================================
RCS file: /cvsroot/pkg-gourmet/gourmet/src/lib/importers/mealmaster_importer.py,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- mealmaster_importer.py	5 Sep 2005 00:19:44 -0000	1.1.1.1
+++ mealmaster_importer.py	20 Sep 2005 15:05:51 -0000	1.2
@@ -79,7 +79,7 @@
     
     def __init__ (self,rd,filename='Data/mealmaster.mmf',
                   progress=None, source=None,threaded=True,
-                  two_col_minimum=38):
+                  two_col_minimum=38,conv=None):
         """filename is the file to parse (or filename). rd is the recData instance
         to start with.  progress is a function we tell about our
         progress to (we hand it a single arg)."""
@@ -96,7 +96,8 @@
         self.unit_length = 2
         self.two_col_minimum = two_col_minimum
         self.last_line_was = None
-        plaintext_importer.TextImporter.__init__(self,filename,rd,progress=progress,threaded=threaded)        
+        plaintext_importer.TextImporter.__init__(self,filename,rd,progress=progress,
+                                                 threaded=threaded,conv=conv)
         testtimer.end()
         
     def compile_regexps (self):
@@ -545,9 +546,9 @@
     from gourmet.OptionParser import *
     print 'Testing MealMaster import'
     tmpfile = tempfile.mktemp()
-    import gourmet.backends.rmetakit
-    rd = gourmet.backends.rmetakit.RecipeManager(tmpfile)
-    if not args: args = ['/home/tom/Desktop/TRANSFER.TXT']
+    import backends.rmetakit
+    rd = backends.rmetakit.RecipeManager(tmpfile)
+    if not args: args = ['/home/tom/Projects/recipe/Data/200_Recipes.mmf']
     for a in args:
         profi = os.path.join(tempfile.tempdir,'MMI_PROFILE')
         profile.run("mmf_importer(rd,a,progress=lambda *args: sys.stdout.write('|'),threaded=False)",

Index: plaintext_importer.py
===================================================================
RCS file: /cvsroot/pkg-gourmet/gourmet/src/lib/importers/plaintext_importer.py,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- plaintext_importer.py	5 Sep 2005 00:19:44 -0000	1.1.1.1
+++ plaintext_importer.py	20 Sep 2005 15:05:51 -0000	1.2
@@ -12,13 +12,13 @@
 
     end_of_paragraph_length = 60
 
-    def __init__ (self, filename, rd, progress=None, threaded=False):
+    def __init__ (self, filename, rd, progress=None, threaded=False,conv=None):
         self.fn = filename
         self.rec = {}
         self.ing = {}
         self.progress = progress
         self.compile_regexps()
-        importer.importer.__init__(self,rd,threaded=threaded)
+        importer.importer.__init__(self,rd,threaded=threaded,conv=conv)
         
     def run (self):
         ll = check_encodings.get_file(self.fn)

Index: xml_importer.py
===================================================================
RCS file: /cvsroot/pkg-gourmet/gourmet/src/lib/importers/xml_importer.py,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- xml_importer.py	5 Sep 2005 00:19:44 -0000	1.1.1.1
+++ xml_importer.py	20 Sep 2005 15:05:51 -0000	1.2
@@ -4,17 +4,18 @@
 from gourmet.gglobals import *
 
 class RecHandler (xml.sax.ContentHandler, importer.importer):
-    def __init__ (self, recData, total=None, prog=None):
+    def __init__ (self, recData, total=None, prog=None, conv=None):
         self.elbuf = ""
         xml.sax.ContentHandler.__init__(self)
         importer.importer.__init__(self,rd=recData,total=total,prog=prog,threaded=True,
-                                   do_markup=False)
+                                   do_markup=False, conv=conv)
 
     def characters (self, ch):
         self.elbuf += ch
 
 class converter:
-    def __init__ (self, filename, rd, recHandler, recMarker=None, threaded=False, progress=None):
+    def __init__ (self, filename, rd, recHandler, recMarker=None, threaded=False, progress=None,
+                  conv=None):
 
         """Initialize an XML converter which will use recHandler to parse data.
         
@@ -37,7 +38,7 @@
         self.fn = filename
         self.threaded = threaded
         self.progress = progress
-        self.rh = recHandler(recData=self.rd,prog=self.progress)
+        self.rh = recHandler(recData=self.rd,prog=self.progress,conv=conv)
         self.terminate = self.rh.terminate
         self.suspend = self.rh.suspend
         self.resume = self.rh.resume
@@ -57,4 +58,5 @@
         t.end()
         self.rh.total=recs
         self.parse = xml.sax.parse(self.fn, self.rh)
-
+        importer.importer._run_cleanup_(self.rh)
+        




More information about the Pkg-gourmet-changes mailing list