code: def _find_widget_match(self, prop_name):
          
          names = []
          for wid_name in self.view:
              # if widget names ends with given property name: we skip
              # any prefix in widget name
              if wid_name.lower().endswith(prop_name.lower()):
                  names.append(wid_name)
  
          if len(names) == 0:
              raise ValueError("No widget candidates match property '%s': %s" % \
                                   (prop_name, names))
  
          if len(names) > 1:
              raise TooManyCandidatesError("%d widget candidates match property '%s': %s" % \
                                               (len(names), prop_name, names))
  
          return names[0]
docs: Used to search ``self.view`` when :meth:`adapt` is not given a widget
          name.
  
          *prop_name* is the name of a property in the model.
  
          Returns a string with the best match. Raises
          :class:`TooManyCandidatesError` or ``ValueError`` when nothing is
          found.
  
          Subclasses can customise this. No super call necessary. The default
          implementation converts *prop_name* to lower case and allows prefixes
          like ``entry_``.