code: def set_routing(self, routing):
          
          if is_string(routing):
              # if type(routing) in [unicode, str]:
              routing = ast.literal_eval(routing)
          self.routing = [Routing(*route) for route in routing]
docs: Set the path over which a target is reachable.
  
          The path is given as a list of tuples in the form (address,
          bridge_channel).
  
          Example #1: access to an ATCA blade in a chassis
                slave = 0x81, target = 0x82
                routing = [(0x81,0x20,0),(0x20,0x82,None)]
  
          Example #2: access to an AMC in a uTCA chassis
                slave = 0x81, target = 0x72
                routing = [(0x81,0x20,0),(0x20,0x82,7),(0x20,0x72,None)]
  
  
                           uTCA - MCH                        AMC
                         .-------------------.             .--------.
                         |       .-----------|             |        |
                         | ShMC  | CM        |             | MMC    |
              channel=0  |       |           |  channel=7  |        |
          81 ------------| 0x20  |0x82  0x20 |-------------| 0x72   |
                         |       |           |             |        |
                         |       |           |             |        |
                         |       `-----------|             |        |
                         `-------------------´             `--------´
            `------------´     `---´        `---------------´
  
          Example #3: access to an AMC in a ATCA AMC carrier
  
          slave = 0x81, target = 0x72
          routing = [(0x81,0x20,0),(0x20,0x8e,7),(0x20,0x80,None)]