class_docstr: :class:`KernelProvisionerFactory` is responsible for creating provisioner instances.
  
  A singleton instance, `KernelProvisionerFactory` is also used by the :class:`KernelSpecManager`
  to validate `kernel_provisioner` references found in kernel specifications to confirm their
  availability (in cases where the kernel specification references a kernel provisioner that has
  not been installed into the current Python environment).
  
  It's ``default_provisioner_name`` attribute can be used to specify the default provisioner
  to use when a kernel_spec is found to not reference a provisioner.  It's value defaults to
  `"local-provisioner"` which identifies the local provisioner implemented by
  :class:`LocalProvisioner`.
class_docstr_tok: [":","class",":","`","KernelProvisionerFactory","`","is","responsible","for","creating","provisioner","instances",".","A","singleton","instance",",","`","KernelProvisionerFactory","`","is","also","used","by","the",":","class",":","`","KernelSpecManager","`","to","validate","`","kernel_provisioner","`","references","found","in","kernel","specifications","to","confirm","their","availability","(","in","cases","where","the","kernel","specification","references","a","kernel","provisioner","that","has","not","been","installed","into","the","current","Python","environment",")",".","It","'s","``","default_provisioner_name","``","attribute","can","be","used","to","specify","the","default","provisioner","to","use","when","a","kernel_spec","is","found","to","not","reference","a","provisioner",".","It","'s","value","defaults","to","`","``","local-provisioner","''","`","which","identifies","the","local","provisioner","implemented","by",":","class",":","`","LocalProvisioner","`","."]
docstr: Checks that the given provisioner is available.
  
  If the given provisioner is not in the current set of loaded provisioners an attempt
  is made to fetch the named entry point and, if successful, loads it into the cache.
  
  :param provisioner_name:
  :return:
docstr_tok: ["Checks","that","the","given","provisioner","is","available",".","If","the","given","provisioner","is","not","in","the","current","set","of","loaded","provisioners","an","attempt","is","made","to","fetch","the","named","entry","point","and",",","if","successful",",","loads","it","into","the","cache",".",":","param","provisioner_name",":",":","return",":"]
code: def _check_availability(self, provisioner_name: str) -> bool:
      """
      Checks that the given provisioner is available.
  
      If the given provisioner is not in the current set of loaded provisioners an attempt
      is made to fetch the named entry point and, if successful, loads it into the cache.
  
      :param provisioner_name:
      :return:
      """
      is_available = True
      if provisioner_name not in self.provisioners:
          try:
              ep = self._get_provisioner(provisioner_name)
              self.provisioners[provisioner_name] = ep  # Update cache
          except Exception:
              is_available = False
      return is_available
  
file_path: catboost/contrib/python/jupyter-client/py3/jupyter_client/provisioning/factory.py
imports: import glob
  import sys
  from os import getenv, path
  from typing import Any, Dict, List
  from traitlets.config import SingletonConfigurable, Unicode, default
  from .provisioner_base import KernelProvisionerBase
label_desc: Use image node_id 5 for calling the KernelProvisionerFactory obj's underlying member method code with example usage: obj._check_availability(provisioner_name) and returns: is_available