On 9/28/2010 11:13 AM Norman Khine said...
ok, great.

one thing i wanted to ask is how could i extend the class so that i
can just change the name of the csv file?

Python provides for instance initialization with a class __init__ method, so you could modify your class as follows:



def sort_key(option):
    return "other" in option.itervalues(), option["name"]


class BusinessType(Enumerate):
    def __init__(self,cvsfile):
        self.cvsfile = cvsfile
    def get_options(cls):
        context = get_context()
        here = context.resource
        root = here.get_root().handler
        topics = root.get_handler(self.cvsfile)
        options = []
        for index, row in enumerate(topics.get_rows()):
            options.append({'name': row[0], 'value': MSG(row[1])})
        options.sort(key=sort_key)
        return options

Then, instead of invoking:

options = BusinessType().get_options()

You'd write:

options = BusinessType('topics.cvs').get_options()


Emile

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to