Data Coding suggestions

Discussion in 'Python' started by steven.oldner, Feb 27, 2009.

  1. Just learning Python and have a project to create a weekly menu and a
    shopping list from the menu. This is something I do manually now, so
    I'm automating it.

    What I'd like is a list of menu choices, such as:
    CODE- Description - Est Cost

    'B01 - Pancakes, Sausage,and Eggs - $5.80,
    'L01 - Tuna Fish sandwices and chips -$ 4.25 ,
    'D01 - Dirty Rice and Garlic Bread' - $5.70.

    From the choices, I'll create a weekly menu, print the menu, and then
    print list of ingredients ( and sum the commom items)

    CODE- Item - Qty. - Unit
    B01 - pancake mix - 1 - box
    B01 - milk - .3 -gal
    B01 - eggs - 10 - each
    D01 - dirty rice mix - 1 - box
    D01 - milk - .3 - gal.

    I would like to expand the ingredient list to include other fields
    like 'last purchase date' and 'reorder point'.

    I've used an example program and started to code it but just realized
    I've been coding ABAP in Python, that is set up a data structure and
    use that. What I want is to learn code Python in Python.

    Question: How should I set up the data? I'm looking at maybe 70 menu
    items and maybe 1000 items for the shopping list. I need to be able
    to maintain each item also.

    I am using python 2.6 but would like to use 3.0.

    Thanks for any suggestions!
    steven.oldner, Feb 27, 2009
    #1
    1. Advertising

  2. steven.oldner

    Steve Holden Guest

    steven.oldner wrote:
    > Just learning Python and have a project to create a weekly menu and a
    > shopping list from the menu. This is something I do manually now, so
    > I'm automating it.
    >
    > What I'd like is a list of menu choices, such as:
    > CODE- Description - Est Cost
    >
    > 'B01 - Pancakes, Sausage,and Eggs - $5.80,
    > 'L01 - Tuna Fish sandwices and chips -$ 4.25 ,
    > 'D01 - Dirty Rice and Garlic Bread' - $5.70.
    >
    >>From the choices, I'll create a weekly menu, print the menu, and then

    > print list of ingredients ( and sum the commom items)
    >
    > CODE- Item - Qty. - Unit
    > B01 - pancake mix - 1 - box
    > B01 - milk - .3 -gal
    > B01 - eggs - 10 - each
    > D01 - dirty rice mix - 1 - box
    > D01 - milk - .3 - gal.
    >
    > I would like to expand the ingredient list to include other fields
    > like 'last purchase date' and 'reorder point'.
    >
    > I've used an example program and started to code it but just realized
    > I've been coding ABAP in Python, that is set up a data structure and
    > use that. What I want is to learn code Python in Python.
    >
    > Question: How should I set up the data? I'm looking at maybe 70 menu
    > items and maybe 1000 items for the shopping list. I need to be able
    > to maintain each item also.
    >
    > I am using python 2.6 but would like to use 3.0.
    >

    Well from the nature of the task it seems evident that the data should
    be long-lived, and therefore need to be stored on disk. The natural way
    to deal with them in the program would be to have recipes, each of which
    was associated with a number of ingredient requirements, each of which
    was associated with an ingredient.

    That way, you can adjust the prices of your ingredients as the market
    varies.

    Recent versions of Python come with sqlite, a low-cost but surprisingly
    efficient relational database implementation. I'd suggest using that,
    with the following tables:

    Recipe:
    id integer primary key
    name string

    Ingredient
    id integer primary key
    name string
    unit string [oz, gal, etc.]
    cost number [cost per unit]

    Requirement
    recipe integer [id of recipe]
    ingredient integer [id of ingredient]
    quantity number [amount required for one serving]

    So each recipe will have one row in the recipe table, a number of rows
    in the requirement table, each of which points also to the relevant
    ingredient.

    >From there it's a relatively simple task to work out how much of which

    ingredients is required to create N helpings of a specific recipe, and
    the cost as well.

    It will mean understanding a little more about database than you perhaps
    do right now, but that's a useful addition to any programmer's bag of
    tricks.

    regards
    Steve
    --
    Steve Holden +1 571 484 6266 +1 800 494 3119
    Holden Web LLC http://www.holdenweb.com/
    Steve Holden, Feb 27, 2009
    #2
    1. Advertising

  3. steven.oldner

    Rick Dooling Guest

    On Feb 27, 6:42 am, "steven.oldner" <> wrote:
    > Just learning Python and have a project to create a weekly menu and a
    > shopping list from the menu.  


    > Question:  How should I set up the data?  I'm looking at maybe 70 menu
    > items and maybe 1000 items for the shopping list.  I need to be able
    > to maintain each item also.
    >


    I agree with Mr. Holden. It's a perfect exercise for using Python with
    sqlite3.

    And the nice thing about this documentation is it has plenty of good
    examples:

    http://docs.python.org/library/sqlite3.html

    Good luck,

    RD
    Rick Dooling, Feb 27, 2009
    #3
  4. On Feb 27, 2:04 pm, Rick Dooling <> wrote:
    > On Feb 27, 6:42 am, "steven.oldner" <> wrote:
    >
    > > Just learning Python and have a project to create a weekly menu and a
    > > shopping list from the menu.  
    > > Question:  How should I set up the data?  I'm looking at maybe 70 menu
    > > items and maybe 1000 items for the shopping list.  I need to be able
    > > to maintain each item also.

    >
    > I agree with Mr. Holden. It's a perfect exercise for using Python with
    > sqlite3.
    >
    > And the nice thing about this documentation is it has plenty of good
    > examples:
    >
    > http://docs.python.org/library/sqlite3.html
    >
    > Good luck,
    >
    > RD


    Thanks guys. While shopping today I've thought of a few more columns
    for my data so my first item will be building the 3 DB tables and a
    way to populate them. Since this was intended to automate what I do
    on a weekly basis, I didn't think about adding recipes since I know
    what I need for the family, but that's a good touch.

    Item 1. Build 3 db tables
    Item 2. Build app to populate tables.
    Item 3. Build app to read tables and print lists.

    Anything else?
    steven.oldner, Feb 28, 2009
    #4
  5. steven.oldner

    Kurt Smith Guest

    On Sat, Feb 28, 2009 at 10:08 AM, steven.oldner <> wrote:

    >
    > Thanks guys.  While shopping today I've thought of a few more columns
    > for my data so my first item will be building the 3 DB tables and a
    > way to populate them.  Since this was intended to automate what I do
    > on a weekly basis, I didn't think about adding recipes since I know
    > what I need for the family, but that's a good touch.
    >
    > Item 1. Build 3 db tables
    > Item 2. Build app to populate tables.
    > Item 3. Build app to read tables and print lists.
    >
    > Anything else?


    You might take a look at the source code for the Gourmet Recipe Manager

    http://grecipe-manager.sourceforge.net/

    It's written in python, has a persistent database (not sure if using
    sqlite3) and you might be able to adapt it to your needs.

    We use it for our shopping lists here and it's great.

    Kurt
    Kurt Smith, Feb 28, 2009
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. =?Utf-8?B?QmlsbA==?=
    Replies:
    1
    Views:
    1,198
    avnrao
    May 31, 2004
  2. VB Programmer

    Suggestions to prevent VICIOUS data input?

    VB Programmer, Feb 2, 2006, in forum: ASP .Net
    Replies:
    3
    Views:
    389
    Peter Blum
    Feb 2, 2006
  3. Replies:
    1
    Views:
    358
    bruno modulix
    May 10, 2005
  4. calmar
    Replies:
    11
    Views:
    750
    calmar
    Feb 21, 2006
  5. eholz1
    Replies:
    9
    Views:
    182
    eholz1
    Dec 16, 2007
Loading...

Share This Page