:py:mod:`airflow.executors.executor_loader`
===========================================

.. py:module:: airflow.executors.executor_loader

.. autoapi-nested-parse::

   All executors.



Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.executors.executor_loader.ConnectorSource
   airflow.executors.executor_loader.ExecutorLoader




Attributes
~~~~~~~~~~

.. autoapisummary::

   airflow.executors.executor_loader.log
   airflow.executors.executor_loader.UNPICKLEABLE_EXECUTORS


.. py:data:: log
   

   

.. py:class:: ConnectorSource

   Bases: :py:obj:`enum.Enum`

   Enum of supported executor import sources.

   .. py:attribute:: CORE
      :annotation: = core

      

   .. py:attribute:: PLUGIN
      :annotation: = plugin

      

   .. py:attribute:: CUSTOM_PATH
      :annotation: = custom path

      


.. py:class:: ExecutorLoader

   Keeps constants for all the currently available executors.

   .. py:attribute:: executors
      

      

   .. py:method:: get_default_executor()
      :classmethod:

      Creates a new instance of the configured executor if none exists and returns it


   .. py:method:: load_executor(executor_name)
      :classmethod:

      Loads the executor.

      This supports the following formats:
      * by executor name for core executor
      * by ``{plugin_name}.{class_name}`` for executor from plugins
      * by import path.

      :return: an instance of executor class via executor_name


   .. py:method:: import_executor_cls(executor_name)
      :classmethod:

      Imports the executor class.

      Supports the same formats as ExecutorLoader.load_executor.

      :return: executor class via executor_name and executor import source



.. py:data:: UNPICKLEABLE_EXECUTORS
   

   

