code: def process_package_filters(
      available_packages: list[str], package_filters: list[str] | None
  ):
      """Filters the package list against a set of filters.
  
      A packet is returned if it matches at least one filter. The function keeps the order of the packages.
      """
      if not package_filters:
          return available_packages
  
      suspended_packages = [
          f"apache-airflow-providers-{provider.replace('.','-')}"
          for provider in get_removed_provider_ids()
      ]
      all_packages_with_suspended = (
          available_packages + suspended_packages
      )
      invalid_filters = [
          f
          for f in package_filters
          if not any(
              fnmatch.fnmatch(p, f) for p in all_packages_with_suspended
          )
      ]
      if invalid_filters:
          raise SystemExit(
              f"Some filters did not find any package: {invalid_filters}, Please check if they are correct."
          )
      return [
          p
          for p in all_packages_with_suspended
          if any(fnmatch.fnmatch(p, f) for f in package_filters)
      ]
  
imports: from __future__ import annotations
  import fnmatch
  from pathlib import Path
label_desc: Use image node_id 2 for calling a global function with example usage: process_package_filters(available_packages, package_filters) and returns: unknown, available_packages