'@type scheme: L{bytes}
@param scheme: URI scheme specifier.
@type netloc: L{bytes}
@param netloc: Network location component.
@type host: L{bytes}
@param host: Host name. For IPv6 address literals the brackets are
stripped.
@type port: L{int}
@param port: Port number.
@type path: L{bytes}
@param path: Hierarchical path.
@type params: L{bytes}
@param params: Parameters for last path segment.
@type query: L{bytes}
@param query: Query string.
@type fragment: L{bytes}
@param fragment: Fragment identifier.'

def __init__(self, scheme, netloc, host, port, path, params, query, fragment):

    self.scheme = scheme
    self.netloc = netloc
    self.host = host.strip('[]')
    self.port = port
    self.path = path
    self.params = params
    self.query = query
    self.fragment = fragment
