code: def _selectFromList(self, _list, using_pattern=True, objtype=None):
          
          if not _list:
              self._print("No matching items.", "TIP")
              return None
          if using_pattern and len(_list) == 1:  # removed
              pass
              # return _list[0]
          if using_pattern:
              self._print("%d matching items: \n--------------" % len(_list), "TIP")
          else:
              self._print("%d items available: \n--------------" % len(_list), "TIP")
          counter = 1
          _temp = []
          for el in _list:
              if hasattr(el, 'qname'):
                  _temp += [Fore.BLUE + Style.BRIGHT + "[%d] " %
                            counter + Style.RESET_ALL + str(el.qname)]
              elif hasattr(el, 'uri'):
                  _temp += [Fore.BLUE + Style.BRIGHT + "[%d] " %
                            counter + Style.RESET_ALL + str(el.uri)]
              else:
                  _temp += [Fore.BLUE + Style.BRIGHT + "[%d] " % counter + Style.RESET_ALL + str(el)]
              counter += 1
          pprint2columns(_temp)
  
          self._print("--------------")
          self._print("Please select one option by entering its number, or a keyword to filter: ")
          var = input()
          if var == "":
              return None
          elif var.isdigit():
              try:
                  var = int(var)
                  return _list[var-1]
              except:
                  self._print("Selection not valid")
                  return None
          elif objtype:
              # continuos patter matching on list (only for certain object types)
              if objtype == 'ontology':
                  self._select_ontology(var)
              elif objtype == 'class':
                  self._select_class(var)
              elif objtype == 'property':
                  self._select_property(var)
              elif objtype == 'concept':
                  self._select_concept(var)
              return
docs: Generic method that lets users pick an item from a list via input
          *using_pattern* flag to know if we're showing all choices or not
          Note: the list items need to be Ontospy entities.
          <objtype>: if specified, it allows incremental search by keeping specifying a
          different pattern.