Package web2py :: Package gluon :: Module validators :: Class IS_GENERIC_URL |
[hide private]
[frames] | no frames]

# Class IS_GENERIC_URL

source code

    object --+
             |
     Validator --+
                 |
                IS_GENERIC_URL

    Rejects a URL string if any of the following is true:
       * The string is empty or None
       * The string uses characters that are not allowed in a URL
       * The URL scheme specified (if one is specified) is not valid

    Based on RFC 2396: http://www.faqs.org/rfcs/rfc2396.html

    This function only checks the URL's syntax. It does not check that the URL
    points to a real document, for example, or that it otherwise makes sense
    semantically. This function does automatically prepend 'http://' in front
    of a URL if and only if that's necessary to successfully parse the URL.
    Please note that a scheme will be prepended only for rare cases
    (e.g. 'google.ca:80')

    The list of allowed schemes is customizable with the allowed_schemes
    parameter. If you exclude None from the list, then abbreviated URLs
    (lacking a scheme such as 'http') will be rejected.

    The default prepended scheme is customizable with the prepend_scheme
    parameter. If you set prepend_scheme to None then prepending will be
    disabled. URLs that require prepending to parse will still be accepted,
    but the return value will not be modified.

    @author: Jonathan Benn

    >>> IS_GENERIC_URL()('http://user@abc.com')
    ('http://user@abc.com', None)

Instance Methods | [hide private]
__init__(self, error_message=`'``enter a valid URL``'`, allowed_schemes=1, prepend_scheme=1) :param error_message: a string, the error message to give the end user if the URL does not validate :param allowed_schemes: a list containing strings or None. | source code
__call__(self, value) :param value: a string, the URL to validate... | source code
Inherited from `Validator`: `formatter` Inherited from `object`: `__delattr__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__repr__`, `__setattr__`, `__str__`

Properties | [hide private]
Inherited from `object`: `__class__`

Method Details | [hide private]

### __init__(self, error_message=`'``enter a valid URL``'`, allowed_schemes=1, prepend_scheme=1) (Constructor) | source code
    :param error_message: a string, the error message to give the end user
        if the URL does not validate
    :param allowed_schemes: a list containing strings or None. Each element
        is a scheme the inputed URL is allowed to use
    :param prepend_scheme: a string, this scheme is prepended if it's
        necessary to make the URL valid
Overrides: object.__init__

### __call__(self, value) (Call operator) | source code
    :param value: a string, the URL to validate
    :returns: a tuple, where tuple[0] is the inputed value (possible
        prepended with prepend_scheme), and tuple[1] is either
        None (success!) or the string error_message