MCPcopy Index your code
hub / github.com/pgadmin-org/pgadmin4 / evaluate_and_patch_config

Function evaluate_and_patch_config

web/pgadmin/evaluate_config.py:101–157  ·  view source on GitHub ↗
(config: dict)

Source from the content-addressed store, hash-verified

99
100
101def evaluate_and_patch_config(config: dict) -> dict:
102 # Update settings for 'LOG_FILE', 'SQLITE_PATH', 'SESSION_DB_PATH',
103 # 'AZURE_CREDENTIAL_CACHE_DIR', 'KERBEROS_CCACHE_DIR', 'STORAGE_DIR'
104 # of DATA_DIR is user defined
105 data_dir_dependent_settings = \
106 ['LOG_FILE', 'SQLITE_PATH', 'SESSION_DB_PATH',
107 'AZURE_CREDENTIAL_CACHE_DIR', 'KERBEROS_CCACHE_DIR', 'STORAGE_DIR']
108
109 if 'DATA_DIR' in custom_config_settings:
110 for setting in data_dir_dependent_settings:
111 if setting not in custom_config_settings:
112 data_dir = custom_config_settings['DATA_DIR']
113 file_dir_name = os.path.basename(config.get(setting))
114 config.update(
115 {setting: os.path.join(data_dir, file_dir_name)})
116
117 # To use psycopg3 driver, need to specify +psycopg in conn URI
118 if 'CONFIG_DATABASE_URI' in custom_config_settings:
119 custom_config_settings['CONFIG_DATABASE_URI'] = \
120 normalize_database_uri(
121 custom_config_settings['CONFIG_DATABASE_URI'])
122
123 # Finally update config user configs
124 config.update(custom_config_settings)
125
126 # Override DEFAULT_SERVER value from environment variable.
127 if 'PGADMIN_CONFIG_DEFAULT_SERVER' in os.environ:
128 config['DEFAULT_SERVER'] = os.environ['PGADMIN_CONFIG_DEFAULT_SERVER']
129
130 # Disable USER_INACTIVITY_TIMEOUT when SERVER_MODE=False
131 if not config.get('SERVER_MODE'):
132 config['USER_INACTIVITY_TIMEOUT'] = 0
133 # Enable PSQL in Desktop Mode.
134 config['ENABLE_PSQL'] = True
135
136 if config.get('SERVER_MODE'):
137 config.setdefault('USE_OS_SECRET_STORAGE', False)
138 config.setdefault('KEYRING_NAME', '')
139 else:
140 k_name = keyring.get_keyring().name
141 # Setup USE_OS_SECRET_STORAGE false as no keyring backend available
142 if k_name == 'fail Keyring':
143 config['USE_OS_SECRET_STORAGE'] = False
144 config['KEYRING_NAME'] = ''
145 else:
146 config.setdefault('KEYRING_NAME', k_name)
147
148 config.setdefault('SESSION_COOKIE_PATH', config.get('COOKIE_DEFAULT_PATH'))
149
150 # if a script name is preset, session cookies should go to sub path
151 if 'SCRIPT_NAME' in os.environ and os.environ["SCRIPT_NAME"]:
152 config.update(dict({
153 'APPLICATION_ROOT': os.environ["SCRIPT_NAME"],
154 'SESSION_COOKIE_PATH': os.environ["SCRIPT_NAME"],
155 }))
156
157 return config

Callers 1

config.pyFile · 0.90

Calls 4

normalize_database_uriFunction · 0.90
joinMethod · 0.80
getMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected