"""Integration with Python standard library module urllib2: Request class. Copyright 2004-2006 John J Lee This code is free software; you can redistribute it and/or modify it under the terms of the BSD or ZPL 2.1 licenses (see the file COPYING.txt included with the distribution). """ import logging import _rfc3986 import _sockettimeout import _urllib2_fork warn = logging.getLogger("mechanize").warning class Request(_urllib2_fork.Request): def __init__(self, url, data=None, headers={}, origin_req_host=None, unverifiable=False, visit=None, timeout=_sockettimeout._GLOBAL_DEFAULT_TIMEOUT): # In mechanize 0.2, the interpretation of a unicode url argument will # change: A unicode url argument will be interpreted as an IRI, and a # bytestring as a URI. For now, we accept unicode or bytestring. We # don't insist that the value is always a URI (specifically, must only # contain characters which are legal), because that might break working # code (who knows what bytes some servers want to see, especially with # browser plugins for internationalised URIs). if not _rfc3986.is_clean_uri(url): warn("url argument is not a URI " "(contains illegal characters) %r" % url) _urllib2_fork.Request.__init__(self, url, data, headers) self.selector = None self.visit = visit self.timeout = timeout def __str__(self): return "" % self.get_full_url()