: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(cls)
      :classmethod:

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


   .. py:method:: load_executor(cls, 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(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
   

   

