'Request the specified field from the OpenID user
@param field_name: the unqualified simple registration field name
@type field_name: str
@param required: whether the given field should be presented
to the user as being a required to successfully complete
the request
@param strict: whether to raise an exception when a field is
added to a request more than once
@raise ValueError: when the field requested is not a simple
registration field or strict is set and the field was
requested more than once'

def requestField(self, field_name, required=False, strict=False):

    checkFieldName(field_name)
    if strict:
        if ((field_name in self.required) or (field_name in self.optional)):
            raise ValueError('That    field    has    already    been    requested')
    else:
        if (field_name in self.required):
            return
        if (field_name in self.optional):
            if required:
                self.optional.remove(field_name)
            else:
                return
    if required:
        self.required.append(field_name)
    else:
        self.optional.append(field_name)
