code: def can(
      estimator: Union[BaseEstimator, ABCMeta],
      language: Optional[Union[str, enum.Language]] = None,
      template: Optional[Union[str, enum.Template]] = None,
      method: Optional[Union[str, enum.Method]] = None,
  ) -> bool:
      """
      Check the support of the given arguments.
  
      Parameters
      ----------
      estimator : BaseEstimator or abstract ABCMeta class.
          Set a fitted base estimator of scikit-learn.
      language : str
          Set the target programming language.
      template : str
          Set the kind of desired template.
      method : str
          Set the kind of template.
  
      Returns
      -------
      True by a supported combination.
      """
  
      if isinstance(estimator, BaseEstimator):
          name = estimator.__class__.__name__
      elif isinstance(estimator, ABCMeta):
          name = estimator.__name__
      else:
          return False
  
      cands = Estimator.classifiers() + Estimator.regressors()
      cands = [c.__name__ for c in cands]
  
      if name not in cands:
          return False
  
      if language or template or method:
          pckg = "sklearn_porter.estimator.{}".format(name)
          module = __import__(pckg, globals(), locals(), [name], 0)
          clazz = getattr(module, name)
          support = getattr(clazz, "SUPPORT")
      else:
          return True
  
      if language:
          language = enum.Language.convert(language)
          if language in support.keys():
              if not template:
                  return True
              else:
                  template = enum.Template.convert(template)
                  if template in support[language].keys():
                      if not method:
                          return True
                      else:
                          method = enum.Method.convert(method)
                          if method in support[language][template]:
                              return True
      return False
  
imports: import urllib.request
  from abc import ABCMeta
  from collections import OrderedDict
  from functools import partial
  from json import JSONDecodeError, loads
  from multiprocessing import Pool, cpu_count
  from os import environ, remove
  from pathlib import Path
  from shutil import which
  from subprocess import STDOUT, CalledProcessError, check_output
  from sys import platform, stdout, version_info
  from tempfile import mktemp
  from textwrap import dedent
  from time import sleep
  from typing import Callable, Dict, List, Optional, Tuple, Union
  import numpy
  from loguru import logger
  from tabulate import tabulate
  from sklearn import __version__
  from sklearn.base import BaseEstimator, ClassifierMixin, RegressorMixin
  from sklearn.ensemble import BaseEnsemble
  from sklearn.metrics import accuracy_score
  from sklearn_porter import decorators
  from sklearn_porter import enums
  from sklearn_porter import exceptions
  from sklearn_porter import meta
  from sklearn_porter.utils import options
label_desc: Use image node_id 4 for calling a global function with example usage: can(estimator, language, template, method) and returns: False, False, True, False, True, True, True