[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