def query_library(self, query, tie_breaker=no_tiebreak, modifiers=None, auto=False):
        """Queries the library for songs.
        returns a list of matches, or None.
        """

        if not modifiers:
            modifiers = []

        try:
            if not auto:
                return self.query_library_rec(query, self.library,
                                              self.QueryState(query, tie_breaker, modifiers, auto))
            else:
                # Auto mode attempts a search with the current modifiers.
                # If we get 1 result, we return it.
                # If we get no results, we add the next mod from auto_modifers and try again.
                # If we get many results, we branch and try with another modifier.
                # On no results, we tiebreak our old results.
                # Otherwise, we return the branched results.

                current_mods = modifiers[:]
                # Be ready to use any mods from the auto list which we aren't using already.
                future_mods = (m for m in self.auto_modifiers if modifiers not in m)

                while True:  # broken when future_mods runs out

                    # will not break ties in auto mode
                    results = self.query_library_rec(
                        query, self.library,
                        self.QueryState(query, tie_breaker, current_mods, auto))

                    if not results:
                        try:
                            current_mods.append(next(future_mods))
                        except StopIteration:
                            return results

                    elif len(results) == 1:
                        return results

                    else:
                        # Received many results from our current search.
                        # Branch; try more modifers to try and improve.
                        # If results, use them; otherwise tiebreak ours.
                        try:
                            current_mods.append(next(future_mods))
                        except StopIteration:
                            raise self.TieBroken(tie_breaker(query, results))

                        next_results = self.query_library(query, tie_breaker, current_mods, auto)

                        if not next_results:
                            raise self.TieBroken(tie_breaker(query, results))
                        else:
                            return next_results
        except self.TieBroken as tie:
            return tie.results
dataset/ETHPy150Open simon-weber/gmusicapi/gmusicapi/gmtools/tools.py/SongMatcher.query_library/swapped operands of `not in`