in core/maxframe_client/session/odps.py [0:0]
def get_settings_to_upload(self) -> Dict[str, Any]:
sql_settings = (odps_options.sql.settings or {}).copy()
sql_settings.update(options.sql.settings or {})
quota_name = options.session.quota_name or getattr(
odps_options, "quota_name", None
)
quota_settings = {
sql_settings.get("odps.task.wlm.quota", None),
options.spe.task.settings.get("odps.task.wlm.quota", None),
options.pythonpack.task.settings.get("odps.task.wlm.quota", None),
quota_name,
}.difference([None])
if len(quota_settings) >= 2:
raise ValueError(
"Quota settings are conflicting: %s" % ", ".join(sorted(quota_settings))
)
elif len(quota_settings) == 1:
quota_name = quota_settings.pop()
lifecycle = options.session.table_lifecycle or odps_options.lifecycle
temp_lifecycle = (
options.session.temp_table_lifecycle or odps_options.temp_lifecycle
)
enable_schema = options.session.enable_schema
default_schema = options.session.default_schema
if hasattr(self, "_odps_entry"):
default_schema = default_schema or self._odps_entry.schema
# use flags in sql settings
if sql_settings.get("odps.default.schema"):
default_schema = sql_settings["odps.default.schema"]
if str_to_bool(
sql_settings.get("odps.namespace.schema") or "false"
) or str_to_bool(
sql_settings.get("odps.sql.allow.namespace.schema") or "false"
):
enable_schema = True
mf_settings = dict(options.to_dict(remote_only=True).items())
mf_settings["sql.settings"] = sql_settings
mf_settings["session.table_lifecycle"] = lifecycle
mf_settings["session.temp_table_lifecycle"] = temp_lifecycle
mf_settings["session.quota_name"] = quota_name
if enable_schema is not None:
mf_settings["session.enable_schema"] = enable_schema
if options.session.enable_high_availability is None:
mf_settings["session.enable_high_availability"] = not in_ipython_frontend()
mf_settings["session.default_schema"] = default_schema or "default"
return mf_settings