Run update21, if you haven't already, to create the cs21/labs/09 directory. Then cd into your cs21/labs/09 directory and create the python program for lab 09 in this directory (handin21 looks for your lab 09 assignments in your cs21/labs/09 directory).
$ update21 $ cd cs21/labs/09 $ vim contributions.py
The 2012 Presidential Election was the most expensive election in the history of the United states. In this lab we are going to look at individual contributions for Barack Obama and Mitt Romney during the 2012 election cycle (which is for the years 2011 and 2012). Your assignment this week is to create a program (contributions.py) that allows the user to explore our campaign contribution database.
The contribution database is contained in a single file, /usr/local/doc/contributions2012.txt, which contains individual contribution data for both candidates aggregated by zip code. Don't copy this file to your 09 directory, just use "/usr/local/doc/contributions2012.txt" in your python program. Each line of the file contains nine fields separated by commas:
19081,SWARTHMORE,PA,39.89672470,-75.34742737,125,51018,14,10060
If you want, you can look at the file with the less command:
    $ less /usr/local/doc/contributions2012.txt
  
Your program should prompt the user for either a zip code or at least part of a city name. Depending on what the user types, your program should do one of the following:
A sample run is shown here:
$ python contributions.py 
Welcome to contributions.py v1.0
Enter a zip code or the name of a city and I'll tell you
campaign contribution information about it. Enter a blank
line when you're finished...
zip or city: 19081
Contribution information for SWARTHMORE, PA 19081
Obama:    125 contributions totaling $  51018
Romney:    14 contributions totaling $  10060
Top ten contribution zip codes for Obama in PA:
        PHILADELPHIA, PA 19103:   361 contributions totaling $ 209770
        PHILADELPHIA, PA 19119:   384 contributions totaling $ 178534
          PITTSBURGH, PA 15217:   310 contributions totaling $ 153372
        PHILADELPHIA, PA 19106:   212 contributions totaling $ 114749
           BRYN MAWR, PA 19010:   223 contributions totaling $ 108930
               WAYNE, PA 19087:   239 contributions totaling $ 107962
        PHILADELPHIA, PA 19118:   221 contributions totaling $ 104645
           WYNNEWOOD, PA 19096:   190 contributions totaling $  96328
        PHILADELPHIA, PA 19147:   214 contributions totaling $  90611
        PHILADELPHIA, PA 19130:   181 contributions totaling $  90516
Top ten contribution zip codes for Romney in PA:
           BRYN MAWR, PA 19010:   184 contributions totaling $ 236000
               WAYNE, PA 19087:   164 contributions totaling $ 150680
           VILLANOVA, PA 19085:   123 contributions totaling $ 139125
           HAVERFORD, PA 19041:    93 contributions totaling $ 131430
             MALVERN, PA 19355:   137 contributions totaling $ 121189
           SEWICKLEY, PA 15143:   133 contributions totaling $ 117870
        WEST CHESTER, PA 19382:   120 contributions totaling $ 114207
        PHILADELPHIA, PA 19103:    94 contributions totaling $ 105400
            GLADWYNE, PA 19035:    92 contributions totaling $ 103400
            NEW HOPE, PA 18938:   107 contributions totaling $ 102150

 
zip or city: 8765309
Please enter a 5-digit zip code...
zip or city: london
Here are all the cities I can find that start with that and have
contributions, sorted by zip code... 
         LONDONDERRY, NH 03053, Obama:  $  8250, Romney  $  8420
         LONDONDERRY, VT 05148, Obama:  $   450, Romney  $  2000
              LONDON, KY 40741, Obama:  $   250, Romney  $  8800
              LONDON, KY 40743, Obama:  $     0, Romney  $  7250
              LONDON, KY 40744, Obama:  $  2875, Romney  $  5211
              LONDON, OH 43140, Obama:  $   250, Romney  $   493
         LONDONDERRY, OH 45647, Obama:  $     0, Romney  $   750
              LONDON, TX 76854, Obama:  $     0, Romney  $  3000
zip or city: 02474
Contribution information for ARLINGTON, MA 02474
Obama:    181 contributions totaling $  82137
Romney:    22 contributions totaling $  18300
Top ten contribution zip codes for Obama in MA:
           CAMBRIDGE, MA 02138:  1146 contributions totaling $ 686051
           CAMBRIDGE, MA 02139:   555 contributions totaling $ 273167
           BROOKLINE, MA 02446:   549 contributions totaling $ 267010
           BROOKLINE, MA 02445:   480 contributions totaling $ 253217
              BOSTON, MA 02116:   384 contributions totaling $ 229269
             BELMONT, MA 02478:   431 contributions totaling $ 220564
           CAMBRIDGE, MA 02140:   389 contributions totaling $ 219822
       JAMAICA PLAIN, MA 02130:   444 contributions totaling $ 212523
             CONCORD, MA 01742:   424 contributions totaling $ 212011
           LEXINGTON, MA 02421:   385 contributions totaling $ 194054
Top ten contribution zip codes for Romney in MA:
     WELLESLEY HILLS, MA 02481:   238 contributions totaling $ 320100
              WESTON, MA 02493:   246 contributions totaling $ 313576
              BOSTON, MA 02116:   204 contributions totaling $ 301444
             BELMONT, MA 02478:   188 contributions totaling $ 232584
             CONCORD, MA 01742:   106 contributions totaling $ 128356
             WAYLAND, MA 01778:   100 contributions totaling $ 117120
           WELLESLEY, MA 02482:    89 contributions totaling $ 115555
              BOSTON, MA 02108:    81 contributions totaling $ 109700
       CHESTNUT HILL, MA 02467:    82 contributions totaling $ 104910
               DOVER, MA 02030:    77 contributions totaling $ 103450

 
zip or city: pickles
Sorry...I can't find anything for that city...
zip or city: vien
Here are all the cities I can find that start with that and have
contributions...
              VIENNA, ME 04360, Obama:    1000, Romney       0
              VIENNA, VA 22180, Obama:   42545, Romney   47995
              VIENNA, VA 22181, Obama:   87293, Romney   66798
              VIENNA, VA 22182, Obama:   55355, Romney  127409
              VIENNA, VA 22183, Obama:       0, Romney    1925
              VIENNA, WV 26105, Obama:    1750, Romney   11750
              VIENNA, GA 31092, Obama:    1000, Romney     500
              VIENNA, OH 44473, Obama:     500, Romney    3250
              VIENNA, IL 62995, Obama:       0, Romney    2500
zip or city: <Enter> Goodbye!
You should practice good top-down design, incrementally implement and test your solution, and document your code with comments. While much of the design is up to you, the requirements below are designed to avoid some headaches in the initial design.
[[contribution data from line 1], [contribution data from line 2], ..., [contribution data from last line]]
from boundaries import * state = "VA" w = getStateGraphWin(state) if w != None: # plot all zip codes for this state here...use lat/long for each zip code w.getMouse() w.close()
The contribution data used in this lab was compiled
  from 
  opensecrets.org.  We tried to compile this data as accurately as
  possible, but there are likely inaccuracies and omissions, so use
  the data for entertainment purposes only. :) If you find an error
  with our data, let us know and we will be happy to fix it, but we
  are not trying to maintain a comprehensive list.  If you are
  interested in learning more about money in politics, opensecrets.org
  is a great resource to help you to learn more.
Once you are satisfied with your program, hand it in by typing handin21 in a terminal window.