'sorts the sequence according to the field specified---where field is
a property on an item in the sequence. If descending is false, items
will be sorted in order from least to greatest.
Note that if field does not exist in any item being sorted, a
KeyError will be raised.'

def sort(self, field, descending=True):

    def attrget(item):
        return getattr(item, field, 0)
    return self.__class__(sorted(self, reverse=descending, key=attrget))
