You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ka...@apache.org on 2020/06/01 07:53:09 UTC

[airflow] branch master updated: Don't create empty modules for plugins (#9078)

This is an automated email from the ASF dual-hosted git repository.

kamilbregula pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/master by this push:
     new 7c0e6ed  Don't create empty modules for plugins (#9078)
7c0e6ed is described below

commit 7c0e6ede6078ff364da5d96afee65ec53e87cf65
Author: Kamil BreguĊ‚a <mi...@users.noreply.github.com>
AuthorDate: Mon Jun 1 09:52:24 2020 +0200

    Don't create empty modules for plugins (#9078)
---
 airflow/plugins_manager.py | 48 ++++++++++++++++++++--------------------------
 1 file changed, 21 insertions(+), 27 deletions(-)

diff --git a/airflow/plugins_manager.py b/airflow/plugins_manager.py
index 7c2b116..e36b665 100644
--- a/airflow/plugins_manager.py
+++ b/airflow/plugins_manager.py
@@ -198,6 +198,8 @@ def load_plugins_from_plugin_directory():
 # noinspection Mypy,PyTypeHints
 def make_module(name: str, objects: List[Any]):
     """Creates new module."""
+    if not objects:
+        return None
     log.debug('Creating module %s', name)
     name = name.lower()
     module = types.ModuleType(name)
@@ -333,11 +335,9 @@ def integrate_executor_plugins() -> None:
         plugin_name: str = plugin.name
 
         executors_module = make_module('airflow.executors.' + plugin_name, plugin.executors)
-        executors_modules.append(executors_module)
-
-        sys.modules[executors_module.__name__] = executors_module  # pylint: disable=no-member
-        # noinspection PyProtectedMember
-        globals()[executors_module._name] = executors_module  # pylint: disable=protected-access
+        if executors_module:
+            executors_modules.append(executors_module)
+            sys.modules[executors_module.__name__] = executors_module  # pylint: disable=no-member
 
 
 def integrate_dag_plugins() -> None:
@@ -371,30 +371,24 @@ def integrate_dag_plugins() -> None:
     for plugin in plugins:
         if plugin.name is None:
             raise AirflowPluginException("Invalid plugin name")
-        plugin_name: str = plugin.name
-
-        operators_module = make_module(f'airflow.operators.{plugin_name}', plugin.operators + plugin.sensors)
-        sensors_module = make_module(f'airflow.sensors.{plugin_name}', plugin.sensors)
-        hooks_module = make_module(f'airflow.hooks.{plugin_name}', plugin.hooks)
-        macros_module = make_module(f'airflow.macros.{plugin_name}', plugin.macros)
 
-        operators_modules.append(operators_module)
-        sensors_modules.append(sensors_module)
-        hooks_modules.append(hooks_module)
-        macros_modules.append(macros_module)
+        operators_module = make_module(f'airflow.operators.{plugin.name}', plugin.operators + plugin.sensors)
+        sensors_module = make_module(f'airflow.sensors.{plugin.name}', plugin.sensors)
+        hooks_module = make_module(f'airflow.hooks.{plugin.name}', plugin.hooks)
+        macros_module = make_module(f'airflow.macros.{plugin.name}', plugin.macros)
 
-        sys.modules[operators_module.__name__] = operators_module  # pylint: disable=no-member
-        # noinspection PyProtectedMember
-        globals()[operators_module._name] = operators_module  # pylint: disable=protected-access
+        if operators_module:
+            operators_modules.append(operators_module)
+            sys.modules[operators_module.__name__] = operators_module  # pylint: disable=no-member
 
-        sys.modules[sensors_module.__name__] = sensors_module  # pylint: disable=no-member
-        # noinspection PyProtectedMember
-        globals()[sensors_module._name] = sensors_module  # pylint: disable=protected-access
+        if sensors_module:
+            sensors_modules.append(sensors_module)
+            sys.modules[sensors_module.__name__] = sensors_module  # pylint: disable=no-member
 
-        sys.modules[hooks_module.__name__] = hooks_module  # pylint: disable=no-member
-        # noinspection PyProtectedMember
-        globals()[hooks_module._name] = hooks_module  # pylint: disable=protected-access
+        if hooks_module:
+            hooks_modules.append(hooks_module)
+            sys.modules[hooks_module.__name__] = hooks_module  # pylint: disable=no-member
 
-        sys.modules[macros_module.__name__] = macros_module  # pylint: disable=no-member
-        # noinspection PyProtectedMember
-        globals()[macros_module._name] = macros_module  # pylint: disable=protected-access
+        if macros_module:
+            macros_modules.append(macros_module)
+            sys.modules[macros_module.__name__] = macros_module  # pylint: disable=no-member