Release Gourmet Recipe Manager


I think the FAT problem should be fixed. The new pnd_make.sh from the current firmware helped to fix things, but I still got errors when I tested it from a FAT partition. The problem seems to be that the PYTHON_EGG_CACHE directory has to contain libraries with execution permissions, which seems to cause problems - probably because FAT does not have permissions at all. I could fix it by pointing PYTHON_EGG_CACHE to a directory in /tmp (the files it creates there do not need to be persistent like the rest of the stuff it wants to write in appdata, and they only take about 64 KB so the impact on available memory is negligible).
 
Well, I'm bot reformatting for ext2 eithyer.

I got way too much stuff on my card, which is FAT32.

If this can't work with FAT32, then I am gonna have to pass on it.
You could just transfer your data on your computer, format to ext2, then paste the files on your ext2 card again. But you need a PC running Linux for that. 
I have Windows, not Linux.
 
My cards are all formated ext4 and the program started OK.  The weird thing was when I tried to import the FISH.txt recipe I got error.  But it worked fine with the poultry.txt one.  Guess this program only likes meat and not seafood :D
 
Last edited by a moderator:
English language only? Hm, I would prefer the recipes in other languages as well, at least the measurements if it's an US recipe, afaik they don't measure in ccm or litre, just in "cups" and ounces... and I absolutly have no talent in using imperial measurements. :ph34r:   

Or does this tool also comes with an optional converter for the measurements?
 
Converting units should be no problem for this tool. It can even convert between volumes (e.g. cups) and weights (e.g. grams) because it has a database of ingredient densities.

I could modify the run script to keep LC_ALL untouched if it is already set. The program just needs it to be set to something, or else it fails to start. It has localizations for many languages, not just English.
 
Well, I'm bot reformatting for ext2 eithyer.

I got way too much stuff on my card, which is FAT32.

If this can't work with FAT32, then I am gonna have to pass on it.
You could just transfer your data on your computer, format to ext2, then paste the files on your ext2 card again. But you need a PC running Linux for that. 
I have Windows, not Linux.
It's never too late to do the right thing :)
 
I have to stick with Windows, because the software I use for my company...only runs Windows or Mac.
You can dual boot ubuntu and windows.  That's what I'm having now.  Just download the latest ubuntu, burn the dvd, and install.  Simple as 1, 2, 3.  :D
 
I have to stick with Windows, because the software I use for my company...only runs Windows or Mac.
You can dual boot ubuntu and windows.  That's what I'm having now.  Just download the latest ubuntu, burn the dvd, and install.  Simple as 1, 2, 3.  :D
I wouldnt recommend using Ubuntu. At least Mint is a better choice. 
 
When trying to import the recipe file that I exported from my other (linux) machine, I get the following error:

Error 1: Error during GXML2 Importer

Code:
Traceback (most recent call last):
  File "/mnt/utmp/gourmet//lib/python2.6/site-packages/gourmet/threadManager.py", line 97, in run
    self.do_run()
  File "/mnt/utmp/gourmet//lib/python2.6/site-packages/gourmet/importers/xml_importer.py", line 71, in do_run
    self.parse = xml.sax.parse(self.fn, self.rh)
  File "/usr/lib/python2.6/xml/sax/__init__.py", line 33, in parse
    parser.parse(source)
  File "/usr/lib/python2.6/xml/sax/expatreader.py", line 107, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "/usr/lib/python2.6/xml/sax/xmlreader.py", line 123, in parse
    self.feed(buffer)
  File "/usr/lib/python2.6/xml/sax/expatreader.py", line 207, in feed
    self._parser.Parse(data, isFinal)
  File "/usr/lib/python2.6/xml/sax/expatreader.py", line 304, in end_element
    self._cont_handler.endElement(name)
  File "/mnt/utmp/gourmet//lib/python2.6/site-packages/gourmet/plugins/import_export/gxml_plugin/gxml2_importer.py", line 44, in endElement
    self.commit_rec()
  File "/mnt/utmp/gourmet//lib/python2.6/site-packages/gourmet/importers/importer.py", line 242, in commit_rec
    r =  self.rd.add_rec(self.rec)
  File "/mnt/utmp/gourmet//lib/python2.6/site-packages/gourmet/backends/db.py", line 1282, in add_rec
    if c: self.do_add_cat({'recipe_id':ID,'category':c})
  File "/mnt/utmp/gourmet//lib/python2.6/site-packages/gourmet/backends/db.py", line 1375, in do_add_cat
    return self.do_add_and_return_item(self.categories_table,dic)
  File "/mnt/utmp/gourmet//lib/python2.6/site-packages/gourmet/backends/db.py", line 1367, in do_add_and_return_item
    result_proxy = self.do_add(table,dic)
  File "/mnt/utmp/gourmet//lib/python2.6/site-packages/gourmet/backends/db.py", line 1359, in do_add
    result_proxy = insert_statement.execute(**dic)
  File "/mnt/utmp/gourmet/lib/python2.6/site-packages/SQLAlchemy-0.7.10-py2.6-linux-armv7l.egg/sqlalchemy/sql/expression.py", line 2841, in execute
    return e._execute_clauseelement(self, multiparams, params)
  File "/mnt/utmp/gourmet/lib/python2.6/site-packages/SQLAlchemy-0.7.10-py2.6-linux-armv7l.egg/sqlalchemy/engine/base.py", line 2453, in _execute_clauseelement
    return connection._execute_clauseelement(elem, multiparams, params)
  File "/mnt/utmp/gourmet/lib/python2.6/site-packages/SQLAlchemy-0.7.10-py2.6-linux-armv7l.egg/sqlalchemy/engine/base.py", line 1584, in _execute_clauseelement
    compiled_sql, distilled_params
  File "/mnt/utmp/gourmet/lib/python2.6/site-packages/SQLAlchemy-0.7.10-py2.6-linux-armv7l.egg/sqlalchemy/engine/base.py", line 1698, in _execute_context
    context)
  File "/mnt/utmp/gourmet/lib/python2.6/site-packages/SQLAlchemy-0.7.10-py2.6-linux-armv7l.egg/sqlalchemy/engine/base.py", line 1691, in _execute_context
    context)
  File "/mnt/utmp/gourmet/lib/python2.6/site-packages/SQLAlchemy-0.7.10-py2.6-linux-armv7l.egg/sqlalchemy/engine/default.py", line 331, in do_execute
    cursor.execute(statement, parameters)
OperationalError: (OperationalError) database is locked u'INSERT INTO categories (recipe_id, category) VALUES (?, ?)' (6, u'Dessert')
 
That's promising.

Now, see if it works with a few recipes...maybe lets you enter in your own recipes, and this might be a handy little extra.
 
Haven't tried XML. Only yet imported from an HTML page. That went ok, even though it took quite some time to markup the relevant parts (might have been faster with a real mouse).


Your problem is related to the DB interface. The stack trace actually doesn't look like the importer is to blame. It suggests that the recipe has already been added and it just fails to set the association to the recipe category 'Dessert', but then I don't no anything about this SQLAlchemy or the importer algorithm. The failing insert statement seems to be correct. Have you opened the recipe manager more than once? Adding recipes manually does work?


The only problem I had: after the import including a picture the program wouldn't start any more, complaining in the pnd out about some or other value not being a GTKwhateverblabla. The workaround was to remove the picture (and thumbnail) from the db manually using the sqlite3 command line client.
 
humm...when this thing works really well, let me know...I'm not in for beta testing on this, because I know squat about programming, so can't really help you find errors.
 
Back
Top