code: def element_resolver(elements, do_raise=True):
      
      if isinstance(elements, list):
          e = []
          for element in elements:
              try:
                  e.append(element.href)
              except AttributeError:
                  e.append(element)
              except smc.api.exceptions.ElementNotFound:
                  if do_raise:
                      raise
          return e
      try:
          return elements.href
      except AttributeError:
          return elements
      except smc.api.exceptions.ElementNotFound:
          if do_raise:
              raise
docs: Element resolver takes either a single class instance
      or a list of elements to resolve the href. It does
      not assume a specific interface, instead if it's
      a class, it just needs an 'href' attribute that should
      hold the http url for the resource. If a list is
      provided, a list is returned. If you want to suppress
      raising an exception and just return None or [] instead,
      set do_raise=False.
  
      :raises ElementNotFound: if this is of type Element,
          ElementLocator will attempt to retrieve meta if it
          doesn't already exist but the element was not found.