class_docstr: Rule-based router implementation.
class_docstr_tok: ["Rule-based","router","implementation","."]
docstr: Appends new rules to the router.
  
  :arg rules: a list of Rule instances (or tuples of arguments, which are
      passed to Rule constructor).
docstr_tok: ["Appends","new","rules","to","the","router",".",":","arg","rules",":","a","list","of","Rule","instances","(","or","tuples","of","arguments",",","which","are","passed","to","Rule","constructor",")","."]
code: def add_rules(self, rules):
      """Appends new rules to the router.
  
      :arg rules: a list of Rule instances (or tuples of arguments, which are
          passed to Rule constructor).
      """
      for rule in rules:
          if isinstance(rule, (tuple, list)):
              assert len(rule) in (2, 3, 4)
              if isinstance(rule[0], basestring_type):
                  rule = Rule(PathMatches(rule[0]), *rule[1:])
              else:
                  rule = Rule(*rule)
  
          self.rules.append(self.process_rule(rule))
  
imports: from __future__ import absolute_import, division, print_function
  import re
  from functools import partial
  from tornado import httputil
  from tornado.httpserver import _CallableAdapter
  from tornado.escape import url_escape, url_unescape, utf8
  from tornado.log import app_log
  from tornado.util import basestring_type, import_object, re_unescape, unicode_type
label_desc: Use image node_id 2 for calling the RuleRouter obj's underlying member method code with example usage: obj.add_rules(rules) without return types