code: def parse_link_descriptor(self, descriptor):
          '''parse e.g. 'udpin:127.0.0.1:9877:{"foo":"bar"}' into
          python structure ("udpin:127.0.0.1:9877", {"foo":"bar"})'''
          optional_attributes = {}
          link_components = descriptor.split(":{", 1)
          device = link_components[0]
          if (len(link_components) == 2 and link_components[1].endswith("}")):
              # assume json
              some_json = "{" + link_components[1]
              optional_attributes = self.parse_link_attributes(some_json)
          return (device, optional_attributesf parse_link_descriptor(self, descriptor):
          '''parse e.g. 'udpin:127.0.0.1:9877:{"foo":"bar"}' into
          python structure ("udpin:127.0.0.1:9877", {"foo":"bar"})'''
          optional_attributes = {}
          link_components = descriptor.split(":{", 1)
          device = link_components[0]
          if (len(link_components) == 2 and link_components[1].endswith("}")):
              # assume json
              some_json = "{" + link_components[1]
              optional_attributes = self.parse_link_attributes(some_json)
          return (device, optional_attributes)
docs: parse e.g. 'udpin:127.0.0.1:9877:{"foo":"bar"}' into
          python structure ("udpin:127.0.0.1:9877", {"foo":"bar"})