nodes: 0, module; 1, function_definition; 2, function_name:_combine_sets; 3, parameters; 4, block; 5, identifier:self; 6, identifier:sets; 7, identifier:final_set; 8, expression_statement; 9, if_statement; 10, return_statement; 11, comment:"""
          Given a list of set, combine them to create the final set that will be
          used to make the final redis call.
          If we have a least a sorted set, use zinterstore insted of sunionstore
          """; 12, attribute; 13, block; 14, else_clause; 15, identifier:final_set; 16, identifier:self; 17, identifier:_has_sortedsets; 18, expression_statement; 19, block; 20, call; 21, expression_statement; 22, attribute; 23, argument_list; 24, assignment; 25, call; 26, identifier:zinterstore; 27, identifier:final_set; 28, call; 29, identifier:final_set; 30, call; 31, attribute; 32, argument_list; 33, identifier:list; 34, argument_list; 35, attribute; 36, argument_list; 37, attribute; 38, identifier:get_connection; 39, identifier:sets; 40, call; 41, identifier:_combine_sets; 42, identifier:sets; 43, identifier:final_set; 44, identifier:self; 45, identifier:cls; 46, identifier:super; 47, argument_list; 48, identifier:ExtendedCollectionManager; 49, identifier:self
code: def _combine_sets(self, sets, final_set):
          """
          Given a list of set, combine them to create the final set that will be
          used to make the final redis call.
          If we have a least a sorted set, use zinterstore insted of sunionstore
          """
          if self._has_sortedsets:
              self.cls.get_connection().zinterstore(final_set, list(sets))
          else:
              final_set = super(ExtendedCollectionManager, self)._combine_sets(sets, final_set)
          return final_set