<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def or_(self, other):
 """ Creates a new compound query using the QueryCompound.Op.Or type. :param other <Query> || <QueryCompound> :return <QueryCompound> :sa or_ |(test isNot 1 or name is Eric) """

        if not isinstance(other, (Query, QueryCompound)) or other.isNull():
            return self.copy()
        elif self.isNull():
            return other.copy()
        else:
            # grow this if the operators are the same
            if self.__op == QueryCompound.Op.And:
                queries = list(self.__queries) + [other]
                return QueryCompound(*queries, op=QueryCompound.Op.Or)
            else:
                return QueryCompound(self, other, op=QueryCompound.Op.Or)