MCPcopy Index your code
hub / github.com/sqlmapproject/sqlmap / add

Method add

thirdparty/bottle/bottle.py:356–427  ·  view source on GitHub ↗

Add a new rule or replace the target for an existing rule.

(self, rule, method, target, name=None)

Source from the content-addressed store, hash-verified

354 yield prefix + rule[offset:], None, None
355
356 def add(self, rule, method, target, name=None):
357 """ Add a new rule or replace the target for an existing rule. """
358 anons = 0 # Number of anonymous wildcards found
359 keys = [] # Names of keys
360 pattern = '' # Regular expression pattern with named groups
361 filters = [] # Lists of wildcard input filters
362 builder = [] # Data structure for the URL builder
363 is_static = True
364
365 for key, mode, conf in self._itertokens(rule):
366 if mode:
367 is_static = False
368 if mode == 'default': mode = self.default_filter
369 mask, in_filter, out_filter = self.filters[mode](conf)
370 if not key:
371 pattern += '(?:%s)' % mask
372 key = 'anon%d' % anons
373 anons += 1
374 else:
375 pattern += '(?P<%s>%s)' % (key, mask)
376 keys.append(key)
377 if in_filter: filters.append((key, in_filter))
378 builder.append((key, out_filter or str))
379 elif key:
380 pattern += re.escape(key)
381 builder.append((None, key))
382
383 self.builder[rule] = builder
384 if name: self.builder[name] = builder
385
386 if is_static and not self.strict_order:
387 self.static.setdefault(method, {})
388 self.static[method][self.build(rule)] = (target, None)
389 return
390
391 try:
392 re_pattern = re.compile('^(%s)$' % pattern)
393 re_match = re_pattern.match
394 except re.error as e:
395 raise RouteSyntaxError("Could not add Route: %s (%s)" % (rule, e))
396
397 if filters:
398
399 def getargs(path):
400 url_args = re_match(path).groupdict()
401 for name, wildcard_filter in filters:
402 try:
403 url_args[name] = wildcard_filter(url_args[name])
404 except ValueError:
405 raise HTTPError(400, 'Path has wrong format.')
406 return url_args
407 elif re_pattern.groupindex:
408
409 def getargs(path):
410 return re_match(path).groupdict()
411 else:
412 getargs = None
413

Callers 8

matchMethod · 0.45
all_pluginsMethod · 0.45
add_routeMethod · 0.45
_set_virtualMethod · 0.45
single_printFunction · 0.45
check_payloadFunction · 0.45
non_blind_checkFunction · 0.45
runFunction · 0.45

Calls 8

_itertokensMethod · 0.95
buildMethod · 0.95
_compileMethod · 0.95
RouteSyntaxErrorClass · 0.85
_re_flattenFunction · 0.85
setdefaultMethod · 0.80
appendMethod · 0.45
escapeMethod · 0.45

Tested by

no test coverage detected