class_docstr: Result of |-operation between several filters.
class_docstr_tok: ["Result","of","|-operation","between","several","filters","."]
docstr: Create a new filter by applying an `|` operator between them.
  
  If there's only one unique filter in the given iterable, it will return
  that one filter instead of an `_OrList`.
code: def create(cls, filters: Iterable[Filter]) -> Filter:
      """
      Create a new filter by applying an `|` operator between them.
  
      If there's only one unique filter in the given iterable, it will return
      that one filter instead of an `_OrList`.
      """
      filters_2: list[Filter] = []
  
      for f in filters:
          if isinstance(f, _OrList):  # Turn nested _AndLists into one.
              filters_2.extend(f.filters)
          else:
              filters_2.append(f)
  
      # Remove duplicates. This could speed up execution, and doesn't make a
      # difference for the evaluation.
      filters = _remove_duplicates(filters_2)
  
      # If only one filter is left, return that without wrapping into an
      # `_AndList`.
      if len(filters) == 1:
          return filters[0]
  
      return cls(filters)
  
imports: from __future__ import annotations
  from abc import ABCMeta, abstractmethod
  from typing import Callable, Iterable, Union
label_desc: Use image node_id 2 for calling the _OrList obj's underlying member method code with example usage: obj.create(cls, filters) and returns: cls, filters