Beispiel #1
0
def validate_user_or_has_key(arg, proc=None):
    if not arg:
        key = 'alias-key' in proc and proc['alias-key']
        if not key: # FIXME: FormValueError
            raise ValueError, "either `owner` or `access-key` is required. "
    else:
        # TODO: BL datastore
        v = util.nonzero_validator('an username or email. ')(arg)
        if not v: return False
        return util.validators['email'](arg)
    return True
Beispiel #2
0
validate_alias_path = util.regex_validator(
    '~?/?([-\w:,\+]+/)*?([-\w]*(\.+[-\w]+)?)?', 
    "path contains only one dot ('.') and may be relative, absolute, or user-path.",
    False)

validate_module_path_with_class = util.regex_validator(
    '(\w+\.)+?[A-Z]\w*', 
    "library module path to builder, including classname. "
    "Use valid chararacters for variable names only. ",
    False)

# FIXME: need to be usable as option validators?
util.validators.update({
    'id': validate_id,
    'key': validate_key,
    'alias': (util.nonzero_validator('an alias'), validate_new_alias),
    'user': validate_user_or_has_key,
    'builder': validate_module_path_with_class,
    'alias-path': validate_alias_path,
})



class FormExtractor(extract.Extractor):

    default_priority = 950

    fields_spec = [
            #('handle','null-str',{'validators':('id','alias',)}),
            ('id','null-str',{'validators':('alias-path',)}),
            #('owner','href',{'validators':('user',)}),