Taragolis opened a new pull request, #25810:
URL: https://github.com/apache/airflow/pull/25810

   Fix cyclic import problems when instantiating AWS SecretsManagerBackend in 
`apache-airflow-providers-amazon==5.0.0`
   
   **before** 
   ```shell
   ❯ export 
AIRFLOW__SECRETS__BACKEND=airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend
   ❯ airflow version
   
   cannot import name 'STATE_COLORS' from partially initialized module 
'airflow.settings' (most likely due to a circular import) 
(/Users/taragolis/Projects/common/airflow/airflow/settings.py)
   Traceback (most recent call last):
     File "/Users/taragolis/Projects/common/airflow/airflow/configuration.py", 
line 689, in getimport
       return import_string(full_qualified_path)
     File 
"/Users/taragolis/Projects/common/airflow/airflow/utils/module_loading.py", 
line 32, in import_string
       module = import_module(module_path)
     File 
"/Users/taragolis/.pyenv/versions/3.9.10/lib/python3.9/importlib/__init__.py", 
line 127, in import_module
       return _bootstrap._gcd_import(name[level:], package, level)
     File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
     File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
     File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
     File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
     File "<frozen importlib._bootstrap_external>", line 850, in exec_module
     File "<frozen importlib._bootstrap>", line 228, in 
_call_with_frames_removed
     File 
"/Users/taragolis/Projects/common/airflow/airflow/providers/amazon/aws/secrets/secrets_manager.py",
 line 27, in <module>
       from airflow.models.connection import Connection
     File 
"/Users/taragolis/Projects/common/airflow/airflow/models/__init__.py", line 22, 
in <module>
       from airflow.models.baseoperator import BaseOperator, BaseOperatorLink
     File 
"/Users/taragolis/Projects/common/airflow/airflow/models/baseoperator.py", line 
75, in <module>
       from airflow.models.mappedoperator import OperatorPartial, 
validate_mapping_kwargs
     File 
"/Users/taragolis/Projects/common/airflow/airflow/models/mappedoperator.py", 
line 71, in <module>
       from airflow.models.pool import Pool
     File "/Users/taragolis/Projects/common/airflow/airflow/models/pool.py", 
line 26, in <module>
       from airflow.ti_deps.dependencies_states import EXECUTION_STATES
     File 
"/Users/taragolis/Projects/common/airflow/airflow/ti_deps/dependencies_states.py",
 line 18, in <module>
       from airflow.utils.state import State
     File "/Users/taragolis/Projects/common/airflow/airflow/utils/state.py", 
line 22, in <module>
       from airflow.settings import STATE_COLORS
   ImportError: cannot import name 'STATE_COLORS' from partially initialized 
module 'airflow.settings' (most likely due to a circular import) 
(/Users/taragolis/Projects/common/airflow/airflow/settings.py)
   
   During handling of the above exception, another exception occurred:
   
   Traceback (most recent call last):
     File 
"/Users/taragolis/.pyenv/versions/3.9.10/envs/airflow-dev-env-39/bin/airflow", 
line 33, in <module>
       sys.exit(load_entry_point('apache-airflow', 'console_scripts', 
'airflow')())
     File 
"/Users/taragolis/.pyenv/versions/3.9.10/envs/airflow-dev-env-39/bin/airflow", 
line 25, in importlib_load_entry_point
       return next(matches).load()
     File 
"/Users/taragolis/.pyenv/versions/3.9.10/lib/python3.9/importlib/metadata.py", 
line 77, in load
       module = import_module(match.group('module'))
     File 
"/Users/taragolis/.pyenv/versions/3.9.10/lib/python3.9/importlib/__init__.py", 
line 127, in import_module
       return _bootstrap._gcd_import(name[level:], package, level)
     File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
     File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
     File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
     File "<frozen importlib._bootstrap>", line 228, in 
_call_with_frames_removed
     File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
     File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
     File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
     File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
     File "<frozen importlib._bootstrap_external>", line 850, in exec_module
     File "<frozen importlib._bootstrap>", line 228, in 
_call_with_frames_removed
     File "/Users/taragolis/Projects/common/airflow/airflow/__init__.py", line 
35, in <module>
       from airflow import settings
     File "/Users/taragolis/Projects/common/airflow/airflow/settings.py", line 
35, in <module>
       from airflow.configuration import AIRFLOW_HOME, WEBSERVER_CONFIG, conf  
# NOQA F401
     File "/Users/taragolis/Projects/common/airflow/airflow/configuration.py", 
line 1649, in <module>
       secrets_backend_list = initialize_secrets_backends()
     File "/Users/taragolis/Projects/common/airflow/airflow/configuration.py", 
line 1571, in initialize_secrets_backends
       custom_secret_backend = get_custom_secret_backend()
     File "/Users/taragolis/Projects/common/airflow/airflow/configuration.py", 
line 1546, in get_custom_secret_backend
       secrets_backend_cls = conf.getimport(section='secrets', key='backend')
     File "/Users/taragolis/Projects/common/airflow/airflow/configuration.py", 
line 692, in getimport
       raise AirflowConfigException(
   airflow.exceptions.AirflowConfigException: The object could not be loaded. 
Please check "backend" key in "secrets" section. Current value: 
"airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend"
   ```
   
   **after**
   
   ```shell
   ❯ export 
AIRFLOW__SECRETS__BACKEND=airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend
   ❯ airflow version
   
   2.4.0.dev0
   ```
   
   cc: @o-nikolas @ferruzzi @vincbeck @potiuk 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to