From 01576212a38409d2eb91931de36d319f674b391d Mon Sep 17 00:00:00 2001 From: jialin Date: Wed, 6 May 2026 14:18:41 +0800 Subject: [PATCH] fix: bool type in python code --- src/pages/playground/view-code/utils.ts | 35 ++++++++++++++++++------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/src/pages/playground/view-code/utils.ts b/src/pages/playground/view-code/utils.ts index 8c484836..96210d7e 100644 --- a/src/pages/playground/view-code/utils.ts +++ b/src/pages/playground/view-code/utils.ts @@ -28,21 +28,38 @@ export const formatCurlArgs = ( return `-d '${toShellSafeMultilineJson(parameters)}'`; }; +const toPyLiteral = (val: any, indent = 2, level = 0): string => { + if (val === null) return 'None'; + if (typeof val === 'boolean') return val ? 'True' : 'False'; + if (typeof val === 'string') return JSON.stringify(val); + if (Array.isArray(val)) { + if (val.length === 0) return '[]'; + const pad = ' '.repeat((level + 1) * indent); + const closePad = ' '.repeat(level * indent); + const items = val.map((v) => `${pad}${toPyLiteral(v, indent, level + 1)}`); + return `[\n${items.join(',\n')}\n${closePad}]`; + } + if (typeof val === 'object') { + const keys = Object.keys(val); + if (keys.length === 0) return '{}'; + const pad = ' '.repeat((level + 1) * indent); + const closePad = ' '.repeat(level * indent); + const entries = keys.map( + (k) => + `${pad}${JSON.stringify(k)}: ${toPyLiteral(val[k], indent, level + 1)}` + ); + return `{\n${entries.join(',\n')}\n${closePad}}`; + } + return String(val); +}; + // python format export const formatPyParams = (parameters: Record) => { return _.keys(parameters).reduce((acc: string, key: string) => { if (parameters[key] === null || parameters[key] === undefined) { return acc; } - const vauleType = typeof parameters[key]; - const value = - vauleType === 'object' - ? JSON.stringify(parameters[key], null, 2) - : vauleType === 'string' - ? `"${parameters[key]}"` - : parameters[key]; - - return acc + ` ${key}=${value},\n`; + return acc + ` ${key}=${toPyLiteral(parameters[key], 2, 1)},\n`; }, ''); };