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