Vega strike Python Modules doc  0.5.1
Documentation of the " Modules " folder of Vega strike
 All Data Structures Namespaces Files Functions Variables
OpenerDirector Class Reference

Public Member Functions

def __init__
 
def add_handler
 
def __del__
 
def close
 
def open
 
def error
 

Data Fields

 addheaders
 
 handlers
 
 handle_open
 
 handle_error
 

Detailed Description

Definition at line 245 of file urllib2.py.

Constructor & Destructor Documentation

def __init__ (   self)

Definition at line 246 of file urllib2.py.

247  def __init__(self):
248  server_version = "Python-urllib/%s" % __version__
249  self.addheaders = [('User-agent', server_version)]
250  # manage the individual handlers
251  self.handlers = []
252  self.handle_open = {}
253  self.handle_error = {}
def __del__ (   self)

Member Function Documentation

def add_handler (   self,
  handler 
)

Definition at line 254 of file urllib2.py.

References reconvert.append, sre_parse.dir, gettext.find(), OpenerDirector.handle_error, and OpenerDirector.handle_open.

255  def add_handler(self, handler):
256  added = 0
257  for meth in dir(handler):
258  if meth[-5:] == '_open':
259  protocol = meth[:-5]
260  if self.handle_open.has_key(protocol):
261  self.handle_open[protocol].append(handler)
262  else:
263  self.handle_open[protocol] = [handler]
264  added = 1
265  continue
266  i = meth.find('_')
267  j = meth[i+1:].find('_') + i + 1
268  if j != -1 and meth[i+1:j] == 'error':
269  proto = meth[:i]
270  kind = meth[j+1:]
271  try:
272  kind = int(kind)
273  except ValueError:
274  pass
275  dict = self.handle_error.get(proto, {})
276  if dict.has_key(kind):
277  dict[kind].append(handler)
278  else:
279  dict[kind] = [handler]
280  self.handle_error[proto] = dict
281  added = 1
282  continue
283  if added:
284  self.handlers.append(handler)
285  handler.add_parent(self)
def close (   self)

Definition at line 289 of file urllib2.py.

References OpenerDirector.handlers.

290  def close(self):
291  for handler in self.handlers:
292  handler.close()
293  self.handlers = []
def error (   self,
  proto,
  args 
)

Definition at line 329 of file urllib2.py.

References OpenerDirector._call_chain(), and OpenerDirector.handle_error.

330  def error(self, proto, *args):
331  if proto in ['http', 'https']:
332  # XXX http[s] protocols are special-cased
333  dict = self.handle_error['http'] # https is not different than http
334  proto = args[2] # YUCK!
335  meth_name = 'http_error_%d' % proto
336  http_err = 1
337  orig_args = args
338  else:
339  dict = self.handle_error
340  meth_name = proto + '_error'
341  http_err = 0
342  args = (dict, proto, meth_name) + args
343  result = self._call_chain(*args)
344  if result:
345  return result
346 
347  if http_err:
348  args = (dict, 'default', 'http_error_default') + orig_args
349  return self._call_chain(*args)
350 
# XXX probably also want an abstract factory that knows things like
def open (   self,
  fullurl,
  data = None 
)

Definition at line 305 of file urllib2.py.

References OpenerDirector._call_chain(), and OpenerDirector.handle_open.

306  def open(self, fullurl, data=None):
307  # accept a URL or a Request object
308  if isinstance(fullurl, (types.StringType, types.UnicodeType)):
309  req = Request(fullurl, data)
310  else:
311  req = fullurl
312  if data is not None:
313  req.add_data(data)
314  assert isinstance(req, Request) # really only care about interface
315 
316  result = self._call_chain(self.handle_open, 'default',
317  'default_open', req)
318  if result:
319  return result
320 
321  type_ = req.get_type()
322  result = self._call_chain(self.handle_open, type_, type_ + \
323  '_open', req)
324  if result:
325  return result
326 
327  return self._call_chain(self.handle_open, 'unknown',
328  'unknown_open', req)

Field Documentation

addheaders

Definition at line 248 of file urllib2.py.

handle_error

Definition at line 252 of file urllib2.py.

handle_open

Definition at line 251 of file urllib2.py.

handlers

Definition at line 250 of file urllib2.py.


The documentation for this class was generated from the following file: