nodes: 0, module; 1, function_definition; 2, function_name:filter_query; 3, parameters; 4, block; 5, identifier:self; 6, identifier:query; 7, identifier:filter_info; 8, identifier:model; 9, expression_statement; 10, if_statement; 11, return_statement; 12, comment:"""Filter query according to jsonapi 1.0
  
          :param Query query: sqlalchemy query to sort
          :param filter_info: filter information
          :type filter_info: dict or None
          :param DeclarativeMeta model: an sqlalchemy model
          :return Query: the sorted query
          """; 13, identifier:filter_info; 14, block; 15, identifier:query; 16, expression_statement; 17, expression_statement; 18, assignment; 19, assignment; 20, identifier:filters; 21, call; 22, identifier:query; 23, call; 24, identifier:create_filters; 25, argument_list; 26, attribute; 27, argument_list; 28, identifier:model; 29, identifier:filter_info; 30, attribute; 31, identifier:query; 32, identifier:filter; 33, list_splat; 34, identifier:self; 35, identifier:resource; 36, identifier:filters
code: def filter_query(self, query, filter_info, model):
          """Filter query according to jsonapi 1.0
  
          :param Query query: sqlalchemy query to sort
          :param filter_info: filter information
          :type filter_info: dict or None
          :param DeclarativeMeta model: an sqlalchemy model
          :return Query: the sorted query
          """
          if filter_info:
              filters = create_filters(model, filter_info, self.resource)
              query = query.filter(*filters)
  
          return query