split and fix initialization of UrlData objects

git-svn-id: https://linkchecker.svn.sourceforge.net/svnroot/linkchecker/trunk/linkchecker@2622 e7d03fd6-7b0d-0410-9947-9c21f3af8025
This commit is contained in:
calvin 2005-05-19 19:42:14 +00:00
parent cd32e823df
commit d2107c7a6a
4 changed files with 21 additions and 19 deletions

View file

@ -83,18 +83,16 @@ class FileUrl (urlbase.UrlBase):
Url link with file scheme.
"""
def __init__ (self, base_url, recursion_level, consumer,
parent_url = None,
base_ref = None, line=0, column=0, name=u""):
def init (self, base_ref, base_url, parent_url, recursion_level,
consumer, line, column, name):
"""
Besides the usual initialization the URL is normed according
to the platform:
- the base URL is made an absolute file:// URL
- under Windows platform the drive specifier is normed
"""
super(FileUrl, self).__init__(base_url, recursion_level, consumer,
parent_url=parent_url, base_ref=base_ref,
line=line, column=column, name=name)
super(FileUrl, self).init(base_ref, base_url, parent_url,
recursion_level, consumer, line, column, name)
base_url = self.base_url
if not (parent_url or base_ref or base_url.startswith("file:")):
base_url = os.path.expanduser(base_url)

View file

@ -38,15 +38,11 @@ class FtpUrl (internpaturl.InternPatternUrl, proxysupport.ProxySupport):
Url link with ftp scheme.
"""
def __init__ (self, base_url, recursion_level, consumer,
parent_url = None,
base_ref = None, line=0, column=0, name=u""):
def reset (self):
"""
Initialize FTP url data.
"""
super(FtpUrl, self).__init__(base_url, recursion_level, consumer,
parent_url=parent_url, base_ref=base_ref,
line=line, column=column, name=name)
super(FtpUrl, self).reset()
# list of files for recursion
self.files = []
# last part of URL filename

View file

@ -51,14 +51,11 @@ class HttpUrl (internpaturl.InternPatternUrl, proxysupport.ProxySupport):
Url link with http scheme.
"""
def __init__ (self, base_url, recursion_level, consumer,
parent_url=None, base_ref=None, line=0, column=0, name=u""):
def reset (self):
"""
Initialize basic url data and HTTP specific variables.
Initialize HTTP specific variables.
"""
super(HttpUrl, self).__init__(base_url, recursion_level, consumer,
parent_url=parent_url, base_ref=base_ref, line=line,
column=column, name=name)
super(HttpUrl, self).reset()
self.max_redirects = 5
self.has301status = False
self.no_anchor = False # remove anchor in request url

View file

@ -112,6 +112,17 @@ class UrlBase (object):
@param column: column number of url in parent content
@param name: name of url or empty
"""
self.init(base_ref, base_url, parent_url, recursion_level,
consumer, line, column, name)
self.reset()
self.check_syntax()
def init (self, base_ref, base_url, parent_url, recursion_level,
consumer, line, column, name):
"""
Initialize internal data.
"""
self.base_ref = base_ref
# note that self.base_url must not be modified
self.base_url = base_url
@ -131,6 +142,7 @@ class UrlBase (object):
# assume file link if no scheme is found
self.scheme = url.split(":", 1)[0] or "file"
def reset (self):
# self.url is constructed by self.build_url() out of base_url
# and (base_ref or parent) as absolute and normed url.
# This the real url we use when checking so it also referred to
@ -166,7 +178,6 @@ class UrlBase (object):
# cache keys, are set by build_url() calling set_cache_keys()
self.cache_url_key = None
self.cache_content_key = None
self.check_syntax()
def set_result (self, msg, valid=True):
"""