code: def filter_completions(self, completions):
          '''
          Ensures collected completions are Unicode text, de-duplicates them, and excludes those specified by ``exclude``.
          Returns the filtered completions as an iterable.
  
          This method is exposed for overriding in subclasses; there is no need to use it directly.
          '''
          # On Python 2, we have to make sure all completions are unicode objects before we continue and output them.
          # Otherwise, because python disobeys the system locale encoding and uses ascii as the default encoding, it will try
          # to implicitly decode string objects using ascii, and fail.
          if USING_PYTHON2:
              for i in range(len(completions)):
                  if type(completions[i]) != unicode:
                      completions[i] = completions[i].decode(sys_encoding)
  
          # De-duplicate completions and remove excluded ones
          if self.exclude is None:
              self.exclude = set()
          seen = set(self.exclude)
          return [c for c in completions if c not in seen and not seen.add(c)f filter_completions(self, completions):
          '''
          Ensures collected completions are Unicode text, de-duplicates them, and excludes those specified by ``exclude``.
          Returns the filtered completions as an iterable.
  
          This method is exposed for overriding in subclasses; there is no need to use it directly.
          '''
          # On Python 2, we have to make sure all completions are unicode objects before we continue and output them.
          # Otherwise, because python disobeys the system locale encoding and uses ascii as the default encoding, it will try
          # to implicitly decode string objects using ascii, and fail.
          if USING_PYTHON2:
              for i in range(len(completions)):
                  if type(completions[i]) != unicode:
                      completions[i] = completions[i].decode(sys_encoding)
  
          # De-duplicate completions and remove excluded ones
          if self.exclude is None:
              self.exclude = set()
          seen = set(self.exclude)
          return [c for c in completions if c not in seen and not seen.add(c)]
docs: Ensures collected completions are Unicode text, de-duplicates them, and excludes those specified by ``exclude``.
          Returns the filtered completions as an iterable.
  
          This method is exposed for overriding in subclasses; there is no need to use it directly.