in src/databao_context_engine/plugins/databases/postgresql_introspector.py [0:0]
def _create_connection_string_for_config(self, connection_config: PostgresConnectionProperties) -> str:
def _escape_pg_value(value: str) -> str:
escaped = value.replace("\\", "\\\\").replace("'", "\\'")
return f"'{escaped}'"
host = connection_config.host
if host is None:
raise ValueError("A host must be provided to connect to the PostgreSQL database.")
connection_parts = {
"host": host,
"port": connection_config.port or 5432,
"dbname": connection_config.database,
"user": connection_config.user,
"password": connection_config.password,
}
connection_parts.update(connection_config.additional_properties)
connection_string = " ".join(
f"{k}={_escape_pg_value(str(v))}" for k, v in connection_parts.items() if v is not None
)
return connection_string