def load_data(self):
     self.item_categories = products.load_products_json()
     self.zipcode_objs = load_zipcode_data()
     self.first_names, self.last_names = load_names()
        name = cols[0]
        weight = float(cols[5])
        if cols[4] == "1":
            first_names.append((name, weight))
        if cols[3] == "1":
            last_names.append((name, weight))
    name_fl.close()
    return first_names, last_names


if __name__ == "__main__":
    from zipcodes import load_zipcode_data
    from stores import StoreGenerator

    print "Loading zipcode data..."
    zipcode_objs = load_zipcode_data()
    print

    print "Generating Stores..."
    generator = StoreGenerator(zipcode_objs=zipcode_objs)
    stores = generator.generate(n=100)
    print

    print "Generating customers..."
    generator = CustomerGenerator(zipcode_objs=zipcode_objs, stores=stores)
    customers = generator.generate(10)
    print

    print "Customers"
    for c in customers:
        print c
        self.zipcode_objs = zipcode_objs
        self.zipcode_sampler = ZipcodeSampler(zipcode_objs=zipcode_objs,
                                                income_scaling_factor=income_scaling_factor)
        self.current_id = 0
        
    def generate(self, n):
        stores = list()
        for i in xrange(n):
            store = Store()
            store.id = self.current_id
            self.current_id += 1
            store.name = "Store_" + str(i)
            store.zipcode = self.zipcode_sampler.sample()
            store.coords = self.zipcode_objs[store.zipcode].coords
            stores.append(store)
        return stores

if __name__ == "__main__":
    from zipcodes import load_zipcode_data

    zipcode_objs = load_zipcode_data()

    generator = StoreGenerator(zipcode_objs=zipcode_objs,
                               income_scaling_factor=100.0)

    stores = generator.generate(100)

    for s in stores:
        print s