code: def set_filter(self, props_filter):
          
          if props_filter is not None and not (
              is_string(props_filter)
              or isinstance(
                  props_filter, (ldapfilter.LDAPFilter, ldapfilter.LDAPCriteria)
              )
          ):
              # Unknown type
              raise TypeError(
                  "Invalid filter type {0}".format(type(props_filter).__name__)
              )
  
          if props_filter is not None:
              # Filter given, keep its string form
              self.__original_filter = str(props_filter)
          else:
              # No filter
              self.__original_filter = None
  
          # Parse the filter
          self.filter = ldapfilter.get_ldap_filter(props_filter)
  
          # Prepare the full filter
          spec_filter = "({0}={1})".format(OBJECTCLASS, self.specification)
          self.__full_filter = ldapfilter.combine_filters(
              (spec_filter, self.filter)
          )
docs: Changes the current filter for the given one
  
          :param props_filter: The new requirement filter on service properties
          :raise TypeError: Unknown filter type