You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by as...@apache.org on 2021/06/22 13:46:06 UTC

[airflow] 16/38: Fix templated default/example values in config ref docs (#16442)

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

ash pushed a commit to branch v2-1-test
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit acc824f60786069e596fd0e97fa99fcef9f00fa6
Author: Jed Cunningham <66...@users.noreply.github.com>
AuthorDate: Tue Jun 15 10:34:44 2021 -0600

    Fix templated default/example values in config ref docs (#16442)
    
    We should show the actual default/example value in the configuration
    reference docs, not the templated values.
    
    e.g. `{dag_id}` like you get in a generated airflow.cfg, not `{{dag_id}}
    like is stored in the airflow.cfg template.
    
    (cherry picked from commit cc3c13c1f52a0051aea79d90bf8258e7d156d6b7)
---
 airflow/configuration.py |  2 +-
 docs/conf.py             | 14 +++++++++++++-
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/airflow/configuration.py b/airflow/configuration.py
index 53e76a6..c3595d7 100644
--- a/airflow/configuration.py
+++ b/airflow/configuration.py
@@ -91,7 +91,7 @@ def _default_config_file_path(file_name: str):
     return os.path.join(templates_dir, file_name)
 
 
-def default_config_yaml() -> dict:
+def default_config_yaml() -> List[dict]:
     """
     Read Airflow configs from YAML file
 
diff --git a/docs/conf.py b/docs/conf.py
index 39426d6..e403ffe 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -339,8 +339,20 @@ if PACKAGE_NAME == 'apache-airflow':
     ) in AirflowConfigParser.deprecated_options.items():
         deprecated_options[deprecated_section][deprecated_key] = section, key, since_version
 
+    configs = default_config_yaml()
+
+    # We want the default/example we show in the docs to reflect the value _after_
+    # the config has been templated, not before
+    # e.g. {{dag_id}} in default_config.cfg -> {dag_id} in airflow.cfg, and what we want in docs
+    keys_to_format = ["default", "example"]
+    for conf_section in configs:
+        for option in conf_section["options"]:
+            for key in keys_to_format:
+                if option[key] and "{{" in option[key]:
+                    option[key] = option[key].replace("{{", "{").replace("}}", "}")
+
     jinja_contexts = {
-        'config_ctx': {"configs": default_config_yaml(), "deprecated_options": deprecated_options},
+        'config_ctx': {"configs": configs, "deprecated_options": deprecated_options},
         'quick_start_ctx': {
             'doc_root_url': f'https://airflow.apache.org/docs/apache-airflow/{PACKAGE_VERSION}/'
             if FOR_PRODUCTION